-
Notifications
You must be signed in to change notification settings - Fork 6
/
iuliia_test.go
132 lines (128 loc) · 2.06 KB
/
iuliia_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package iuliia
import (
"strings"
"testing"
)
func TestSchema_translateWord(t *testing.T) {
tests := []struct {
name string
in string
out string
wantErr bool
}{
{
name: "1",
in: "Миша",
out: "Misha",
},
{
name: "2",
in: "съешь",
out: "syesh",
},
{
name: "3",
in: "ещё",
out: "yeshchyo",
},
{
name: "with ending",
in: "старый",
out: "stary",
},
{
name: "special",
in: "Ё",
out: "Yo",
},
{
name: "empty",
in: "",
out: "",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var res strings.Builder
Wikipedia.build().translateWord(&res, tt.in)
got := res.String()
if got != tt.out {
t.Errorf("Schema.translateWord() = %v, want %v", got, tt.out)
}
})
}
}
func TestSchema_translateLetter(t *testing.T) {
tests := []struct {
name string
args []rune
want string
}{
{
"current",
[]rune{'ъ', 'е', 'ш'},
"ye",
},
{
"prev mapping",
[]rune{rune(0), 'е', 'щ'},
"ye",
},
{
"not cyrillic",
[]rune{rune(0), '😁', rune(0)},
"😁",
},
{
"next mapping",
[]rune{rune(0), 'ь', 'а'},
"y",
},
{
"special",
[]rune{rune(0), 'Ё', rune(0)},
"Yo",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var res strings.Builder
Wikipedia.build().translateLetter(&res, tt.args)
got := res.String()
if got != tt.want {
t.Errorf("Schema.translateLetter() = %v, want %v", got, tt.want)
}
})
}
}
func TestSchema_translateEnding(t *testing.T) {
tests := []struct {
name string
ending string
want string
wantBool bool
}{
{
"translated",
"ый",
"y",
true,
},
{
"translated",
"уй",
"уй",
false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var res strings.Builder
Wikipedia.build().translateEnding(&res, tt.ending)
got := res.String()
if got != tt.want {
t.Errorf("Schema.translateEnding() got = %v, want %v", got, tt.want)
}
})
}
}