154 lines
3.1 KiB
Go
154 lines
3.1 KiB
Go
package strings
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"golang.org/x/text/language"
|
|
)
|
|
|
|
func TestTitle(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
s string
|
|
want string
|
|
}{
|
|
{
|
|
name: "sentence",
|
|
s: "the quick brown fox jumps over the lazy dog",
|
|
want: "The Quick Brown Fox Jumps Over The Lazy Dog",
|
|
},
|
|
{
|
|
name: "sentence with uppercase word",
|
|
s: "the quick brown fox jumps over the LAZY dog",
|
|
want: "The Quick Brown Fox Jumps Over The LAZY Dog",
|
|
},
|
|
{
|
|
name: "empty string",
|
|
s: "",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := Title(tt.s); got != tt.want {
|
|
t.Errorf("Title() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestTitleWithLanguage(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
s string
|
|
lang language.Tag
|
|
want string
|
|
}{
|
|
{
|
|
name: "Dutch sentence",
|
|
s: "de snelle bruine vos springt over de luie hond in ijburg",
|
|
lang: language.Dutch,
|
|
want: "De Snelle Bruine Vos Springt Over De Luie Hond In IJburg",
|
|
},
|
|
{
|
|
name: "English sentence",
|
|
s: "the quick brown fox jumps over the lazy dog",
|
|
lang: language.English,
|
|
want: "The Quick Brown Fox Jumps Over The Lazy Dog",
|
|
},
|
|
{
|
|
name: "English sentence with uppercase word",
|
|
s: "the quick brown fox jumps over the LAZY dog",
|
|
lang: language.English,
|
|
want: "The Quick Brown Fox Jumps Over The LAZY Dog",
|
|
},
|
|
{
|
|
name: "empty",
|
|
s: "",
|
|
lang: language.English,
|
|
want: "",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := TitleWithLanguage(tt.s, tt.lang); got != tt.want {
|
|
t.Errorf("TitleWithLanguage() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestNormalize(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
s string
|
|
want string
|
|
}{
|
|
{
|
|
name: "sentence",
|
|
s: "the quick brown fox jumps over the lazy dog",
|
|
want: "The quick brown fox jumps over the lazy dog",
|
|
},
|
|
{
|
|
name: "sentence with uppercase word",
|
|
s: "MacDonald had a farm",
|
|
want: "MacDonald had a farm",
|
|
},
|
|
{
|
|
name: "empty string",
|
|
s: "",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := Normalize(tt.s); got != tt.want {
|
|
t.Errorf("Normalize() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestNormalizeWithLanguage(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
s string
|
|
lang language.Tag
|
|
want string
|
|
}{
|
|
{
|
|
name: "Dutch sentence",
|
|
s: "ijburg is een wijk in Amsterdam",
|
|
lang: language.Dutch,
|
|
want: "IJburg is een wijk in Amsterdam",
|
|
},
|
|
{
|
|
name: "English sentence",
|
|
s: "the quick brown fox jumps over the lazy dog",
|
|
lang: language.English,
|
|
want: "The quick brown fox jumps over the lazy dog",
|
|
},
|
|
{
|
|
name: "English sentence with uppercase word",
|
|
s: "MacDonald had a farm",
|
|
lang: language.English,
|
|
want: "MacDonald had a farm",
|
|
},
|
|
{
|
|
name: "empty",
|
|
s: "",
|
|
lang: language.Und,
|
|
want: "",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := NormalizeWithLanguage(tt.s, tt.lang); got != tt.want {
|
|
t.Errorf("NormalizeWithLanguage() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|