@@ -17,6 +17,9 @@ func TestHamming(t *testing.T) {
17
17
require .Equal (t , 0 , h .Distance ("" , "" ))
18
18
require .Equal (t , "0.75" , sf (h .Compare ("text" , "test" )))
19
19
require .Equal (t , "0.50" , sf (h .Compare ("once" , "one" )))
20
+ require .Equal (t , "1.00" , sf (h .Compare ("ab\u2019 c" , "ab\u2019 c" )))
21
+ require .Equal (t , "0.75" , sf (h .Compare ("ab\u2019 d" , "ab\u2019 c" )))
22
+ require .Equal (t , "0.75" , sf (h .Compare ("ab\u2018 c" , "ab\u2019 c" )))
20
23
h .CaseSensitive = false
21
24
require .Equal (t , "0.50" , sf (h .Compare ("one" , "ONCE" )))
22
25
}
@@ -25,6 +28,9 @@ func TestJaccard(t *testing.T) {
25
28
j := metrics .NewJaccard ()
26
29
require .Equal (t , "1.00" , sf (j .Compare ("" , "" )))
27
30
require .Equal (t , "0.00" , sf (j .Compare ("a" , "b" )))
31
+ require .Equal (t , "1.00" , sf (j .Compare ("ab\u2019 c" , "ab\u2019 c" )))
32
+ require .Equal (t , "0.50" , sf (j .Compare ("ab\u2019 d" , "ab\u2019 c" )))
33
+ require .Equal (t , "0.20" , sf (j .Compare ("ab\u2018 c" , "ab\u2019 c" )))
28
34
require .Equal (t , "0.43" , sf (j .Compare ("night" , "alright" )))
29
35
j .NgramSize = 0
30
36
require .Equal (t , "0.43" , sf (j .Compare ("night" , "alright" )))
@@ -37,6 +43,9 @@ func TestJaro(t *testing.T) {
37
43
j := metrics .NewJaro ()
38
44
require .Equal (t , "1.00" , sf (j .Compare ("" , "" )))
39
45
require .Equal (t , "0.00" , sf (j .Compare ("test" , "" )))
46
+ require .Equal (t , "1.00" , sf (j .Compare ("ab\u2019 c" , "ab\u2019 c" )))
47
+ require .Equal (t , "0.83" , sf (j .Compare ("ab\u2019 d" , "ab\u2019 c" )))
48
+ require .Equal (t , "0.83" , sf (j .Compare ("ab\u2018 c" , "ab\u2019 c" )))
40
49
require .Equal (t , "0.00" , sf (j .Compare ("a" , "b" )))
41
50
require .Equal (t , "0.78" , sf (j .Compare ("sort" , "shirt" )))
42
51
require .Equal (t , "0.64" , sf (j .Compare ("sort" , "report" )))
@@ -48,6 +57,9 @@ func TestJaroWinkler(t *testing.T) {
48
57
j := metrics .NewJaroWinkler ()
49
58
require .Equal (t , "1.00" , sf (j .Compare ("" , "" )))
50
59
require .Equal (t , "0.00" , sf (j .Compare ("test" , "" )))
60
+ require .Equal (t , "1.00" , sf (j .Compare ("ab\u2019 c" , "ab\u2019 c" )))
61
+ require .Equal (t , "0.88" , sf (j .Compare ("ab\u2019 d" , "ab\u2019 c" )))
62
+ require .Equal (t , "0.87" , sf (j .Compare ("ab\u2018 c" , "ab\u2019 c" )))
51
63
require .Equal (t , "0.80" , sf (j .Compare ("sort" , "shirt" )))
52
64
require .Equal (t , "0.94" , sf (j .Compare ("charm" , "charmed" )))
53
65
j .CaseSensitive = false
@@ -59,11 +71,19 @@ func TestLevenshtein(t *testing.T) {
59
71
require .Equal (t , 0 , l .Distance ("" , "" ))
60
72
require .Equal (t , 4 , l .Distance ("test" , "" ))
61
73
require .Equal (t , 4 , l .Distance ("" , "test" ))
74
+ require .Equal (t , 0 , l .Distance ("ab\u2019 c" , "ab\u2019 c" ))
75
+ require .Equal (t , 1 , l .Distance ("ab\u2019 d" , "ab\u2019 c" ))
76
+ require .Equal (t , 1 , l .Distance ("ab\u2018 c" , "ab\u2019 c" ))
62
77
require .Equal (t , "0.40" , sf (l .Compare ("book" , "brick" )))
78
+ require .Equal (t , "0.75" , sf (l .Compare ("ab\u2019 d" , "ab\u2019 c" )))
79
+ require .Equal (t , "0.75" , sf (l .Compare ("ab\u2018 c" , "ab\u2019 c" )))
63
80
l .CaseSensitive = false
64
81
require .Equal (t , "0.80" , sf (l .Compare ("hello" , "jello" )))
65
82
l .ReplaceCost = 2
66
83
require .Equal (t , "0.60" , sf (l .Compare ("hello" , "JELLO" )))
84
+ require .Equal (t , "1.00" , sf (l .Compare ("ab\u2019 c" , "ab\u2019 c" )))
85
+ require .Equal (t , "0.50" , sf (l .Compare ("ab\u2019 d" , "ab\u2019 c" )))
86
+ require .Equal (t , "0.50" , sf (l .Compare ("ab\u2018 c" , "ab\u2019 c" )))
67
87
}
68
88
69
89
func TestOperlapCoefficient (t * testing.T ) {
@@ -72,6 +92,9 @@ func TestOperlapCoefficient(t *testing.T) {
72
92
require .Equal (t , "0.75" , sf (o .Compare ("night" , "alright" )))
73
93
require .Equal (t , "0.00" , sf (o .Compare ("aa" , "" )))
74
94
require .Equal (t , "0.00" , sf (o .Compare ("bb" , "" )))
95
+ require .Equal (t , "1.00" , sf (o .Compare ("ab\u2019 c" , "ab\u2019 c" )))
96
+ require .Equal (t , "0.67" , sf (o .Compare ("ab\u2019 d" , "ab\u2019 c" )))
97
+ require .Equal (t , "0.33" , sf (o .Compare ("ab\u2018 c" , "ab\u2019 c" )))
75
98
o .NgramSize = 0
76
99
require .Equal (t , "0.75" , sf (o .Compare ("night" , "alright" )))
77
100
require .Equal (t , "1.00" , sf (o .Compare ("aa" , "aaaa" )))
@@ -87,6 +110,9 @@ func TestSmithWatermanGotoh(t *testing.T) {
87
110
require .Equal (t , "0.00" , sf (s .Compare ("test" , "" )))
88
111
require .Equal (t , "0.00" , sf (s .Compare ("" , "test" )))
89
112
require .Equal (t , "0.88" , sf (s .Compare ("a pink kitten" , "a kitten" )))
113
+ require .Equal (t , "1.00" , sf (s .Compare ("ab\u2019 c" , "ab\u2019 c" )))
114
+ require .Equal (t , "0.75" , sf (s .Compare ("ab\u2019 d" , "ab\u2019 c" )))
115
+ require .Equal (t , "0.50" , sf (s .Compare ("ab\u2018 c" , "ab\u2019 c" )))
90
116
s .Substitution = nil
91
117
require .Equal (t , "0.88" , sf (s .Compare ("a pink kitten" , "a kitten" )))
92
118
s .CaseSensitive = false
@@ -103,6 +129,9 @@ func TestSorensenDice(t *testing.T) {
103
129
require .Equal (t , "1.00" , sf (s .Compare ("" , "" )))
104
130
require .Equal (t , "0.00" , sf (s .Compare ("a" , "b" )))
105
131
require .Equal (t , "0.60" , sf (s .Compare ("night" , "alright" )))
132
+ require .Equal (t , "1.00" , sf (s .Compare ("ab\u2019 c" , "ab\u2019 c" )))
133
+ require .Equal (t , "0.67" , sf (s .Compare ("ab\u2019 d" , "ab\u2019 c" )))
134
+ require .Equal (t , "0.33" , sf (s .Compare ("ab\u2018 c" , "ab\u2019 c" )))
106
135
s .NgramSize = 0
107
136
require .Equal (t , "0.60" , sf (s .Compare ("night" , "alright" )))
108
137
s .CaseSensitive = false
0 commit comments