-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathnihongo_test.go
More file actions
103 lines (84 loc) · 3.28 KB
/
Copy pathnihongo_test.go
File metadata and controls
103 lines (84 loc) · 3.28 KB
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
package nihongo
import (
"testing"
)
func TestNormalize(t *testing.T) {
norm := Normalize("テストてすと")
if norm != "テストてすと" {
t.Errorf("Converted strings which should not be converted %v", norm)
}
norm = Normalize("テストテスト/+")
if norm != "テストテスト/+" {
t.Errorf("Converted strings which should not be converted %v", norm)
}
}
func TestToHiragana(t *testing.T) {
hira := ToHiragana("テスト")
if hira != "てすと" {
t.Errorf("Not converted to Hiragana %v", hira)
}
hira = ToHiragana("テスト混合てすと")
if hira != "てすと混合てすと" {
t.Errorf("Not converted to Hiragana %v", hira)
}
hira = ToHiragana("Englishテスト混合")
if hira != "Englishてすと混合" {
t.Errorf("Not converted to Hiragana %v", hira)
}
hira = ToHiragana("アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ")
if hira != "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ" {
t.Errorf("Not converted to Hiragana %v", hira)
}
}
func TestToKatakana(t *testing.T) {
kana := ToKatakana("てすと")
if kana != "テスト" {
t.Errorf("Not converted to Katakana %v", kana)
}
kana = ToKatakana("てすと混合テスト")
if kana != "テスト混合テスト" {
t.Errorf("Not converted to Katakana %v", kana)
}
kana = ToKatakana("てすと混合English")
if kana != "テスト混合English" {
t.Errorf("Not converted to Katakana %v", kana)
}
kana = ToKatakana("あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ")
if kana != "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ" {
t.Errorf("Not converted to Katakana %v", kana)
}
}
func TestContainsHiragana(t *testing.T) {
checkContainsHiragana(t, "テスト", false)
checkContainsHiragana(t, "English", false)
checkContainsHiragana(t, "てすと", true)
checkContainsHiragana(t, "テストてすと", true)
}
func TestContainsKatakana(t *testing.T) {
checkContainsKatakana(t, "テスト", true)
checkContainsKatakana(t, "English", false)
checkContainsKatakana(t, "てすと", false)
checkContainsKatakana(t, "テストてすと", true)
}
func checkContainsHiragana(t *testing.T, text string, expected bool) {
contains := ContainsHiragana(text)
if contains == expected {
return
}
if contains {
t.Errorf("ContainsHiragana detected hiragana on %v", text)
} else {
t.Errorf("ContainsHiragana did not detect hiragana on %v", text)
}
}
func checkContainsKatakana(t *testing.T, text string, expected bool) {
contains := ContainsKatakana(text)
if contains == expected {
return
}
if contains {
t.Errorf("ContainsKatakana detected katakana on %v", text)
} else {
t.Errorf("ContainsKatakana did not detect katakana on %v", text)
}
}