28 #include "testutils.h" |
28 #include "testutils.h" |
29 #include "cpixanalyzer.h" |
29 #include "cpixanalyzer.h" |
30 |
30 |
31 #include "cpixdoc.h" |
31 #include "cpixdoc.h" |
32 |
32 |
|
33 #include "std_log_result.h" |
33 const char * AnalysisTestDocsToIndex[5] = { |
34 const char * AnalysisTestDocsToIndex[5] = { |
34 FILE_TEST_CORPUS_PATH "\\en\\1.txt", |
35 FILE_TEST_CORPUS_PATH "\\en\\1.txt", |
35 FILE_TEST_CORPUS_PATH "\\en\\2.txt", |
36 FILE_TEST_CORPUS_PATH "\\en\\2.txt", |
36 FILE_TEST_CORPUS_PATH "\\en\\3.txt", |
37 FILE_TEST_CORPUS_PATH "\\en\\3.txt", |
37 FILE_TEST_CORPUS_PATH "\\en\\4.txt", |
38 FILE_TEST_CORPUS_PATH "\\en\\4.txt", |
44 L"happening", |
45 L"happening", |
45 NULL |
46 NULL |
46 }; |
47 }; |
47 |
48 |
48 |
49 |
49 void TestAnalyzerParsing(Itk::TestMgr * , const wchar_t* definition) |
50 void TestAnalyzerParsing(Itk::TestMgr * , const wchar_t* definition, int expected = 1) |
50 { |
51 { |
51 cpix_Result result; |
52 cpix_Result result; |
52 |
53 |
53 printf("Creating analyzer %S\n", definition); |
54 printf("Creating analyzer %S\n", definition); |
54 |
55 |
55 cpix_Analyzer* analyzer = cpix_Analyzer_create( &result, definition); |
56 cpix_Analyzer* analyzer = cpix_Analyzer_create( &result, definition); |
56 |
57 |
57 if ( cpix_Failed( &result) ) { |
58 if ( cpix_Failed( &result) ) { |
|
59 if(expected) |
|
60 assert_failed = 1; |
|
61 else |
|
62 assert_failed = 0; |
58 printf("Analyzer creation failed with %S\n", result.err_->msg_); |
63 printf("Analyzer creation failed with %S\n", result.err_->msg_); |
59 return; |
64 return; |
60 } |
65 } |
61 cpix_Analyzer_destroy( analyzer ); |
66 cpix_Analyzer_destroy( analyzer ); |
62 } |
67 } |
63 |
68 |
64 void TestAnalyzersParsing(Itk::TestMgr * testMgr) |
69 void TestAnalyzersParsing(Itk::TestMgr * testMgr) |
65 { |
70 { |
|
71 char *xml_file = (char*)__FUNCTION__; |
|
72 assert_failed = 0; |
66 TestAnalyzerParsing(testMgr, L"stdtokens>lowercase"); |
73 TestAnalyzerParsing(testMgr, L"stdtokens>lowercase"); |
67 TestAnalyzerParsing(testMgr, L"whitespace>lowercase"); |
74 TestAnalyzerParsing(testMgr, L"whitespace>lowercase"); |
68 TestAnalyzerParsing(testMgr, L"letter>lowercase"); |
75 TestAnalyzerParsing(testMgr, L"letter>lowercase"); |
69 // special syntax |
76 // special syntax |
70 TestAnalyzerParsing(testMgr, L"stdtokens()>lowercase"); |
77 TestAnalyzerParsing(testMgr, L"stdtokens()>lowercase"); |
73 TestAnalyzerParsing(testMgr, L"stdtokens>lowercase>stem(en)"); |
80 TestAnalyzerParsing(testMgr, L"stdtokens>lowercase>stem(en)"); |
74 TestAnalyzerParsing(testMgr, L"letter>lowercase>stop(en)"); |
81 TestAnalyzerParsing(testMgr, L"letter>lowercase>stop(en)"); |
75 TestAnalyzerParsing(testMgr, L"letter>lowercase>stop('a', 'an', 'the')"); |
82 TestAnalyzerParsing(testMgr, L"letter>lowercase>stop('a', 'an', 'the')"); |
76 |
83 |
77 // bad syntaxes |
84 // bad syntaxes |
78 TestAnalyzerParsing(testMgr, L"letter><lowercase" ); |
85 TestAnalyzerParsing(testMgr, L"letter><lowercase" ,0); |
79 TestAnalyzerParsing(testMgr, L"38j_d fad23 4?q ca'wRA" ); |
86 TestAnalyzerParsing(testMgr, L"38j_d fad23 4?q ca'wRA", 0 ); |
80 // parsing failures |
87 // parsing failures |
81 TestAnalyzerParsing(testMgr, L"letter>>lowercase" ); |
88 TestAnalyzerParsing(testMgr, L"letter>>lowercase", 0 ); |
82 TestAnalyzerParsing(testMgr, L">letter>>lowercase lowercase" ); |
89 TestAnalyzerParsing(testMgr, L">letter>>lowercase lowercase", 0 ); |
83 TestAnalyzerParsing(testMgr, L"letter lowercase" ); |
90 TestAnalyzerParsing(testMgr, L"letter lowercase", 0 ); |
|
91 testResultXml(xml_file); |
84 } |
92 } |
85 |
93 |
86 void TestSwitchParsing(Itk::TestMgr * testMgr) |
94 void TestSwitchParsing(Itk::TestMgr * testMgr) |
87 { |
95 { |
|
96 char *xml_file = (char*)__FUNCTION__; |
|
97 assert_failed = 0; |
88 // Per field query syntax |
98 // Per field query syntax |
89 TestAnalyzerParsing(testMgr, L"switch {" |
99 TestAnalyzerParsing(testMgr, L"switch {" |
90 L"case '_docuid': keyword; " |
100 L"case '_docuid': keyword; " |
91 L"case '_appclass': whitespace>lowercase;" |
101 L"case '_appclass': whitespace>lowercase;" |
92 L"case 'title', 'message': standard>lowercase>stem(en)>stop(en);" |
102 L"case 'title', 'message': standard>lowercase>stem(en)>stop(en);" |
93 L"default: standard;" |
103 L"default: standard;" |
94 L"}"); |
104 L"}"); |
95 TestAnalyzerParsing(testMgr, L"switch{ case '_qnr': whitespace; default: standard; }>lowercase"); |
105 TestAnalyzerParsing(testMgr, L"switch{ case '_qnr': whitespace; default: standard; }>lowercase"); |
96 TestAnalyzerParsing(testMgr, L"switch{ default: standard; }"); |
106 TestAnalyzerParsing(testMgr, L"switch{ default: standard; }"); |
97 TestAnalyzerParsing(testMgr, L"switch{ case '_qnr': switch{ case '_docuid': keyword; default: whitespace; }; default: standard; }"); |
107 TestAnalyzerParsing(testMgr, L"switch{ case '_qnr': switch{ case '_docuid': keyword; default: whitespace; }; default: standard; }"); |
|
108 testResultXml(xml_file); |
98 } |
109 } |
99 |
110 |
100 void TestAnalyzerUsage(Itk::TestMgr * testMgr, const wchar_t* definition) |
111 void TestAnalyzerUsage(Itk::TestMgr * testMgr, const wchar_t* definition) |
101 { |
112 { |
102 printf("Indexing and searching with %S\n", definition); |
113 printf("Indexing and searching with %S\n", definition); |
103 |
114 char *xml_file = (char*)__FUNCTION__; |
|
115 assert_failed = 0; |
104 cpix_Result |
116 cpix_Result |
105 result; |
117 result; |
106 |
118 |
107 cpix_IdxDb_dbgScrapAll(&result); |
119 cpix_IdxDb_dbgScrapAll(&result); |
108 |
120 |
190 cpix_Hits_destroy( hits ); |
203 cpix_Hits_destroy( hits ); |
191 } |
204 } |
192 } |
205 } |
193 cpix_QueryParser_destroy(queryParser); |
206 cpix_QueryParser_destroy(queryParser); |
194 cpix_Analyzer_destroy( analyzer ); |
207 cpix_Analyzer_destroy( analyzer ); |
|
208 testResultXml(xml_file); |
195 } |
209 } |
196 |
210 |
197 void TestAnalyzersUsage(Itk::TestMgr * testMgr) |
211 void TestAnalyzersUsage(Itk::TestMgr * testMgr) |
198 { |
212 { |
|
213 char *xml_file = (char*)__FUNCTION__; |
|
214 assert_failed = 0; |
199 TestAnalyzerUsage(testMgr, L"whitespace" ); |
215 TestAnalyzerUsage(testMgr, L"whitespace" ); |
200 TestAnalyzerUsage(testMgr, L"letter>lowercase" ); |
216 TestAnalyzerUsage(testMgr, L"letter>lowercase" ); |
201 TestAnalyzerUsage(testMgr, L"stdtokens>lowercase>stem(en)"); |
217 TestAnalyzerUsage(testMgr, L"stdtokens>lowercase>stem(en)"); |
202 TestAnalyzerUsage(testMgr, L"letter>lowercase>stop(en)"); |
218 TestAnalyzerUsage(testMgr, L"letter>lowercase>stop(en)"); |
203 TestAnalyzerUsage(testMgr, L"letter>lowercase>stop('a', 'an', 'the')"); |
219 TestAnalyzerUsage(testMgr, L"letter>lowercase>stop('a', 'an', 'the')"); |
|
220 testResultXml(xml_file); |
204 } |
221 } |
205 |
222 |
206 |
223 |
207 Itk::TesterBase * CreateAnalysisWhiteBoxTests(); |
224 Itk::TesterBase * CreateAnalysisWhiteBoxTests(); |
208 |
225 |