searchengine/cpix/tsrc/cpixunittest/src/documenttest.cpp
changeset 3 ae3f1779f6da
parent 0 671dee74050a
child 7 a5fbfefd615f
equal deleted inserted replaced
2:6c1a2771f4b7 3:ae3f1779f6da
    33 
    33 
    34 #include "config.h"
    34 #include "config.h"
    35 #include "testutils.h"
    35 #include "testutils.h"
    36 #include "setupsentry.h"
    36 #include "setupsentry.h"
    37 
    37 
       
    38 #include "std_log_result.h"
       
    39 
    38 #define TEST_DOCUMENT_QBASEAPPCLASS "@0:root test document"
    40 #define TEST_DOCUMENT_QBASEAPPCLASS "@0:root test document"
    39 #define TEST_DOCUMENT_INDEXDB_PATH "c:\\Data\\indexing\\indexdb\\root\\test\\document"
    41 #define TEST_DOCUMENT_INDEXDB_PATH "c:\\Data\\indexing\\indexdb\\root\\test\\document"
    40 
    42 
    41 #define DOCUID1 "document1" // without boosting this document will never be first result
    43 #define DOCUID1 "document1" // without boosting this document will never be first result
    42 #define DOCUID2 "document2"
    44 #define DOCUID2 "document2"
   292     }
   294     }
   293 
   295 
   294     void testNoBoostingFields(Itk::TestMgr * testMgr)
   296     void testNoBoostingFields(Itk::TestMgr * testMgr)
   295     {
   297     {
   296         // Don't boost Field Alpha in doc1
   298         // Don't boost Field Alpha in doc1
   297 
   299         char *xml_file = (char *)__FUNCTION__;
       
   300         assert_failed = 0;
   298         addDocument(testMgr,
   301         addDocument(testMgr,
   299                     LDOCUID1,
   302                     LDOCUID1,
   300                     DOC1CONTENT);
   303                     DOC1CONTENT);
   301         addDocument(testMgr,
   304         addDocument(testMgr,
   302                     LDOCUID2,
   305                     LDOCUID2,
   304         
   307         
   305         cpix_IdxDb_flush(idxDb_);
   308         cpix_IdxDb_flush(idxDb_);
   306         ITK_EXPECT(testMgr,
   309         ITK_EXPECT(testMgr,
   307                    cpix_Succeeded(idxDb_),
   310                    cpix_Succeeded(idxDb_),
   308                    "Flushing index has failed");
   311                    "Flushing index has failed");
       
   312         if(!cpix_Succeeded(idxDb_))
       
   313             {
       
   314             assert_failed = 1;
       
   315             }
   309 
   316 
   310         executeSearch(testMgr);
   317         executeSearch(testMgr);
   311         //  EXPECTED result is that doc2 first, doc1 second.
   318         //  EXPECTED result is that doc2 first, doc1 second.
   312 
   319 
   313         cpix_Document
   320         cpix_Document
   321         {
   328         {
   322             std::wstring str(id);
   329             std::wstring str(id);
   323             ITK_ASSERT(testMgr,
   330             ITK_ASSERT(testMgr,
   324                 str.compare(LDOCUID2) == 0,
   331                 str.compare(LDOCUID2) == 0,
   325                 "wrong document");
   332                 "wrong document");
   326         }
   333             if(str.compare(LDOCUID2) != 0)
   327         else
   334                 {
   328         {
   335                 assert_failed = 1;
       
   336                 }
       
   337         }
       
   338         else
       
   339         {
       
   340             assert_failed = 1;
   329             ITK_PANIC("failed to get _docuid");
   341             ITK_PANIC("failed to get _docuid");
   330         }
   342         }
   331 
   343 
   332         cpix_Document
   344         cpix_Document
   333             returnedDoc2;
   345             returnedDoc2;
   340         {
   352         {
   341             std::wstring str(id);
   353             std::wstring str(id);
   342             ITK_ASSERT(testMgr,
   354             ITK_ASSERT(testMgr,
   343                 str.compare(LDOCUID1) == 0,
   355                 str.compare(LDOCUID1) == 0,
   344                 "wrong document");
   356                 "wrong document");
   345         }
   357             if(str.compare(LDOCUID1) != 0)
   346         else
   358                 {
   347         {
   359                 assert_failed = 1;
   348             ITK_PANIC("failed to get _docuid");
   360                 }
   349         }
   361         }
       
   362         else
       
   363         {
       
   364         assert_failed = 1;
       
   365             ITK_PANIC("failed to get _docuid");
       
   366         }
       
   367         testResultXml(xml_file);
   350     }
   368     }
   351 
   369 
   352 
   370 
   353 
   371 
   354     void testBoostField(Itk::TestMgr * testMgr)
   372     void testBoostField(Itk::TestMgr * testMgr)
   355     {
   373     {
       
   374         char *xml_file = (char *)__FUNCTION__;
       
   375         assert_failed = 0;
   356         tearDown();
   376         tearDown();
   357         setup();
   377         setup();
   358 
   378 
   359         addDocument(testMgr,
   379         addDocument(testMgr,
   360                     LDOCUID1,
   380                     LDOCUID1,
   367 
   387 
   368         cpix_IdxDb_flush(idxDb_);
   388         cpix_IdxDb_flush(idxDb_);
   369         ITK_EXPECT(testMgr,
   389         ITK_EXPECT(testMgr,
   370                    cpix_Succeeded(idxDb_),
   390                    cpix_Succeeded(idxDb_),
   371                    "Flushing index has failed");
   391                    "Flushing index has failed");
       
   392         if(!cpix_Succeeded(idxDb_))
       
   393             {
       
   394             assert_failed = 1;
       
   395             }
   372 
   396 
   373         executeSearch(testMgr);
   397         executeSearch(testMgr);
   374         //  EXPECTED result is that doc1 first, doc2 second.
   398         //  EXPECTED result is that doc1 first, doc2 second.
   375 
   399 
   376         cpix_Document
   400         cpix_Document
   384         {
   408         {
   385             std::wstring str( id );
   409             std::wstring str( id );
   386             ITK_ASSERT(testMgr,
   410             ITK_ASSERT(testMgr,
   387                 str.compare(LDOCUID1) == 0,
   411                 str.compare(LDOCUID1) == 0,
   388                 "wrong document");
   412                 "wrong document");
   389         }
   413             if(str.compare(LDOCUID1) != 0)
   390         else
   414                 {
   391         {
   415                 assert_failed = 1;
   392             ITK_PANIC("failed to get _docuid");
   416                 }
       
   417         }
       
   418         else
       
   419         {
       
   420             ITK_PANIC("failed to get _docuid");
       
   421             assert_failed = 1;
   393         }
   422         }
   394 
   423 
   395         cpix_Document
   424         cpix_Document
   396             returnedDoc2;
   425             returnedDoc2;
   397 
   426 
   403         {
   432         {
   404             std::wstring str( id );
   433             std::wstring str( id );
   405             ITK_ASSERT(testMgr,
   434             ITK_ASSERT(testMgr,
   406                 str.compare(LDOCUID2) == 0,
   435                 str.compare(LDOCUID2) == 0,
   407                 "wrong document");
   436                 "wrong document");
   408         }
   437             if(str.compare(LDOCUID2) != 0)
   409         else
   438                 {
   410         {
   439                 assert_failed = 1;
   411             ITK_PANIC("failed to get _docuid");
   440                 }
   412         }
   441         }
       
   442         else
       
   443         {
       
   444             ITK_PANIC("failed to get _docuid");
       
   445             assert_failed = 1;
       
   446         }
       
   447         testResultXml(xml_file);
   413     }
   448     }
   414 
   449 
   415     void testBoostDocument(Itk::TestMgr * testMgr)
   450     void testBoostDocument(Itk::TestMgr * testMgr)
   416     {
   451     {
       
   452         char *xml_file = (char *)__FUNCTION__;
       
   453         assert_failed = 0;
   417         tearDown();
   454         tearDown();
   418         setup();
   455         setup();
   419     
   456     
   420         addDocument(testMgr,
   457         addDocument(testMgr,
   421                     LDOCUID1,
   458                     LDOCUID1,
   428 
   465 
   429         cpix_IdxDb_flush(idxDb_);
   466         cpix_IdxDb_flush(idxDb_);
   430         ITK_EXPECT(testMgr,
   467         ITK_EXPECT(testMgr,
   431                    cpix_Succeeded(idxDb_),
   468                    cpix_Succeeded(idxDb_),
   432                    "Flushing index has failed");
   469                    "Flushing index has failed");
   433 
   470         if(!cpix_Succeeded(idxDb_))
       
   471             {
       
   472             assert_failed = 1;
       
   473             }
   434         executeSearch(testMgr);
   474         executeSearch(testMgr);
   435         //  EXPECTED result is that doc1 first, doc2 second.
   475         //  EXPECTED result is that doc1 first, doc2 second.
   436 
   476 
   437         cpix_Document
   477         cpix_Document
   438             returnedDoc1;
   478             returnedDoc1;
   445         {
   485         {
   446             std::wstring str(id);
   486             std::wstring str(id);
   447             ITK_ASSERT(testMgr,
   487             ITK_ASSERT(testMgr,
   448                 str.compare(LDOCUID1) == 0,
   488                 str.compare(LDOCUID1) == 0,
   449                 "wrong document");
   489                 "wrong document");
   450         }
   490             if(str.compare(LDOCUID1) != 0)
   451         else
   491                 {
   452         {
   492                 assert_failed = 1;
   453             ITK_PANIC("failed to get _docuid");
   493                 }
       
   494         }
       
   495         else
       
   496         {
       
   497             ITK_PANIC("failed to get _docuid");
       
   498             assert_failed = 1;
   454         }
   499         }
   455 
   500 
   456         cpix_Document
   501         cpix_Document
   457             returnedDoc2;
   502             returnedDoc2;
   458 
   503 
   464         {
   509         {
   465             std::wstring str(id);
   510             std::wstring str(id);
   466             ITK_ASSERT(testMgr,
   511             ITK_ASSERT(testMgr,
   467                 str.compare(LDOCUID2) == 0,
   512                 str.compare(LDOCUID2) == 0,
   468                 "wrong document");
   513                 "wrong document");
   469         }
   514             if(str.compare(LDOCUID2) != 0)
   470         else
   515                 {
   471         {
   516                 assert_failed = 1;
   472             ITK_PANIC("failed to get _docuid");
   517                 }
   473         }
   518         }
       
   519         else
       
   520         {
       
   521             ITK_PANIC("failed to get _docuid");
       
   522             assert_failed = 1;
       
   523         }
       
   524         testResultXml(xml_file);
   474     }
   525     }
   475 
   526 
   476 
   527 
   477     void testBoostQuery(Itk::TestMgr * testMgr)
   528     void testBoostQuery(Itk::TestMgr * testMgr)
   478     {
   529     {
       
   530         char *xml_file = (char *)__FUNCTION__;
       
   531         assert_failed = 0;
   479         tearDown();
   532         tearDown();
   480         setup();
   533         setup();
   481 
   534 
   482         addDocument(testMgr,
   535         addDocument(testMgr,
   483                     LDOCUID1,
   536                     LDOCUID1,
   488 
   541 
   489         cpix_IdxDb_flush(idxDb_);
   542         cpix_IdxDb_flush(idxDb_);
   490         ITK_EXPECT(testMgr,
   543         ITK_EXPECT(testMgr,
   491                    cpix_Succeeded(idxDb_),
   544                    cpix_Succeeded(idxDb_),
   492                    "Flushing index has failed");
   545                    "Flushing index has failed");
   493 
   546         if(!cpix_Succeeded(idxDb_))
       
   547             {
       
   548             assert_failed = 1;
       
   549             }
   494         // doc1_ should be the first result given the following query boost.
   550         // doc1_ should be the first result given the following query boost.
   495         cpix_Query_destroy(query_);
   551         cpix_Query_destroy(query_);
   496 
   552 
   497         query_ = cpix_QueryParser_parse(queryParser_,
   553         query_ = cpix_QueryParser_parse(queryParser_,
   498                                         BOOST_SEARCH_TERMS);
   554                                         BOOST_SEARCH_TERMS);
   503             hits_len = cpix_Hits_length(hits_);
   559             hits_len = cpix_Hits_length(hits_);
   504 
   560 
   505         ITK_ASSERT(testMgr,
   561         ITK_ASSERT(testMgr,
   506                   hits_len == 2,
   562                   hits_len == 2,
   507                   "wrong amount of documents returned in hits");
   563                   "wrong amount of documents returned in hits");
       
   564         if(hits_len != 2)
       
   565             {
       
   566             assert_failed = 1;
       
   567             }
   508 
   568 
   509         //  EXPECTED result is that doc2 first.
   569         //  EXPECTED result is that doc2 first.
   510         cpix_Document
   570         cpix_Document
   511             returnedDoc1;
   571             returnedDoc1;
   512         
   572         
   518         {
   578         {
   519             std::wstring str(id);
   579             std::wstring str(id);
   520             ITK_ASSERT(testMgr,
   580             ITK_ASSERT(testMgr,
   521                 str.compare(LDOCUID1) == 0,
   581                 str.compare(LDOCUID1) == 0,
   522                 "wrong document");
   582                 "wrong document");
   523         }
   583             if(str.compare(LDOCUID2) != 0)
   524         else
   584                 {
   525         {
   585                 assert_failed = 1;
   526             ITK_PANIC("failed to get _docuid");
   586                 }
       
   587         }
       
   588         else
       
   589         {
       
   590             ITK_PANIC("failed to get _docuid");
       
   591             assert_failed = 1;
   527         }
   592         }
   528 
   593 
   529         cpix_Document
   594         cpix_Document
   530             returnedDoc2;
   595             returnedDoc2;
   531 
   596 
   537         {
   602         {
   538             std::wstring str(id);
   603             std::wstring str(id);
   539             ITK_ASSERT(testMgr,
   604             ITK_ASSERT(testMgr,
   540                 str.compare(LDOCUID2) == 0,
   605                 str.compare(LDOCUID2) == 0,
   541                 "wrong document");
   606                 "wrong document");
   542         }
   607             if(str.compare(LDOCUID2) != 0)
   543         else
   608                 {
   544         {
   609                 assert_failed = 1;
   545             ITK_PANIC("failed to get _docuid");
   610                 }
   546         }
   611         }
       
   612         else
       
   613         {
       
   614             ITK_PANIC("failed to get _docuid");
       
   615             assert_failed = 1;
       
   616         }
       
   617         testResultXml(xml_file);
   547     }
   618     }
   548 };
   619 };
   549 
   620 
   550 
   621 
   551 Itk::TesterBase * CreateDocumentTests()
   622 Itk::TesterBase * CreateDocumentTests()