feat: query_parser + stringcase.
This commit is contained in:
82
stringcase/split_test.go
Normal file
82
stringcase/split_test.go
Normal file
@@ -0,0 +1,82 @@
|
||||
package stringcase
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSplitSingle(t *testing.T) {
|
||||
input := "URL.DoParse"
|
||||
result := Split(input)
|
||||
t.Logf("Split(%q) = %q;", input, result)
|
||||
t.Log(input[:7])
|
||||
}
|
||||
|
||||
func TestSplit(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
expected []string
|
||||
}{
|
||||
{"hello world", []string{"hello", "world"}},
|
||||
{"hello_world", []string{"hello", "world"}},
|
||||
{"hello-world", []string{"hello", "world"}},
|
||||
{"hello.world", []string{"hello", "world"}},
|
||||
{"helloWorld", []string{"hello", "World"}},
|
||||
{"HelloWorld", []string{"Hello", "World"}},
|
||||
{"HTTPStatusCode", []string{"HTTP", "Status", "Code"}},
|
||||
{"ParseURLDoParse", []string{"Parse", "URL", "Do", "Parse"}},
|
||||
{"ParseUrlDoParse", []string{"Parse", "Url", "Do", "Parse"}},
|
||||
{"ParseUrl.DoParse", []string{"Parse", "Url", "Do", "Parse"}},
|
||||
{"ParseURL.DoParse", []string{"Parse", "URL", "Do", "Parse"}},
|
||||
{"ParseURL", []string{"Parse", "URL"}},
|
||||
{"ParseURL.", []string{"Parse", "URL"}},
|
||||
{"parse_url.do_parse", []string{"parse", "url", "do", "parse"}},
|
||||
{"convert space", []string{"convert", "space"}},
|
||||
{"convert-dash", []string{"convert", "dash"}},
|
||||
{"skip___multiple_underscores", []string{"skip", "multiple", "underscores"}},
|
||||
{"skip multiple spaces", []string{"skip", "multiple", "spaces"}},
|
||||
{"skip---multiple-dashes", []string{"skip", "multiple", "dashes"}},
|
||||
{"", []string{""}},
|
||||
{"a", []string{"a"}},
|
||||
{"Z", []string{"Z"}},
|
||||
{"special-characters_test", []string{"special", "characters", "test"}},
|
||||
{"numbers123test", []string{"numbers", "123", "test"}},
|
||||
{"hello world!", []string{"hello", "world"}},
|
||||
{"test@with#symbols", []string{"test", "with", "symbols"}},
|
||||
{"complexCase123!@#", []string{"complex", "Case", "123"}},
|
||||
|
||||
{"snake_case_string", []string{"snake", "case", "string"}},
|
||||
{"kebab-case-string", []string{"kebab", "case", "string"}},
|
||||
{"PascalCaseString", []string{"Pascal", "Case", "String"}},
|
||||
{"camelCaseString", []string{"camel", "Case", "String"}},
|
||||
{"HTTPRequest", []string{"HTTP", "Request"}},
|
||||
{"user ID", []string{"user", "ID"}},
|
||||
{"UserId", []string{"User", "Id"}},
|
||||
{"userID", []string{"user", "ID"}},
|
||||
{"UserID", []string{"User", "ID"}},
|
||||
{"123NumberPrefix", []string{"123", "Number", "Prefix"}},
|
||||
{"__leading_underscores", []string{"leading", "underscores"}},
|
||||
{"trailing_underscores__", []string{"trailing", "underscores"}},
|
||||
{"multiple___underscores", []string{"multiple", "underscores"}},
|
||||
{" spaces around ", []string{"spaces", "around"}},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
result := Split(test.input)
|
||||
|
||||
if !compareStringSlices(result, test.expected) {
|
||||
t.Errorf("Split(%q) = %q; expected %q", test.input, result, test.expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func compareStringSlices(slice1, slice2 []string) bool {
|
||||
if len(slice1) != len(slice2) {
|
||||
return false
|
||||
}
|
||||
for i := range slice1 {
|
||||
if slice1[i] != slice2[i] {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user