-
Notifications
You must be signed in to change notification settings - Fork 114
/
replace_test.go
119 lines (108 loc) · 3 KB
/
replace_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
118
119
package misspell
import (
"strings"
"testing"
)
func TestReplaceIgnore(t *testing.T) {
cases := []struct {
ignore string
text string
}{
{"knwo,gae", "https://github.com/Unknwon, github.com/hnakamur/gaesessions"},
}
for line, tt := range cases {
r := New()
r.RemoveRule(strings.Split(tt.ignore, ","))
r.Compile()
got, _ := r.Replace(tt.text)
if got != tt.text {
t.Errorf("%d: Replace files want %q got %q", line, tt.text, got)
}
}
}
func TestReplaceLocale(t *testing.T) {
cases := []struct {
orig string
want string
}{
{"The colours are pretty", "The colors are pretty"},
{"summaries", "summaries"},
}
r := New()
r.AddRuleList(DictAmerican)
r.Compile()
for line, tt := range cases {
got, _ := r.Replace(tt.orig)
if got != tt.want {
t.Errorf("%d: ReplaceLocale want %q got %q", line, tt.orig, got)
}
}
}
func TestReplace(t *testing.T) {
cases := []struct {
orig string
want string
}{
{"I live in Amercia", "I live in America"},
{"grill brocoli now", "grill broccoli now"},
{"There is a zeebra", "There is a zebra"},
{"foo other bar", "foo other bar"},
{"ten fiels", "ten fields"},
{"Closeing Time", "Closing Time"},
{"closeing Time", "closing Time"},
{" TOOD: foobar", " TODO: foobar"},
{" preceed ", " precede "},
{"preceeding", "preceding"},
{"functionallity", "functionality"},
}
r := New()
for line, tt := range cases {
got, _ := r.Replace(tt.orig)
if got != tt.want {
t.Errorf("%d: Replace files want %q got %q", line, tt.orig, got)
}
}
}
func TestCheckReplace(t *testing.T) {
r := Replacer{
engine: NewStringReplacer("foo", "foobar", "runing", "running"),
corrected: map[string]string{
"foo": "foobar",
"runing": "running",
},
}
s := "nothing at all"
news, diffs := r.Replace(s)
if s != news || len(diffs) != 0 {
t.Errorf("Basic recheck failed: %q vs %q", s, news)
}
//
// Test single, correct,.Correctedacements
//
s = "foo"
news, diffs = r.Replace(s)
if news != "foobar" || len(diffs) != 1 || diffs[0].Original != "foo" && diffs[0].Corrected != "foobar" && diffs[0].Column != 0 {
t.Errorf("basic recheck1 failed %q vs %q", s, news)
}
s = "foo junk"
news, diffs = r.Replace(s)
if news != "foobar junk" || len(diffs) != 1 || diffs[0].Original != "foo" && diffs[0].Corrected != "foobar" && diffs[0].Column != 0 {
t.Errorf("basic recheck2 failed %q vs %q, %v", s, news, diffs[0])
}
s = "junk foo"
news, diffs = r.Replace(s)
if news != "junk foobar" || len(diffs) != 1 || diffs[0].Original != "foo" && diffs[0].Corrected != "foobar" && diffs[0].Column != 5 {
t.Errorf("basic recheck3 failed: %q vs %q", s, news)
}
s = "junk foo junk"
news, diffs = r.Replace(s)
if news != "junk foobar junk" || len(diffs) != 1 || diffs[0].Original != "foo" && diffs[0].Corrected != "foobar" && diffs[0].Column != 5 {
t.Errorf("basic recheck4 failed: %q vs %q", s, news)
}
// Incorrect.Correctedacements
s = "food pruning"
news, _ = r.Replace(s)
if news != s {
t.Errorf("incorrect.Correctedacement failed: %q vs %q", s, news)
}
}