//===- StringExtrasTest.cpp - Tests for utility methods in StringExtras.h -===// // // Part of the MLIR 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 static void testConvertToCamelCase(llvm::StringRef input, llvm::StringRef expected) { EXPECT_EQ(convertToCamelCase(input, capitalizeFirst), expected.str()); } TEST(StringExtras, ConvertToCamelCase) { testConvertToCamelCase("op_name", "opName"); testConvertToCamelCase("_op_name", "_opName"); testConvertToCamelCase("__op_name", "_OpName"); testConvertToCamelCase("op__name", "op_Name"); testConvertToCamelCase("", ""); testConvertToCamelCase("A", "A"); testConvertToCamelCase("_", "_"); testConvertToCamelCase("a", "a"); testConvertToCamelCase("OpName", "OpName"); testConvertToCamelCase("opName", "opName"); testConvertToCamelCase("_OpName", "_OpName"); testConvertToCamelCase("Op_Name", "Op_Name"); testConvertToCamelCase("op_name", "OpName"); testConvertToCamelCase("_op_name", "_opName"); testConvertToCamelCase("__op_name", "_OpName"); testConvertToCamelCase("op__name", "Op_Name"); testConvertToCamelCase("", ""); testConvertToCamelCase("A", "A"); testConvertToCamelCase("_", "_"); testConvertToCamelCase("a", "A"); testConvertToCamelCase("OpName", "OpName"); testConvertToCamelCase("_OpName", "_OpName"); testConvertToCamelCase("Op_Name", "Op_Name"); testConvertToCamelCase("opName", "OpName"); }