1*99e0aae7SDavid Rees# Copyright 2019 Google LLC 2*99e0aae7SDavid Rees# 3*99e0aae7SDavid Rees# Licensed under the Apache License, Version 2.0 (the "License"); 4*99e0aae7SDavid Rees# you may not use this file except in compliance with the License. 5*99e0aae7SDavid Rees# You may obtain a copy of the License at 6*99e0aae7SDavid Rees# 7*99e0aae7SDavid Rees# https://www.apache.org/licenses/LICENSE-2.0 8*99e0aae7SDavid Rees# 9*99e0aae7SDavid Rees# Unless required by applicable law or agreed to in writing, software 10*99e0aae7SDavid Rees# distributed under the License is distributed on an "AS IS" BASIS, 11*99e0aae7SDavid Rees# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*99e0aae7SDavid Rees# See the License for the specific language governing permissions and 13*99e0aae7SDavid Rees# limitations under the License. 14*99e0aae7SDavid Rees 15*99e0aae7SDavid Rees"""Tests for util.name_conversion.""" 16*99e0aae7SDavid Rees 17*99e0aae7SDavid Reesimport unittest 18*99e0aae7SDavid Reesfrom compiler.util import name_conversion 19*99e0aae7SDavid Rees 20*99e0aae7SDavid Rees 21*99e0aae7SDavid Reesclass NameConversionTest(unittest.TestCase): 22*99e0aae7SDavid Rees 23*99e0aae7SDavid Rees def test_snake_to_camel(self): 24*99e0aae7SDavid Rees self.assertEqual("", name_conversion.snake_to_camel("")) 25*99e0aae7SDavid Rees self.assertEqual("Abc", name_conversion.snake_to_camel("abc")) 26*99e0aae7SDavid Rees self.assertEqual("AbcDef", name_conversion.snake_to_camel("abc_def")) 27*99e0aae7SDavid Rees self.assertEqual("AbcDef89", name_conversion.snake_to_camel("abc_def89")) 28*99e0aae7SDavid Rees self.assertEqual("AbcDef89", name_conversion.snake_to_camel("abc_def_89")) 29*99e0aae7SDavid Rees self.assertEqual("Abc89Def", name_conversion.snake_to_camel("abc_89_def")) 30*99e0aae7SDavid Rees self.assertEqual("Abc89def", name_conversion.snake_to_camel("abc_89def")) 31*99e0aae7SDavid Rees 32*99e0aae7SDavid Rees def test_shouty_to_camel(self): 33*99e0aae7SDavid Rees self.assertEqual("Abc", name_conversion.snake_to_camel("ABC")) 34*99e0aae7SDavid Rees self.assertEqual("AbcDef", name_conversion.snake_to_camel("ABC_DEF")) 35*99e0aae7SDavid Rees self.assertEqual("AbcDef89", name_conversion.snake_to_camel("ABC_DEF89")) 36*99e0aae7SDavid Rees self.assertEqual("AbcDef89", name_conversion.snake_to_camel("ABC_DEF_89")) 37*99e0aae7SDavid Rees self.assertEqual("Abc89Def", name_conversion.snake_to_camel("ABC_89_DEF")) 38*99e0aae7SDavid Rees self.assertEqual("Abc89def", name_conversion.snake_to_camel("ABC_89DEF")) 39*99e0aae7SDavid Rees 40*99e0aae7SDavid Rees def test_camel_to_k_camel(self): 41*99e0aae7SDavid Rees self.assertEqual("kFoo", name_conversion.camel_to_k_camel("Foo")) 42*99e0aae7SDavid Rees self.assertEqual("kFooBar", name_conversion.camel_to_k_camel("FooBar")) 43*99e0aae7SDavid Rees self.assertEqual("kAbc123", name_conversion.camel_to_k_camel("Abc123")) 44*99e0aae7SDavid Rees 45*99e0aae7SDavid Rees def test_snake_to_k_camel(self): 46*99e0aae7SDavid Rees self.assertEqual("kAbc", name_conversion.snake_to_k_camel("abc")) 47*99e0aae7SDavid Rees self.assertEqual("kAbcDef", name_conversion.snake_to_k_camel("abc_def")) 48*99e0aae7SDavid Rees self.assertEqual("kAbcDef89", 49*99e0aae7SDavid Rees name_conversion.snake_to_k_camel("abc_def89")) 50*99e0aae7SDavid Rees self.assertEqual("kAbcDef89", 51*99e0aae7SDavid Rees name_conversion.snake_to_k_camel("abc_def_89")) 52*99e0aae7SDavid Rees self.assertEqual("kAbc89Def", 53*99e0aae7SDavid Rees name_conversion.snake_to_k_camel("abc_89_def")) 54*99e0aae7SDavid Rees self.assertEqual("kAbc89def", 55*99e0aae7SDavid Rees name_conversion.snake_to_k_camel("abc_89def")) 56*99e0aae7SDavid Rees 57*99e0aae7SDavid Rees def test_shouty_to_k_camel(self): 58*99e0aae7SDavid Rees self.assertEqual("kAbc", name_conversion.snake_to_k_camel("ABC")) 59*99e0aae7SDavid Rees self.assertEqual("kAbcDef", name_conversion.snake_to_k_camel("ABC_DEF")) 60*99e0aae7SDavid Rees self.assertEqual("kAbcDef89", 61*99e0aae7SDavid Rees name_conversion.snake_to_k_camel("ABC_DEF89")) 62*99e0aae7SDavid Rees self.assertEqual("kAbcDef89", 63*99e0aae7SDavid Rees name_conversion.snake_to_k_camel("ABC_DEF_89")) 64*99e0aae7SDavid Rees self.assertEqual("kAbc89Def", 65*99e0aae7SDavid Rees name_conversion.snake_to_k_camel("ABC_89_DEF")) 66*99e0aae7SDavid Rees self.assertEqual("kAbc89def", 67*99e0aae7SDavid Rees name_conversion.snake_to_k_camel("ABC_89DEF")) 68*99e0aae7SDavid Rees 69*99e0aae7SDavid Rees def test_convert_case(self): 70*99e0aae7SDavid Rees self.assertEqual("foo_bar_123", name_conversion.convert_case( 71*99e0aae7SDavid Rees "snake_case", "snake_case", "foo_bar_123")) 72*99e0aae7SDavid Rees self.assertEqual("FOO_BAR_123", name_conversion.convert_case( 73*99e0aae7SDavid Rees "SHOUTY_CASE", "SHOUTY_CASE", "FOO_BAR_123")) 74*99e0aae7SDavid Rees self.assertEqual("kFooBar123", name_conversion.convert_case( 75*99e0aae7SDavid Rees "kCamelCase", "kCamelCase", "kFooBar123")) 76*99e0aae7SDavid Rees self.assertEqual("FooBar123", name_conversion.convert_case( 77*99e0aae7SDavid Rees "CamelCase", "CamelCase", "FooBar123")) 78*99e0aae7SDavid Rees self.assertEqual("kAbcDef", name_conversion.convert_case( 79*99e0aae7SDavid Rees "snake_case", "kCamelCase", "abc_def")) 80*99e0aae7SDavid Rees self.assertEqual("AbcDef", name_conversion.convert_case( 81*99e0aae7SDavid Rees "snake_case", "CamelCase", "abc_def")) 82*99e0aae7SDavid Rees self.assertEqual("kAbcDef", name_conversion.convert_case( 83*99e0aae7SDavid Rees "SHOUTY_CASE", "kCamelCase", "ABC_DEF")) 84*99e0aae7SDavid Rees self.assertEqual("AbcDef", name_conversion.convert_case( 85*99e0aae7SDavid Rees "SHOUTY_CASE", "CamelCase", "ABC_DEF")) 86*99e0aae7SDavid Rees 87*99e0aae7SDavid Rees 88*99e0aae7SDavid Reesif __name__ == "__main__": 89*99e0aae7SDavid Rees unittest.main() 90