plugins/contacts/symbian/contactsmodel/tsrc/cntplsql_qt/ut_cntsqlsearch.cpp
changeset 5 603d3f8b6302
parent 0 876b1a06bc25
equal deleted inserted replaced
3:e4ebb16b39ea 5:603d3f8b6302
    16 */
    16 */
    17 
    17 
    18 #include <QtTest/QtTest>
    18 #include <QtTest/QtTest>
    19 #include <QStringList>
    19 #include <QStringList>
    20 #include <QLocale>
    20 #include <QLocale>
       
    21 #include <sqldb.h>
    21 
    22 
    22 #include "ut_cntsqlsearch.h"
    23 #include "ut_cntsqlsearch.h"
    23 #include "cntsqlsearch.h"
    24 #include "cntsqlsearch.h"
       
    25 #include "cqwertykeymap.h"
       
    26 #include "c12keykeymap.h"
    24 
    27 
    25 #define WRITE_LOGS
    28 #define WRITE_LOGS
    26 #define SQL_QT_TEST
    29 #define SQL_QT_TEST
    27 
    30 
    28 #if defined(WRITE_LOGS)
    31 #if defined(WRITE_LOGS)
    51 {
    54 {
    52 }
    55 }
    53 
    56 
    54 
    57 
    55 void UT_CntSqlSearch::init()
    58 void UT_CntSqlSearch::init()
    56 {
    59 {   
    57 mCntSqlSearch = new CntSqlSearch();
    60     m12KeyKeyMap = C12keyKeyMap::NewL();
       
    61     mQwertyKeyMap = CQwertyKeyMap::NewL();
       
    62     mCntSqlSearch = new CntSqlSearch( *m12KeyKeyMap, *mQwertyKeyMap );
    58 }
    63 }
    59 
    64 
    60 void UT_CntSqlSearch::cleanup()
    65 void UT_CntSqlSearch::cleanup()
    61 {
    66 {
       
    67     delete m12KeyKeyMap;
       
    68     delete mQwertyKeyMap;
    62     delete mCntSqlSearch;
    69     delete mCntSqlSearch;
    63     mCntSqlSearch = 0;
       
    64     
    70     
    65 }
    71 }
    66 void UT_CntSqlSearch::testPredictiveSearch()
    72 void UT_CntSqlSearch::testPredictiveSearch()
    67 {
    73 {
    68     TEST_BEGIN_LOG("testPredictiveSearch");
    74     TEST_BEGIN_LOG("testPredictiveSearch");
   179     // TODO: Test this case on HW and verify leading zeros.
   185     // TODO: Test this case on HW and verify leading zeros.
   180     pattern.clear();
   186     pattern.clear();
   181     pattern = "0705";
   187     pattern = "0705";
   182     #if defined(SEARCH_FROM_ONE_TABLE)
   188     #if defined(SEARCH_FROM_ONE_TABLE)
   183 #if defined(USE_DEMORGAN)
   189 #if defined(USE_DEMORGAN)
   184     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE NOT(NOT(NOT(NOT(nbr>31613158321815551 AND nbr<31630750507859968) AND NOT(nbr2>31613158321815551 AND nbr2<31630750507859968) AND NOT(nbr3>31613158321815551 AND nbr3<31630750507859968) AND NOT(nbr4>31613158321815551 AND nbr4<31630750507859968))) AND NOT(NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>31525197391593471 AND nbr2<36028797018963968) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>31525197391593471 AND nbr2<36028797018963968) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>31525197391593471 AND nbr3<36028797018963968))) AND NOT(NOT(NOT(nbr2>31525197391593471 AND nbr2<36028797018963968 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>31525197391593471 AND nbr3<36028797018963968 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>31525197391593471 AND nbr3<36028797018963968 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr3>360287970189639679 AND nbr3<432345564227567616)))) ORDER BY predictivesearch0.first_name, predictivesearch0.last_name ASC;");
   190     reference = QString("SELECT contact_id FROM (SELECT predictivesearch7.contact_id, predictivesearch7.first_name, predictivesearch7.last_name FROM predictivesearch7 WHERE ((NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>504403158265495551 AND nbr3<576460752303423488))) OR(NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>360287970189639679 AND nbr3<432345564227567616)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>31613158321815551 AND predictivesearch0.nbr<31630750507859968) AND NOT(predictivesearch0.nbr2>31613158321815551 AND predictivesearch0.nbr2<31630750507859968) AND NOT(predictivesearch0.nbr3>31613158321815551 AND predictivesearch0.nbr3<31630750507859968) AND NOT(predictivesearch0.nbr4>31613158321815551 AND predictivesearch0.nbr4<31630750507859968)))) OR(NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>31525197391593471 AND nbr2<36028797018963968) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>31525197391593471 AND nbr2<36028797018963968) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>31525197391593471 AND nbr3<36028797018963968))) OR(NOT(NOT(nbr2>31525197391593471 AND nbr2<36028797018963968 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>31525197391593471 AND nbr3<36028797018963968 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>31525197391593471 AND nbr3<36028797018963968 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr3>360287970189639679 AND nbr3<432345564227567616)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   185 #else // #if defined(USE_DEMORGAN)
   191 #else // #if defined(USE_DEMORGAN)
   186 
   192 
   187 #endif //#if defined(USE_DEMORGAN)
   193 #endif //#if defined(USE_DEMORGAN)
   188 #else // #if defined(SEARCH_FROM_ONE_TABLE)
   194 #else // #if defined(SEARCH_FROM_ONE_TABLE)
   189     reference = QString("SELECT contact_id FROM (SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE (NOT(NOT(predictivesearch0.nbr>31613158321815551 AND predictivesearch0.nbr<31630750507859968) AND NOT(predictivesearch0.nbr2>31613158321815551 AND predictivesearch0.nbr2<31630750507859968) AND NOT(predictivesearch0.nbr3>31613158321815551 AND predictivesearch0.nbr3<31630750507859968) AND NOT(predictivesearch0.nbr4>31613158321815551 AND predictivesearch0.nbr4<31630750507859968))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 JOIN predictivesearch5 ON predictivesearch0.contact_id = predictivesearch5.contact_id WHERE(NOT(NOT(predictivesearch0.nbr>31525197391593471 AND predictivesearch0.nbr<36028797018963968) AND NOT(predictivesearch0.nbr2>31525197391593471 AND predictivesearch0.nbr2<36028797018963968) AND NOT(predictivesearch0.nbr3>31525197391593471 AND predictivesearch0.nbr3<36028797018963968) AND NOT(predictivesearch0.nbr4>31525197391593471 AND predictivesearch0.nbr4<36028797018963968)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   195     reference = QString("SELECT contact_id FROM (SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE (NOT(NOT(predictivesearch0.nbr>31613158321815551 AND predictivesearch0.nbr<31630750507859968) AND NOT(predictivesearch0.nbr2>31613158321815551 AND predictivesearch0.nbr2<31630750507859968) AND NOT(predictivesearch0.nbr3>31613158321815551 AND predictivesearch0.nbr3<31630750507859968) AND NOT(predictivesearch0.nbr4>31613158321815551 AND predictivesearch0.nbr4<31630750507859968))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 JOIN predictivesearch5 ON predictivesearch0.contact_id = predictivesearch5.contact_id WHERE(NOT(NOT(predictivesearch0.nbr>31525197391593471 AND predictivesearch0.nbr<36028797018963968) AND NOT(predictivesearch0.nbr2>31525197391593471 AND predictivesearch0.nbr2<36028797018963968) AND NOT(predictivesearch0.nbr3>31525197391593471 AND predictivesearch0.nbr3<36028797018963968) AND NOT(predictivesearch0.nbr4>31525197391593471 AND predictivesearch0.nbr4<36028797018963968)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   190 #endif // #if defined(SEARCH_FROM_ONE_TABLE)
   196 #endif // #if defined(SEARCH_FROM_ONE_TABLE)
   191 
   197 
   192     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   198     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   193     //qDebug() << pattern << result;
   199     LOG2(pattern, result);
   194     LOG2(pattern, result);
   200     //qDebug() << pattern << " -> result" << result;
   195     QVERIFY(!result.compare(reference));
   201     QVERIFY(!result.compare(reference));
   196     
   202     
   197     pattern.clear();
   203     pattern.clear();
   198     pattern = "4301";  
   204     pattern = "4301";  
   199 #if defined(SEARCH_FROM_ONE_TABLE)
   205 #if defined(SEARCH_FROM_ONE_TABLE)
   289     QVERIFY(!result.compare(reference));
   295     QVERIFY(!result.compare(reference));
   290 
   296 
   291     // Leading zeros
   297     // Leading zeros
   292     pattern = QString("001100");
   298     pattern = QString("001100");
   293 #if defined(USE_DEMORGAN)
   299 #if defined(USE_DEMORGAN)
   294     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE (NOT(NOT(nbr>299067162755071 AND nbr<299135882231808) AND NOT(nbr2>299067162755071 AND nbr2<299135882231808) AND NOT(nbr3>299067162755071 AND nbr3<299135882231808) AND NOT(nbr4>299067162755071 AND nbr4<299135882231808))) ORDER BY first_name, last_name ASC;");
   300     reference = QString("SELECT contact_id FROM (SELECT predictivesearch1.contact_id, predictivesearch1.first_name, predictivesearch1.last_name FROM predictivesearch1 WHERE ((NOT(NOT(predictivesearch1.nbr>76561193665298431 AND predictivesearch1.nbr<81064793292668928) AND NOT(predictivesearch1.nbr2>76561193665298431 AND predictivesearch1.nbr2<81064793292668928) AND NOT(predictivesearch1.nbr3>76561193665298431 AND predictivesearch1.nbr3<81064793292668928) AND NOT(predictivesearch1.nbr4>76561193665298431 AND predictivesearch1.nbr4<81064793292668928)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>299067162755071 AND predictivesearch0.nbr<299135882231808) AND NOT(predictivesearch0.nbr2>299067162755071 AND predictivesearch0.nbr2<299135882231808) AND NOT(predictivesearch0.nbr3>299067162755071 AND predictivesearch0.nbr3<299135882231808) AND NOT(predictivesearch0.nbr4>299067162755071 AND predictivesearch0.nbr4<299135882231808))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   295 #else
   301 #else
   296     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE (nbr>299067162755071 AND nbr<299135882231808) OR (nbr2>299067162755071 AND nbr2<299135882231808) OR (nbr3>299067162755071 AND nbr3<299135882231808) OR (nbr4>299067162755071 AND nbr4<299135882231808) ORDER BY first_name, last_name ASC;");
   302     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE (nbr>299067162755071 AND nbr<299135882231808) OR (nbr2>299067162755071 AND nbr2<299135882231808) OR (nbr3>299067162755071 AND nbr3<299135882231808) OR (nbr4>299067162755071 AND nbr4<299135882231808) ORDER BY first_name, last_name ASC;");
   297 #endif
   303 #endif
   298     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   304     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   299     //qDebug() << pattern << " -> result" << result;
       
   300     LOG2(pattern, result);
   305     LOG2(pattern, result);
   301     QVERIFY(!result.compare(reference));
   306     QVERIFY(!result.compare(reference));
   302     
   307     
   303     pattern = QString("43043");
   308     pattern = QString("43043");
   304     reference = QString("SELECT contact_id FROM predictivesearch4 WHERE NOT(NOT(NOT(NOT(nbr>301814842312884223 AND nbr<301815941824512000) AND NOT(nbr2>301814842312884223 AND nbr2<301815941824512000) AND NOT(nbr3>301814842312884223 AND nbr3<301815941824512000) AND NOT(nbr4>301814842312884223 AND nbr4<301815941824512000))) AND NOT(NOT(NOT(nbr2>301741175033823231 AND nbr2<306244774661193728 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr3>301741175033823231 AND nbr3<306244774661193728 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr3>301741175033823231 AND nbr3<306244774661193728 AND nbr2>301741175033823231 AND nbr2<306244774661193728) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr2>301741175033823231 AND nbr2<306244774661193728) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr3>301741175033823231 AND nbr3<306244774661193728)))) ORDER BY predictivesearch4.first_name, predictivesearch4.last_name ASC;");
   309     reference = QString("SELECT contact_id FROM predictivesearch4 WHERE NOT(NOT(NOT(NOT(nbr>301814842312884223 AND nbr<301815941824512000) AND NOT(nbr2>301814842312884223 AND nbr2<301815941824512000) AND NOT(nbr3>301814842312884223 AND nbr3<301815941824512000) AND NOT(nbr4>301814842312884223 AND nbr4<301815941824512000))) AND NOT(NOT(NOT(nbr2>301741175033823231 AND nbr2<306244774661193728 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr3>301741175033823231 AND nbr3<306244774661193728 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr3>301741175033823231 AND nbr3<306244774661193728 AND nbr2>301741175033823231 AND nbr2<306244774661193728) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr2>301741175033823231 AND nbr2<306244774661193728) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr3>301741175033823231 AND nbr3<306244774661193728)))) ORDER BY predictivesearch4.first_name, predictivesearch4.last_name ASC;");
   307     LOG2(pattern, result);
   312     LOG2(pattern, result);
   308     QVERIFY(!result.compare(reference));
   313     QVERIFY(!result.compare(reference));
   309 
   314 
   310     pattern = QString("0020030");
   315     pattern = QString("0020030");
   311 #if defined(USE_DEMORGAN)
   316 #if defined(USE_DEMORGAN)
   312     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE NOT(NOT(NOT(NOT(nbr>563156111851519 AND nbr<563160406818816) AND NOT(nbr2>563156111851519 AND nbr2<563160406818816) AND NOT(nbr3>563156111851519 AND nbr3<563160406818816) AND NOT(nbr4>563156111851519 AND nbr4<563160406818816))) AND NOT(NOT(NOT(nbr2>216172782113783807 AND nbr2<220676381741154304 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>216172782113783807 AND nbr3<220676381741154304 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>216172782113783807 AND nbr3<220676381741154304 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr3>562949953421311 AND nbr3<844424930131968))) AND NOT(NOT(NOT(nbr2>562949953421311 AND nbr2<844424930131968 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr2>216172782113783807 AND nbr2<220676381741154304) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr2>216172782113783807 AND nbr2<220676381741154304) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr3>216172782113783807 AND nbr3<220676381741154304)))) ORDER BY predictivesearch0.first_name, predictivesearch0.last_name ASC;");
   317     reference = QString("SELECT contact_id FROM (SELECT predictivesearch2.contact_id, predictivesearch2.first_name, predictivesearch2.last_name FROM predictivesearch2 WHERE ((NOT(NOT(nbr2>216172782113783807 AND nbr2<220676381741154304 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>216172782113783807 AND nbr3<220676381741154304 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>216172782113783807 AND nbr3<220676381741154304 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr3>144115188075855871 AND nbr3<216172782113783808))) OR(NOT(NOT(nbr2>144115188075855871 AND nbr2<216172782113783808 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr2>216172782113783807 AND nbr2<220676381741154304) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr2>216172782113783807 AND nbr2<220676381741154304) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>216172782113783807 AND nbr3<220676381741154304)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>563156111851519 AND predictivesearch0.nbr<563160406818816) AND NOT(predictivesearch0.nbr2>563156111851519 AND predictivesearch0.nbr2<563160406818816) AND NOT(predictivesearch0.nbr3>563156111851519 AND predictivesearch0.nbr3<563160406818816) AND NOT(predictivesearch0.nbr4>563156111851519 AND predictivesearch0.nbr4<563160406818816)))) OR(NOT(NOT(nbr2>216172782113783807 AND nbr2<220676381741154304 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>216172782113783807 AND nbr3<220676381741154304 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>216172782113783807 AND nbr3<220676381741154304 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>216172782113783807 AND nbr4<220676381741154304 AND nbr3>562949953421311 AND nbr3<844424930131968))) OR(NOT(NOT(nbr2>562949953421311 AND nbr2<844424930131968 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr2>216172782113783807 AND nbr2<220676381741154304) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr>216172782113783807 AND nbr<220676381741154304) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr2>216172782113783807 AND nbr2<220676381741154304) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr3>216172782113783807 AND nbr3<220676381741154304)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   313 #else
   318 #else
   314     // TODO: add non-De Morgan case
   319     // TODO: add non-De Morgan case
   315 #endif
   320 #endif
   316     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   321     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   317     //qDebug() << pattern << " -> result" << result;
   322     //qDebug() << pattern << " -> result" << result;
   318     LOG2(pattern, result);
   323     LOG2(pattern, result);
   319     QVERIFY(!result.compare(reference));
   324     QVERIFY(!result.compare(reference));
   320     
   325     
   321     pattern = QString("00430001020");
   326     pattern = QString("00430001020");
   322 #if defined(USE_DEMORGAN)
   327 #if defined(USE_DEMORGAN)
   323     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE NOT(NOT(NOT(NOT(nbr>1178676735508479 AND nbr<1178676735574016) AND NOT(nbr2>1178676735508479 AND nbr2<1178676735574016) AND NOT(nbr3>1178676735508479 AND nbr3<1178676735574016) AND NOT(nbr4>1178676735508479 AND nbr4<1178676735574016))) AND NOT(NOT(NOT(nbr2>72620543991349247 AND nbr2<72638136177393664 AND nbr>1178676464975871 AND nbr<1196268651020288) AND NOT(nbr3>72620543991349247 AND nbr3<72638136177393664 AND nbr>1178676464975871 AND nbr<1196268651020288) AND NOT(nbr3>72620543991349247 AND nbr3<72638136177393664 AND nbr2>1178676464975871 AND nbr2<1196268651020288) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr>1178676464975871 AND nbr<1196268651020288) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr2>1178676464975871 AND nbr2<1196268651020288) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr3>1178676464975871 AND nbr3<1196268651020288))) AND NOT(NOT(NOT(nbr2>1178676464975871 AND nbr2<1196268651020288 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr3>1178676464975871 AND nbr3<1196268651020288 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr3>1178676464975871 AND nbr3<1196268651020288 AND nbr2>72620543991349247 AND nbr2<72638136177393664) AND NOT(nbr4>1178676464975871 AND nbr4<1196268651020288 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr4>1178676464975871 AND nbr4<1196268651020288 AND nbr2>72620543991349247 AND nbr2<72638136177393664) AND NOT(nbr4>1178676464975871 AND nbr4<1196268651020288 AND nbr3>72620543991349247 AND nbr3<72638136177393664)))) ORDER BY predictivesearch0.first_name, predictivesearch0.last_name ASC;");
   328     reference = QString("SELECT contact_id FROM (SELECT predictivesearch4.contact_id, predictivesearch4.first_name, predictivesearch4.last_name FROM predictivesearch4 WHERE ((NOT(NOT(nbr2>72620543991349247 AND nbr2<72638136177393664 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr3>72620543991349247 AND nbr3<72638136177393664 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr3>72620543991349247 AND nbr3<72638136177393664 AND nbr2>301741175033823231 AND nbr2<306244774661193728) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr>301741175033823231 AND nbr<306244774661193728) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr2>301741175033823231 AND nbr2<306244774661193728) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr3>301741175033823231 AND nbr3<306244774661193728))) OR(NOT(NOT(nbr2>301741175033823231 AND nbr2<306244774661193728 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr3>301741175033823231 AND nbr3<306244774661193728 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr3>301741175033823231 AND nbr3<306244774661193728 AND nbr2>72620543991349247 AND nbr2<72638136177393664) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr2>72620543991349247 AND nbr2<72638136177393664) AND NOT(nbr4>301741175033823231 AND nbr4<306244774661193728 AND nbr3>72620543991349247 AND nbr3<72638136177393664)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>1178676735508479 AND predictivesearch0.nbr<1178676735574016) AND NOT(predictivesearch0.nbr2>1178676735508479 AND predictivesearch0.nbr2<1178676735574016) AND NOT(predictivesearch0.nbr3>1178676735508479 AND predictivesearch0.nbr3<1178676735574016) AND NOT(predictivesearch0.nbr4>1178676735508479 AND predictivesearch0.nbr4<1178676735574016)))) OR(NOT(NOT(nbr2>72620543991349247 AND nbr2<72638136177393664 AND nbr>1178676464975871 AND nbr<1196268651020288) AND NOT(nbr3>72620543991349247 AND nbr3<72638136177393664 AND nbr>1178676464975871 AND nbr<1196268651020288) AND NOT(nbr3>72620543991349247 AND nbr3<72638136177393664 AND nbr2>1178676464975871 AND nbr2<1196268651020288) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr>1178676464975871 AND nbr<1196268651020288) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr2>1178676464975871 AND nbr2<1196268651020288) AND NOT(nbr4>72620543991349247 AND nbr4<72638136177393664 AND nbr3>1178676464975871 AND nbr3<1196268651020288))) OR(NOT(NOT(nbr2>1178676464975871 AND nbr2<1196268651020288 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr3>1178676464975871 AND nbr3<1196268651020288 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr3>1178676464975871 AND nbr3<1196268651020288 AND nbr2>72620543991349247 AND nbr2<72638136177393664) AND NOT(nbr4>1178676464975871 AND nbr4<1196268651020288 AND nbr>72620543991349247 AND nbr<72638136177393664) AND NOT(nbr4>1178676464975871 AND nbr4<1196268651020288 AND nbr2>72620543991349247 AND nbr2<72638136177393664) AND NOT(nbr4>1178676464975871 AND nbr4<1196268651020288 AND nbr3>72620543991349247 AND nbr3<72638136177393664)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   324 #else
   329 #else
   325     // TODO: add non-De Morgan case
   330     // TODO: add non-De Morgan case
   326 #endif
   331 #endif
   327     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   332     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   328     //qDebug() << pattern << " -> result" << result;
   333     LOG2(pattern, result);
   329     LOG2(pattern, result);
   334     //qDebug() << pattern << " -> result" << result;
   330     QVERIFY(!result.compare(reference));
   335     QVERIFY(!result.compare(reference));
   331     
   336     
   332     pattern = QString("227264583788306"); // 15 digits
   337     pattern = QString("227264583788306"); // 15 digits
   333 #if defined(USE_DEMORGAN)
   338 #if defined(USE_DEMORGAN)
   334     reference = QString("SELECT contact_id FROM predictivesearch2 WHERE NOT(NOT(NOT(NOT(nbr>155134792167883525 AND nbr<155134792167883527) AND NOT(nbr2>155134792167883525 AND nbr2<155134792167883527) AND NOT(nbr3>155134792167883525 AND nbr3<155134792167883527) AND NOT(nbr4>155134792167883525 AND nbr4<155134792167883527))) AND NOT(NOT(NOT(nbr2>432345564227567615 AND nbr2<504403158265495552 AND nbr>155134792167883519 AND nbr<155134792167883776) AND NOT(nbr3>432345564227567615 AND nbr3<504403158265495552 AND nbr>155134792167883519 AND nbr<155134792167883776) AND NOT(nbr3>432345564227567615 AND nbr3<504403158265495552 AND nbr2>155134792167883519 AND nbr2<155134792167883776) AND NOT(nbr4>432345564227567615 AND nbr4<504403158265495552 AND nbr>155134792167883519 AND nbr<155134792167883776) AND NOT(nbr4>432345564227567615 AND nbr4<504403158265495552 AND nbr2>155134792167883519 AND nbr2<155134792167883776) AND NOT(nbr4>432345564227567615 AND nbr4<504403158265495552 AND nbr3>155134792167883519 AND nbr3<155134792167883776))) AND NOT(NOT(NOT(nbr2>155134792167883519 AND nbr2<155134792167883776 AND nbr>432345564227567615 AND nbr<504403158265495552) AND NOT(nbr3>155134792167883519 AND nbr3<155134792167883776 AND nbr>432345564227567615 AND nbr<504403158265495552) AND NOT(nbr3>155134792167883519 AND nbr3<155134792167883776 AND nbr2>432345564227567615 AND nbr2<504403158265495552) AND NOT(nbr4>155134792167883519 AND nbr4<155134792167883776 AND nbr>432345564227567615 AND nbr<504403158265495552) AND NOT(nbr4>155134792167883519 AND nbr4<155134792167883776 AND nbr2>432345564227567615 AND nbr2<504403158265495552) AND NOT(nbr4>155134792167883519 AND nbr4<155134792167883776 AND nbr3>432345564227567615 AND nbr3<504403158265495552)))) ORDER BY predictivesearch2.first_name, predictivesearch2.last_name ASC;");
   339     reference = QString("SELECT contact_id FROM predictivesearch2 WHERE NOT(NOT(NOT(NOT(nbr>155134792167883525 AND nbr<155134792167883527) AND NOT(nbr2>155134792167883525 AND nbr2<155134792167883527) AND NOT(nbr3>155134792167883525 AND nbr3<155134792167883527) AND NOT(nbr4>155134792167883525 AND nbr4<155134792167883527))) AND NOT(NOT(NOT(nbr2>432345564227567615 AND nbr2<504403158265495552 AND nbr>155134792167883519 AND nbr<155134792167883776) AND NOT(nbr3>432345564227567615 AND nbr3<504403158265495552 AND nbr>155134792167883519 AND nbr<155134792167883776) AND NOT(nbr3>432345564227567615 AND nbr3<504403158265495552 AND nbr2>155134792167883519 AND nbr2<155134792167883776) AND NOT(nbr4>432345564227567615 AND nbr4<504403158265495552 AND nbr>155134792167883519 AND nbr<155134792167883776) AND NOT(nbr4>432345564227567615 AND nbr4<504403158265495552 AND nbr2>155134792167883519 AND nbr2<155134792167883776) AND NOT(nbr4>432345564227567615 AND nbr4<504403158265495552 AND nbr3>155134792167883519 AND nbr3<155134792167883776))) AND NOT(NOT(NOT(nbr2>155134792167883519 AND nbr2<155134792167883776 AND nbr>432345564227567615 AND nbr<504403158265495552) AND NOT(nbr3>155134792167883519 AND nbr3<155134792167883776 AND nbr>432345564227567615 AND nbr<504403158265495552) AND NOT(nbr3>155134792167883519 AND nbr3<155134792167883776 AND nbr2>432345564227567615 AND nbr2<504403158265495552) AND NOT(nbr4>155134792167883519 AND nbr4<155134792167883776 AND nbr>432345564227567615 AND nbr<504403158265495552) AND NOT(nbr4>155134792167883519 AND nbr4<155134792167883776 AND nbr2>432345564227567615 AND nbr2<504403158265495552) AND NOT(nbr4>155134792167883519 AND nbr4<155134792167883776 AND nbr3>432345564227567615 AND nbr3<504403158265495552)))) ORDER BY predictivesearch2.first_name, predictivesearch2.last_name ASC;");
   338     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   343     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   339     //qDebug() << pattern << " -> result" << result;
   344     //qDebug() << pattern << " -> result" << result;
   340     LOG2(pattern, result);
   345     LOG2(pattern, result);
   341     QVERIFY(!result.compare(reference));
   346     QVERIFY(!result.compare(reference));
   342  
   347  
   343     
       
   344     pattern = QString("34096");
   348     pattern = QString("34096");
   345 #if defined(USE_DEMORGAN)
   349 #if defined(USE_DEMORGAN)
   346     reference = QString("SELECT contact_id FROM predictivesearch3 WHERE NOT(NOT(NOT(NOT(nbr>234352107367432191 AND nbr<234353206879059968) AND NOT(nbr2>234352107367432191 AND nbr2<234353206879059968) AND NOT(nbr3>234352107367432191 AND nbr3<234353206879059968) AND NOT(nbr4>234352107367432191 AND nbr4<234353206879059968))) AND NOT(NOT(NOT(nbr2>675539944105574399 AND nbr2<680043543732944896 AND nbr>234187180623265791 AND nbr<238690780250636288) AND NOT(nbr3>675539944105574399 AND nbr3<680043543732944896 AND nbr>234187180623265791 AND nbr<238690780250636288) AND NOT(nbr3>675539944105574399 AND nbr3<680043543732944896 AND nbr2>234187180623265791 AND nbr2<238690780250636288) AND NOT(nbr4>675539944105574399 AND nbr4<680043543732944896 AND nbr>234187180623265791 AND nbr<238690780250636288) AND NOT(nbr4>675539944105574399 AND nbr4<680043543732944896 AND nbr2>234187180623265791 AND nbr2<238690780250636288) AND NOT(nbr4>675539944105574399 AND nbr4<680043543732944896 AND nbr3>234187180623265791 AND nbr3<238690780250636288))) AND NOT(NOT(NOT(nbr2>234187180623265791 AND nbr2<238690780250636288 AND nbr>675539944105574399 AND nbr<680043543732944896) AND NOT(nbr3>234187180623265791 AND nbr3<238690780250636288 AND nbr>675539944105574399 AND nbr<680043543732944896) AND NOT(nbr3>234187180623265791 AND nbr3<238690780250636288 AND nbr2>675539944105574399 AND nbr2<680043543732944896) AND NOT(nbr4>234187180623265791 AND nbr4<238690780250636288 AND nbr>675539944105574399 AND nbr<680043543732944896) AND NOT(nbr4>234187180623265791 AND nbr4<238690780250636288 AND nbr2>675539944105574399 AND nbr2<680043543732944896) AND NOT(nbr4>234187180623265791 AND nbr4<238690780250636288 AND nbr3>675539944105574399 AND nbr3<680043543732944896)))) ORDER BY predictivesearch3.first_name, predictivesearch3.last_name ASC;");
   350     reference = QString("SELECT contact_id FROM predictivesearch3 WHERE NOT(NOT(NOT(NOT(nbr>234352107367432191 AND nbr<234353206879059968) AND NOT(nbr2>234352107367432191 AND nbr2<234353206879059968) AND NOT(nbr3>234352107367432191 AND nbr3<234353206879059968) AND NOT(nbr4>234352107367432191 AND nbr4<234353206879059968))) AND NOT(NOT(NOT(nbr2>675539944105574399 AND nbr2<680043543732944896 AND nbr>234187180623265791 AND nbr<238690780250636288) AND NOT(nbr3>675539944105574399 AND nbr3<680043543732944896 AND nbr>234187180623265791 AND nbr<238690780250636288) AND NOT(nbr3>675539944105574399 AND nbr3<680043543732944896 AND nbr2>234187180623265791 AND nbr2<238690780250636288) AND NOT(nbr4>675539944105574399 AND nbr4<680043543732944896 AND nbr>234187180623265791 AND nbr<238690780250636288) AND NOT(nbr4>675539944105574399 AND nbr4<680043543732944896 AND nbr2>234187180623265791 AND nbr2<238690780250636288) AND NOT(nbr4>675539944105574399 AND nbr4<680043543732944896 AND nbr3>234187180623265791 AND nbr3<238690780250636288))) AND NOT(NOT(NOT(nbr2>234187180623265791 AND nbr2<238690780250636288 AND nbr>675539944105574399 AND nbr<680043543732944896) AND NOT(nbr3>234187180623265791 AND nbr3<238690780250636288 AND nbr>675539944105574399 AND nbr<680043543732944896) AND NOT(nbr3>234187180623265791 AND nbr3<238690780250636288 AND nbr2>675539944105574399 AND nbr2<680043543732944896) AND NOT(nbr4>234187180623265791 AND nbr4<238690780250636288 AND nbr>675539944105574399 AND nbr<680043543732944896) AND NOT(nbr4>234187180623265791 AND nbr4<238690780250636288 AND nbr2>675539944105574399 AND nbr2<680043543732944896) AND NOT(nbr4>234187180623265791 AND nbr4<238690780250636288 AND nbr3>675539944105574399 AND nbr3<680043543732944896)))) ORDER BY predictivesearch3.first_name, predictivesearch3.last_name ASC;");
   347 #else
   351 #else
   348     // TODO: add non-De Morgan case
   352     // TODO: add non-De Morgan case
   374     LOG2(pattern, result);
   378     LOG2(pattern, result);
   375     QVERIFY(!result.compare(reference));
   379     QVERIFY(!result.compare(reference));
   376 
   380 
   377     pattern = QString("200");
   381     pattern = QString("200");
   378 #if defined(USE_DEMORGAN)
   382 #if defined(USE_DEMORGAN)
   379         reference = QString("SELECT contact_id FROM predictivesearch2 WHERE (NOT(NOT(nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr2>144115188075855871 AND nbr2<144396663052566528) AND NOT(nbr3>144115188075855871 AND nbr3<144396663052566528) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528))) ORDER BY first_name, last_name ASC;");
   383         reference = QString("SELECT contact_id FROM predictivesearch2 WHERE NOT(NOT(NOT(NOT(nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808))) AND NOT(NOT(NOT(nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr2>144115188075855871 AND nbr2<144396663052566528) AND NOT(nbr3>144115188075855871 AND nbr3<144396663052566528) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528)))) ORDER BY first_name, last_name ASC;");
   380 #else
   384 #else
   381     // TODO: add non-De Morgan case
   385     // TODO: add non-De Morgan case
   382 #endif
   386 #endif
   383     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   387     result = mCntSqlSearch->CreatePredictiveSearch(pattern);
   384     //qDebug() << pattern << " -> result" << result;
   388     //qDebug() << pattern << " -> result" << result;
   434     
   438     
   435     
   439     
   436     pattern = QString("055");
   440     pattern = QString("055");
   437     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(predictivesearch5.nbr>382805968326492159 AND predictivesearch5.nbr<387309567953862656) AND NOT(predictivesearch5.nbr2>382805968326492159 AND predictivesearch5.nbr2<387309567953862656) AND NOT(predictivesearch5.nbr3>382805968326492159 AND predictivesearch5.nbr3<387309567953862656) AND NOT(predictivesearch5.nbr4>382805968326492159 AND predictivesearch5.nbr4<387309567953862656)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23925373020405759 AND predictivesearch0.nbr<24206847997116416) AND NOT(predictivesearch0.nbr2>23925373020405759 AND predictivesearch0.nbr2<24206847997116416) AND NOT(predictivesearch0.nbr3>23925373020405759 AND predictivesearch0.nbr3<24206847997116416) AND NOT(predictivesearch0.nbr4>23925373020405759 AND predictivesearch0.nbr4<24206847997116416))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   441     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(predictivesearch5.nbr>382805968326492159 AND predictivesearch5.nbr<387309567953862656) AND NOT(predictivesearch5.nbr2>382805968326492159 AND predictivesearch5.nbr2<387309567953862656) AND NOT(predictivesearch5.nbr3>382805968326492159 AND predictivesearch5.nbr3<387309567953862656) AND NOT(predictivesearch5.nbr4>382805968326492159 AND predictivesearch5.nbr4<387309567953862656)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23925373020405759 AND predictivesearch0.nbr<24206847997116416) AND NOT(predictivesearch0.nbr2>23925373020405759 AND predictivesearch0.nbr2<24206847997116416) AND NOT(predictivesearch0.nbr3>23925373020405759 AND predictivesearch0.nbr3<24206847997116416) AND NOT(predictivesearch0.nbr4>23925373020405759 AND predictivesearch0.nbr4<24206847997116416))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   438     result = mCntSqlSearch->CreatePredictiveSearch(pattern);   
   442     result = mCntSqlSearch->CreatePredictiveSearch(pattern);   
   439     LOG2(pattern, result);
   443     //qDebug() << pattern << " -> result" << result;
   440     //qDebug() << pattern << " -> result" << result;
   444     LOG2(pattern, result);
   441     QVERIFY(!result.compare(reference));
   445    
       
   446     QVERIFY(!result.compare(reference));
       
   447     
       
   448     pattern = QString ("052207");
       
   449     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>369858119397801983 AND nbr2<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>369858119397801983 AND nbr2<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>369858119397801983 AND nbr3<370139594374512640))) OR(NOT(NOT(nbr2>369858119397801983 AND nbr2<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>369858119397801983 AND nbr3<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>369858119397801983 AND nbr3<370139594374512640 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr3>504403158265495551 AND nbr3<576460752303423488)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23116613498699775 AND predictivesearch0.nbr<23116682218176512) AND NOT(predictivesearch0.nbr2>23116613498699775 AND predictivesearch0.nbr2<23116682218176512) AND NOT(predictivesearch0.nbr3>23116613498699775 AND predictivesearch0.nbr3<23116682218176512) AND NOT(predictivesearch0.nbr4>23116613498699775 AND predictivesearch0.nbr4<23116682218176512)))) OR(NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>23116132462362623 AND nbr2<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>23116132462362623 AND nbr2<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>23116132462362623 AND nbr3<23133724648407040))) OR(NOT(NOT(nbr2>23116132462362623 AND nbr2<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>23116132462362623 AND nbr3<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>23116132462362623 AND nbr3<23133724648407040 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr3>504403158265495551 AND nbr3<576460752303423488)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   450     result = mCntSqlSearch->CreatePredictiveSearch(pattern); 
       
   451     QVERIFY( !result.compare( reference) );
   442     TEST_PASSED_LOG("testPredictiveSearch");
   452     TEST_PASSED_LOG("testPredictiveSearch");
   443 }
   453 }
   444 
   454 
   445 void UT_CntSqlSearch::testSelectQweryTable()
   455 void UT_CntSqlSearch::testSelectQweryTable()
   446     {
   456     {
   449     QString result = mCntSqlSearch->selectQweryTable(pattern);
   459     QString result = mCntSqlSearch->selectQweryTable(pattern);
   450     QVERIFY(result == "qm0" );
   460     QVERIFY(result == "qm0" );
   451     
   461     
   452     pattern = QString("000");
   462     pattern = QString("000");
   453     result = mCntSqlSearch->selectQweryTable(pattern);
   463     result = mCntSqlSearch->selectQweryTable(pattern);
   454     //QVERIFY(result == "qm0" );
   464     //This case is ignore untli qwerty key map supports numbers
       
   465     //QVERIFY(result == "" );
   455     
   466     
   456     pattern = QString("9");
   467     pattern = QString("9");
   457     result = mCntSqlSearch->selectQweryTable(pattern);
   468     result = mCntSqlSearch->selectQweryTable(pattern);
   458     //QVERIFY(result == "qm9" );
   469     //QVERIFY(result == "qm9" );
       
   470     //This case is ignore untli qwerty key map supports numbers
   459     TEST_PASSED_LOG("testSelectQweryTable");
   471     TEST_PASSED_LOG("testSelectQweryTable");
   460     }
   472     }
   461 
   473 
   462 void UT_CntSqlSearch::testSelectTableView()
   474 void UT_CntSqlSearch::testSelectTableView()
   463 {
   475 {
   605     QVERIFY(!result.compare(reference));
   617     QVERIFY(!result.compare(reference));
   606     
   618     
   607     pattern = QString("00202");
   619     pattern = QString("00202");
   608 #if defined(SEARCH_FROM_ONE_TABLE)
   620 #if defined(SEARCH_FROM_ONE_TABLE)
   609 #if defined(USE_DEMORGAN)
   621 #if defined(USE_DEMORGAN)
   610     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE NOT(NOT(NOT(NOT(nbr>565148976676863 AND nbr<566248488304640) AND NOT(nbr2>565148976676863 AND nbr2<566248488304640) AND NOT(nbr3>565148976676863 AND nbr3<566248488304640) AND NOT(nbr4>565148976676863 AND nbr4<566248488304640))) AND NOT(NOT(NOT(nbr2>144115188075855871 AND nbr2<216172782113783808 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>562949953421311 AND nbr3<844424930131968))) AND NOT(NOT(NOT(nbr2>562949953421311 AND nbr2<844424930131968 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr3>144115188075855871 AND nbr3<216172782113783808)))) ORDER BY predictivesearch0.first_name, predictivesearch0.last_name ASC;");
   622     reference = QString("SELECT contact_id FROM (SELECT predictivesearch2.contact_id, predictivesearch2.first_name, predictivesearch2.last_name FROM predictivesearch2 WHERE ((NOT(NOT(nbr2>144115188075855871 AND nbr2<216172782113783808 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>144115188075855871 AND nbr3<216172782113783808))) OR(NOT(NOT(nbr2>144115188075855871 AND nbr2<216172782113783808 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>144115188075855871 AND nbr3<216172782113783808)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>565148976676863 AND predictivesearch0.nbr<566248488304640) AND NOT(predictivesearch0.nbr2>565148976676863 AND predictivesearch0.nbr2<566248488304640) AND NOT(predictivesearch0.nbr3>565148976676863 AND predictivesearch0.nbr3<566248488304640) AND NOT(predictivesearch0.nbr4>565148976676863 AND predictivesearch0.nbr4<566248488304640)))) OR(NOT(NOT(nbr2>144115188075855871 AND nbr2<216172782113783808 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>562949953421311 AND nbr3<844424930131968))) OR(NOT(NOT(nbr2>562949953421311 AND nbr2<844424930131968 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr3>144115188075855871 AND nbr3<216172782113783808)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   611 #else // #if defined(USE_DEMORGAN)
   623 #else // #if defined(USE_DEMORGAN)
   612     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE \
   624     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE \
   613 ((nbr>565148976676863 AND nbr<566248488304640) OR \
   625 ((nbr>565148976676863 AND nbr<566248488304640) OR \
   614 (nbr2>565148976676863 AND nbr2<566248488304640) OR \
   626 (nbr2>565148976676863 AND nbr2<566248488304640) OR \
   615 (nbr3>565148976676863 AND nbr3<566248488304640) OR \
   627 (nbr3>565148976676863 AND nbr3<566248488304640) OR \
   631 #else // #if defined(SEARCH_FROM_ONE_TABLE)
   643 #else // #if defined(SEARCH_FROM_ONE_TABLE)
   632     // TODO: Test this case on HW and verify leading zeros.
   644     // TODO: Test this case on HW and verify leading zeros.
   633     reference = QString("SELECT contact_id FROM (SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE (NOT(NOT(predictivesearch0.nbr>565148976676863 AND predictivesearch0.nbr<566248488304640) AND NOT(predictivesearch0.nbr2>565148976676863 AND predictivesearch0.nbr2<566248488304640) AND NOT(predictivesearch0.nbr3>565148976676863 AND predictivesearch0.nbr3<566248488304640) AND NOT(predictivesearch0.nbr4>565148976676863 AND predictivesearch0.nbr4<566248488304640))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 JOIN predictivesearch2 ON predictivesearch0.contact_id = predictivesearch2.contact_id WHERE(NOT(NOT(predictivesearch0.nbr>562949953421311 AND predictivesearch0.nbr<844424930131968) AND NOT(predictivesearch0.nbr2>562949953421311 AND predictivesearch0.nbr2<844424930131968) AND NOT(predictivesearch0.nbr3>562949953421311 AND predictivesearch0.nbr3<844424930131968) AND NOT(predictivesearch0.nbr4>562949953421311 AND predictivesearch0.nbr4<844424930131968)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   645     reference = QString("SELECT contact_id FROM (SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE (NOT(NOT(predictivesearch0.nbr>565148976676863 AND predictivesearch0.nbr<566248488304640) AND NOT(predictivesearch0.nbr2>565148976676863 AND predictivesearch0.nbr2<566248488304640) AND NOT(predictivesearch0.nbr3>565148976676863 AND predictivesearch0.nbr3<566248488304640) AND NOT(predictivesearch0.nbr4>565148976676863 AND predictivesearch0.nbr4<566248488304640))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 JOIN predictivesearch2 ON predictivesearch0.contact_id = predictivesearch2.contact_id WHERE(NOT(NOT(predictivesearch0.nbr>562949953421311 AND predictivesearch0.nbr<844424930131968) AND NOT(predictivesearch0.nbr2>562949953421311 AND predictivesearch0.nbr2<844424930131968) AND NOT(predictivesearch0.nbr3>562949953421311 AND predictivesearch0.nbr3<844424930131968) AND NOT(predictivesearch0.nbr4>562949953421311 AND predictivesearch0.nbr4<844424930131968)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   634 #endif // #if defined(SEARCH_FROM_ONE_TABLE)
   646 #endif // #if defined(SEARCH_FROM_ONE_TABLE)
   635     result = mCntSqlSearch->CreateQuery(pattern);
   647     result = mCntSqlSearch->CreateQuery(pattern);
   636     //qDebug() << pattern << " -> result" << result;
   648     //LOG2(pattern, result);
   637     LOG2(pattern, result);
   649     //qDebug() << pattern << " -> result" << result << " -> reference" << reference;
   638     QVERIFY( !result.compare( reference) );
   650     QVERIFY( !result.compare( reference) );
   639 
   651 
   640     pattern = QString("202000");
   652     pattern = QString("202000");
   641 #if defined(USE_DEMORGAN)
   653 #if defined(USE_DEMORGAN)
   642     // TODO: Test this case on HW and verify trailing zeros.
   654     // TODO: Test this case on HW and verify trailing zeros.
   662 (nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>144115188075855871 AND nbr3<144132780261900288) \
   674 (nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>144115188075855871 AND nbr3<144132780261900288) \
   663 ORDER BY predictivesearch2.first_name, predictivesearch2.last_name ASC;");*/
   675 ORDER BY predictivesearch2.first_name, predictivesearch2.last_name ASC;");*/
   664 
   676 
   665     result = mCntSqlSearch->CreateQuery(pattern);
   677     result = mCntSqlSearch->CreateQuery(pattern);
   666     //qDebug() << pattern << " -> result" << result;
   678     //qDebug() << pattern << " -> result" << result;
   667     LOG2(pattern, result);
   679     //LOG2(pattern, result);
   668     QVERIFY( !result.compare( reference) );
   680     QVERIFY( !result.compare( reference) );
   669 
   681 
   670     pattern = QString("0020200");
   682     pattern = QString("0020200");
   671 #if defined(SEARCH_FROM_ONE_TABLE)
   683 #if defined(SEARCH_FROM_ONE_TABLE)
   672 #if defined(USE_DEMORGAN)
   684 #if defined(USE_DEMORGAN)
   673     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE NOT(NOT(NOT(NOT(nbr>565148976676863 AND nbr<565153271644160) AND NOT(nbr2>565148976676863 AND nbr2<565153271644160) AND NOT(nbr3>565148976676863 AND nbr3<565153271644160) AND NOT(nbr4>565148976676863 AND nbr4<565153271644160))) AND NOT(NOT(NOT(nbr2>144115188075855871 AND nbr2<144396663052566528 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>144115188075855871 AND nbr3<144396663052566528 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>144115188075855871 AND nbr3<144396663052566528 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr3>562949953421311 AND nbr3<844424930131968))) AND NOT(NOT(NOT(nbr2>562949953421311 AND nbr2<844424930131968 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr2>144115188075855871 AND nbr2<144396663052566528) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr2>144115188075855871 AND nbr2<144396663052566528) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr3>144115188075855871 AND nbr3<144396663052566528)))) ORDER BY predictivesearch0.first_name, predictivesearch0.last_name ASC;");
   685     reference = QString("SELECT contact_id FROM (SELECT predictivesearch2.contact_id, predictivesearch2.first_name, predictivesearch2.last_name FROM predictivesearch2 WHERE ((NOT(NOT(nbr2>144115188075855871 AND nbr2<144396663052566528 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>144115188075855871 AND nbr3<144396663052566528 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>144115188075855871 AND nbr3<144396663052566528 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr3>144115188075855871 AND nbr3<216172782113783808))) OR(NOT(NOT(nbr2>144115188075855871 AND nbr2<216172782113783808 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr2>144115188075855871 AND nbr2<144396663052566528) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr2>144115188075855871 AND nbr2<144396663052566528) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>144115188075855871 AND nbr3<144396663052566528)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>565148976676863 AND predictivesearch0.nbr<565153271644160) AND NOT(predictivesearch0.nbr2>565148976676863 AND predictivesearch0.nbr2<565153271644160) AND NOT(predictivesearch0.nbr3>565148976676863 AND predictivesearch0.nbr3<565153271644160) AND NOT(predictivesearch0.nbr4>565148976676863 AND predictivesearch0.nbr4<565153271644160)))) OR(NOT(NOT(nbr2>144115188075855871 AND nbr2<144396663052566528 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>144115188075855871 AND nbr3<144396663052566528 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr3>144115188075855871 AND nbr3<144396663052566528 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr>562949953421311 AND nbr<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr2>562949953421311 AND nbr2<844424930131968) AND NOT(nbr4>144115188075855871 AND nbr4<144396663052566528 AND nbr3>562949953421311 AND nbr3<844424930131968))) OR(NOT(NOT(nbr2>562949953421311 AND nbr2<844424930131968 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr3>562949953421311 AND nbr3<844424930131968 AND nbr2>144115188075855871 AND nbr2<144396663052566528) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr>144115188075855871 AND nbr<144396663052566528) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr2>144115188075855871 AND nbr2<144396663052566528) AND NOT(nbr4>562949953421311 AND nbr4<844424930131968 AND nbr3>144115188075855871 AND nbr3<144396663052566528)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   674 #else // #if defined(USE_DEMORGAN)
   686 #else // #if defined(USE_DEMORGAN)
   675     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE \
   687     reference = QString("SELECT contact_id FROM predictivesearch0 WHERE \
   676 ((nbr>565148976676863 AND nbr<565153271644160) OR (nbr2>565148976676863 AND nbr2<565153271644160) OR \
   688 ((nbr>565148976676863 AND nbr<565153271644160) OR (nbr2>565148976676863 AND nbr2<565153271644160) OR \
   677 (nbr3>565148976676863 AND nbr3<565153271644160) OR (nbr4>565148976676863 AND nbr4<565153271644160)) OR \
   689 (nbr3>565148976676863 AND nbr3<565153271644160) OR (nbr4>565148976676863 AND nbr4<565153271644160)) OR \
   678 (nbr2>144115188075855871 AND nbr2<144396663052566528 AND nbr>562949953421311 AND nbr<844424930131968) OR \
   690 (nbr2>144115188075855871 AND nbr2<144396663052566528 AND nbr>562949953421311 AND nbr<844424930131968) OR \
   692 #else // #if defined(SEARCH_FROM_ONE_TABLE)
   704 #else // #if defined(SEARCH_FROM_ONE_TABLE)
   693     // TODO: Test this case on HW and verify leading zeros.
   705     // TODO: Test this case on HW and verify leading zeros.
   694     reference = QString("SELECT contact_id FROM (SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE (NOT(NOT(predictivesearch0.nbr>565148976676863 AND predictivesearch0.nbr<565153271644160) AND NOT(predictivesearch0.nbr2>565148976676863 AND predictivesearch0.nbr2<565153271644160) AND NOT(predictivesearch0.nbr3>565148976676863 AND predictivesearch0.nbr3<565153271644160) AND NOT(predictivesearch0.nbr4>565148976676863 AND predictivesearch0.nbr4<565153271644160))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 JOIN predictivesearch2 ON predictivesearch0.contact_id = predictivesearch2.contact_id WHERE((NOT(NOT(predictivesearch0.nbr>562949953421311 AND predictivesearch0.nbr<844424930131968) AND NOT(predictivesearch0.nbr2>562949953421311 AND predictivesearch0.nbr2<844424930131968) AND NOT(predictivesearch0.nbr3>562949953421311 AND predictivesearch0.nbr3<844424930131968) AND NOT(predictivesearch0.nbr4>562949953421311 AND predictivesearch0.nbr4<844424930131968))) AND (NOT(NOT(predictivesearch2.nbr>144115188075855871 AND predictivesearch2.nbr<144396663052566528) AND NOT(predictivesearch2.nbr2>144115188075855871 AND predictivesearch2.nbr2<144396663052566528) AND NOT(predictivesearch2.nbr3>144115188075855871 AND predictivesearch2.nbr3<144396663052566528) AND NOT(predictivesearch2.nbr4>144115188075855871 AND predictivesearch2.nbr4<144396663052566528))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   706     reference = QString("SELECT contact_id FROM (SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE (NOT(NOT(predictivesearch0.nbr>565148976676863 AND predictivesearch0.nbr<565153271644160) AND NOT(predictivesearch0.nbr2>565148976676863 AND predictivesearch0.nbr2<565153271644160) AND NOT(predictivesearch0.nbr3>565148976676863 AND predictivesearch0.nbr3<565153271644160) AND NOT(predictivesearch0.nbr4>565148976676863 AND predictivesearch0.nbr4<565153271644160))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 JOIN predictivesearch2 ON predictivesearch0.contact_id = predictivesearch2.contact_id WHERE((NOT(NOT(predictivesearch0.nbr>562949953421311 AND predictivesearch0.nbr<844424930131968) AND NOT(predictivesearch0.nbr2>562949953421311 AND predictivesearch0.nbr2<844424930131968) AND NOT(predictivesearch0.nbr3>562949953421311 AND predictivesearch0.nbr3<844424930131968) AND NOT(predictivesearch0.nbr4>562949953421311 AND predictivesearch0.nbr4<844424930131968))) AND (NOT(NOT(predictivesearch2.nbr>144115188075855871 AND predictivesearch2.nbr<144396663052566528) AND NOT(predictivesearch2.nbr2>144115188075855871 AND predictivesearch2.nbr2<144396663052566528) AND NOT(predictivesearch2.nbr3>144115188075855871 AND predictivesearch2.nbr3<144396663052566528) AND NOT(predictivesearch2.nbr4>144115188075855871 AND predictivesearch2.nbr4<144396663052566528))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   695 #endif //#if defined(SEARCH_FROM_ONE_TABLE) 
   707 #endif //#if defined(SEARCH_FROM_ONE_TABLE) 
   696     result = mCntSqlSearch->CreateQuery(pattern);
   708     result = mCntSqlSearch->CreateQuery(pattern);
   697     //qDebug() << pattern << " -> result" << result;
   709     qDebug() << pattern << " -> result" << result;
   698     LOG2(pattern, result);
   710     LOG2(pattern, result);
   699     QVERIFY( !result.compare( reference) );
   711     QVERIFY( !result.compare( reference) );
   700 
   712 
   701     pattern = QString("20322");
   713     pattern = QString("20322");
   702 #if defined(SEARCH_FROM_ONE_TABLE)
   714 #if defined(SEARCH_FROM_ONE_TABLE)
   908     pattern = QString ("055");
   920     pattern = QString ("055");
   909     tokens << "55";
   921     tokens << "55";
   910     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(predictivesearch5.nbr>382805968326492159 AND predictivesearch5.nbr<387309567953862656) AND NOT(predictivesearch5.nbr2>382805968326492159 AND predictivesearch5.nbr2<387309567953862656) AND NOT(predictivesearch5.nbr3>382805968326492159 AND predictivesearch5.nbr3<387309567953862656) AND NOT(predictivesearch5.nbr4>382805968326492159 AND predictivesearch5.nbr4<387309567953862656)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23925373020405759 AND predictivesearch0.nbr<24206847997116416) AND NOT(predictivesearch0.nbr2>23925373020405759 AND predictivesearch0.nbr2<24206847997116416) AND NOT(predictivesearch0.nbr3>23925373020405759 AND predictivesearch0.nbr3<24206847997116416) AND NOT(predictivesearch0.nbr4>23925373020405759 AND predictivesearch0.nbr4<24206847997116416))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   922     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(predictivesearch5.nbr>382805968326492159 AND predictivesearch5.nbr<387309567953862656) AND NOT(predictivesearch5.nbr2>382805968326492159 AND predictivesearch5.nbr2<387309567953862656) AND NOT(predictivesearch5.nbr3>382805968326492159 AND predictivesearch5.nbr3<387309567953862656) AND NOT(predictivesearch5.nbr4>382805968326492159 AND predictivesearch5.nbr4<387309567953862656)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23925373020405759 AND predictivesearch0.nbr<24206847997116416) AND NOT(predictivesearch0.nbr2>23925373020405759 AND predictivesearch0.nbr2<24206847997116416) AND NOT(predictivesearch0.nbr3>23925373020405759 AND predictivesearch0.nbr3<24206847997116416) AND NOT(predictivesearch0.nbr4>23925373020405759 AND predictivesearch0.nbr4<24206847997116416))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   911     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);  
   923     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);  
   912     QVERIFY( !result.compare( reference) );
   924     QVERIFY( !result.compare( reference) );
   913     /*tokens.clear();
   925     
   914     pattern = QString ("0550");
       
   915     tokens << "55";
       
   916     QString reference("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(predictivesearch5.nbr>23925373020405759 AND predictivesearch5.nbr<24206847997116416) AND NOT(predictivesearch5.nbr2>23925373020405759 AND predictivesearch5.nbr2<24206847997116416) AND NOT(predictivesearch5.nbr3>23925373020405759 AND predictivesearch5.nbr3<24206847997116416) AND NOT(predictivesearch5.nbr4>23925373020405759 AND predictivesearch5.nbr4<24206847997116416)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23925373020405759 AND predictivesearch0.nbr<24206847997116416) AND NOT(predictivesearch0.nbr2>23925373020405759 AND predictivesearch0.nbr2<24206847997116416) AND NOT(predictivesearch0.nbr3>23925373020405759 AND predictivesearch0.nbr3<24206847997116416) AND NOT(predictivesearch0.nbr4>23925373020405759 AND predictivesearch0.nbr4<24206847997116416))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   917     QString result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);  
       
   918         
       
   919     tokens.clear();
   926     tokens.clear();
   920     pattern = QString ("05505");
   927     pattern = QString ("05505");
   921     tokens << "55 << 5";
   928     tokens << "055" << "5";
   922     QString reference("SELECT contact_id FROM predictivesearch2 WHERE NOT(NOT(NOT(NOT(nbr>145522562959409151 AND nbr<145804037936119808) AND NOT(nbr2>145522562959409151 AND nbr2<145804037936119808) AND NOT(nbr3>145522562959409151 AND nbr3<145804037936119808) AND NOT(nbr4>145522562959409151 AND nbr4<145804037936119808))) AND NOT(NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>144115188075855871 AND nbr<216172782113783808) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>144115188075855871 AND nbr2<216172782113783808) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>144115188075855871 AND nbr3<216172782113783808))) AND NOT(NOT(NOT(nbr2>144115188075855871 AND nbr2<216172782113783808 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>144115188075855871 AND nbr3<216172782113783808 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>144115188075855871 AND nbr4<216172782113783808 AND nbr3>360287970189639679 AND nbr3<432345564227567616)))) ORDER BY predictivesearch2.first_name, predictivesearch2.last_name ASC;");
   929     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>382805968326492159 AND nbr<387309567953862656) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>382805968326492159 AND nbr<387309567953862656) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>382805968326492159 AND nbr2<387309567953862656) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>382805968326492159 AND nbr<387309567953862656) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>382805968326492159 AND nbr2<387309567953862656) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>382805968326492159 AND nbr3<387309567953862656))) OR(NOT(NOT(nbr2>382805968326492159 AND nbr2<387309567953862656 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>382805968326492159 AND nbr3<387309567953862656 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>382805968326492159 AND nbr3<387309567953862656 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>382805968326492159 AND nbr4<387309567953862656 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>382805968326492159 AND nbr4<387309567953862656 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>382805968326492159 AND nbr4<387309567953862656 AND nbr3>360287970189639679 AND nbr3<432345564227567616)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23930870578544639 AND predictivesearch0.nbr<23931970090172416) AND NOT(predictivesearch0.nbr2>23930870578544639 AND predictivesearch0.nbr2<23931970090172416) AND NOT(predictivesearch0.nbr3>23930870578544639 AND predictivesearch0.nbr3<23931970090172416) AND NOT(predictivesearch0.nbr4>23930870578544639 AND predictivesearch0.nbr4<23931970090172416)))) OR(NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>23925373020405759 AND nbr<24206847997116416) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>23925373020405759 AND nbr<24206847997116416) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>23925373020405759 AND nbr2<24206847997116416) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>23925373020405759 AND nbr<24206847997116416) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>23925373020405759 AND nbr2<24206847997116416) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>23925373020405759 AND nbr3<24206847997116416))) OR(NOT(NOT(nbr2>23925373020405759 AND nbr2<24206847997116416 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>23925373020405759 AND nbr3<24206847997116416 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>23925373020405759 AND nbr3<24206847997116416 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>23925373020405759 AND nbr4<24206847997116416 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>23925373020405759 AND nbr4<24206847997116416 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>23925373020405759 AND nbr4<24206847997116416 AND nbr3>360287970189639679 AND nbr3<432345564227567616)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
   923     QString result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);*/  
   930     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);
       
   931     QVERIFY( !result.compare( reference) );
       
   932     
       
   933     tokens.clear();
       
   934     pattern = QString ("0550");
       
   935     tokens << "055";
       
   936     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(predictivesearch5.nbr>382805968326492159 AND predictivesearch5.nbr<387309567953862656) AND NOT(predictivesearch5.nbr2>382805968326492159 AND predictivesearch5.nbr2<387309567953862656) AND NOT(predictivesearch5.nbr3>382805968326492159 AND predictivesearch5.nbr3<387309567953862656) AND NOT(predictivesearch5.nbr4>382805968326492159 AND predictivesearch5.nbr4<387309567953862656)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23925373020405759 AND predictivesearch0.nbr<23942965206450176) AND NOT(predictivesearch0.nbr2>23925373020405759 AND predictivesearch0.nbr2<23942965206450176) AND NOT(predictivesearch0.nbr3>23925373020405759 AND predictivesearch0.nbr3<23942965206450176) AND NOT(predictivesearch0.nbr4>23925373020405759 AND predictivesearch0.nbr4<23942965206450176))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   937     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);
       
   938     QVERIFY( !result.compare( reference) );
       
   939     
       
   940     tokens.clear();
       
   941     pattern = QString ("000550");
       
   942     tokens << "00055";
       
   943     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(predictivesearch5.nbr>382805968326492159 AND predictivesearch5.nbr<387309567953862656) AND NOT(predictivesearch5.nbr2>382805968326492159 AND predictivesearch5.nbr2<387309567953862656) AND NOT(predictivesearch5.nbr3>382805968326492159 AND predictivesearch5.nbr3<387309567953862656) AND NOT(predictivesearch5.nbr4>382805968326492159 AND predictivesearch5.nbr4<387309567953862656)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>93458488360959 AND predictivesearch0.nbr<93527207837696) AND NOT(predictivesearch0.nbr2>93458488360959 AND predictivesearch0.nbr2<93527207837696) AND NOT(predictivesearch0.nbr3>93458488360959 AND predictivesearch0.nbr3<93527207837696) AND NOT(predictivesearch0.nbr4>93458488360959 AND predictivesearch0.nbr4<93527207837696))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   944     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);  
       
   945     //qDebug() << pattern << " -> result" << result;
       
   946     QVERIFY( !result.compare( reference) );
       
   947     
       
   948     tokens.clear();
       
   949     pattern = QString ("055000");
       
   950     tokens << "055";
       
   951     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(predictivesearch5.nbr>382805968326492159 AND predictivesearch5.nbr<387309567953862656) AND NOT(predictivesearch5.nbr2>382805968326492159 AND predictivesearch5.nbr2<387309567953862656) AND NOT(predictivesearch5.nbr3>382805968326492159 AND predictivesearch5.nbr3<387309567953862656) AND NOT(predictivesearch5.nbr4>382805968326492159 AND predictivesearch5.nbr4<387309567953862656)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23925373020405759 AND predictivesearch0.nbr<23925441739882496) AND NOT(predictivesearch0.nbr2>23925373020405759 AND predictivesearch0.nbr2<23925441739882496) AND NOT(predictivesearch0.nbr3>23925373020405759 AND predictivesearch0.nbr3<23925441739882496) AND NOT(predictivesearch0.nbr4>23925373020405759 AND predictivesearch0.nbr4<23925441739882496))))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   952     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);
       
   953     //qDebug() << pattern << " -> result" << result;
       
   954     QVERIFY( !result.compare( reference) );
       
   955     
       
   956     tokens.clear();
       
   957     pattern = QString ("0500050");
       
   958     tokens << "05" << "5";
       
   959     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>360287970189639679 AND nbr3<432345564227567616))) OR(NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>360287970189639679 AND nbr3<432345564227567616)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>22518341734236159 AND predictivesearch0.nbr<22518346029203456) AND NOT(predictivesearch0.nbr2>22518341734236159 AND predictivesearch0.nbr2<22518346029203456) AND NOT(predictivesearch0.nbr3>22518341734236159 AND predictivesearch0.nbr3<22518346029203456) AND NOT(predictivesearch0.nbr4>22518341734236159 AND predictivesearch0.nbr4<22518346029203456)))) OR(NOT(NOT(nbr2>360287970189639679 AND nbr2<432345564227567616 AND nbr>22517998136852479 AND nbr<27021597764222976) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr>22517998136852479 AND nbr<27021597764222976) AND NOT(nbr3>360287970189639679 AND nbr3<432345564227567616 AND nbr2>22517998136852479 AND nbr2<27021597764222976) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr>22517998136852479 AND nbr<27021597764222976) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr2>22517998136852479 AND nbr2<27021597764222976) AND NOT(nbr4>360287970189639679 AND nbr4<432345564227567616 AND nbr3>22517998136852479 AND nbr3<27021597764222976))) OR(NOT(NOT(nbr2>22517998136852479 AND nbr2<27021597764222976 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>22517998136852479 AND nbr3<27021597764222976 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr3>22517998136852479 AND nbr3<27021597764222976 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>22517998136852479 AND nbr4<27021597764222976 AND nbr>360287970189639679 AND nbr<432345564227567616) AND NOT(nbr4>22517998136852479 AND nbr4<27021597764222976 AND nbr2>360287970189639679 AND nbr2<432345564227567616) AND NOT(nbr4>22517998136852479 AND nbr4<27021597764222976 AND nbr3>360287970189639679 AND nbr3<432345564227567616)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   960     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);
       
   961     QVERIFY( !result.compare( reference) );
       
   962     
       
   963     tokens.clear();
       
   964     pattern = QString ("052207");
       
   965     tokens << "0522" << "7";
       
   966     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>369858119397801983 AND nbr2<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>369858119397801983 AND nbr2<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>369858119397801983 AND nbr3<370139594374512640))) OR(NOT(NOT(nbr2>369858119397801983 AND nbr2<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>369858119397801983 AND nbr3<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>369858119397801983 AND nbr3<370139594374512640 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr3>504403158265495551 AND nbr3<576460752303423488)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23116613498699775 AND predictivesearch0.nbr<23116682218176512) AND NOT(predictivesearch0.nbr2>23116613498699775 AND predictivesearch0.nbr2<23116682218176512) AND NOT(predictivesearch0.nbr3>23116613498699775 AND predictivesearch0.nbr3<23116682218176512) AND NOT(predictivesearch0.nbr4>23116613498699775 AND predictivesearch0.nbr4<23116682218176512)))) OR(NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>23116132462362623 AND nbr2<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>23116132462362623 AND nbr2<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>23116132462362623 AND nbr3<23133724648407040))) OR(NOT(NOT(nbr2>23116132462362623 AND nbr2<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>23116132462362623 AND nbr3<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>23116132462362623 AND nbr3<23133724648407040 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr3>504403158265495551 AND nbr3<576460752303423488)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   967     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);
       
   968     QVERIFY( !result.compare( reference) );
       
   969     
       
   970     tokens.clear();
       
   971     pattern = QString ("052200007");
       
   972     tokens << "0522" << "7";
       
   973     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>369858119397801983 AND nbr2<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>369858119397801983 AND nbr2<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>369858119397801983 AND nbr3<370139594374512640))) OR(NOT(NOT(nbr2>369858119397801983 AND nbr2<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>369858119397801983 AND nbr3<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>369858119397801983 AND nbr3<370139594374512640 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr3>504403158265495551 AND nbr3<576460752303423488)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>23116132579803135 AND predictivesearch0.nbr<23116132596580352) AND NOT(predictivesearch0.nbr2>23116132579803135 AND predictivesearch0.nbr2<23116132596580352) AND NOT(predictivesearch0.nbr3>23116132579803135 AND predictivesearch0.nbr3<23116132596580352) AND NOT(predictivesearch0.nbr4>23116132579803135 AND predictivesearch0.nbr4<23116132596580352)))) OR(NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>23116132462362623 AND nbr2<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>23116132462362623 AND nbr<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>23116132462362623 AND nbr2<23133724648407040) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>23116132462362623 AND nbr3<23133724648407040))) OR(NOT(NOT(nbr2>23116132462362623 AND nbr2<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>23116132462362623 AND nbr3<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>23116132462362623 AND nbr3<23133724648407040 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>23116132462362623 AND nbr4<23133724648407040 AND nbr3>504403158265495551 AND nbr3<576460752303423488)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   974     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);
       
   975     QVERIFY( !result.compare( reference) );
       
   976     
       
   977     tokens.clear();
       
   978     pattern = QString ("0709");
       
   979     tokens << "07" << "9";
       
   980     reference = QString("SELECT contact_id FROM (SELECT predictivesearch7.contact_id, predictivesearch7.first_name, predictivesearch7.last_name FROM predictivesearch7 WHERE ((NOT(NOT(nbr2>648518346341351423 AND nbr2<720575940379279360 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>648518346341351423 AND nbr3<720575940379279360 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>648518346341351423 AND nbr3<720575940379279360 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>648518346341351423 AND nbr4<720575940379279360 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>648518346341351423 AND nbr4<720575940379279360 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>648518346341351423 AND nbr4<720575940379279360 AND nbr3>504403158265495551 AND nbr3<576460752303423488))) OR(NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>648518346341351423 AND nbr<720575940379279360) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>648518346341351423 AND nbr<720575940379279360) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>648518346341351423 AND nbr2<720575940379279360) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>648518346341351423 AND nbr<720575940379279360) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>648518346341351423 AND nbr2<720575940379279360) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>648518346341351423 AND nbr3<720575940379279360)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>31683527065993215 AND predictivesearch0.nbr<31701119252037632) AND NOT(predictivesearch0.nbr2>31683527065993215 AND predictivesearch0.nbr2<31701119252037632) AND NOT(predictivesearch0.nbr3>31683527065993215 AND predictivesearch0.nbr3<31701119252037632) AND NOT(predictivesearch0.nbr4>31683527065993215 AND predictivesearch0.nbr4<31701119252037632)))) OR(NOT(NOT(nbr2>648518346341351423 AND nbr2<720575940379279360 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr3>648518346341351423 AND nbr3<720575940379279360 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr3>648518346341351423 AND nbr3<720575940379279360 AND nbr2>31525197391593471 AND nbr2<36028797018963968) AND NOT(nbr4>648518346341351423 AND nbr4<720575940379279360 AND nbr>31525197391593471 AND nbr<36028797018963968) AND NOT(nbr4>648518346341351423 AND nbr4<720575940379279360 AND nbr2>31525197391593471 AND nbr2<36028797018963968) AND NOT(nbr4>648518346341351423 AND nbr4<720575940379279360 AND nbr3>31525197391593471 AND nbr3<36028797018963968))) OR(NOT(NOT(nbr2>31525197391593471 AND nbr2<36028797018963968 AND nbr>648518346341351423 AND nbr<720575940379279360) AND NOT(nbr3>31525197391593471 AND nbr3<36028797018963968 AND nbr>648518346341351423 AND nbr<720575940379279360) AND NOT(nbr3>31525197391593471 AND nbr3<36028797018963968 AND nbr2>648518346341351423 AND nbr2<720575940379279360) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr>648518346341351423 AND nbr<720575940379279360) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr2>648518346341351423 AND nbr2<720575940379279360) AND NOT(nbr4>31525197391593471 AND nbr4<36028797018963968 AND nbr3>648518346341351423 AND nbr3<720575940379279360)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   981     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);
       
   982     QVERIFY( !result.compare( reference) );
       
   983     
       
   984     tokens.clear();
       
   985     pattern = QString ("00052200007");
       
   986     tokens << "000522" << "7";
       
   987     reference = QString("SELECT contact_id FROM (SELECT predictivesearch5.contact_id, predictivesearch5.first_name, predictivesearch5.last_name FROM predictivesearch5 WHERE ((NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>369858119397801983 AND nbr2<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>369858119397801983 AND nbr<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>369858119397801983 AND nbr2<370139594374512640) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>369858119397801983 AND nbr3<370139594374512640))) OR(NOT(NOT(nbr2>369858119397801983 AND nbr2<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>369858119397801983 AND nbr3<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>369858119397801983 AND nbr3<370139594374512640 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>369858119397801983 AND nbr4<370139594374512640 AND nbr3>504403158265495551 AND nbr3<576460752303423488)))) UNION SELECT predictivesearch0.contact_id, predictivesearch0.first_name, predictivesearch0.last_name FROM predictivesearch0 WHERE ((NOT(NOT(predictivesearch0.nbr>90297392889855 AND predictivesearch0.nbr<90297392955392) AND NOT(predictivesearch0.nbr2>90297392889855 AND predictivesearch0.nbr2<90297392955392) AND NOT(predictivesearch0.nbr3>90297392889855 AND predictivesearch0.nbr3<90297392955392) AND NOT(predictivesearch0.nbr4>90297392889855 AND predictivesearch0.nbr4<90297392955392)))) OR(NOT(NOT(nbr2>504403158265495551 AND nbr2<576460752303423488 AND nbr>90297392431103 AND nbr<90366111907840) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr>90297392431103 AND nbr<90366111907840) AND NOT(nbr3>504403158265495551 AND nbr3<576460752303423488 AND nbr2>90297392431103 AND nbr2<90366111907840) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr>90297392431103 AND nbr<90366111907840) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr2>90297392431103 AND nbr2<90366111907840) AND NOT(nbr4>504403158265495551 AND nbr4<576460752303423488 AND nbr3>90297392431103 AND nbr3<90366111907840))) OR(NOT(NOT(nbr2>90297392431103 AND nbr2<90366111907840 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>90297392431103 AND nbr3<90366111907840 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr3>90297392431103 AND nbr3<90366111907840 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>90297392431103 AND nbr4<90366111907840 AND nbr>504403158265495551 AND nbr<576460752303423488) AND NOT(nbr4>90297392431103 AND nbr4<90366111907840 AND nbr2>504403158265495551 AND nbr2<576460752303423488) AND NOT(nbr4>90297392431103 AND nbr4<90366111907840 AND nbr3>504403158265495551 AND nbr3<576460752303423488)))) AS PR ORDER BY PR.first_name, PR.last_name ASC;");
       
   988     result = mCntSqlSearch->CompareTwoColumnsWithModifiedPattern(pattern, tokens);
       
   989     QVERIFY( !result.compare( reference) );
       
   990     
   924     TEST_PASSED_LOG("testCompareTwoColumnsWithModifiedPattern");
   991     TEST_PASSED_LOG("testCompareTwoColumnsWithModifiedPattern");
   925     }
   992     }
   926 void UT_CntSqlSearch::testModifiedMatchColumns()
   993 void UT_CntSqlSearch::testModifiedMatchColumns()
   927     {
   994     {
   928     TEST_BEGIN_LOG("testModifiedMatchColumns");
   995     TEST_BEGIN_LOG("testModifiedMatchColumns");
  1302     QVERIFY(tokens.at(0) == "28");
  1369     QVERIFY(tokens.at(0) == "28");
  1303     
  1370     
  1304     tokens = mCntSqlSearch->GetTokens("000019700");
  1371     tokens = mCntSqlSearch->GetTokens("000019700");
  1305     QVERIFY(tokens.count() == 1);
  1372     QVERIFY(tokens.count() == 1);
  1306     QVERIFY(tokens.at(0) == "197");
  1373     QVERIFY(tokens.at(0) == "197");
       
  1374     
       
  1375     tokens = mCntSqlSearch->GetTokens("200");
       
  1376     QVERIFY(tokens.count() == 1);
       
  1377     QVERIFY(tokens.at(0) == "2");
  1307 
  1378 
  1308     tokens = mCntSqlSearch->GetTokens("101");
  1379     tokens = mCntSqlSearch->GetTokens("101");
  1309     QVERIFY(tokens.count() == 2);
  1380     QVERIFY(tokens.count() == 2);
  1310     QVERIFY(tokens.at(0) == "1");
  1381     QVERIFY(tokens.at(0) == "1");
  1311     QVERIFY(tokens.at(1) == "1");
  1382     QVERIFY(tokens.at(1) == "1");
  1371     reference = false;
  1442     reference = false;
  1372     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZerosEndOfFirstToken);
  1443     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZerosEndOfFirstToken);
  1373     QCOMPARE( result, reference );
  1444     QCOMPARE( result, reference );
  1374 
  1445 
  1375     pattern = QString("200");
  1446     pattern = QString("200");
  1376     reference = false;
  1447     reference = true;
  1377     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZerosEndOfFirstToken);
  1448     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZerosEndOfFirstToken);
  1378     QCOMPARE( result, reference );
  1449     QCOMPARE( result, reference );
  1379 
  1450 
  1380     pattern = QString("2000");
  1451     pattern = QString("2000");
  1381     reference = false;
  1452     reference = true;
  1382     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZerosEndOfFirstToken);
  1453     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZerosEndOfFirstToken);
  1383     QCOMPARE( result, reference );
  1454     QCOMPARE( result, reference );
  1384 
  1455 
  1385     pattern = QString("020002");
  1456     pattern = QString("020002");
  1386     reference = false;
  1457     reference = false;
  1442     reference = true;
  1513     reference = true;
  1443     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZeroIsFirstNumber);
  1514     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZeroIsFirstNumber);
  1444     QCOMPARE( result, reference );
  1515     QCOMPARE( result, reference );
  1445     
  1516     
  1446     pattern = QString("00232");
  1517     pattern = QString("00232");
  1447     reference = false;
  1518     reference = true;
       
  1519     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZeroIsFirstNumber);
       
  1520     QCOMPARE( result, reference );
       
  1521     
       
  1522     pattern = QString("052207");
       
  1523     reference = true;
  1448     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZeroIsFirstNumber);
  1524     result = mCntSqlSearch->TestPattern(pattern, CntSqlSearch::ZeroIsFirstNumber);
  1449     QCOMPARE( result, reference );
  1525     QCOMPARE( result, reference );
  1450     
  1526     
  1451     pattern = QString("0");
  1527     pattern = QString("0");
  1452     reference = false;
  1528     reference = false;