@@ -40,6 +40,10 @@ func TestStringsSimilarity(t *testing.T) {
40
40
{"Levenshtein : MARTHA/MARHTA" , args {"MARTHA" , "MARHTA" , Levenshtein }, 0.6666667 , false },
41
41
{"Levenshtein : DIXON/DICKSONX" , args {"DIXON" , "DICKSONX" , Levenshtein }, 0.50 , false },
42
42
{"Levenshtein : jellyfish/smellyfish" , args {"jellyfish" , "smellyfish" , Levenshtein }, 0.80 , false },
43
+ {"Levenshtein : abcde/бвгдж" , args {"abcde" , "бвгдж" , Levenshtein }, 0 , false },
44
+ {"Levenshtein : abcde/fghjk" , args {"abcde" , "fghjk" , Levenshtein }, 0 , false },
45
+ {"Levenshtein : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , Levenshtein }, 0.4 , false },
46
+ {"Levenshtein : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , Levenshtein }, 0.5 , false },
43
47
44
48
// DamerauLevenshtein method
45
49
{"DamerauLevenshtein : First arg empty" , args {"" , "abcde" , DamerauLevenshtein }, 0.0 , false },
@@ -52,8 +56,8 @@ func TestStringsSimilarity(t *testing.T) {
52
56
{"DamerauLevenshtein : a cat/an abct" , args {"a cat" , "an abct" , DamerauLevenshtein }, 0.5714286 , false },
53
57
{"DamerauLevenshtein : dixon/dicksonx" , args {"dixon" , "dicksonx" , DamerauLevenshtein }, 0.5 , false },
54
58
{"DamerauLevenshtein : jellyfish/smellyfish" , args {"jellyfish" , "smellyfish" , DamerauLevenshtein }, 0.8 , false },
55
- {"DamerauLevenshtein : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , DamerauLevenshtein }, 0.8666667 , false }, // "Hello" in Japanese
56
- {"DamerauLevenshtein : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , DamerauLevenshtein }, 0.875 , false },
59
+ {"DamerauLevenshtein : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , DamerauLevenshtein }, 0.6 , false },
60
+ {"DamerauLevenshtein : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , DamerauLevenshtein }, 0.5 , false },
57
61
58
62
// OSADamerauLevenshtein method
59
63
{"OSADamerauLevenshtein : First arg empty" , args {"" , "abcde" , OSADamerauLevenshtein }, 0.0 , false },
@@ -66,8 +70,8 @@ func TestStringsSimilarity(t *testing.T) {
66
70
{"OSADamerauLevenshtein : a cat/an abct" , args {"a cat" , "an abct" , OSADamerauLevenshtein }, 0.428571429 , false },
67
71
{"OSADamerauLevenshtein : dixon/dicksonx" , args {"dixon" , "dicksonx" , OSADamerauLevenshtein }, 0.5 , false },
68
72
{"OSADamerauLevenshtein : jellyfish/smellyfish" , args {"jellyfish" , "smellyfish" , OSADamerauLevenshtein }, 0.8 , false },
69
- {"OSADamerauLevenshtein : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , OSADamerauLevenshtein }, 0.8666667 , false }, // "Hello" in Japanese
70
- {"OSADamerauLevenshtein : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , OSADamerauLevenshtein }, 0.875 , false },
73
+ {"OSADamerauLevenshtein : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , OSADamerauLevenshtein }, 0.6 , false },
74
+ {"OSADamerauLevenshtein : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , OSADamerauLevenshtein }, 0.5 , false },
71
75
72
76
// Lcs method
73
77
{"LCS : First arg empty" , args {"" , "abcde" , Lcs }, 0.0 , false },
@@ -80,6 +84,8 @@ func TestStringsSimilarity(t *testing.T) {
80
84
{"LCS : MARTHA/MARHTA" , args {"MARTHA" , "MARHTA" , Lcs }, 0.6666667 , false },
81
85
{"LCS : DIXON/DICKSONX" , args {"DIXON" , "DICKSONX" , Lcs }, 0.375 , false },
82
86
{"LCS : jellyfish/smellyfish" , args {"jellyfish" , "smellyfish" , Lcs }, 0.7 , false },
87
+ {"Lcs : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , Lcs }, 0.4 , false }, // "Hello" in Japanese
88
+ {"Lcs : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , Lcs }, 0.5 , false },
83
89
84
90
// Hamming method
85
91
{"Hamming : First arg empty" , args {"" , "abcde" , Hamming }, 0.0 , true },
@@ -93,7 +99,7 @@ func TestStringsSimilarity(t *testing.T) {
93
99
{"Hamming : dixon/dicksonx" , args {"dixon" , "dicksonx" , Hamming }, 0.0 , true },
94
100
{"Hamming : jellyfish/smellyfish" , args {"jellyfish" , "smellyfish" , Hamming }, 0.0 , true },
95
101
{"Hamming : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , Hamming }, 0.0 , true }, // "Hello" in Japanese
96
- {"Hamming : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , Hamming }, 0.75 , false },
102
+ {"Hamming : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , Hamming }, 0.0 , false },
97
103
98
104
// Jaro method
99
105
{"Jaro : First arg empty" , args {"" , "abcde" , Jaro }, 0.0 , false },
@@ -104,6 +110,9 @@ func TestStringsSimilarity(t *testing.T) {
104
110
{"Jaro : MARTHA/MARHTA" , args {"MARTHA" , "MARHTA" , Jaro }, 0.9444444 , false },
105
111
{"Jaro : DIXON/DICKSONX" , args {"DIXON" , "DICKSONX" , Jaro }, 0.76666665 , false },
106
112
{"Jaro : jellyfish/smellyfish" , args {"jellyfish" , "smellyfish" , Jaro }, 0.8962963 , false },
113
+ {"Jaro : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , Jaro }, 0.84999996 , false },
114
+ {"Jaro : こんににんち/こんにちは" , args {"こんににんち" , "こんにちは" , Jaro }, 0.82222223 , false },
115
+ {"Jaro : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , Jaro }, 0.8333333 , false },
107
116
108
117
// JaroWinkler method
109
118
{"JaroWinkler : First arg empty" , args {"" , "abcde" , JaroWinkler }, 0.0 , false },
@@ -114,6 +123,9 @@ func TestStringsSimilarity(t *testing.T) {
114
123
{"JaroWinkler : MARTHA/MARHTA" , args {"MARTHA" , "MARHTA" , JaroWinkler }, 0.96111107 , false },
115
124
{"JaroWinkler : DIXON/DICKSONX" , args {"DIXON" , "DICKSONX" , JaroWinkler }, 0.81333333 , false },
116
125
{"JaroWinkler : jellyfish/smellyfish" , args {"jellyfish" , "smellyfish" , JaroWinkler }, 0.8962963 , false },
126
+ {"JaroWinkler : こにんち/こんにちは" , args {"こにんち" , "こんにちは" , JaroWinkler }, 0.86499995 , false },
127
+ {"JaroWinkler : こんににんち/こんにちは" , args {"こんににんち" , "こんにちは" , JaroWinkler }, 0.8755556 , false },
128
+ {"JaroWinkler : 🙂😄🙂😄/😄🙂😄🙂" , args {"🙂😄🙂😄" , "😄🙂😄🙂" , JaroWinkler }, 0.8333333 , false },
117
129
118
130
// Cosine method
119
131
{"Cosine : First arg empty" , args {"" , "abcde" , Cosine }, 0.0 , false },
@@ -138,7 +150,7 @@ func TestStringsSimilarity(t *testing.T) {
138
150
return
139
151
}
140
152
if got != tt .want {
141
- t .Errorf ("StringsSimilarity() = %v, want %v" , got , tt .want )
153
+ t .Errorf ("StringsSimilarity() = %v, want %v\n Rune string 1: %v, len: %d \n Rune string 2: %v, len: %d " , got , tt .want , [] rune ( tt . args . str1 ), len ([] rune ( tt . args . str1 )), [] rune ( tt . args . str2 ), len ([] rune ( tt . args . str2 )) )
142
154
}
143
155
})
144
156
}
0 commit comments