1 package flect
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/require"
7 )
8
9 func Test_Pluralize(t *testing.T) {
10 for _, tt := range singlePluralAssertions {
11 if tt.doPluralizeTest {
12 t.Run(tt.singular, func(st *testing.T) {
13 r := require.New(st)
14 r.Equal(tt.plural, Pluralize(tt.singular), "pluralize %s", tt.singular)
15 r.Equal(tt.plural, Pluralize(tt.plural), "pluralize %s", tt.plural)
16 })
17 }
18 }
19 }
20
21 func Test_PluralizeWithSize(t *testing.T) {
22 for _, tt := range singlePluralAssertions {
23 t.Run(tt.singular, func(st *testing.T) {
24 r := require.New(st)
25 if tt.doSingularizeTest {
26 r.Equal(tt.singular, PluralizeWithSize(tt.singular, -1), "pluralize %d %s", -1, tt.singular)
27 r.Equal(tt.singular, PluralizeWithSize(tt.plural, -1), "pluralize %d %s", -1, tt.plural)
28 r.Equal(tt.singular, PluralizeWithSize(tt.singular, 1), "pluralize %d %s", 1, tt.singular)
29 r.Equal(tt.singular, PluralizeWithSize(tt.plural, 1), "pluralize %d %s", 1, tt.plural)
30 }
31 if tt.doPluralizeTest {
32 r.Equal(tt.plural, PluralizeWithSize(tt.singular, -2), "pluralize %d %s", -2, tt.singular)
33 r.Equal(tt.plural, PluralizeWithSize(tt.plural, -2), "pluralize %d %s", -2, tt.plural)
34 r.Equal(tt.plural, PluralizeWithSize(tt.singular, 0), "pluralize %d %s", 0, tt.singular)
35 r.Equal(tt.plural, PluralizeWithSize(tt.plural, 0), "pluralize %d %s", 0, tt.plural)
36 r.Equal(tt.plural, PluralizeWithSize(tt.singular, 2), "pluralize %d %s", 2, tt.singular)
37 r.Equal(tt.plural, PluralizeWithSize(tt.plural, 2), "pluralize %d %s", 2, tt.plural)
38 }
39 })
40 }
41 }
42
43 func BenchmarkPluralize(b *testing.B) {
44 for n := 0; n < b.N; n++ {
45 for _, tt := range singlePluralAssertions {
46 if tt.doPluralizeTest {
47 Pluralize(tt.singular)
48 Pluralize(tt.plural)
49 }
50 }
51 }
52 }
53
View as plain text