1447
|
1 |
"{ Package: 'stx:goodies/regression' }"
|
528
|
2 |
|
539
|
3 |
"{ NameSpace: RegressionTests }"
|
|
4 |
|
528
|
5 |
TestCase subclass:#SoundexStringComparatorTest
|
|
6 |
instanceVariableNames:'sc'
|
|
7 |
classVariableNames:''
|
|
8 |
poolDictionaries:''
|
1416
|
9 |
category:'tests-Regression-Collections-Utilities'
|
528
|
10 |
!
|
|
11 |
|
|
12 |
|
2153
|
13 |
!SoundexStringComparatorTest methodsFor:'initialize / release'!
|
528
|
14 |
|
|
15 |
setUp
|
529
|
16 |
sc := PhoneticStringUtilities::SoundexStringComparator new
|
528
|
17 |
! !
|
|
18 |
|
|
19 |
!SoundexStringComparatorTest methodsFor:'tests'!
|
|
20 |
|
1650
|
21 |
test01_SomeCombinations
|
1665
|
22 |
"tests if all char combinations up to size 4 can be soundexed"
|
1650
|
23 |
|
528
|
24 |
|code s|
|
|
25 |
|
1665
|
26 |
^ self.
|
|
27 |
|
1653
|
28 |
self skip:'this test does not really test anything (except if all 4-char string combinations can be soundexed)'.
|
|
29 |
|
528
|
30 |
$A to:$Z do:[:c1 |
|
1665
|
31 |
s := String with:c1.
|
|
32 |
code := (sc phoneticStringsFor:s) first.
|
|
33 |
|
1650
|
34 |
$A to:$Z do:[:c2 |
|
1665
|
35 |
s := String with:c1 with:c2.
|
|
36 |
code := (sc phoneticStringsFor:s) first.
|
|
37 |
|
1650
|
38 |
$A to:$Z do:[:c3 |
|
1665
|
39 |
s := String with:c1 with:c2 with:c3.
|
|
40 |
code := (sc phoneticStringsFor:s) first.
|
|
41 |
|
1650
|
42 |
$A to:$Z do:[:c4 |
|
|
43 |
s := String with:c1 with:c2 with:c3 with:c4.
|
|
44 |
code := (sc phoneticStringsFor:s) first.
|
|
45 |
self assert:( code = s asSoundexCode).
|
|
46 |
].
|
|
47 |
].
|
|
48 |
].
|
528
|
49 |
].
|
1650
|
50 |
|
|
51 |
"Created: / 27-07-2017 / 15:14:53 / cg"
|
1665
|
52 |
"Modified: / 31-07-2017 / 17:51:21 / cg"
|
528
|
53 |
!
|
|
54 |
|
1650
|
55 |
test02_WellKnownResults
|
1673
|
56 |
"tests some wellknown soundex codes"
|
1650
|
57 |
|
1660
|
58 |
|code soundex xx|
|
528
|
59 |
|
|
60 |
soundex := [:w | (sc phoneticStringsFor:w) first].
|
|
61 |
|
529
|
62 |
self assert: ( soundex value:( 'Swhgler' )) = 'S246' . "/ DIFFERENT from miracode (american) soundex
|
|
63 |
|
528
|
64 |
code := (sc phoneticStringsFor:'Miller') first.
|
|
65 |
self assert:( code = 'Miller' asSoundexCode).
|
|
66 |
|
|
67 |
#( 'Acton' 'Ashdown' 'Ashton' 'Astin' 'Aston' 'Austen' 'Austin' 'Austine' 'Axten')
|
|
68 |
do:[:w |
|
1650
|
69 |
code := soundex value:(w).
|
|
70 |
self assert:( code = 'A235').
|
528
|
71 |
].
|
|
72 |
|
|
73 |
#( 'Reader' 'Reeder' 'Rider' 'Ritter' 'Rothera' 'Rothra' 'Ruder' 'Rutter' 'Ryder')
|
|
74 |
do:[:w |
|
1650
|
75 |
code := soundex value:(w).
|
|
76 |
self assert:( code = 'R360').
|
528
|
77 |
].
|
|
78 |
|
|
79 |
#( 'Wace' 'Waugh' 'Wookey')
|
|
80 |
do:[:w |
|
1650
|
81 |
code := soundex value:(w).
|
|
82 |
self assert:( code = 'W200').
|
528
|
83 |
].
|
|
84 |
|
|
85 |
code := soundex value:('Abbot').
|
|
86 |
self assert:( code = 'Abbot' asSoundexCode).
|
|
87 |
self assert:( code = 'A130' ).
|
|
88 |
|
|
89 |
code := soundex value:('Abbots').
|
|
90 |
self assert:( code = 'Abbots' asSoundexCode).
|
|
91 |
self assert:( code = 'A132' ).
|
|
92 |
|
|
93 |
code := soundex value:('Ashcroft').
|
|
94 |
self assert:( code = 'Ashcroft' asSoundexCode).
|
|
95 |
self assert:( code = 'A226' ).
|
|
96 |
|
|
97 |
code := soundex value:('Lloyd').
|
|
98 |
self assert:( code = 'Lloyd' asSoundexCode).
|
|
99 |
self assert:( code = 'L300' ).
|
|
100 |
|
|
101 |
code := soundex value:('Pfister').
|
|
102 |
self assert:( code = 'Pfister' asSoundexCode).
|
|
103 |
self assert:( code = 'P236' ).
|
|
104 |
|
1673
|
105 |
"/ self assert: ( soundex value:( 'A' )) = 'A000' .
|
|
106 |
"/ ...
|
|
107 |
"/ self assert: ( soundex value:( 'Z' )) = 'Z000' .
|
|
108 |
$A to:$Z do:[:singleChar |
|
|
109 |
self assert: ( soundex value:( singleChar asString )) = (singleChar asString,'000') .
|
|
110 |
].
|
528
|
111 |
|
|
112 |
self assert: ( soundex value:( 'AEHIOW' )) = 'A000' .
|
|
113 |
self assert: ( soundex value:( 'BPFV' )) = 'B000' .
|
|
114 |
self assert: ( soundex value:( 'CGJKQSXZ' )) = 'C000' .
|
|
115 |
self assert: ( soundex value:( 'DT' )) = 'D000' .
|
|
116 |
self assert: ( soundex value:( 'MN' )) = 'M000' .
|
|
117 |
|
|
118 |
self assert: ( soundex value:( 'ADAD' )) = 'A330' .
|
529
|
119 |
self assert: ( soundex value:( 'ADHD' )) = 'A330' . "/ DIFFERENT from miracode (american) soundex
|
|
120 |
self assert: ( soundex value:( 'ADWD' )) = 'A330' . "/ DIFFERENT from miracode (american) soundex
|
528
|
121 |
|
|
122 |
"/ self assert: ( soundex value:( 'Ashcroft' )) = 'A22613' .
|
1656
|
123 |
self assert: ( soundex value:( 'Ashcroft' )) = 'A226' . "/ DIFFERENT from miracode (american) soundex
|
1447
|
124 |
self assert: ( soundex value:( 'Tymczak' )) = 'T522' .
|
|
125 |
self assert: ( soundex value:( 'Jackson' )) = 'J250' .
|
|
126 |
self assert: ( soundex value:( 'Pfister' )) = 'P236' .
|
|
127 |
self assert: ( soundex value:( 'Gutierrez' )) = 'G362' .
|
|
128 |
self assert: ( soundex value:( 'Lee' )) = 'L000' .
|
|
129 |
"/ self assert: ( soundex value:( 'Washington' )) = 'W25235' .
|
|
130 |
self assert: ( soundex value:( 'Washington' )) = 'W252' .
|
528
|
131 |
|
1447
|
132 |
self assert: ( soundex value:( 'Williams' )) = 'W452' .
|
|
133 |
"/ self assert: ( soundex value:( 'Baragwanath' )) = 'B6253' .
|
|
134 |
self assert: ( soundex value:( 'Baragwanath' )) = 'B625' .
|
|
135 |
self assert: ( soundex value:( 'Donnell' )) = 'D540' .
|
|
136 |
self assert: ( soundex value:( 'Lloyd' )) = 'L300' .
|
528
|
137 |
self assert: ( soundex value:( 'Woolcock' )) = 'W422' .
|
529
|
138 |
|
|
139 |
self assert: ( soundex value:( 'Cook' )) = 'C200' .
|
|
140 |
|
|
141 |
self assert: ( soundex value:( 'Allricht' )) = 'A462' .
|
|
142 |
self assert: ( soundex value:( 'Eberhard' )) = 'E166' .
|
|
143 |
self assert: ( soundex value:( 'Engebrethson' )) = 'E521' .
|
|
144 |
self assert: ( soundex value:( 'Heimbach' )) = 'H512' .
|
|
145 |
self assert: ( soundex value:( 'Hanselmann' )) = 'H524' .
|
|
146 |
self assert: ( soundex value:( 'Henzelmann' )) = 'H524' .
|
|
147 |
self assert: ( soundex value:( 'Hildebrand' )) = 'H431' .
|
|
148 |
self assert: ( soundex value:( 'Kavanagh' )) = 'K152' .
|
|
149 |
"/ self assert: ( soundex value:( 'Lind, Van' )) = 'L530' .
|
|
150 |
self assert: ( soundex value:( 'Lind' )) = 'L530' .
|
|
151 |
self assert: ( soundex value:( 'Lukaschowsky' )) = 'L222' .
|
|
152 |
self assert: ( soundex value:( 'McDonnell' )) = 'M235' .
|
|
153 |
self assert: ( soundex value:( 'McGee' )) = 'M200' .
|
1650
|
154 |
self assert: ( soundex value:( 'Miller' )) = 'M460' .
|
|
155 |
self assert: ( soundex value:( 'Muller' )) = 'M460' .
|
|
156 |
self assert: ( soundex value:( 'Mueller' )) = 'M460' .
|
|
157 |
self assert: ( soundex value:( 'Milner' )) = 'M456' .
|
|
158 |
self assert: ( soundex value:( 'Millner' )) = 'M456' .
|
|
159 |
self assert: ( soundex value:( 'Miner' )) = 'M560' .
|
|
160 |
self assert: ( soundex value:( 'Mimer' )) = 'M560' .
|
529
|
161 |
self assert: ( soundex value:( 'O''Brien' )) = 'O165' .
|
|
162 |
self assert: ( soundex value:( 'Opnian' )) = 'O155' .
|
|
163 |
self assert: ( soundex value:( 'Oppenheimer' )) = 'O155' .
|
|
164 |
self assert: ( soundex value:( 'Swhgler' )) = 'S246' . "/ DIFFERENT from miracode (american) soundex
|
|
165 |
self assert: ( soundex value:( 'Riedemanas' )) = 'R355' .
|
|
166 |
self assert: ( soundex value:( 'Zita' )) = 'Z300' .
|
|
167 |
self assert: ( soundex value:( 'Zitzmeinn' )) = 'Z325' .
|
1650
|
168 |
|
1656
|
169 |
self assert: ( soundex value:( 'Robert' )) = 'R163' .
|
|
170 |
self assert: ( soundex value:( 'Rupert' )) = 'R163' .
|
|
171 |
self assert: ( soundex value:( 'Rubin' )) = 'R150' .
|
|
172 |
|
1673
|
173 |
#('Fusedale')
|
|
174 |
do:[:each | self assert: ( soundex value:each) = 'F234'].
|
|
175 |
|
|
176 |
#('Genthner' 'Gentner' 'Gianettini' 'Gunton')
|
|
177 |
do:[:each | self assert: ( code := soundex value:each) = 'G535'].
|
|
178 |
|
|
179 |
#('Garlee' 'Garley' 'Garwell' 'Garwill' 'Gerrell' 'Gerrill' 'Giral' 'Gorelli' 'Gorioli' 'Gourlay' 'Gourley' 'Gourlie' 'Graal' 'Grahl' 'Grayley' 'Grealey' 'Greally' 'Grealy' 'Grioli' 'Groll' 'Grolle' 'Guerola' 'Gurley')
|
|
180 |
do:[:each | self assert: ( code := soundex value:each) = 'G640'].
|
|
181 |
|
|
182 |
#('Hadcroft' 'Hadgraft' 'Hatchard' 'Hatcher' 'Hatzar' 'Hedger' 'Hitscher' 'Hodcroft')
|
|
183 |
do:[:each | xx := each. self assert: ( code := soundex value:each) = 'H326'].
|
|
184 |
|
|
185 |
#('Hutchcraft')
|
|
186 |
do:[:each | xx := each. self assert: ( code := soundex value:each) = 'H322'].
|
|
187 |
|
|
188 |
#('Parade' 'Pardew' 'Pardey' 'Pardi' 'Pardie' 'Pardoe' 'Pardue' 'Pardy' 'Parradye' 'Parratt' 'Parrett' 'Parrot' 'Parrott' 'Pearde' 'Peart' 'Peaurt' 'Peert' 'Perdue' 'Peret' 'Perett' 'Perot' 'Perott' 'Perotti' 'Perrat' 'Perrett' 'Perritt' 'Perrot' 'Perrott' 'Pert' 'Perutto' 'Pirdue' 'Pirdy' 'Pirot' 'Pirouet' 'Pirt' 'Porrett' 'Porritt' 'Port' 'Porte' 'Portt' 'Prate' 'Prati' 'Pratt' 'Pratte' 'Pratty' 'Preddy' 'Preedy' 'Preto' 'Pretti' 'Pretty' 'Prewett' 'Priddey' 'Priddie' 'Priddy' 'Pride' 'Pridie' 'Pritty' 'Prott' 'Proud' 'Prout' 'Pryde' 'Prydie' 'Purdey' 'Purdie' 'Purdy')
|
|
189 |
do:[:each | xx := each. self assert: ( code := soundex value:each) = 'P630'].
|
1660
|
190 |
|
1650
|
191 |
"Created: / 27-07-2017 / 15:14:59 / cg"
|
1673
|
192 |
"Modified: / 03-08-2017 / 15:04:05 / cg"
|
528
|
193 |
! !
|
|
194 |
|
|
195 |
!SoundexStringComparatorTest class methodsFor:'documentation'!
|
|
196 |
|
|
197 |
version
|
|
198 |
^ '$Header$'
|
1653
|
199 |
!
|
|
200 |
|
|
201 |
version_CVS
|
|
202 |
^ '$Header$'
|
528
|
203 |
! !
|
1416
|
204 |
|