RegressionTests__DoubleMetaphoneStringComparatorTest.st
changeset 527 e6aa736ec741
child 537 170f51d1a2b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RegressionTests__DoubleMetaphoneStringComparatorTest.st	Tue Aug 11 16:38:35 2009 +0200
@@ -0,0 +1,2435 @@
+"{ Package: 'exept:regression' }"
+
+TestCase subclass:#DoubleMetaphoneStringComparatorTest
+	instanceVariableNames:'dmsc'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Collections-Text-Support'
+!
+
+DoubleMetaphoneStringComparatorTest comment:'Tests for the DoubleMetaphoneStringComparator class.'
+!
+
+
+!DoubleMetaphoneStringComparatorTest methodsFor:'running'!
+
+setUp
+
+        dmsc := PhoneticStringUtilities::DoubleMetaphoneStringComparator new
+! !
+
+!DoubleMetaphoneStringComparatorTest methodsFor:'tests'!
+
+testKeyMidStringFrom
+	dmsc inputKey: 'A string of characters'.
+
+	self should: [ (dmsc keyMidString: 3 from: 0) = ' A ' ].
+	self should: [ (dmsc keyMidString: 5 from: 7) = 'NG OF' ].
+	self should: [ (dmsc keyMidString: 4 from: 21) = 'RS  ' ].
+!
+
+testPerformInitialProcessing1
+	dmsc inputKey: 'gneiss'.
+	self should: [ dmsc inputKey = 'GNEISS' ].
+
+	self should: [ dmsc startIndex = 1 ].
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ (dmsc inputKey at: dmsc startIndex) = $G ].
+
+	dmsc performInitialProcessing.
+
+	self should: [ dmsc startIndex = 2 ].
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ (dmsc inputKey at: dmsc startIndex) = $N ].
+!
+
+testPerformInitialProcessing2
+	dmsc inputKey: 'zneiss'.
+	self should: [ dmsc inputKey = 'ZNEISS' ].
+
+	self should: [ dmsc startIndex = 1 ].
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ (dmsc inputKey at: dmsc startIndex) = $Z ].
+
+	dmsc performInitialProcessing.
+
+	self should: [ dmsc startIndex = 1 ].
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ (dmsc inputKey at: dmsc startIndex) = $Z ].
+!
+
+testPerformInitialProcessing3
+	dmsc inputKey: 'xAvIeR'.
+	self should: [ dmsc inputKey = 'XAVIER' ].
+
+	self should: [ dmsc startIndex = 1 ].
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ (dmsc inputKey at: dmsc startIndex) = $X ].
+
+	dmsc performInitialProcessing.
+
+	self should: [ dmsc startIndex = 2 ].
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ (dmsc inputKey at: dmsc startIndex) = $A ].
+!
+
+testPerformInitialProcessing4
+	dmsc inputKey: 'etaoinshrdlu'.
+	self should: [ dmsc inputKey = 'ETAOINSHRDLU' ].
+
+	self should: [ dmsc startIndex = 1 ].
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ (dmsc inputKey at: dmsc startIndex) = $E ].
+
+	dmsc performInitialProcessing.
+
+	self should: [ dmsc startIndex = 2 ].
+	self should: [ dmsc primaryTranslation = 'A' ].
+	self should: [ dmsc secondaryTranslation = 'A' ].
+	self should: [ (dmsc inputKey at: dmsc startIndex) = $T ].
+!
+
+testProcessB1
+        dmsc inputKey: 'b'.
+        self should: [ dmsc inputKey = 'B' ].
+
+        self should: [ dmsc primaryTranslation = '' ].
+        self should: [ dmsc secondaryTranslation = '' ].
+        self should: [ dmsc skipCount = 0 ].
+
+        dmsc processB.
+
+        self should: [ dmsc primaryTranslation = 'P' ].
+        self should: [ dmsc secondaryTranslation = 'P' ].
+        self should: [ dmsc skipCount = 0 ]
+!
+
+testProcessB2
+	dmsc inputKey: 'bb'.
+	self should: [ dmsc inputKey = 'BB' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+
+	dmsc processB.
+
+	self should: [ dmsc primaryTranslation = 'P' ].
+	self should: [ dmsc secondaryTranslation = 'P' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCedille
+	dmsc inputKey: 'ç'.
+	self should: [ dmsc inputKey = 'Ç' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+
+	dmsc processCedille.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+!
+
+testProcessCi1
+	dmsc inputKey: 'zzachxx'.
+	self should: [ dmsc inputKey = 'ZZACHXX' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 2 ]
+!
+
+testProcessCii1
+	dmsc inputKey: 'caesarian'.
+	self should: [ dmsc inputKey = 'CAESARIAN' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	self should: [ dmsc currentIndex = 1 ].
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCiii1
+	dmsc inputKey: 'chianti'.
+	self should: [ dmsc inputKey = 'CHIANTI' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	self should: [ dmsc currentIndex = 1 ].
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCiva1
+	dmsc inputKey: 'michael'.
+	self should: [ dmsc inputKey = 'MICHAEL' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCivb1
+	dmsc inputKey: 'character'.
+	self should: [ dmsc inputKey = 'CHARACTER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	self should: [ dmsc currentIndex = 1 ].
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCivb2
+	dmsc inputKey: 'chymerae'.
+	self should: [ dmsc inputKey = 'CHYMERAE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	self should: [ dmsc currentIndex = 1 ].
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCivc1
+	dmsc inputKey: 'chymerae'.
+	self should: [ dmsc inputKey = 'CHYMERAE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	self should: [ dmsc currentIndex = 1 ].
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCivc2
+	dmsc inputKey: 'orchestral'.
+	self should: [ dmsc inputKey = 'ORCHESTRAL' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCivc3
+	dmsc inputKey: 'mchugh'.
+	self should: [ dmsc inputKey = 'MCHUGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCivc4
+	dmsc inputKey: 'xchugh'.
+	self should: [ dmsc inputKey = 'XCHUGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCivc5
+	dmsc inputKey: 'chugh'.
+	self should: [ dmsc inputKey = 'CHUGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCix1
+	dmsc inputKey: 'macgregor'.
+	self should: [ dmsc inputKey = 'MACGREGOR' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCix2
+	dmsc inputKey: 'zzzzcizzz'.
+	self should: [ dmsc inputKey = 'ZZZZCIZZZ' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCv1
+	dmsc inputKey: 'czarina'.
+	self should: [ dmsc inputKey = 'CZARINA' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCvi1
+	dmsc inputKey: 'focaccia'.
+	self should: [ dmsc inputKey = 'FOCACCIA' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 2 ]
+!
+
+testProcessCvii11
+	dmsc inputKey: 'accept'.
+	self should: [ dmsc inputKey = 'ACCEPT' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'KS' ].
+	self should: [ dmsc secondaryTranslation = 'KS' ].
+	self should: [ dmsc skipCount = 2 ]
+!
+
+testProcessCvii12
+	dmsc inputKey: 'succeed'.
+	self should: [ dmsc inputKey = 'SUCCEED' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'KS' ].
+	self should: [ dmsc secondaryTranslation = 'KS' ].
+	self should: [ dmsc skipCount = 2 ]
+!
+
+testProcessCvii2
+	dmsc inputKey: 'accord'.
+	self should: [ dmsc inputKey = 'ACCORD' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 2 ]
+!
+
+testProcessCviii1
+	dmsc inputKey: 'trucking'.
+	self should: [ dmsc inputKey = 'TRUCKING' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCviii2
+	dmsc inputKey: 'acquire'.
+	self should: [ dmsc inputKey = 'ACQUIRE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCviii3
+	dmsc inputKey: 'macgregor'.
+	self should: [ dmsc inputKey = 'MACGREGOR' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ]
+!
+
+testProcessCx1
+	dmsc inputKey: 'abcdefg'.
+	self should: [ dmsc inputKey = 'ABCDEFG' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 0 ]
+!
+
+testProcessCx1a
+	dmsc inputKey: 'abcdefg'.
+	self should: [ dmsc inputKey = 'ABCDEFG' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processC.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 0 ]
+!
+
+testProcessD1
+	dmsc inputKey: 'edge'.
+	self should: [ dmsc inputKey = 'EDGE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processD.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessD2
+	dmsc inputKey: 'edgar'.
+	self should: [ dmsc inputKey = 'EDGAR' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processD.
+
+	self should: [ dmsc primaryTranslation = 'TK' ].
+	self should: [ dmsc secondaryTranslation = 'TK' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessD3
+	dmsc inputKey: 'ludt'.
+	self should: [ dmsc inputKey = 'LUDT' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processD.
+
+	self should: [ dmsc primaryTranslation = 'T' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessD4
+	dmsc inputKey: 'lud'.
+	self should: [ dmsc inputKey = 'LUD' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processD.
+
+	self should: [ dmsc primaryTranslation = 'T' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessF1
+
+	dmsc inputKey: 'felt'.
+	self should: [ dmsc inputKey = 'FELT' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processF.
+
+	self should: [ dmsc primaryTranslation = 'F' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessF2
+	dmsc inputKey: 'affenpinscher'.
+	self should: [ dmsc inputKey = 'AFFENPINSCHER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processF.
+
+	self should: [ dmsc primaryTranslation = 'F' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG
+	dmsc inputKey: 'bgh'.
+	self should: [ dmsc inputKey = 'BGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG1
+	dmsc inputKey: 'ghi'.
+	self should: [ dmsc inputKey = 'GHI' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG2
+	dmsc inputKey: 'ghr'.
+	self should: [ dmsc inputKey = 'GHR' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG3
+	dmsc inputKey: 'hugh'.
+	self should: [ dmsc inputKey = 'HUGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG4
+	dmsc inputKey: 'bough'.
+	self should: [ dmsc inputKey = 'BOUGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG5
+	dmsc inputKey: 'laugh'.
+	self should: [ dmsc inputKey = 'LAUGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'F' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG6
+	dmsc inputKey: 'McLaughlin'.
+	self should: [ dmsc inputKey = 'MCLAUGHLIN' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'F' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG7
+	dmsc inputKey: 'cough'.
+	self should: [ dmsc inputKey = 'COUGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'F' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG8
+	dmsc inputKey: 'langh'.
+	self should: [ dmsc inputKey = 'LANGH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessG9
+	dmsc inputKey: 'agneiss'.
+	self should: [ dmsc inputKey = 'AGNEISS' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'KN' ].
+	self should: [ dmsc secondaryTranslation = 'N' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa1
+	dmsc inputKey: 'nignd'.
+	self should: [ dmsc inputKey = 'NIGND' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'N' ].
+	self should: [ dmsc secondaryTranslation = 'KN' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa2
+	dmsc inputKey: 'cagney'.
+	self should: [ dmsc inputKey = 'CAGNEY' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'KN' ].
+	self should: [ dmsc secondaryTranslation = 'KN' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa3
+	dmsc inputKey: 'tagliaro'.
+	self should: [ dmsc inputKey = 'TAGLIARO' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'KL' ].
+	self should: [ dmsc secondaryTranslation = 'L' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa4
+	dmsc inputKey: 'GY'.
+	self should: [ dmsc inputKey = 'GY' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa5
+	dmsc inputKey: 'GES'.
+	self should: [ dmsc inputKey = 'GES' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa6
+	dmsc inputKey: 'GEP'.
+	self should: [ dmsc inputKey = 'GEP' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa7
+	dmsc inputKey: 'GEB'.
+	self should: [ dmsc inputKey = 'GEB' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa8
+	dmsc inputKey: 'GEL'.
+	self should: [ dmsc inputKey = 'GEL' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGa9
+	dmsc inputKey: 'GEY'.
+	self should: [ dmsc inputKey = 'GEY' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb2
+	dmsc inputKey: 'gil'.
+	self should: [ dmsc inputKey = 'GIL' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb3
+	dmsc inputKey: 'gin'.
+	self should: [ dmsc inputKey = 'GIN' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb4
+	dmsc inputKey: 'gei'.
+	self should: [ dmsc inputKey = 'GEI' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb4a
+	dmsc inputKey: 'gie'.
+	self should: [ dmsc inputKey = 'GIE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb5
+	dmsc inputKey: 'ger'.
+	self should: [ dmsc inputKey = 'GER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb6
+	dmsc inputKey: 'nger'.
+	self should: [ dmsc inputKey = 'NGER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb7
+	dmsc inputKey: 'danger'.
+	self should: [ dmsc inputKey = 'DANGER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb8
+	dmsc inputKey: 'biaggi'.
+	self should: [ dmsc inputKey = 'BIAGGI' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGb9
+	dmsc inputKey: 'von biaggi'.
+	self should: [ dmsc inputKey = 'VON BIAGGI' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 8.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGc1
+	dmsc inputKey: 'biagier'.
+	self should: [ dmsc inputKey = 'BIAGIER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGc2
+	dmsc inputKey: 'bigger'.
+	self should: [ dmsc inputKey = 'BIGGER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessGc3
+	dmsc inputKey: 'grass'.
+	self should: [ dmsc inputKey = 'GRASS' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processG.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessH
+	dmsc inputKey: 'Hannah'.
+	self should: [ dmsc inputKey = 'HANNAH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processH.
+
+	self should: [ dmsc primaryTranslation = 'H' ].
+	self should: [ dmsc secondaryTranslation = 'H' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessH2
+	dmsc inputKey: 'aha'.
+	self should: [ dmsc inputKey = 'AHA' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processH.
+
+	self should: [ dmsc primaryTranslation = 'H' ].
+	self should: [ dmsc secondaryTranslation = 'H' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessH3
+	dmsc inputKey: 'doah'.
+	self should: [ dmsc inputKey = 'DOAH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processH.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessJ
+	dmsc inputKey: 'jose'.
+	self should: [ dmsc inputKey = 'JOSE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processJ.
+
+	self should: [ dmsc primaryTranslation = 'H' ].
+	self should: [ dmsc secondaryTranslation = 'H' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessJ1
+	dmsc inputKey: 'san jacinto'.
+	self should: [ dmsc inputKey = 'SAN JACINTO' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processJ.
+
+	self should: [ dmsc primaryTranslation = 'H' ].
+	self should: [ dmsc secondaryTranslation = 'H' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessJ2
+	dmsc inputKey: 'Jankelowicz'.
+	self should: [ dmsc inputKey = 'JANKELOWICZ' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processJ.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'A' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessJ3
+	dmsc inputKey: 'bajador'.
+	self should: [ dmsc inputKey = 'BAJADOR' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processJ.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'H' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessJ4
+	dmsc inputKey: 'borj'.
+	self should: [ dmsc inputKey = 'BORJ' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processJ.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = ' ' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessJ5
+	dmsc inputKey: 'bjl'.
+	self should: [ dmsc inputKey = 'BJL' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processJ.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessJ6
+	dmsc inputKey: 'bjC'.
+	self should: [ dmsc inputKey = 'BJC' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processJ.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessJ7
+	dmsc inputKey: 'bjj'.
+	self should: [ dmsc inputKey = 'BJJ' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processJ.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessK
+	dmsc inputKey: 'talk'.
+	self should: [ dmsc inputKey = 'TALK' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processK.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessK1
+	dmsc inputKey: 'talkk'.
+	self should: [ dmsc inputKey = 'TALKK' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processK.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessL
+	dmsc inputKey: 'llamma'.
+	self should: [ dmsc inputKey = 'LLAMMA' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processL.
+
+	self should: [ dmsc primaryTranslation = 'L' ].
+	self should: [ dmsc secondaryTranslation = 'L' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessL1
+	dmsc inputKey: 'camilla'.
+	self should: [ dmsc inputKey = 'CAMILLA' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processL.
+
+	self should: [ dmsc primaryTranslation = 'L' ].
+	self should: [ dmsc secondaryTranslation = ' ' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessL2
+	dmsc inputKey: 'cabrillo'.
+	self should: [ dmsc inputKey = 'CABRILLO' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processL.
+
+	self should: [ dmsc primaryTranslation = 'L' ].
+	self should: [ dmsc secondaryTranslation = ' ' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessL3
+	dmsc inputKey: 'lisa'.
+	self should: [ dmsc inputKey = 'LISA' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processL.
+
+	self should: [ dmsc primaryTranslation = 'L' ].
+	self should: [ dmsc secondaryTranslation = 'L' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessM
+	dmsc inputKey: 'dumb'.
+	self should: [ dmsc inputKey = 'DUMB' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processM.
+
+	self should: [ dmsc primaryTranslation = 'M' ].
+	self should: [ dmsc secondaryTranslation = 'M' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessM1
+	dmsc inputKey: 'thumb'.
+	self should: [ dmsc inputKey = 'THUMB' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processM.
+
+	self should: [ dmsc primaryTranslation = 'M' ].
+	self should: [ dmsc secondaryTranslation = 'M' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessM2
+	dmsc inputKey: 'mmum'.
+	self should: [ dmsc inputKey = 'MMUM' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processM.
+
+	self should: [ dmsc primaryTranslation = 'M' ].
+	self should: [ dmsc secondaryTranslation = 'M' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessM3
+	dmsc inputKey: 'mom'.
+	self should: [ dmsc inputKey = 'MOM' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processM.
+
+	self should: [ dmsc primaryTranslation = 'M' ].
+	self should: [ dmsc secondaryTranslation = 'M' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessN
+	dmsc inputKey: 'tin'.
+	self should: [ dmsc inputKey = 'TIN' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processN.
+
+	self should: [ dmsc primaryTranslation = 'N' ].
+	self should: [ dmsc secondaryTranslation = 'N' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessN1
+	dmsc inputKey: 'TINN'.
+	self should: [ dmsc inputKey = 'TINN' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processN.
+
+	self should: [ dmsc primaryTranslation = 'N' ].
+	self should: [ dmsc secondaryTranslation = 'N' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessNtilde
+        dmsc inputKey: 'Naña'.
+        self should: [ dmsc inputKey = 'NAÑA' ].
+
+        self should: [ dmsc primaryTranslation = '' ].
+        self should: [ dmsc secondaryTranslation = '' ].
+        self should: [ dmsc skipCount = 0 ].
+        dmsc currentIndex: 3.
+
+        dmsc processNtilde.
+
+        self should: [ dmsc primaryTranslation = 'N' ].
+        self should: [ dmsc secondaryTranslation = 'N' ].
+        self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessP
+	dmsc inputKey: 'phone'.
+	self should: [ dmsc inputKey = 'PHONE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processP.
+
+	self should: [ dmsc primaryTranslation = 'F' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessP1
+	dmsc inputKey: 'campbell'.
+	self should: [ dmsc inputKey = 'CAMPBELL' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 4.
+
+	dmsc processP.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessP2
+	dmsc inputKey: 'peanut'.
+	self should: [ dmsc inputKey = 'PEANUT' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processP.
+
+	self should: [ dmsc primaryTranslation = 'P' ].
+	self should: [ dmsc secondaryTranslation = 'P' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessQ
+	dmsc inputKey: 'quiet'.
+	self should: [ dmsc inputKey = 'QUIET' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processQ.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessQ1
+	dmsc inputKey: 'qquiet'.
+	self should: [ dmsc inputKey = 'QQUIET' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processQ.
+
+	self should: [ dmsc primaryTranslation = 'K' ].
+	self should: [ dmsc secondaryTranslation = 'K' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessR
+	dmsc inputKey: 'rogier'.
+	self should: [ dmsc inputKey = 'ROGIER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processR.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = 'R' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessR1
+	dmsc inputKey: 'hochmeier'.
+	self should: [ dmsc inputKey = 'HOCHMEIER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 9.
+
+	dmsc processR.
+
+	self should: [ dmsc primaryTranslation = 'R' ].
+	self should: [ dmsc secondaryTranslation = 'R' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessR2
+	dmsc inputKey: 'french'.
+	self should: [ dmsc inputKey = 'FRENCH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processR.
+
+	self should: [ dmsc primaryTranslation = 'R' ].
+	self should: [ dmsc secondaryTranslation = 'R' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessR3
+	dmsc inputKey: 'frrench'.
+	self should: [ dmsc inputKey = 'FRRENCH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processR.
+
+	self should: [ dmsc primaryTranslation = 'R' ].
+	self should: [ dmsc secondaryTranslation = 'R' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessS
+	dmsc inputKey: 'island'.
+	self should: [ dmsc inputKey = 'ISLAND' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessS1
+	dmsc inputKey: 'isle'.
+	self should: [ dmsc inputKey = 'ISLE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 2.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessS2
+	dmsc inputKey: 'carlisle'.
+	self should: [ dmsc inputKey = 'CARLISLE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessS3
+	dmsc inputKey: 'carlysle'.
+	self should: [ dmsc inputKey = 'CARLYSLE' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessS4
+	dmsc inputKey: 'sugar'.
+	self should: [ dmsc inputKey = 'SUGAR' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessS5
+	dmsc inputKey: 'sheim'.
+	self should: [ dmsc inputKey = 'SHEIM' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessS6
+	dmsc inputKey: 'shook'.
+	self should: [ dmsc inputKey = 'SHOOK' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessS7
+	dmsc inputKey: 'sio'.
+	self should: [ dmsc inputKey = 'SIO' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessS8
+	dmsc inputKey: 'sian'.
+	self should: [ dmsc inputKey = 'SIAN' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessS9
+	dmsc inputKey: 'siowitz'.
+	self should: [ dmsc inputKey = 'SIOWITZ' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessSa1
+	dmsc inputKey: 'smith'.
+	self should: [ dmsc inputKey = 'SMITH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessSa2
+	dmsc inputKey: 'snider'.
+	self should: [ dmsc inputKey = 'SNIDER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessSa3
+	dmsc inputKey: 'szan'.
+	self should: [ dmsc inputKey = 'SZAN' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessSa4
+	dmsc inputKey: 'school'.
+	self should: [ dmsc inputKey = 'SCHOOL' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'SK' ].
+	self should: [ dmsc secondaryTranslation = 'SK' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessSa5
+	dmsc inputKey: 'schenker'.
+	self should: [ dmsc inputKey = 'SCHENKER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'SK' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessSa6
+	dmsc inputKey: 'schank'.
+	self should: [ dmsc inputKey = 'SCHANK' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessSa7
+	dmsc inputKey: 'schbnk'.
+	self should: [ dmsc inputKey = 'SCHBNK' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessSa8
+	dmsc inputKey: 'schwnk'.
+	self should: [ dmsc inputKey = 'SCHWNK' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessSa9
+	dmsc inputKey: 'scewnk'.
+	self should: [ dmsc inputKey = 'SCEWNK' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessSb1
+	dmsc inputKey: 'scawnk'.
+	self should: [ dmsc inputKey = 'SCAWNK' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'SK' ].
+	self should: [ dmsc secondaryTranslation = 'SK' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessSb2
+	dmsc inputKey: 'resnais'.
+	self should: [ dmsc inputKey = 'RESNAIS' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 7.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessSb3
+	dmsc inputKey: 'resnas'.
+	self should: [ dmsc inputKey = 'RESNAS' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessSb4
+	dmsc inputKey: 'resnass'.
+	self should: [ dmsc inputKey = 'RESNASS' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processS.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessT1
+	dmsc inputKey: 'action'.
+	self should: [ dmsc inputKey = 'ACTION' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessT2
+	dmsc inputKey: 'actia'.
+	self should: [ dmsc inputKey = 'ACTIA' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessT3
+	dmsc inputKey: 'actch'.
+	self should: [ dmsc inputKey = 'ACTCH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'X' ].
+	self should: [ dmsc secondaryTranslation = 'X' ].
+	self should: [ dmsc skipCount = 2 ].
+!
+
+testProcessT4
+	dmsc inputKey: 'thomas'.
+	self should: [ dmsc inputKey = 'THOMAS' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'T' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessT5
+	dmsc inputKey: 'thames'.
+	self should: [ dmsc inputKey = 'THAMES' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'T' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessT6
+	dmsc inputKey: 'von thrapp'.
+	self should: [ dmsc inputKey = 'VON THRAPP' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'T' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessT7
+	dmsc inputKey: 'schrthop'.
+	self should: [ dmsc inputKey = 'SCHRTHOP' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'T' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessT8
+	dmsc inputKey: 'thrap'.
+	self should: [ dmsc inputKey = 'THRAP' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = '0' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessT9
+	dmsc inputKey: 'ttrump'.
+	self should: [ dmsc inputKey = 'TTRUMP' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'T' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessTa1
+	dmsc inputKey: 'trump'.
+	self should: [ dmsc inputKey = 'TRUMP' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processT.
+
+	self should: [ dmsc primaryTranslation = 'T' ].
+	self should: [ dmsc secondaryTranslation = 'T' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessV
+	dmsc inputKey: 'violet'.
+	self should: [ dmsc inputKey = 'VIOLET' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processV.
+
+	self should: [ dmsc primaryTranslation = 'F' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessV1
+	dmsc inputKey: 'vviolet'.
+	self should: [ dmsc inputKey = 'VVIOLET' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processV.
+
+	self should: [ dmsc primaryTranslation = 'F' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessW
+	dmsc inputKey: 'wreath'.
+	self should: [ dmsc inputKey = 'WREATH' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processW.
+
+	self should: [ dmsc primaryTranslation = 'R' ].
+	self should: [ dmsc secondaryTranslation = 'R' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessW1
+	dmsc inputKey: 'water'.
+	self should: [ dmsc inputKey = 'WATER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processW.
+
+	self should: [ dmsc primaryTranslation = 'A' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessW2
+	dmsc inputKey: 'whether'.
+	self should: [ dmsc inputKey = 'WHETHER' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processW.
+
+	self should: [ dmsc primaryTranslation = 'A' ].
+	self should: [ dmsc secondaryTranslation = 'A' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessW3
+	dmsc inputKey: 'Arnow'.
+	self should: [ dmsc inputKey = 'ARNOW' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processW.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessW4
+	dmsc inputKey: 'belewski'.
+	self should: [ dmsc inputKey = 'BELEWSKI' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processW.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessW5
+	dmsc inputKey: 'schewell'.
+	self should: [ dmsc inputKey = 'SCHEWELL' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processW.
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = 'F' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessW6
+	dmsc inputKey: 'filipowicz'.
+	self should: [ dmsc inputKey = 'FILIPOWICZ' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 7.
+
+	dmsc processW.
+
+	self should: [ dmsc primaryTranslation = 'TS' ].
+	self should: [ dmsc secondaryTranslation = 'FX' ].
+	self should: [ dmsc skipCount = 3 ].
+!
+
+testProcessX
+	dmsc inputKey: 'breaux'.
+	self should: [ dmsc inputKey = 'BREAUX' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processX.
+
+	self should: [ dmsc primaryTranslation = 'KS' ].
+	self should: [ dmsc secondaryTranslation = 'KS' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessX1
+	dmsc inputKey: 'bordoux'.
+	self should: [ dmsc inputKey = 'BORDOUX' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 7.
+
+	dmsc processX.
+
+	self should: [ dmsc primaryTranslation = 'KS' ].
+	self should: [ dmsc secondaryTranslation = 'KS' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessX2
+	dmsc inputKey: 'shoroxx'.
+	self should: [ dmsc inputKey = 'SHOROXX' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 6.
+
+	dmsc processX.
+
+	self should: [ dmsc primaryTranslation = 'KS' ].
+	self should: [ dmsc secondaryTranslation = 'KS' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessZ
+	dmsc inputKey: 'zhao'.
+	self should: [ dmsc inputKey = 'ZHAO' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processZ.
+
+	self should: [ dmsc primaryTranslation = 'J' ].
+	self should: [ dmsc secondaryTranslation = 'J' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessZ1
+	dmsc inputKey: 'pizza'.
+	self should: [ dmsc inputKey = 'PIZZA' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 3.
+
+	dmsc processZ.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'TS' ].
+	self should: [ dmsc skipCount = 1 ].
+!
+
+testProcessZ2
+	dmsc inputKey: 'wkicz'.
+	self should: [ dmsc inputKey = 'WKICZ' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 5.
+
+	dmsc processZ.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'TS' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessZ3
+	dmsc inputKey: 'zoo'.
+	self should: [ dmsc inputKey = 'ZOO' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processZ.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 0 ].
+!
+
+testProcessZ4
+	dmsc inputKey: 'zzyxx'.
+	self should: [ dmsc inputKey = 'ZZYXX' ].
+
+	self should: [ dmsc primaryTranslation = '' ].
+	self should: [ dmsc secondaryTranslation = '' ].
+	self should: [ dmsc skipCount = 0 ].
+	dmsc currentIndex: 1.
+
+	dmsc processZ.
+
+	self should: [ dmsc primaryTranslation = 'S' ].
+	self should: [ dmsc secondaryTranslation = 'S' ].
+	self should: [ dmsc skipCount = 1 ].
+! !
+
+!DoubleMetaphoneStringComparatorTest class methodsFor:'documentation'!
+
+version
+    ^ '$Header$'
+! !