| //===- StringExtrasTest.cpp - Tests for utility methods in StringExtras.h -===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "mlir/Support/StringExtras.h" |
| #include "gtest/gtest.h" |
| |
| using namespace mlir; |
| |
| static void testConvertToSnakeCase(llvm::StringRef input, |
| llvm::StringRef expected) { |
| EXPECT_EQ(convertToSnakeCase(input), expected.str()); |
| } |
| |
| TEST(StringExtras, ConvertToSnakeCase) { |
| testConvertToSnakeCase("OpName", "op_name"); |
| testConvertToSnakeCase("opName", "op_name"); |
| testConvertToSnakeCase("_OpName", "_op_name"); |
| testConvertToSnakeCase("Op_Name", "op_name"); |
| testConvertToSnakeCase("", ""); |
| testConvertToSnakeCase("A", "a"); |
| testConvertToSnakeCase("_", "_"); |
| testConvertToSnakeCase("a", "a"); |
| testConvertToSnakeCase("op_name", "op_name"); |
| testConvertToSnakeCase("_op_name", "_op_name"); |
| testConvertToSnakeCase("__op_name", "__op_name"); |
| testConvertToSnakeCase("op__name", "op__name"); |
| } |
| |
| template <bool capitalizeFirst> |
| static void testConvertToCamelCase(llvm::StringRef input, |
| llvm::StringRef expected) { |
| EXPECT_EQ(convertToCamelCase(input, capitalizeFirst), expected.str()); |
| } |
| |
| TEST(StringExtras, ConvertToCamelCase) { |
| testConvertToCamelCase<false>("op_name", "opName"); |
| testConvertToCamelCase<false>("_op_name", "_opName"); |
| testConvertToCamelCase<false>("__op_name", "_OpName"); |
| testConvertToCamelCase<false>("op__name", "op_Name"); |
| testConvertToCamelCase<false>("", ""); |
| testConvertToCamelCase<false>("A", "A"); |
| testConvertToCamelCase<false>("_", "_"); |
| testConvertToCamelCase<false>("a", "a"); |
| testConvertToCamelCase<false>("OpName", "OpName"); |
| testConvertToCamelCase<false>("opName", "opName"); |
| testConvertToCamelCase<false>("_OpName", "_OpName"); |
| testConvertToCamelCase<false>("Op_Name", "Op_Name"); |
| testConvertToCamelCase<true>("op_name", "OpName"); |
| testConvertToCamelCase<true>("_op_name", "_opName"); |
| testConvertToCamelCase<true>("__op_name", "_OpName"); |
| testConvertToCamelCase<true>("op__name", "Op_Name"); |
| testConvertToCamelCase<true>("", ""); |
| testConvertToCamelCase<true>("A", "A"); |
| testConvertToCamelCase<true>("_", "_"); |
| testConvertToCamelCase<true>("a", "A"); |
| testConvertToCamelCase<true>("OpName", "OpName"); |
| testConvertToCamelCase<true>("_OpName", "_OpName"); |
| testConvertToCamelCase<true>("Op_Name", "Op_Name"); |
| testConvertToCamelCase<true>("opName", "OpName"); |
| } |