-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathtrie_test.go
88 lines (80 loc) · 2.18 KB
/
trie_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
package sensitivewords
import (
"testing"
)
func TestTreeAdd(t *testing.T) {
tree := NewTrieTree()
tree.Add("测试词语")
tree.Add("测试语")
tree.Add("测测测")
// fmt.Printf("%+v", *tree.Root.Children['测'])
if tree.Root.Children['测'].IsEnd == true {
t.Error("error")
}
if tree.Root.Children['测'].Children['测'].IsEnd == true {
t.Error("error")
}
if tree.Root.Children['测'].Children['试'].IsEnd == true {
t.Error("error")
}
if tree.Root.Children['测'].Children['测'].Children['测'].IsEnd == true {
t.Log("测测测 ok")
}
if tree.Root.Children['测'].Children['试'].Children['语'].IsEnd == true {
t.Log("测试语 ok")
}
if tree.Root.Children['测'].Children['试'].Children['词'].IsEnd == true {
t.Log("error")
}
if tree.Root.Children['测'].Children['试'].Children['词'].Children['语'].IsEnd == true {
t.Log("测试词语 ok")
}
}
func TestTreeFilter(t *testing.T) {
tree := NewTrieTree()
tree.Add("测试词语")
tree.Add("测试语")
tree.Add("测测测")
sf := tree.Filter("1测试词语测测2测试语3测测测")
if sf == "1****测测2***3***" {
t.Logf("%+v", tree.Filter("1测试词语测测2测试语3测测测"))
} else {
t.Error("failed")
}
}
func TestTreeFind(t *testing.T) {
tree := NewTrieTree()
tree.Add("测试词语")
tree.Add("测试语")
tree.Add("测测测")
sensitive, keyword := tree.Find("1测试词语测测2测试语3测测测")
if sensitive == true && keyword == "测试词语" {
t.Logf("%v, %v", sensitive, keyword)
} else {
t.Error("failed")
}
}
func TestTreeFindAll(t *testing.T) {
tree := NewTrieTree()
tree.Add("测试词语")
tree.Add("测试语")
tree.Add("测测测")
sensitive, results := tree.FindAll("1测试词语测测2测试语3测测测")
if sensitive == true && len(results) == 3 {
t.Logf("%v, %v", sensitive, results)
} else {
t.Error("failed")
}
}
func TestTreeFindAny(t *testing.T) {
tree := NewTrieTree()
tree.Add("测试词语")
tree.Add("测试语")
tree.Add("测测测")
sensitive, results := tree.FindAny("1测试词语测测2测试语3测测测", 2)
if sensitive == true && len(results) == 2 {
t.Logf("%v, %v", sensitive, results)
} else {
t.Error("failed")
}
}