author | Claus Gittinger <cg@exept.de> |
Tue, 02 Apr 2019 10:49:27 +0200 | |
changeset 2209 | dd72456e8de4 |
parent 2169 | a1a0194d9890 |
permissions | -rw-r--r-- |
1447 | 1 |
"{ Package: 'stx:goodies/regression' }" |
532 | 2 |
|
540 | 3 |
"{ NameSpace: RegressionTests }" |
4 |
||
532 | 5 |
TestCase subclass:#KoelnerPhoneticCodeStringComparatorTest |
6 |
instanceVariableNames:'sc' |
|
7 |
classVariableNames:'' |
|
8 |
poolDictionaries:'' |
|
1413 | 9 |
category:'tests-Regression-Collections-Utilities' |
532 | 10 |
! |
11 |
||
12 |
||
2169 | 13 |
!KoelnerPhoneticCodeStringComparatorTest methodsFor:'initialize / release'! |
532 | 14 |
|
15 |
setUp |
|
16 |
sc := PhoneticStringUtilities::KoelnerPhoneticCodeStringComparator new |
|
17 |
! ! |
|
18 |
||
19 |
!KoelnerPhoneticCodeStringComparatorTest methodsFor:'tests'! |
|
20 |
||
1654 | 21 |
test01_SomeCombinations |
1668 | 22 |
"tests if all character combinations (up to 4 chars) are handled" |
23 |
||
532 | 24 |
|code s| |
25 |
||
1668 | 26 |
"/ self skip:'this test does not really test anything (except if all 4-char string combinations can be soundexed)'. |
27 |
||
28 |
$A to:$Z do:[:c1 | |
|
29 |
s := String with:c1. |
|
30 |
code := (sc phoneticStringsFor:s) first. |
|
31 |
"/ self assert:( code notEmpty ). |
|
1654 | 32 |
|
33 |
$A to:$Z do:[:c2 | |
|
1668 | 34 |
s := String with:c1 with:c2. |
35 |
code := (sc phoneticStringsFor:s) first. |
|
36 |
"/ self assert:( code notEmpty ). |
|
37 |
||
1654 | 38 |
$A to:$Z do:[:c3 | |
1668 | 39 |
s := String with:c1 with:c2 with:c3. |
40 |
code := (sc phoneticStringsFor:s) first. |
|
41 |
"/ self assert:( code notEmpty ). |
|
42 |
||
1654 | 43 |
$A to:$Z do:[:c4 | |
44 |
s := String with:c1 with:c2 with:c3 with:c4. |
|
45 |
code := (sc phoneticStringsFor:s) first. |
|
1668 | 46 |
"/ self assert:( code notEmpty ). |
1654 | 47 |
]. |
48 |
]. |
|
49 |
]. |
|
532 | 50 |
]. |
1654 | 51 |
|
52 |
"Created: / 28-07-2017 / 09:21:39 / cg" |
|
1668 | 53 |
"Modified: / 29-07-2017 / 14:17:56 / cg" |
532 | 54 |
! |
55 |
||
1654 | 56 |
test02_WellKnownResults |
532 | 57 |
|code koeln| |
58 |
||
59 |
koeln := [:w | (sc phoneticStringsFor:w) first]. |
|
60 |
||
61 |
code := (sc phoneticStringsFor:'Miller') first. |
|
62 |
self assert:( code = 'Miller' asKoelnerPhoneticCode). |
|
63 |
||
64 |
#( 'Acton' 'Ashdown' 'Ashton' 'Astin' 'Aston' 'Austen' 'Austin' 'Austine' 'Axten') |
|
65 |
do:[:w | |
|
1654 | 66 |
code := koeln value:(w). |
67 |
self assert:( code = (w asKoelnerPhoneticCode)). |
|
532 | 68 |
]. |
69 |
||
70 |
#( 'Reader' 'Reeder' 'Rider' 'Ritter' 'Rothera' 'Rothra' 'Ruder' 'Rutter' 'Ryder') |
|
71 |
do:[:w | |
|
1654 | 72 |
code := koeln value:(w). |
73 |
self assert:( code = (w asKoelnerPhoneticCode)). |
|
532 | 74 |
]. |
75 |
||
76 |
#( 'Wace' 'Waugh' 'Wookey') |
|
77 |
do:[:w | |
|
1654 | 78 |
code := koeln value:(w). |
79 |
self assert:( code = (w asKoelnerPhoneticCode)). |
|
532 | 80 |
]. |
81 |
||
82 |
code := koeln value:('Abbot'). |
|
83 |
self assert:( code = 'Abbot' asKoelnerPhoneticCode). |
|
84 |
||
85 |
code := koeln value:('Abbots'). |
|
86 |
self assert:( code = 'Abbots' asKoelnerPhoneticCode). |
|
87 |
||
88 |
code := koeln value:('Ashcroft'). |
|
89 |
self assert:( code = 'Ashcroft' asKoelnerPhoneticCode). |
|
90 |
||
91 |
code := koeln value:('Lloyd'). |
|
92 |
self assert:( code = 'Lloyd' asKoelnerPhoneticCode). |
|
93 |
||
94 |
code := koeln value:('Pfister'). |
|
95 |
self assert:( code = 'Pfister' asKoelnerPhoneticCode). |
|
96 |
||
97 |
self assert: ( koeln value:( 'A' )) = ('A' asKoelnerPhoneticCode) . |
|
98 |
self assert: ( koeln value:( 'B' )) = ('B' asKoelnerPhoneticCode) . |
|
99 |
self assert: ( koeln value:( 'C' )) = ('C' asKoelnerPhoneticCode) . |
|
100 |
self assert: ( koeln value:( 'D' )) = ('D' asKoelnerPhoneticCode) . |
|
101 |
self assert: ( koeln value:( 'E' )) = ('E' asKoelnerPhoneticCode) . |
|
102 |
self assert: ( koeln value:( 'F' )) = ('F' asKoelnerPhoneticCode) . |
|
103 |
self assert: ( koeln value:( 'G' )) = ('G' asKoelnerPhoneticCode) . |
|
104 |
self assert: ( koeln value:( 'H' )) = ('H' asKoelnerPhoneticCode) . |
|
105 |
self assert: ( koeln value:( 'I' )) = ('I' asKoelnerPhoneticCode) . |
|
106 |
self assert: ( koeln value:( 'J' )) = ('J' asKoelnerPhoneticCode) . |
|
107 |
self assert: ( koeln value:( 'K' )) = ('K' asKoelnerPhoneticCode) . |
|
108 |
self assert: ( koeln value:( 'L' )) = ('L' asKoelnerPhoneticCode) . |
|
109 |
self assert: ( koeln value:( 'M' )) = ('M' asKoelnerPhoneticCode) . |
|
110 |
self assert: ( koeln value:( 'N' )) = ('N' asKoelnerPhoneticCode) . |
|
111 |
self assert: ( koeln value:( 'O' )) = ('O' asKoelnerPhoneticCode) . |
|
112 |
self assert: ( koeln value:( 'P' )) = ('P' asKoelnerPhoneticCode) . |
|
113 |
self assert: ( koeln value:( 'Q' )) = ('Q' asKoelnerPhoneticCode) . |
|
114 |
self assert: ( koeln value:( 'R' )) = ('R' asKoelnerPhoneticCode) . |
|
115 |
self assert: ( koeln value:( 'S' )) = ('S' asKoelnerPhoneticCode) . |
|
116 |
self assert: ( koeln value:( 'T' )) = ('T' asKoelnerPhoneticCode) . |
|
117 |
self assert: ( koeln value:( 'U' )) = ('U' asKoelnerPhoneticCode) . |
|
118 |
self assert: ( koeln value:( 'V' )) = ('V' asKoelnerPhoneticCode) . |
|
119 |
self assert: ( koeln value:( 'W' )) = ('W' asKoelnerPhoneticCode) . |
|
120 |
self assert: ( koeln value:( 'X' )) = ('X' asKoelnerPhoneticCode) . |
|
121 |
self assert: ( koeln value:( 'Y' )) = ('Y' asKoelnerPhoneticCode) . |
|
122 |
self assert: ( koeln value:( 'Z' )) = ('Z' asKoelnerPhoneticCode) . |
|
123 |
||
124 |
self assert: ( koeln value:( 'AEHIOW' )) = ('AEHIOW' asKoelnerPhoneticCode) . |
|
125 |
self assert: ( koeln value:( 'BPFV' )) = ('BPFV' asKoelnerPhoneticCode). |
|
126 |
self assert: ( koeln value:( 'CGJKQSXZ' )) = ('CGJKQSXZ' asKoelnerPhoneticCode). |
|
127 |
self assert: ( koeln value:( 'DT' )) = ('DT' asKoelnerPhoneticCode). |
|
128 |
self assert: ( koeln value:( 'L' )) = ('L' asKoelnerPhoneticCode). |
|
129 |
self assert: ( koeln value:( 'MN' )) = ('MN' asKoelnerPhoneticCode). |
|
130 |
self assert: ( koeln value:( 'R' )) = ('R' asKoelnerPhoneticCode). |
|
1654 | 131 |
|
132 |
"Created: / 28-07-2017 / 09:21:47 / cg" |
|
133 |
! |
|
134 |
||
135 |
test03_WellKnownResults |
|
136 |
|code| |
|
137 |
||
138 |
code := PhoneticStringUtilities koelnerPhoneticCodeOf:'Breschnew'. |
|
139 |
self assert:(code = '17863'). |
|
140 |
||
141 |
"/ these all sound similar - so they should get the same code |
|
142 |
#( |
|
143 |
'Breschnew' |
|
144 |
'Breschneff' |
|
145 |
'Braeschneff' |
|
146 |
'Braessneff' |
|
147 |
'Pressneff' |
|
148 |
'Presznäph' |
|
149 |
'Präschnäf' |
|
150 |
) do:[:each | |
|
151 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '17863'). |
|
152 |
]. |
|
153 |
||
154 |
"/ these all sound similar - so they should get the same code |
|
155 |
#( |
|
156 |
'müller' |
|
1655 | 157 |
'mueller' |
158 |
'Mueller' |
|
159 |
'Muehler' |
|
160 |
'Mueler' |
|
161 |
'Müler' |
|
162 |
'Mühler' |
|
163 |
'Mühlher' |
|
164 |
'Mühlherr' |
|
165 |
'Mülherr' |
|
166 |
'Müllherr' |
|
167 |
'Mülleer' |
|
168 |
'Mülar' |
|
169 |
'Muelherr' |
|
170 |
'Muelar' |
|
1654 | 171 |
'möller' |
172 |
'miller' |
|
173 |
'muller' |
|
174 |
'muler' |
|
1655 | 175 |
'myler' |
176 |
'mylar' |
|
177 |
'myller' |
|
178 |
'myller' |
|
179 |
||
180 |
'nyller' |
|
181 |
'nüller' |
|
182 |
'niller' |
|
1654 | 183 |
) do:[:each | |
184 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '657'). |
|
185 |
]. |
|
186 |
||
187 |
"/ these all sound similar - so they should get the same code |
|
188 |
#( |
|
189 |
'schmidt' |
|
190 |
'schmid' |
|
191 |
'schmit' |
|
192 |
'schmidtt' |
|
193 |
'schmidd' |
|
194 |
) do:[:each | |
|
195 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '862'). |
|
196 |
]. |
|
197 |
||
1655 | 198 |
"/ these all sound similar - so they should get the same code |
199 |
#( |
|
200 |
'schneider' |
|
201 |
'sneider' |
|
202 |
'shneider' |
|
203 |
'schneiter' |
|
204 |
'schneitar' |
|
205 |
) do:[:each | |
|
206 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '8627'). |
|
207 |
]. |
|
208 |
||
209 |
"/ these all sound similar - so they should get the same code |
|
210 |
#( |
|
211 |
'weber' |
|
212 |
'webber' |
|
213 |
'weeber' |
|
214 |
'wehber' |
|
215 |
'weper' |
|
216 |
'wepper' |
|
217 |
'weppar' |
|
218 |
) do:[:each | |
|
219 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '317'). |
|
220 |
]. |
|
221 |
||
222 |
"/ these all sound similar - so they should get the same code |
|
223 |
#( |
|
224 |
'meyer' |
|
225 |
'mayer' |
|
226 |
'meier' |
|
227 |
'maier' |
|
228 |
'maiar' |
|
229 |
'meiar' |
|
230 |
'meyar' |
|
231 |
'meyer' |
|
232 |
) do:[:each | |
|
233 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '67'). |
|
234 |
]. |
|
235 |
||
236 |
#( |
|
237 |
'Czerny' |
|
238 |
'Tscherny' |
|
239 |
'Czernie' |
|
240 |
'Tschernie' |
|
241 |
'Schernie' |
|
242 |
'Scherny' |
|
243 |
'Scherno' |
|
244 |
'Czerne' |
|
245 |
'Zerny' |
|
246 |
'Zerne' |
|
247 |
'Zerni' |
|
248 |
'cerni' |
|
249 |
'tscherni' |
|
250 |
'tserni' |
|
251 |
'serni' |
|
252 |
'Tzernie' |
|
253 |
'Tzernie' |
|
254 |
) do:[:each | |
|
255 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '876'). |
|
256 |
]. |
|
1654 | 257 |
|
258 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'fischer') = '387'). |
|
259 |
||
260 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'wagner') = '3467'). |
|
261 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'vagner') = '3467'). |
|
262 |
||
263 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schulz') = '858'). |
|
264 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schultz') = '858'). |
|
265 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schults') = '858'). |
|
266 |
||
267 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'becker') = '147'). |
|
268 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hoffmann') = '036'). |
|
269 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hofmann') = '036'). |
|
270 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hovmann') = '036'). |
|
271 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hovman') = '036'). |
|
1655 | 272 |
|
1654 | 273 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schäfer') = '837'). |
274 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schäffer') = '837'). |
|
275 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schaeffer') = '837'). |
|
276 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schaefer') = '837'). |
|
277 |
||
1658 | 278 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'Müller-Lüdenscheidt') = '65752682'). |
279 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'Mueller-Litenscheidt') = '65752682'). |
|
280 |
||
1654 | 281 |
"Created: / 28-07-2017 / 09:36:16 / cg" |
532 | 282 |
! ! |
283 |
||
284 |
!KoelnerPhoneticCodeStringComparatorTest class methodsFor:'documentation'! |
|
285 |
||
286 |
version |
|
287 |
^ '$Header$' |
|
1655 | 288 |
! |
289 |
||
290 |
version_CVS |
|
291 |
^ '$Header$' |
|
532 | 292 |
! ! |
896
bf7016d7ffd2
class: RegressionTests::KoelnerPhoneticCodeStringComparatorTest
Stefan Vogel <sv@exept.de>
parents:
540
diff
changeset
|
293 |