-
Notifications
You must be signed in to change notification settings - Fork 0
/
budoux_test.go
117 lines (109 loc) · 2.65 KB
/
budoux_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
package budoux_test
import (
"reflect"
"testing"
"github.com/sg0hsmt/budoux-go"
"github.com/sg0hsmt/budoux-go/models"
)
func TestParse(t *testing.T) {
tbl := []struct {
in string
out []string
}{
{
in: "",
out: []string{""},
},
{
in: "字",
out: []string{"字"},
},
{
in: "言葉",
out: []string{"言葉"},
},
{
in: "日本語",
out: []string{"日本語"},
},
{
in: "水と油",
out: []string{"水と", "油"},
},
{
in: "水道水とミネラルウォーター",
out: []string{"水道水と", "ミネラルウォーター"},
},
{
in: "PythonとJavaScriptとGolang",
out: []string{"Pythonと", "JavaScriptと", "Golang"},
},
{
in: "日本語の文章において語の区切りに空白を挟んで記述すること",
out: []string{"日本語の", "文章に", "おいて", "語の", "区切りに", "空白を", "挟んで", "記述する", "こと"},
},
{
in: "これはテストです。",
out: []string{"これは", "テストです。"},
},
{
in: "これは美しいペンです。",
out: []string{"これは", "美しい", "ペンです。"},
},
{
in: "今日は天気です。",
out: []string{"今日は", "天気です。"},
},
{
in: "今日はとても天気です。",
out: []string{"今日は", "とても", "天気です。"},
},
{
in: "あなたに寄り添う最先端のテクノロジー。",
out: []string{"あなたに", "寄り添う", "最先端の", "テクノロジー。"},
},
{
in: "これはテストです。今日は晴天です。",
out: []string{"これは", "テストです。", "今日は", "晴天です。"},
},
{
in: "これはテストです。\n今日は晴天です。",
out: []string{"これは", "テストです。", "\n今日は", "晴天です。"},
},
}
model := models.DefaultJapaneseModel()
parser := budoux.New(model, budoux.DefaultThreshold)
for _, v := range tbl {
t.Run(v.in, func(t *testing.T) {
out := parser.Parse(v.in)
if !reflect.DeepEqual(out, v.out) {
t.Errorf("unmatch result:\nwant %q\n got %q", v.out, out)
}
})
}
}
func TestParseZhHans(t *testing.T) {
tbl := []struct {
in string
out []string
}{
{
in: "",
out: []string{""},
},
{
in: "今天是晴天。",
out: []string{"今天", "是", "晴天。"},
},
}
model := models.DefaultSimplifiedChineseModel()
parser := budoux.New(model, budoux.DefaultThreshold)
for _, v := range tbl {
t.Run(v.in, func(t *testing.T) {
out := parser.Parse(v.in)
if !reflect.DeepEqual(out, v.out) {
t.Errorf("unmatch result:\nwant %q\n got %q", v.out, out)
}
})
}
}