RegressionTests__SoundexStringComparatorTest.st
changeset 1447 2351db93aa5b
parent 1416 da56fb6f9624
child 1500 d406a10b2965
child 1650 1c57e4ea22ce
equal deleted inserted replaced
1446:c3b09cef9f87 1447:2351db93aa5b
     1 "{ Package: 'exept:regression' }"
     1 "{ Package: 'stx:goodies/regression' }"
     2 
     2 
     3 "{ NameSpace: RegressionTests }"
     3 "{ NameSpace: RegressionTests }"
     4 
     4 
     5 TestCase subclass:#SoundexStringComparatorTest
     5 TestCase subclass:#SoundexStringComparatorTest
     6 	instanceVariableNames:'sc'
     6 	instanceVariableNames:'sc'
    19 !SoundexStringComparatorTest methodsFor:'tests'!
    19 !SoundexStringComparatorTest methodsFor:'tests'!
    20 
    20 
    21 testSomeCombinations
    21 testSomeCombinations
    22     |code s|
    22     |code s|
    23 
    23 
    24     "/ compares all 4-char combinations against 
    24     "/ compares all 4-char combinations against
    25     $A to:$Z do:[:c1 |
    25     $A to:$Z do:[:c1 |
    26         $A to:$Z do:[:c2 |
    26 	$A to:$Z do:[:c2 |
    27             $A to:$Z do:[:c3 |
    27 	    $A to:$Z do:[:c3 |
    28                 $A to:$Z do:[:c4 |
    28 		$A to:$Z do:[:c4 |
    29                     s := String with:c1 with:c2 with:c3 with:c4.
    29 		    s := String with:c1 with:c2 with:c3 with:c4.
    30                     code := (sc phoneticStringsFor:s) first.
    30 		    code := (sc phoneticStringsFor:s) first.
    31                     self assert:( code = s asSoundexCode).
    31 		    self assert:( code = s asSoundexCode).
    32                 ].
    32 		].
    33             ].
    33 	    ].
    34         ].
    34 	].
    35     ].
    35     ].
    36 !
    36 !
    37 
    37 
    38 testWellKnownResults
    38 testWellKnownResults
    39     |code soundex|
    39     |code soundex|
    45     code := (sc phoneticStringsFor:'Miller') first.
    45     code := (sc phoneticStringsFor:'Miller') first.
    46     self assert:( code = 'Miller' asSoundexCode).
    46     self assert:( code = 'Miller' asSoundexCode).
    47 
    47 
    48     #( 'Acton' 'Ashdown' 'Ashton' 'Astin' 'Aston' 'Austen' 'Austin' 'Austine' 'Axten')
    48     #( 'Acton' 'Ashdown' 'Ashton' 'Astin' 'Aston' 'Austen' 'Austin' 'Austine' 'Axten')
    49     do:[:w |
    49     do:[:w |
    50         code := soundex value:(w).
    50 	code := soundex value:(w).
    51         self assert:( code = 'A235').
    51 	self assert:( code = 'A235').
    52     ].
    52     ].
    53 
    53 
    54     #( 'Reader' 'Reeder' 'Rider' 'Ritter' 'Rothera' 'Rothra' 'Ruder' 'Rutter' 'Ryder')
    54     #( 'Reader' 'Reeder' 'Rider' 'Ritter' 'Rothera' 'Rothra' 'Ruder' 'Rutter' 'Ryder')
    55     do:[:w |
    55     do:[:w |
    56         code := soundex value:(w).
    56 	code := soundex value:(w).
    57         self assert:( code = 'R360').
    57 	self assert:( code = 'R360').
    58     ].
    58     ].
    59 
    59 
    60     #( 'Wace' 'Waugh' 'Wookey')
    60     #( 'Wace' 'Waugh' 'Wookey')
    61     do:[:w |
    61     do:[:w |
    62         code := soundex value:(w).
    62 	code := soundex value:(w).
    63         self assert:( code = 'W200').
    63 	self assert:( code = 'W200').
    64     ].
    64     ].
    65 
    65 
    66     code := soundex value:('Abbot').
    66     code := soundex value:('Abbot').
    67     self assert:( code = 'Abbot' asSoundexCode).
    67     self assert:( code = 'Abbot' asSoundexCode).
    68     self assert:( code = 'A130' ).
    68     self assert:( code = 'A130' ).
   122     self assert: ( soundex value:( 'ADHD' )) = 'A330' .  "/ DIFFERENT from miracode (american) soundex
   122     self assert: ( soundex value:( 'ADHD' )) = 'A330' .  "/ DIFFERENT from miracode (american) soundex
   123     self assert: ( soundex value:( 'ADWD' )) = 'A330' .  "/ DIFFERENT from miracode (american) soundex
   123     self assert: ( soundex value:( 'ADWD' )) = 'A330' .  "/ DIFFERENT from miracode (american) soundex
   124 
   124 
   125     "/ self assert: ( soundex value:( 'Ashcroft' )) = 'A22613' .
   125     "/ self assert: ( soundex value:( 'Ashcroft' )) = 'A22613' .
   126     self assert: ( soundex value:( 'Ashcroft' )) = 'A226' .
   126     self assert: ( soundex value:( 'Ashcroft' )) = 'A226' .
   127     self assert: ( soundex value:( 'Tymczak' )) = 'T522' . 
   127     self assert: ( soundex value:( 'Tymczak' )) = 'T522' .
   128     self assert: ( soundex value:( 'Jackson' )) = 'J250' . 
   128     self assert: ( soundex value:( 'Jackson' )) = 'J250' .
   129     self assert: ( soundex value:( 'Pfister' )) = 'P236' . 
   129     self assert: ( soundex value:( 'Pfister' )) = 'P236' .
   130     self assert: ( soundex value:( 'Gutierrez' )) = 'G362' . 
   130     self assert: ( soundex value:( 'Gutierrez' )) = 'G362' .
   131     self assert: ( soundex value:( 'Lee' )) = 'L000' . 
   131     self assert: ( soundex value:( 'Lee' )) = 'L000' .
   132     "/ self assert: ( soundex value:( 'Washington' )) = 'W25235' . 
   132     "/ self assert: ( soundex value:( 'Washington' )) = 'W25235' .
   133     self assert: ( soundex value:( 'Washington' )) = 'W252' . 
   133     self assert: ( soundex value:( 'Washington' )) = 'W252' .
   134 
   134 
   135     self assert: ( soundex value:( 'Williams' )) = 'W452' . 
   135     self assert: ( soundex value:( 'Williams' )) = 'W452' .
   136     "/ self assert: ( soundex value:( 'Baragwanath' )) = 'B6253' . 
   136     "/ self assert: ( soundex value:( 'Baragwanath' )) = 'B6253' .
   137     self assert: ( soundex value:( 'Baragwanath' )) = 'B625' . 
   137     self assert: ( soundex value:( 'Baragwanath' )) = 'B625' .
   138     self assert: ( soundex value:( 'Donnell' )) = 'D540' . 
   138     self assert: ( soundex value:( 'Donnell' )) = 'D540' .
   139     self assert: ( soundex value:( 'Lloyd' )) = 'L300' . 
   139     self assert: ( soundex value:( 'Lloyd' )) = 'L300' .
   140     self assert: ( soundex value:( 'Woolcock' )) = 'W422' .
   140     self assert: ( soundex value:( 'Woolcock' )) = 'W422' .
   141 
   141 
   142     self assert: ( soundex value:( 'Cook' )) = 'C200' .
   142     self assert: ( soundex value:( 'Cook' )) = 'C200' .
   143 
   143 
   144     self assert: ( soundex value:( 'Allricht' )) = 'A462' .
   144     self assert: ( soundex value:( 'Allricht' )) = 'A462' .