logsui/logscntfinder/tsrc/ut_logscntfinder/src/ut_logspredictivelatin12keytranslator.cpp
changeset 21 2f0af9ba7665
parent 9 68f3171a5819
--- a/logsui/logscntfinder/tsrc/ut_logscntfinder/src/ut_logspredictivelatin12keytranslator.cpp	Fri Sep 17 16:47:32 2010 +0300
+++ b/logsui/logscntfinder/tsrc/ut_logscntfinder/src/ut_logspredictivelatin12keytranslator.cpp	Fri Oct 15 14:47:48 2010 +0300
@@ -33,8 +33,9 @@
 
 void UT_LogsPredictiveLatin12KeyTranslator::init()
 {
-    mTranslator = new LogsPredictiveLatin12KeyTranslator( 
-            HbInputSettingProxy::instance()->globalInputLanguage() );
+    mTranslator = 
+       new LogsPredictiveLatin12KeyTranslator( 
+               LogsPredictiveTranslator::currentLanguage() );
 }
 
 void UT_LogsPredictiveLatin12KeyTranslator::cleanup()
@@ -52,90 +53,90 @@
 
 void UT_LogsPredictiveLatin12KeyTranslator::testTranslateText()
 {
-    QVERIFY( mTranslator->translateText( QString( "Nokia" ) ) == QString( "66542" ) );
-    QVERIFY( mTranslator->translateText( QString( "Aarne" ) ) == QString( "22763" ) );
-    QVERIFY( mTranslator->translateText( QString( "Bertta" ) ) == QString( "237882" ) );
-    QVERIFY( mTranslator->translateText( QString( "Celsius" ) ) == QString( "2357487" ) );
-    QVERIFY( mTranslator->translateText( QString( "Daavid" ) ) == QString( "322843" ) );
-    QVERIFY( mTranslator->translateText( QString( "Eemeli" ) ) == QString( "336354" ) );
-    QVERIFY( mTranslator->translateText( QString( "Faarao" ) ) == QString( "322726" ) );
-    QVERIFY( mTranslator->translateText( QString( "Gideon" ) ) == QString( "443366" ) );
-    QVERIFY( mTranslator->translateText( QString( "Heikki" ) ) == QString( "434554" ) );
-    QVERIFY( mTranslator->translateText( QString( "Iivari" ) ) == QString( "448274" ) );
-    QVERIFY( mTranslator->translateText( QString( "Jussi" ) ) == QString( "58774" ) );
-    QVERIFY( mTranslator->translateText( QString( "Kalle" ) ) == QString( "52553" ) );
-    QVERIFY( mTranslator->translateText( QString( "Lauri" ) ) == QString( "52874" ) );
-    QVERIFY( mTranslator->translateText( QString( "Matti" ) ) == QString( "62884" ) );
-    QVERIFY( mTranslator->translateText( QString( "Niilo" ) ) == QString( "64456" ) );
-    QVERIFY( mTranslator->translateText( QString( "Otto" ) ) == QString( "6886" ) );
-    QVERIFY( mTranslator->translateText( QString( "Paavo" ) ) == QString( "72286" ) );
-    QVERIFY( mTranslator->translateText( QString( "Kuu" ) ) == QString( "588" ) );
-    QVERIFY( mTranslator->translateText( QString( "Risto" ) ) == QString( "74786" ) );
-    QVERIFY( mTranslator->translateText( QString( "Sakari" ) ) == QString( "725274" ) );
-    QVERIFY( mTranslator->translateText( QString( "Tyyne" ) ) == QString( "89963" ) );
-    QVERIFY( mTranslator->translateText( QString( "Urho" ) ) == QString( "8746" ) );
-    QVERIFY( mTranslator->translateText( QString( "Vihtori" ) ) == QString( "8448674" ) );
-    QVERIFY( mTranslator->translateText( QString( "Wiski" ) ) == QString( "94754" ) );
-    QVERIFY( mTranslator->translateText( QString( "Yrjö" ) ) == QString( "9756" ) );
-    QVERIFY( mTranslator->translateText( QString( "Tseta" ) ) == QString( "87382" ) );
-    QVERIFY( mTranslator->translateText( QString( "Åke" ) ) == QString( "253" ) );
-    QVERIFY( mTranslator->translateText( QString( "Äiti" ) ) == QString( "2484" ) );
-    QVERIFY( mTranslator->translateText( QString( "Öljy" ) ) == QString( "6559" ) );
-    QVERIFY( mTranslator->translateText( QString( "Adam" ) ) == QString( "2326" ) );
-    QVERIFY( mTranslator->translateText( QString( "Bertil" ) ) == QString( "237845" ) );
-    QVERIFY( mTranslator->translateText( QString( "Cesar" ) ) == QString( "23727" ) );
-    QVERIFY( mTranslator->translateText( QString( "David" ) ) == QString( "32843" ) );
-    QVERIFY( mTranslator->translateText( QString( "Erik" ) ) == QString( "3745" ) );
-    QVERIFY( mTranslator->translateText( QString( "Filip" ) ) == QString( "34547" ) );
-    QVERIFY( mTranslator->translateText( QString( "Gustav" ) ) == QString( "487828" ) );
-    QVERIFY( mTranslator->translateText( QString( "Helge" ) ) == QString( "43543" ) );
-    QVERIFY( mTranslator->translateText( QString( "Ivar" ) ) == QString( "4827" ) );
-    QVERIFY( mTranslator->translateText( QString( "Johan" ) ) == QString( "56426" ) );
-    QVERIFY( mTranslator->translateText( QString( "Kalle" ) ) == QString( "52553" ) );
-    QVERIFY( mTranslator->translateText( QString( "Ludvig" ) ) == QString( "583844" ) );
-    QVERIFY( mTranslator->translateText( QString( "Martin" ) ) == QString( "627846" ) );
-    QVERIFY( mTranslator->translateText( QString( "Niklas" ) ) == QString( "645527" ) );
-    QVERIFY( mTranslator->translateText( QString( "Olof" ) ) == QString( "6563" ) );
-    QVERIFY( mTranslator->translateText( QString( "Petter" ) ) == QString( "738837" ) );
-    QVERIFY( mTranslator->translateText( QString( "Quintus" ) ) == QString( "7846887" ) );
-    QVERIFY( mTranslator->translateText( QString( "Rudolf" ) ) == QString( "783653" ) );
-    QVERIFY( mTranslator->translateText( QString( "Sigurd" ) ) == QString( "744873" ) );
-    QVERIFY( mTranslator->translateText( QString( "Tore" ) ) == QString( "8673" ) );
-    QVERIFY( mTranslator->translateText( QString( "Urban" ) ) == QString( "87226" ) );
-    QVERIFY( mTranslator->translateText( QString( "Viktor" ) ) == QString( "845867" ) );
-    QVERIFY( mTranslator->translateText( QString( "Wilhelm" ) ) == QString( "9454356" ) );
-    QVERIFY( mTranslator->translateText( QString( "Xerxes" ) ) == QString( "937937" ) );
-    QVERIFY( mTranslator->translateText( QString( "Yngve" ) ) == QString( "96483" ) );
-    QVERIFY( mTranslator->translateText( QString( "Zäta" ) ) == QString( "9282" ) );
-    QVERIFY( mTranslator->translateText( QString( "Ärlig" ) ) == QString( "27544" ) );
-    QVERIFY( mTranslator->translateText( QString( "Östen" ) ) == QString( "67836" ) );
-    QVERIFY( mTranslator->translateText( QString( "Alpha" ) ) == QString( "25742" ) );
-    QVERIFY( mTranslator->translateText( QString( "Bravo" ) ) == QString( "27286" ) );
-    QVERIFY( mTranslator->translateText( QString( "Charlie" ) ) == QString( "2427543" ) );
-    QVERIFY( mTranslator->translateText( QString( "Delta" ) ) == QString( "33582" ) );
-    QVERIFY( mTranslator->translateText( QString( "Echo" ) ) == QString( "3246" ) );
-    QVERIFY( mTranslator->translateText( QString( "Foxtrot" ) ) == QString( "3698768" ) );
-    QVERIFY( mTranslator->translateText( QString( "Golf" ) ) == QString( "4653" ) );
-    QVERIFY( mTranslator->translateText( QString( "Hotel" ) ) == QString( "46835" ) );
-    QVERIFY( mTranslator->translateText( QString( "India" ) ) == QString( "46342" ) );
-    QVERIFY( mTranslator->translateText( QString( "Juliet" ) ) == QString( "585438" ) );
-    QVERIFY( mTranslator->translateText( QString( "Kilo" ) ) == QString( "5456" ) );
-    QVERIFY( mTranslator->translateText( QString( "Lima" ) ) == QString( "5462" ) );
-    QVERIFY( mTranslator->translateText( QString( "Mike" ) ) == QString( "6453" ) );
-    QVERIFY( mTranslator->translateText( QString( "November" ) ) == QString( "66836237" ) );
-    QVERIFY( mTranslator->translateText( QString( "Oscar" ) ) == QString( "67227" ) );
-    QVERIFY( mTranslator->translateText( QString( "Papa" ) ) == QString( "7272" ) );
-    QVERIFY( mTranslator->translateText( QString( "Quebec" ) ) == QString( "783232" ) );
-    QVERIFY( mTranslator->translateText( QString( "Romeo" ) ) == QString( "76636" ) );
-    QVERIFY( mTranslator->translateText( QString( "Sierra" ) ) == QString( "743772" ) );
-    QVERIFY( mTranslator->translateText( QString( "Tanga" ) ) == QString( "82642" ) );
-    QVERIFY( mTranslator->translateText( QString( "Uniform" ) ) == QString( "8643676" ) );
-    QVERIFY( mTranslator->translateText( QString( "Vârlan" ) ) == QString( "827526" ) );
-    QVERIFY( mTranslator->translateText( QString( "Victor" ) ) == QString( "842867" ) );
-    QVERIFY( mTranslator->translateText( QString( "Whiskey" ) ) == QString( "9447539" ) );
-    QVERIFY( mTranslator->translateText( QString( "Xray" ) ) == QString( "9729" ) );
-    QVERIFY( mTranslator->translateText( QString( "Yankee" ) ) == QString( "926533" ) );
-    QVERIFY( mTranslator->translateText( QString( "Zulu" ) ) == QString( "9858" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Nokia" ) ), QString( "66542" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Aarne" ) ), QString( "22763" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Bertta" ) ), QString( "237882" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Celsius" ) ), QString( "2357487" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Daavid" ) ), QString( "322843" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Eemeli" ) ), QString( "336354" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Faarao" ) ), QString( "322726" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Gideon" ) ), QString( "443366" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Heikki" ) ), QString( "434554" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Iivari" ) ), QString( "448274" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Jussi" ) ), QString( "58774" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Kalle" ) ), QString( "52553" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Lauri" ) ), QString( "52874" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Matti" ) ), QString( "62884" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Niilo" ) ), QString( "64456" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Otto" ) ), QString( "6886" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Paavo" ) ), QString( "72286" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Kuu" ) ), QString( "588" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Risto" ) ), QString( "74786" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Sakari" ) ), QString( "725274" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Tyyne" ) ), QString( "89963" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Urho" ) ), QString( "8746" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Vihtori" ) ), QString( "8448674" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Wiski" ) ), QString( "94754" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Yrjö" ) ), QString( "9756" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Tseta" ) ), QString( "87382" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Åke" ) ), QString( "253" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Äiti" ) ), QString( "2484" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Öljy" ) ), QString( "6559" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Adam" ) ), QString( "2326" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Bertil" ) ), QString( "237845" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Cesar" ) ), QString( "23727" ) );
+    QCOMPARE( mTranslator->translateText( QString( "David" ) ), QString( "32843" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Erik" ) ), QString( "3745" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Filip" ) ), QString( "34547" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Gustav" ) ), QString( "487828" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Helge" ) ), QString( "43543" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Ivar" ) ), QString( "4827" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Johan" ) ), QString( "56426" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Kalle" ) ), QString( "52553" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Ludvig" ) ), QString( "583844" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Martin" ) ), QString( "627846" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Niklas" ) ), QString( "645527" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Olof" ) ), QString( "6563" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Petter" ) ), QString( "738837" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Quintus" ) ), QString( "7846887" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Rudolf" ) ), QString( "783653" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Sigurd" ) ), QString( "744873" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Tore" ) ), QString( "8673" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Urban" ) ), QString( "87226" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Viktor" ) ), QString( "845867" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Wilhelm" ) ), QString( "9454356" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Xerxes" ) ), QString( "937937" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Yngve" ) ), QString( "96483" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Zäta" ) ), QString( "9282" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Ärlig" ) ), QString( "27544" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Östen" ) ), QString( "67836" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Alpha" ) ), QString( "25742" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Bravo" ) ), QString( "27286" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Charlie" ) ), QString( "2427543" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Delta" ) ), QString( "33582" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Echo" ) ), QString( "3246" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Foxtrot" ) ), QString( "3698768" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Golf" ) ), QString( "4653" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Hotel" ) ), QString( "46835" ) );
+    QCOMPARE( mTranslator->translateText( QString( "India" ) ), QString( "46342" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Juliet" ) ), QString( "585438" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Kilo" ) ), QString( "5456" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Lima" ) ), QString( "5462" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Mike" ) ), QString( "6453" ) );
+    QCOMPARE( mTranslator->translateText( QString( "November" ) ), QString( "66836237" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Oscar" ) ), QString( "67227" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Papa" ) ), QString( "7272" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Quebec" ) ), QString( "783232" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Romeo" ) ), QString( "76636" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Sierra" ) ), QString( "743772" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Tanga" ) ), QString( "82642" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Uniform" ) ), QString( "8643676" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Vârlan" ) ), QString( "827526" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Victor" ) ), QString( "842867" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Whiskey" ) ), QString( "9447539" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Xray" ) ), QString( "9729" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Yankee" ) ), QString( "926533" ) );
+    QCOMPARE( mTranslator->translateText( QString( "Zulu" ) ), QString( "9858" ) );
     
     QString uni;
     uni.append(QChar(0x0219));
@@ -155,17 +156,146 @@
 
 }
 
-void UT_LogsPredictiveLatin12KeyTranslator::testTranslatePattern()
+void UT_LogsPredictiveLatin12KeyTranslator::testPreparePattern()
 {
 
-    QVERIFY( mTranslator->translatePattern( QString( "1234567890" ) ) == QString( "1234567890" ) );
-    QCOMPARE( mTranslator->translatePattern( QString( "+1234567890" ) ) ,QString( "*1234567890" ) );
-    QCOMPARE( mTranslator->translatePattern( QString( "*1234567890" ) ) ,QString( "*1234567890" ) );
-    QCOMPARE( mTranslator->translatePattern( QString( "#1234567890" ) ), QString( "#1234567890" ) );
-    QCOMPARE( mTranslator->translatePattern( QString( "++##" ) ), QString( "**##" ) );
-    QCOMPARE( mTranslator->translatePattern( QString( "-+##" ) ), QString( "1*##" ) );
-    QCOMPARE( mTranslator->translatePattern( QString( "/+##" ) ), QString( "1*##" ) );
-    QCOMPARE( mTranslator->translatePattern( QString( "*+##" ) ), QString( "**##" ) );
+    QCOMPARE( mTranslator->preparePattern( QString( "1234567890" ) ), QString( "1234567890" ) );
+    QCOMPARE( mTranslator->preparePattern( QString( "+1234567890" ) ) ,QString( "*1234567890" ) );
+    QCOMPARE( mTranslator->preparePattern( QString( "*1234567890" ) ) ,QString( "*1234567890" ) );
+    QCOMPARE( mTranslator->preparePattern( QString( "#1234567890" ) ), QString( "#1234567890" ) );
+    QCOMPARE( mTranslator->preparePattern( QString( "++##" ) ), QString( "**##" ) );
+    QCOMPARE( mTranslator->preparePattern( QString( "-+##" ) ), QString( "1*##" ) );
+    QCOMPARE( mTranslator->preparePattern( QString( "/+##" ) ), QString( "1*##" ) );
+    QCOMPARE( mTranslator->preparePattern( QString( "*+##" ) ), QString( "**##" ) );
+    
+}
+
+void UT_LogsPredictiveLatin12KeyTranslator::testSplitPattern()
+{
+    QString car;
+    QString cdr;
+    
+    mTranslator->splitPattern( QString( "122" ), car, cdr );
+    QCOMPARE( car, QString("122" ) );
+    QCOMPARE( cdr, QString("" ) );
+    
+    mTranslator->splitPattern( QString( "01220" ), car, cdr );
+    QCOMPARE( car, QString("01220" ) );
+    QCOMPARE( cdr, QString("" ) );
+    
+    mTranslator->splitPattern( QString( "0122020" ), car, cdr );
+    QCOMPARE( car, QString("0122" ) );
+    QCOMPARE( cdr, QString("20" ) );
+    
+    mTranslator->splitPattern( QString( "012200020" ), car, cdr );
+    QCOMPARE( car, QString("0122" ) );
+    QCOMPARE( cdr, QString("20" ) );
+    
+    mTranslator->splitPattern( QString( "0122050020" ), car, cdr );
+    QCOMPARE( car, QString("0122" ) );
+    QCOMPARE( cdr, QString("50020" ) );
+    
+    mTranslator->splitPattern( QString( "00000" ), car, cdr );
+    QCOMPARE( car, QString("00000" ) );
+    QCOMPARE( cdr, QString("" ) );
+    
+    mTranslator->splitPattern( QString( "0" ), car, cdr );
+    QCOMPARE( car, QString("0" ) );
+    QCOMPARE( cdr, QString("" ) );
+
+    mTranslator->splitPattern( QString( "" ), car, cdr );
+    QCOMPARE( car, QString("" ) );
+    QCOMPARE( cdr, QString("" ) );
+    
+}
+
+void UT_LogsPredictiveLatin12KeyTranslator::testTrimPattern()
+{
+    QString pattern;
+    
+    pattern = "1";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "1") );
+    
+    pattern = "122";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "122") );
+    
+    pattern = "0122";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "122") );
+    
+    pattern = "0122";
+    QCOMPARE( mTranslator->trimPattern( pattern, true ), QString( "0122") );
+    
+    pattern = "1220";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "122") );
+    
+    pattern = "1220";
+    QCOMPARE( mTranslator->trimPattern( pattern, true ), QString( "122") );
+    
+    pattern = "01220";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "122") );
+    
+    pattern = "01220";
+    QCOMPARE( mTranslator->trimPattern( pattern, true ), QString( "0122") );
+    
+    pattern = "012020";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "1202") );
+    
+    pattern = "012020";
+    QCOMPARE( mTranslator->trimPattern( pattern, true ), QString( "01202") );
+
+    pattern = "000120200";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "1202") );
+    
+    pattern = "00012000200";
+    QCOMPARE( mTranslator->trimPattern( pattern , false), QString( "120002") );
+    
+    pattern = "0001200024500";
+    QCOMPARE( mTranslator->trimPattern( pattern , false), QString( "12000245") );
+    
+    pattern = "000";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "0") );
+
+    pattern = "0";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "0") );
+    
+    pattern = "";
+    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "") );
+    
+    
+}
+
+void UT_LogsPredictiveLatin12KeyTranslator::testPatternTokens()
+{
+    
+    QCOMPARE( mTranslator->patternTokens( QString("122" ) ).length(), 1 );
+    QCOMPARE( mTranslator->patternTokens( QString("122" ) )[0], QString("122" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("01220" ) ).length(), 1 );
+    QCOMPARE( mTranslator->patternTokens( QString("01220" ) )[0], QString("01220" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("102" ) ).length(), 2 );
+    QCOMPARE( mTranslator->patternTokens( QString("102" ) )[0], QString("1" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("102" ) )[1], QString("2" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("0010200" ) ).length(), 2 );
+    QCOMPARE( mTranslator->patternTokens( QString("0010200" ) )[0], QString("001" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("0010200" ) )[1], QString("200" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("0010200564760635" ) ).length(), 2 );
+    QCOMPARE( mTranslator->patternTokens( QString("0010200564760635" ) )[0], QString("001" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("0010200564760635" ) )[1], QString("200564760635" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("0" ) ).length(), 1 );
+    QCOMPARE( mTranslator->patternTokens( QString("0" ) )[0], QString("0" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("000" ) ).length(), 1 );
+    QCOMPARE( mTranslator->patternTokens( QString("000" ) )[0], QString("000" ) );
+    QCOMPARE( mTranslator->patternTokens( QString("001" ) ).length(), 1 );
+    QCOMPARE( mTranslator->patternTokens( QString("001" ) )[0], QString("001" ) );
+    
+}
+
+void UT_LogsPredictiveLatin12KeyTranslator::testHasPatternSeparators()
+{
+    QVERIFY( !mTranslator->hasPatternSeparators( QString("122" ) ) );
+    QVERIFY( mTranslator->hasPatternSeparators( QString("1022" ) ) );
+    QCOMPARE( mTranslator->hasPatternSeparators( QString("0010200" ) ), 5 );
+    QCOMPARE( mTranslator->hasPatternSeparators( QString("0000" ) ), 4 );
+    QCOMPARE( mTranslator->hasPatternSeparators( QString("345345" ) ), 0 );
     
 }
 
@@ -173,22 +303,49 @@
 {
     bool ok;
     
-    QCOMPARE( mTranslator->translateChar( QChar('+'), ok ), QChar('*') );
-    QCOMPARE( mTranslator->translateChar( QChar('*'), ok ), QChar('*') );
-    QCOMPARE( mTranslator->translateChar( QChar('#'), ok ), QChar('#') );
-    QCOMPARE( mTranslator->translateChar( QChar('0'), ok ), QChar('0') );
-    QCOMPARE( mTranslator->translateChar( QChar('a'), ok ), QChar('2') );
-    QCOMPARE( mTranslator->translateChar( QChar('A'), ok ), QChar('2') );
-    QCOMPARE( mTranslator->translateChar( QChar('1'), ok ), QChar('1') );
-    QCOMPARE( mTranslator->translateChar( QChar('ä'), ok ), QChar('2') );
-    QCOMPARE( mTranslator->translateChar( QChar('Ä'), ok ), QChar('2') );
-    QCOMPARE( mTranslator->translateChar( QChar('-'), ok ), QChar('1') );
-    QCOMPARE( mTranslator->translateChar( QChar('%'), ok ), QChar('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('+'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('*'), ok ), QString('*') );
+    
+    QCOMPARE( mTranslator->translateChar( QChar('#'), ok ), QString('#') );
+    QCOMPARE( mTranslator->translateChar( QChar('0'), ok ), QString('0') );
+    QCOMPARE( mTranslator->translateChar( QChar('a'), ok ), QString('2') );
+    QCOMPARE( mTranslator->translateChar( QChar('A'), ok ), QString('2') );
+    QCOMPARE( mTranslator->translateChar( QChar('1'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('ä'), ok ), QString('2') );
+    QCOMPARE( mTranslator->translateChar( QChar('Ä'), ok ), QString('2') );
+    QCOMPARE( mTranslator->translateChar( QChar('?'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('!'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('\''), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('"'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('-'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('('), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar(')'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('@'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('/'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar(':'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar('_'), ok ), QString('1') );
+    QCOMPARE( mTranslator->translateChar( QChar(';'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('&'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('%'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('='), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('<'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('>'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('['), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar(']'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('{'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('}'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('\\'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('~'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('^'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('¡'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('¿'), ok ), QString('*') );
+    QCOMPARE( mTranslator->translateChar( QChar('|'), ok ), QString('*') );
+    
     // Romanian unicode character "sh"
-    QCOMPARE( mTranslator->translateChar( QChar(0x0219), ok ), QChar('7') );
+    QCOMPARE( mTranslator->translateChar( QChar(0x0219), ok ), QString('7') );
     // Chinese unicode character
     QChar chn(0x4E0F);
-    QCOMPARE( mTranslator->translateChar( QChar(0x4E0F), ok ), QChar() );
+    QCOMPARE( mTranslator->translateChar( QChar(0x4E0F), ok ), QString() );
     QVERIFY( !ok );