-
Notifications
You must be signed in to change notification settings - Fork 3
/
transform_test.go
106 lines (94 loc) · 3.53 KB
/
transform_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
package japanese
import "testing"
func TestSplitEnding(t *testing.T) {
tests := []struct {
verb string
root string
ending string
}{
{"ある", "あ", "る"},
{"あります", "あり", "ます"},
{"ない", "", "ない"},
{"ありません", "あり", "ません"},
}
for _, tt := range tests {
root, ending := SplitEnding(tt.verb)
if root != tt.root {
t.Errorf("SplitEnding(%q) root = %q, want %q", tt.verb, root, tt.root)
}
if ending != tt.ending {
t.Errorf("SplitEnding(%q) end = %q, want %q", tt.verb, ending, tt.ending)
}
}
}
func TestDictionaryFormBasicIchidans(t *testing.T) {
tests := []struct {
in string
want string
}{
{"", "る"},
{"たべます", "たべる"},
{"おしえます", "おしえる"},
{"います", "いる"},
{"食べます", "食べる"},
{"食べてた", "食べる"},
}
for _, tt := range tests {
_, got := DictionaryForm(tt.in)
if got != tt.want {
t.Errorf("DictionaryForm(%q) ichidan = %q, want %q", tt.in, got, tt.want)
}
}
}
func TestDictionaryFormBasicGodans(t *testing.T) {
tests := []struct {
in string
want string
}{
{"", ""},
{"いく", "いく"},
{"ききます", "きく"},
{"ぬぎます", "ぬぐ"},
{"うたいます", "うたう"},
{"歌います", "歌う"},
// TODO: fix
// {"歌ってた", "歌たう"},
}
for _, tt := range tests {
got, _ := DictionaryForm(tt.in)
if got != tt.want {
t.Errorf("DictionaryForm(%q) godan = %q, want %q", tt.in, got, tt.want)
}
}
}
func TestDictionaryFormAru(t *testing.T) {
verbs := []string{"ある", "あります", "ない", "ありません"}
for _, v := range verbs {
if got, _ := DictionaryForm(v); got != "ある" {
t.Errorf("DictionaryForm(%q) godan = %q, want %q", v, got, "ある")
}
}
}
func TestDictionaryFormIchidanAkeru(t *testing.T) {
verbs := []string{"あける", "あけない", "あけます", "あけません", "あけよう", "あけるだろう", "あけないだろう", "あけましょう", "あけるでしょう", "あけないでしょう", "あけろ", "あけるな", "あけてください", "あけないでください", "あけた", "あけなかった",
"あけました", "あけませんでした", "あけたろう", "あけただろう", "あけなかっただろう", "あけたでしょう", "あけなかったでしょう"} //"あけている", "あけています", "あけていません", "あけていた", "あけていました", "あけていませんでした", "あければ", "あけなければ", "あけませば", "あけますれば", "あけませんなら", "あけたら", "あけなかったら", "あけましたら", "あけませんでしたら", "あけられる", "あけられない", "あけられます", "あけられません", "あけさせる", "あけさせない", "あけさせます", "あけさせません"}
for _, v := range verbs {
if _, got := DictionaryForm(v); got != "あける" {
t.Errorf("DictionaryForm(%q) ichidan = %q, want %q", v, got, "あける")
}
}
}
func TestDictionaryFormIchidan(t *testing.T) {
verbs := []string{"たべます", "たべました", "たべた"}
for _, v := range verbs {
if _, got := DictionaryForm(v); got != "たべる" {
t.Errorf("DictionaryForm(%q) ichidan = %q, want %q", v, got, "たべる")
}
}
verbs = []string{"開ける", "開けて", "開けます", "開けない", "開けません"}
for _, v := range verbs {
if _, got := DictionaryForm(v); got != "開ける" {
t.Errorf("DictionaryForm(%q) ichidan = %q, want %q", v, got, "開ける")
}
}
}