"{ Package: 'stx:goodies/regression' }"
"{ NameSpace: RegressionTests }"
TestCase subclass:#KoelnerPhoneticCodeStringComparatorTest
instanceVariableNames:'sc'
classVariableNames:''
poolDictionaries:''
category:'tests-Regression-Collections-Utilities'
!
!KoelnerPhoneticCodeStringComparatorTest methodsFor:'initialize / release'!
setUp
sc := PhoneticStringUtilities::KoelnerPhoneticCodeStringComparator new
! !
!KoelnerPhoneticCodeStringComparatorTest methodsFor:'tests'!
test01_SomeCombinations
"tests if all character combinations (up to 4 chars) are handled"
|code s|
"/ self skip:'this test does not really test anything (except if all 4-char string combinations can be soundexed)'.
$A to:$Z do:[:c1 |
s := String with:c1.
code := (sc phoneticStringsFor:s) first.
"/ self assert:( code notEmpty ).
$A to:$Z do:[:c2 |
s := String with:c1 with:c2.
code := (sc phoneticStringsFor:s) first.
"/ self assert:( code notEmpty ).
$A to:$Z do:[:c3 |
s := String with:c1 with:c2 with:c3.
code := (sc phoneticStringsFor:s) first.
"/ self assert:( code notEmpty ).
$A to:$Z do:[:c4 |
s := String with:c1 with:c2 with:c3 with:c4.
code := (sc phoneticStringsFor:s) first.
"/ self assert:( code notEmpty ).
].
].
].
].
"Created: / 28-07-2017 / 09:21:39 / cg"
"Modified: / 29-07-2017 / 14:17:56 / cg"
!
test02_WellKnownResults
|code koeln|
koeln := [:w | (sc phoneticStringsFor:w) first].
code := (sc phoneticStringsFor:'Miller') first.
self assert:( code = 'Miller' asKoelnerPhoneticCode).
#( 'Acton' 'Ashdown' 'Ashton' 'Astin' 'Aston' 'Austen' 'Austin' 'Austine' 'Axten')
do:[:w |
code := koeln value:(w).
self assert:( code = (w asKoelnerPhoneticCode)).
].
#( 'Reader' 'Reeder' 'Rider' 'Ritter' 'Rothera' 'Rothra' 'Ruder' 'Rutter' 'Ryder')
do:[:w |
code := koeln value:(w).
self assert:( code = (w asKoelnerPhoneticCode)).
].
#( 'Wace' 'Waugh' 'Wookey')
do:[:w |
code := koeln value:(w).
self assert:( code = (w asKoelnerPhoneticCode)).
].
code := koeln value:('Abbot').
self assert:( code = 'Abbot' asKoelnerPhoneticCode).
code := koeln value:('Abbots').
self assert:( code = 'Abbots' asKoelnerPhoneticCode).
code := koeln value:('Ashcroft').
self assert:( code = 'Ashcroft' asKoelnerPhoneticCode).
code := koeln value:('Lloyd').
self assert:( code = 'Lloyd' asKoelnerPhoneticCode).
code := koeln value:('Pfister').
self assert:( code = 'Pfister' asKoelnerPhoneticCode).
self assert: ( koeln value:( 'A' )) = ('A' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'B' )) = ('B' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'C' )) = ('C' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'D' )) = ('D' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'E' )) = ('E' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'F' )) = ('F' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'G' )) = ('G' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'H' )) = ('H' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'I' )) = ('I' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'J' )) = ('J' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'K' )) = ('K' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'L' )) = ('L' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'M' )) = ('M' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'N' )) = ('N' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'O' )) = ('O' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'P' )) = ('P' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'Q' )) = ('Q' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'R' )) = ('R' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'S' )) = ('S' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'T' )) = ('T' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'U' )) = ('U' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'V' )) = ('V' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'W' )) = ('W' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'X' )) = ('X' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'Y' )) = ('Y' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'Z' )) = ('Z' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'AEHIOW' )) = ('AEHIOW' asKoelnerPhoneticCode) .
self assert: ( koeln value:( 'BPFV' )) = ('BPFV' asKoelnerPhoneticCode).
self assert: ( koeln value:( 'CGJKQSXZ' )) = ('CGJKQSXZ' asKoelnerPhoneticCode).
self assert: ( koeln value:( 'DT' )) = ('DT' asKoelnerPhoneticCode).
self assert: ( koeln value:( 'L' )) = ('L' asKoelnerPhoneticCode).
self assert: ( koeln value:( 'MN' )) = ('MN' asKoelnerPhoneticCode).
self assert: ( koeln value:( 'R' )) = ('R' asKoelnerPhoneticCode).
"Created: / 28-07-2017 / 09:21:47 / cg"
!
test03_WellKnownResults
|code|
code := PhoneticStringUtilities koelnerPhoneticCodeOf:'Breschnew'.
self assert:(code = '17863').
"/ these all sound similar - so they should get the same code
#(
'Breschnew'
'Breschneff'
'Braeschneff'
'Braessneff'
'Pressneff'
'Presznäph'
'Präschnäf'
) do:[:each |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '17863').
].
"/ these all sound similar - so they should get the same code
#(
'müller'
'mueller'
'Mueller'
'Muehler'
'Mueler'
'Müler'
'Mühler'
'Mühlher'
'Mühlherr'
'Mülherr'
'Müllherr'
'Mülleer'
'Mülar'
'Muelherr'
'Muelar'
'möller'
'miller'
'muller'
'muler'
'myler'
'mylar'
'myller'
'myller'
'nyller'
'nüller'
'niller'
) do:[:each |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '657').
].
"/ these all sound similar - so they should get the same code
#(
'schmidt'
'schmid'
'schmit'
'schmidtt'
'schmidd'
) do:[:each |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '862').
].
"/ these all sound similar - so they should get the same code
#(
'schneider'
'sneider'
'shneider'
'schneiter'
'schneitar'
) do:[:each |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '8627').
].
"/ these all sound similar - so they should get the same code
#(
'weber'
'webber'
'weeber'
'wehber'
'weper'
'wepper'
'weppar'
) do:[:each |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '317').
].
"/ these all sound similar - so they should get the same code
#(
'meyer'
'mayer'
'meier'
'maier'
'maiar'
'meiar'
'meyar'
'meyer'
) do:[:each |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '67').
].
#(
'Czerny'
'Tscherny'
'Czernie'
'Tschernie'
'Schernie'
'Scherny'
'Scherno'
'Czerne'
'Zerny'
'Zerne'
'Zerni'
'cerni'
'tscherni'
'tserni'
'serni'
'Tzernie'
'Tzernie'
) do:[:each |
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:each) = '876').
].
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'fischer') = '387').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'wagner') = '3467').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'vagner') = '3467').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schulz') = '858').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schultz') = '858').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schults') = '858').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'becker') = '147').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hoffmann') = '036').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hofmann') = '036').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hovmann') = '036').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'hovman') = '036').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schäfer') = '837').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schäffer') = '837').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schaeffer') = '837').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'schaefer') = '837').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'Müller-Lüdenscheidt') = '65752682').
self assert:((PhoneticStringUtilities koelnerPhoneticCodeOf:'Mueller-Litenscheidt') = '65752682').
"Created: / 28-07-2017 / 09:36:16 / cg"
! !
!KoelnerPhoneticCodeStringComparatorTest class methodsFor:'documentation'!
version
^ '$Header$'
!
version_CVS
^ '$Header$'
! !