mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-03-25 23:49:52 +02:00
77 lines
1.6 KiB
Go
77 lines
1.6 KiB
Go
package inflector_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/pocketbase/pocketbase/tools/inflector"
|
|
)
|
|
|
|
func TestSingularize(t *testing.T) {
|
|
scenarios := []struct {
|
|
word string
|
|
expected string
|
|
}{
|
|
{"abcnese", "abcnese"},
|
|
{"deer", "deer"},
|
|
{"sheep", "sheep"},
|
|
{"measles", "measles"},
|
|
{"pox", "pox"},
|
|
{"media", "media"},
|
|
{"bliss", "bliss"},
|
|
{"sea-bass", "sea-bass"},
|
|
{"Statuses", "Status"},
|
|
{"Feet", "Foot"},
|
|
{"Teeth", "Tooth"},
|
|
{"abcmenus", "abcmenu"},
|
|
{"Quizzes", "Quiz"},
|
|
{"Matrices", "Matrix"},
|
|
{"Vertices", "Vertex"},
|
|
{"Indices", "Index"},
|
|
{"Aliases", "Alias"},
|
|
{"Alumni", "Alumnus"},
|
|
{"Bacilli", "Bacillus"},
|
|
{"Cacti", "Cactus"},
|
|
{"Fungi", "Fungus"},
|
|
{"Nuclei", "Nucleus"},
|
|
{"Radii", "Radius"},
|
|
{"Stimuli", "Stimulus"},
|
|
{"Syllabi", "Syllabus"},
|
|
{"Termini", "Terminus"},
|
|
{"Viri", "Virus"},
|
|
{"Faxes", "Fax"},
|
|
{"Crises", "Crisis"},
|
|
{"Axes", "Axis"},
|
|
{"Shoes", "Shoe"},
|
|
{"abcoes", "abco"},
|
|
{"Houses", "House"},
|
|
{"Mice", "Mouse"},
|
|
{"abcxes", "abcx"},
|
|
{"Movies", "Movie"},
|
|
{"Series", "Series"},
|
|
{"abcquies", "abcquy"},
|
|
{"Relatives", "Relative"},
|
|
{"Drives", "Drive"},
|
|
{"aardwolves", "aardwolf"},
|
|
{"Analyses", "Analysis"},
|
|
{"Diagnoses", "Diagnosis"},
|
|
{"People", "Person"},
|
|
{"Men", "Man"},
|
|
{"Children", "Child"},
|
|
{"News", "News"},
|
|
{"Netherlands", "Netherlands"},
|
|
{"Tableaus", "Tableau"},
|
|
{"Currencies", "Currency"},
|
|
{"abcs", "abc"},
|
|
{"abc", "abc"},
|
|
}
|
|
|
|
for _, s := range scenarios {
|
|
t.Run(s.word, func(t *testing.T) {
|
|
result := inflector.Singularize(s.word)
|
|
if result != s.expected {
|
|
t.Fatalf("Expected %q, got %q", s.expected, result)
|
|
}
|
|
})
|
|
}
|
|
}
|