istanbul-tools/vendor/github.com/naoina/go-stringutil/strings_test.go

194 lines
5.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package stringutil_test
import (
"reflect"
"testing"
"github.com/naoina/go-stringutil"
)
var commonTestCasesForToUpperCamelCase = []struct {
input, expect string
}{
{"", ""},
{"thequickbrownfoxoverthelazydog", "Thequickbrownfoxoverthelazydog"},
{"thequickbrownfoxoverthelazydoG", "ThequickbrownfoxoverthelazydoG"},
{"thequickbrownfoxoverthelazydo_g", "ThequickbrownfoxoverthelazydoG"},
{"TheQuickBrownFoxJumpsOverTheLazyDog", "TheQuickBrownFoxJumpsOverTheLazyDog"},
{"the_quick_brown_fox_jumps_over_the_lazy_dog", "TheQuickBrownFoxJumpsOverTheLazyDog"},
{"the_Quick_Brown_Fox_Jumps_Over_The_Lazy_Dog", "TheQuickBrownFoxJumpsOverTheLazyDog"},
{"api_server", "APIServer"},
{"a_t_api", "ATAPI"},
{"atapi", "Atapi"},
{"web_ui", "WebUI"},
{"api", "API"},
{"ascii", "ASCII"},
{"cpu", "CPU"},
{"csrf", "CSRF"},
{"css", "CSS"},
{"dns", "DNS"},
{"eof", "EOF"},
{"guid", "GUID"},
{"html", "HTML"},
{"http", "HTTP"},
{"https", "HTTPS"},
{"id", "ID"},
{"ip", "IP"},
{"json", "JSON"},
{"lhs", "LHS"},
{"qps", "QPS"},
{"ram", "RAM"},
{"rhs", "RHS"},
{"rpc", "RPC"},
{"sla", "SLA"},
{"smtp", "SMTP"},
{"sql", "SQL"},
{"ssh", "SSH"},
{"tcp", "TCP"},
{"tls", "TLS"},
{"ttl", "TTL"},
{"udp", "UDP"},
{"ui", "UI"},
{"uid", "UID"},
{"uuid", "UUID"},
{"uri", "URI"},
{"url", "URL"},
{"utf8", "UTF8"},
{"vm", "VM"},
{"xml", "XML"},
{"xsrf", "XSRF"},
{"xss", "XSS"},
}
func TestToUpperCamelCase(t *testing.T) {
for _, v := range append(commonTestCasesForToUpperCamelCase, []struct {
input, expect string
}{
{"_______", ""},
}...) {
actual := stringutil.ToUpperCamelCase(v.input)
expect := v.expect
if !reflect.DeepEqual(actual, expect) {
t.Errorf(`stringutil.ToUpperCamelCase(%#v) => %#v; want %#v`, v.input, actual, expect)
}
}
}
func TestToUpperCamelCaseASCII(t *testing.T) {
for _, v := range commonTestCasesForToUpperCamelCase {
actual := stringutil.ToUpperCamelCaseASCII(v.input)
expect := v.expect
if !reflect.DeepEqual(actual, expect) {
t.Errorf(`stringutil.ToUpperCamelCaseASCII(%#v) => %#v; want %#v`, v.input, actual, expect)
}
}
}
var commonTestCasesForToSnakeCase = []struct {
input, expect string
}{
{"", ""},
{"thequickbrownfoxjumpsoverthelazydog", "thequickbrownfoxjumpsoverthelazydog"},
{"Thequickbrownfoxjumpsoverthelazydog", "thequickbrownfoxjumpsoverthelazydog"},
{"ThequickbrownfoxjumpsoverthelazydoG", "thequickbrownfoxjumpsoverthelazydo_g"},
{"TheQuickBrownFoxJumpsOverTheLazyDog", "the_quick_brown_fox_jumps_over_the_lazy_dog"},
{"the_quick_brown_fox_jumps_over_the_lazy_dog", "the_quick_brown_fox_jumps_over_the_lazy_dog"},
{"APIServer", "api_server"},
{"ATAPI", "a_t_api"},
{"Atapi", "atapi"},
{"WebUI", "web_ui"},
{"API", "api"},
{"ASCII", "ascii"},
{"CPU", "cpu"},
{"CSRF", "csrf"},
{"CSS", "css"},
{"DNS", "dns"},
{"EOF", "eof"},
{"GUID", "guid"},
{"HTML", "html"},
{"HTTP", "http"},
{"HTTPS", "https"},
{"ID", "id"},
{"ip", "ip"},
{"JSON", "json"},
{"LHS", "lhs"},
{"QPS", "qps"},
{"RAM", "ram"},
{"RHS", "rhs"},
{"RPC", "rpc"},
{"SLA", "sla"},
{"SMTP", "smtp"},
{"SQL", "sql"},
{"SSH", "ssh"},
{"TCP", "tcp"},
{"TLS", "tls"},
{"TTL", "ttl"},
{"UDP", "udp"},
{"UI", "ui"},
{"UID", "uid"},
{"UUID", "uuid"},
{"URI", "uri"},
{"URL", "url"},
{"UTF8", "utf8"},
{"VM", "vm"},
{"XML", "xml"},
{"XSRF", "xsrf"},
{"XSS", "xss"},
}
func TestToSnakeCase(t *testing.T) {
for _, v := range append(commonTestCasesForToSnakeCase, []struct {
input, expect string
}{
{"", "_______"},
}...) {
actual := stringutil.ToSnakeCase(v.input)
expect := v.expect
if !reflect.DeepEqual(actual, expect) {
t.Errorf(`stringutil.ToSnakeCase(%#v) => %#v; want %#v`, v.input, actual, expect)
}
}
}
func TestToSnakeCaseASCII(t *testing.T) {
for _, v := range commonTestCasesForToSnakeCase {
actual := stringutil.ToSnakeCaseASCII(v.input)
expect := v.expect
if !reflect.DeepEqual(actual, expect) {
t.Errorf(`stringutil.ToSnakeCaseASCII(%#v) => %#v; want %#v`, v.input, actual, expect)
}
}
}
func TestAddCommonInitialismWithToUpperCamelCase(t *testing.T) {
input := "test_case"
actual := stringutil.ToUpperCamelCase(input)
expect := "TestCase"
if !reflect.DeepEqual(actual, expect) {
t.Errorf(`ToUpperCamelCase(%#v) with AddCommonInitialism => %#v; want %#v`, input, actual, expect)
}
stringutil.AddCommonInitialism("TEST", "CASE")
defer stringutil.DelCommonInitialism("TEST", "CASE")
actual = stringutil.ToUpperCamelCase(input)
expect = "TESTCASE"
if !reflect.DeepEqual(actual, expect) {
t.Errorf(`ToUpperCamelCase(%#v) with AddCommonInitialism => %#v; want %#v`, input, actual, expect)
}
}
func TestAddCommonInitialismWithToSnakeCase(t *testing.T) {
input := "TESTCase"
actual := stringutil.ToSnakeCase(input)
expect := "t_e_s_t_case"
if !reflect.DeepEqual(actual, expect) {
t.Errorf(`ToSnakeCase(%#v) with AddCommonInitialism => %#v; want %#v`, input, actual, expect)
}
stringutil.AddCommonInitialism("TEST", "CASE")
defer stringutil.DelCommonInitialism("TEST", "CASE")
actual = stringutil.ToSnakeCase(input)
expect = "test_case"
if !reflect.DeepEqual(actual, expect) {
t.Errorf(`ToSnakeCase(%#v) with AddCommonInitialism => %#v; want %#v`, input, actual, expect)
}
}