author | Claus Gittinger <cg@exept.de> |
Fri, 28 Jul 2017 09:45:17 +0200 | |
changeset 1654 | 9091b358d049 |
parent 1447 | 2351db93aa5b |
child 1655 | 146a90714d5c |
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 |
||
13 |
!KoelnerPhoneticCodeStringComparatorTest methodsFor:'running'! |
|
14 |
||
15 |
setUp |
|
16 |
sc := PhoneticStringUtilities::KoelnerPhoneticCodeStringComparator new |
|
17 |
! ! |
|
18 |
||
19 |
!KoelnerPhoneticCodeStringComparatorTest methodsFor:'tests'! |
|
20 |
||
1654 | 21 |
test01_SomeCombinations |
532 | 22 |
|code s| |
23 |
||
1654 | 24 |
self skip:'this test does not really test anything (except if all 4-char string combinations can be soundexed)'. |
25 |
||
26 |
"/ compares all 4-char combinations against what? |
|
532 | 27 |
$A to:$Z do:[:c1 | |
1654 | 28 |
$A to:$Z do:[:c2 | |
29 |
$A to:$Z do:[:c3 | |
|
30 |
$A to:$Z do:[:c4 | |
|
31 |
s := String with:c1 with:c2 with:c3 with:c4. |
|
32 |
code := (sc phoneticStringsFor:s) first. |
|
33 |
self assert:( code = s asKoelnerPhoneticCode). |
|
34 |
]. |
|
35 |
]. |
|
36 |
]. |
|
532 | 37 |
]. |
1654 | 38 |
|
39 |
"Created: / 28-07-2017 / 09:21:39 / cg" |
|
532 | 40 |
! |
41 |
||
1654 | 42 |
test02_WellKnownResults |
532 | 43 |
|code koeln| |
44 |
||
45 |
koeln := [:w | (sc phoneticStringsFor:w) first]. |
|
46 |
||
47 |
code := (sc phoneticStringsFor:'Miller') first. |
|
48 |
self assert:( code = 'Miller' asKoelnerPhoneticCode). |
|
49 |
||
50 |
#( 'Acton' 'Ashdown' 'Ashton' 'Astin' 'Aston' 'Austen' 'Austin' 'Austine' 'Axten') |
|
51 |
do:[:w | |
|
1654 | 52 |
code := koeln value:(w). |
53 |
self assert:( code = (w asKoelnerPhoneticCode)). |
|
532 | 54 |
]. |
55 |
||
56 |
#( 'Reader' 'Reeder' 'Rider' 'Ritter' 'Rothera' 'Rothra' 'Ruder' 'Rutter' 'Ryder') |
|
57 |
do:[:w | |
|
1654 | 58 |
code := koeln value:(w). |
59 |
self assert:( code = (w asKoelnerPhoneticCode)). |
|
532 | 60 |
]. |
61 |
||
62 |
#( 'Wace' 'Waugh' 'Wookey') |
|
63 |
do:[:w | |
|
1654 | 64 |
code := koeln value:(w). |
65 |
self assert:( code = (w asKoelnerPhoneticCode)). |
|
532 | 66 |
]. |
67 |
||
68 |
code := koeln value:('Abbot'). |
|
69 |
self assert:( code = 'Abbot' asKoelnerPhoneticCode). |
|
70 |
||
71 |
code := koeln value:('Abbots'). |
|
72 |
self assert:( code = 'Abbots' asKoelnerPhoneticCode). |
|
73 |
||
74 |
code := koeln value:('Ashcroft'). |
|
75 |
self assert:( code = 'Ashcroft' asKoelnerPhoneticCode). |
|
76 |
||
77 |
code := koeln value:('Lloyd'). |
|
78 |
self assert:( code = 'Lloyd' asKoelnerPhoneticCode). |
|
79 |
||
80 |
code := koeln value:('Pfister'). |
|
81 |
self assert:( code = 'Pfister' asKoelnerPhoneticCode). |
|
82 |
||
83 |
self assert: ( koeln value:( 'A' )) = ('A' asKoelnerPhoneticCode) . |
|
84 |
self assert: ( koeln value:( 'B' )) = ('B' asKoelnerPhoneticCode) . |
|
85 |
self assert: ( koeln value:( 'C' )) = ('C' asKoelnerPhoneticCode) . |
|
86 |
self assert: ( koeln value:( 'D' )) = ('D' asKoelnerPhoneticCode) . |
|
87 |
self assert: ( koeln value:( 'E' )) = ('E' asKoelnerPhoneticCode) . |
|
88 |
self assert: ( koeln value:( 'F' )) = ('F' asKoelnerPhoneticCode) . |
|
89 |
self assert: ( koeln value:( 'G' )) = ('G' asKoelnerPhoneticCode) . |
|
90 |
self assert: ( koeln value:( 'H' )) = ('H' asKoelnerPhoneticCode) . |
|
91 |
self assert: ( koeln value:( 'I' )) = ('I' asKoelnerPhoneticCode) . |
|
92 |
self assert: ( koeln value:( 'J' )) = ('J' asKoelnerPhoneticCode) . |
|
93 |
self assert: ( koeln value:( 'K' )) = ('K' asKoelnerPhoneticCode) . |
|
94 |
self assert: ( koeln value:( 'L' )) = ('L' asKoelnerPhoneticCode) . |
|
95 |
self assert: ( koeln value:( 'M' )) = ('M' asKoelnerPhoneticCode) . |
|
96 |
self assert: ( koeln value:( 'N' )) = ('N' asKoelnerPhoneticCode) . |
|
97 |
self assert: ( koeln value:( 'O' )) = ('O' asKoelnerPhoneticCode) . |
|
98 |
self assert: ( koeln value:( 'P' )) = ('P' asKoelnerPhoneticCode) . |
|
99 |
self assert: ( koeln value:( 'Q' )) = ('Q' asKoelnerPhoneticCode) . |
|
100 |
self assert: ( koeln value:( 'R' )) = ('R' asKoelnerPhoneticCode) . |
|
101 |
self assert: ( koeln value:( 'S' )) = ('S' asKoelnerPhoneticCode) . |
|
102 |
self assert: ( koeln value:( 'T' )) = ('T' asKoelnerPhoneticCode) . |
|
103 |
self assert: ( koeln value:( 'U' )) = ('U' asKoelnerPhoneticCode) . |
|
104 |
self assert: ( koeln value:( 'V' )) = ('V' asKoelnerPhoneticCode) . |
|
105 |
self assert: ( koeln value:( 'W' )) = ('W' asKoelnerPhoneticCode) . |
|
106 |
self assert: ( koeln value:( 'X' )) = ('X' asKoelnerPhoneticCode) . |
|
107 |
self assert: ( koeln value:( 'Y' )) = ('Y' asKoelnerPhoneticCode) . |
|
108 |
self assert: ( koeln value:( 'Z' )) = ('Z' asKoelnerPhoneticCode) . |
|
109 |
||
110 |
self assert: ( koeln value:( 'AEHIOW' )) = ('AEHIOW' asKoelnerPhoneticCode) . |
|
111 |
self assert: ( koeln value:( 'BPFV' )) = ('BPFV' asKoelnerPhoneticCode). |
|
112 |
self assert: ( koeln value:( 'CGJKQSXZ' )) = ('CGJKQSXZ' asKoelnerPhoneticCode). |
|
113 |
self assert: ( koeln value:( 'DT' )) = ('DT' asKoelnerPhoneticCode). |
|
114 |
self assert: ( koeln value:( 'L' )) = ('L' asKoelnerPhoneticCode). |
|
115 |
self assert: ( koeln value:( 'MN' )) = ('MN' asKoelnerPhoneticCode). |
|
116 |
self assert: ( koeln value:( 'R' )) = ('R' asKoelnerPhoneticCode). |
|
1654 | 117 |
|
118 |
"Created: / 28-07-2017 / 09:21:47 / cg" |
|
119 |
! |
|
120 |
||
121 |
test03_WellKnownResults |
|
122 |
|code| |
|
123 |
||
124 |
code := PhoneticStringUtilities koelnerPhoneticCodeOf:'Breschnew'. |
|
125 |
self assert:(code = '17863'). |
|
126 |
||
127 |
"/ these all sound similar - so they should get the same code |
|
128 |
#( |
|
129 |
'Breschnew' |
|
130 |
'Breschneff' |
|
131 |
'Braeschneff' |
|
132 |
'Braessneff' |
|
133 |
'Pressneff' |
|
134 |
'Presznäph' |
|
135 |
'Präschnäf' |
|
136 |
) do:[:each | |
|
137 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '17863'). |
|
138 |
]. |
|
139 |
||
140 |
"/ these all sound similar - so they should get the same code |
|
141 |
#( |
|
142 |
'müller' |
|
143 |
'möller' |
|
144 |
'miller' |
|
145 |
'muller' |
|
146 |
'muler' |
|
147 |
) do:[:each | |
|
148 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '657'). |
|
149 |
]. |
|
150 |
||
151 |
"/ these all sound similar - so they should get the same code |
|
152 |
#( |
|
153 |
'schmidt' |
|
154 |
'schmid' |
|
155 |
'schmit' |
|
156 |
'schmidtt' |
|
157 |
'schmidd' |
|
158 |
) do:[:each | |
|
159 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '862'). |
|
160 |
]. |
|
161 |
||
162 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schneider') = '8627'). |
|
163 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'sneider') = '8627'). |
|
164 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'shneider') = '8627'). |
|
165 |
||
166 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'fischer') = '387'). |
|
167 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'weber') = '317'). |
|
168 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'webber') = '317'). |
|
169 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'weeber') = '317'). |
|
170 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'wehber') = '317'). |
|
171 |
||
172 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'meyer') = '67'). |
|
173 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'mayer') = '67'). |
|
174 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'meier') = '67'). |
|
175 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'maier') = '67'). |
|
176 |
||
177 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'wagner') = '3467'). |
|
178 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'vagner') = '3467'). |
|
179 |
||
180 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schulz') = '858'). |
|
181 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schultz') = '858'). |
|
182 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schults') = '858'). |
|
183 |
||
184 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'becker') = '147'). |
|
185 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hoffmann') = '036'). |
|
186 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hofmann') = '036'). |
|
187 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hovmann') = '036'). |
|
188 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hovman') = '036'). |
|
189 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schäfer') = '837'). |
|
190 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schäffer') = '837'). |
|
191 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schaeffer') = '837'). |
|
192 |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schaefer') = '837'). |
|
193 |
||
194 |
"Created: / 28-07-2017 / 09:36:16 / cg" |
|
532 | 195 |
! ! |
196 |
||
197 |
!KoelnerPhoneticCodeStringComparatorTest class methodsFor:'documentation'! |
|
198 |
||
199 |
version |
|
200 |
^ '$Header$' |
|
201 |
! ! |
|
896
bf7016d7ffd2
class: RegressionTests::KoelnerPhoneticCodeStringComparatorTest
Stefan Vogel <sv@exept.de>
parents:
540
diff
changeset
|
202 |