-
Notifications
You must be signed in to change notification settings - Fork 10
/
transliterator_test.go
60 lines (46 loc) · 1.41 KB
/
transliterator_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
package transliterator
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestItShouldTransliterateGermanCorrectly(t *testing.T) {
text := "München"
expected := "Muenchen"
transliterator := NewTransliterator(nil)
actual := transliterator.Transliterate(text, "de")
assert.Equal(t, expected, actual)
}
func TestItShouldTransliterateUkrainianCorrectly(t *testing.T) {
text := "Київ"
expected := "Kyiv"
transliterator := NewTransliterator(nil)
actual := transliterator.Transliterate(text, "uk")
assert.Equal(t, expected, actual)
}
func TestItShouldTransliterateCorrectlyWithCustomOverrides(t *testing.T) {
text := "КиЇв"
expected := "KyCUv"
customLanguageOverrites := make(map[string]map[rune]string)
customLanguageOverrites["custom"] = map[rune]string{
0x407: "CU",
0x438: "y",
}
transliterator := NewTransliterator(&customLanguageOverrites)
actual := transliterator.Transliterate(text, "custom")
assert.Equal(t, expected, actual)
}
func TestItShouldTransliterateGeneral(t *testing.T) {
cases := map[string]string{
"北京": "Bei Jing ",
"80 km/h": "80 km/h",
"дом": "dom",
"ⓐⒶ⑳⒇⒛⓴⓾⓿": "aA20(20)20.20100",
"ch\u00e2teau": "chateau",
"\u1eff": "",
}
transliterator := NewTransliterator(nil)
for text, expected := range cases {
actual := transliterator.Transliterate(text, "")
assert.Equal(t, expected, actual)
}
}