| 5 | ) |
| 6 | |
| 7 | func TestSnakeCase(t *testing.T) { |
| 8 | cases := map[string]struct { |
| 9 | str string |
| 10 | expected string |
| 11 | }{ |
| 12 | "all lower": {"aaa", "aaa"}, |
| 13 | "start upper": {"Aaa", "aaa"}, |
| 14 | "start upper 2": {"AAAaa", "aa_aaa"}, |
| 15 | "mid upper": {"aAa", "a_aa"}, |
| 16 | "end upper": {"aaA", "aa_a"}, |
| 17 | "sequential uppers": {"aaAAaa", "aa_a_aaa"}, |
| 18 | "sequential uppers 2": {"aaAAAa", "aa_aa_aa"}, |
| 19 | "end sequential uppers": {"aaAA", "aa_aa"}, |
| 20 | "multiple_uppers": {"aaAaaAaa", "aa_aaa_aaa"}, |
| 21 | "dashes": {"aa-Aaa-Aaa", "aa_aaa_aaa"}, |
| 22 | "dashes 2": {"aa-AAaaAA-Aaa", "aa_a_aaa_aa_aaa"}, |
| 23 | "underscores": {"aa_Aaa_Aaa", "aa_aaa_aaa"}, |
| 24 | "underscores 2": {"aa_AAaaAA_Aaa", "aa_a_aaa_aa_aaa"}, |
| 25 | "numbers": {"aa1", "aa1"}, |
| 26 | "blank spaces": {" aa AA aa ", "aa_aa_aa"}, |
| 27 | } |
| 28 | for k, tc := range cases { |
| 29 | t.Run(k, func(t *testing.T) { |
| 30 | actual := SnakeCase(tc.str) |
| 31 | if actual != tc.expected { |
| 32 | t.Errorf("got %q, expected %q", actual, tc.expected) |
| 33 | } |
| 34 | }) |
| 35 | } |
| 36 | } |
| 37 | |
| 38 | func TestCamelCase(t *testing.T) { |
| 39 | cases := map[string]struct { |