feat: query_parser + stringcase.
This commit is contained in:
85
stringcase/snake_case_test.go
Normal file
85
stringcase/snake_case_test.go
Normal file
@@ -0,0 +1,85 @@
|
||||
package stringcase
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestToSnakeCase(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
expected string
|
||||
}{
|
||||
{"snake_case", "snake_case"},
|
||||
{"CamelCase", "camel_case"},
|
||||
{"lowerCamelCase", "lower_camel_case"},
|
||||
{"F", "f"},
|
||||
{"Foo", "foo"},
|
||||
{"FooB", "foo_b"},
|
||||
{"FooID", "foo_id"},
|
||||
{" FooBar\t", "foo_bar"},
|
||||
{"HTTPStatusCode", "http_status_code"},
|
||||
{"ParseURL.DoParse", "parse_url_do_parse"},
|
||||
{"Convert Space", "convert_space"},
|
||||
{"Convert-dash", "convert_dash"},
|
||||
{"Skip___MultipleUnderscores", "skip_multiple_underscores"},
|
||||
{"Skip MultipleSpaces", "skip_multiple_spaces"},
|
||||
{"Skip---MultipleDashes", "skip_multiple_dashes"},
|
||||
{"Hello World", "hello_world"},
|
||||
{"Multiple Words Example", "multiple_words_example"},
|
||||
{"", ""},
|
||||
{"A", "a"},
|
||||
{"z", "z"},
|
||||
{"Special-Characters_Test", "special_characters_test"},
|
||||
{"Numbers123Test", "numbers_123_test"},
|
||||
{"Hello World!", "hello_world"},
|
||||
{"Test@With#Symbols", "test_with_symbols"},
|
||||
{"ComplexCase123!@#", "complex_case_123"},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
result := ToSnakeCase(test.input)
|
||||
if result != test.expected {
|
||||
t.Errorf("ToSnakeCase(%q) = %q; expected %q", test.input, result, test.expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestUpperSnakeCase(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
expected string
|
||||
}{
|
||||
{"snake_case", "SNAKE_CASE"},
|
||||
{"CamelCase", "CAMEL_CASE"},
|
||||
{"lowerCamelCase", "LOWER_CAMEL_CASE"},
|
||||
{"F", "F"},
|
||||
{"Foo", "FOO"},
|
||||
{"FooB", "FOO_B"},
|
||||
{"FooID", "FOO_ID"},
|
||||
{" FooBar\t", "FOO_BAR"},
|
||||
{"HTTPStatusCode", "HTTP_STATUS_CODE"},
|
||||
{"ParseURL.DoParse", "PARSE_URL_DO_PARSE"},
|
||||
{"Convert Space", "CONVERT_SPACE"},
|
||||
{"Convert-dash", "CONVERT_DASH"},
|
||||
{"Skip___MultipleUnderscores", "SKIP_MULTIPLE_UNDERSCORES"},
|
||||
{"Skip MultipleSpaces", "SKIP_MULTIPLE_SPACES"},
|
||||
{"Skip---MultipleDashes", "SKIP_MULTIPLE_DASHES"},
|
||||
{"Hello World", "HELLO_WORLD"},
|
||||
{"Multiple Words Example", "MULTIPLE_WORDS_EXAMPLE"},
|
||||
{"", ""},
|
||||
{"A", "A"},
|
||||
{"z", "Z"},
|
||||
{"Special-Characters_Test", "SPECIAL_CHARACTERS_TEST"},
|
||||
{"Numbers123Test", "NUMBERS_123_TEST"},
|
||||
{"Hello World!", "HELLO_WORLD"},
|
||||
{"Test@With#Symbols", "TEST_WITH_SYMBOLS"},
|
||||
{"ComplexCase123!@#", "COMPLEX_CASE_123"},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
result := UpperSnakeCase(test.input)
|
||||
if result != test.expected {
|
||||
t.Errorf("UpperSnakeCase(%q) = %q; expected %q", test.input, result, test.expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user