-
Notifications
You must be signed in to change notification settings - Fork 2
/
enchant_test.go
79 lines (67 loc) · 1.44 KB
/
enchant_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
package enchant
import "testing"
func TestDictExists(t *testing.T) {
e, err := NewEnchant()
if err != nil {
t.Errorf(err.Error())
return
}
defer e.Free()
type Expect struct {
give string
want bool
}
cases := []Expect{
Expect{"en", true},
Expect{"en_GB", true},
Expect{"none", false},
Expect{"a", false},
}
for _, c := range cases {
got := e.DictExists(c.give)
if got != c.want {
t.Errorf("Wanted DictExists to return %v for \"%v\", but got %v", c.want, c.give, got)
}
}
}
func TestLoadDictCheckAndSuggest(t *testing.T) {
e, err := NewEnchant()
if err != nil {
t.Errorf(err.Error())
return
}
defer e.Free()
// load the english dictionary
e.LoadDict("en")
// check some words
type Expect struct {
give string
want bool
}
// test Check
cases := []Expect{
Expect{"test", true},
Expect{"yes", true},
Expect{"amazing", true},
Expect{"yoyoyoyo", false},
Expect{"nosuchword", false},
Expect{"大家好", false},
}
for _, c := range cases {
got := e.Check(c.give)
if got != c.want {
t.Errorf("Wanted Check to return %v for \"%v\", but got %v", c.want, c.give, got)
}
}
// test suggest
s := "wowzers"
got := e.Suggest(s)
if len(got) != 6 {
t.Errorf("Expected %v suggestions for \"%v\", but got %v. Value is: %v", 6, s, len(got), got)
}
s = "lawn"
got = e.Suggest(s)
if len(got) != 14 {
t.Errorf("Expected %v suggestions for \"%v\", but got %v. Value is: %v", 6, s, len(got), got)
}
}