From: <syn...@us...> - 2008-07-02 22:37:30
|
Revision: 2715 http://clucene.svn.sourceforge.net/clucene/?rev=2715&view=rev Author: synhershko Date: 2008-07-02 15:37:28 -0700 (Wed, 02 Jul 2008) Log Message: ----------- Adding new tests. Note commented tests in TestQueryParser that made it crash... Will definitely have to re-write it... Modified Paths: -------------- branches/lucene2_3_2/test/CMakeLists.txt branches/lucene2_3_2/test/queryParser/TestQueryParser.cpp branches/lucene2_3_2/test/search/TestSearch.cpp branches/lucene2_3_2/test/test.h branches/lucene2_3_2/test/tests.cpp Added Paths: ----------- branches/lucene2_3_2/test/search/TestQueries.cpp Modified: branches/lucene2_3_2/test/CMakeLists.txt =================================================================== --- branches/lucene2_3_2/test/CMakeLists.txt 2008-07-02 12:59:45 UTC (rev 2714) +++ branches/lucene2_3_2/test/CMakeLists.txt 2008-07-02 22:37:28 UTC (rev 2715) @@ -35,6 +35,7 @@ ./store/TestStore.cpp ./search/TestDateFilter.cpp ./search/TestForDuplicates.cpp +./search/TestQueries.cpp ./search/TestSearch.cpp ./search/TestSort.cpp ./search/TestWildcard.cpp Modified: branches/lucene2_3_2/test/queryParser/TestQueryParser.cpp =================================================================== --- branches/lucene2_3_2/test/queryParser/TestQueryParser.cpp 2008-07-02 12:59:45 UTC (rev 2714) +++ branches/lucene2_3_2/test/queryParser/TestQueryParser.cpp 2008-07-02 22:37:28 UTC (rev 2715) @@ -104,6 +104,7 @@ void testSimple(CuTest *tc) { StandardAnalyzer a; + KeywordAnalyzer b; assertQueryEquals(tc,_T("term term term"), NULL, _T("term term term")); TCHAR tmp1[100]; @@ -118,6 +119,9 @@ assertQueryEquals(tc,tmp1, &a, tmp1); #endif + //assertQueryEquals(tc, _T("\"\""), &b, _T("")); // -- new test, crashes CLucene + //assertQueryEquals(tc, _T("foo:\"\""), &b, _T("foo:")); // -- new test, crashes CLucene + assertQueryEquals(tc,_T("a AND b"), NULL, _T("+a +b")); assertQueryEquals(tc,_T("(a AND b)"), NULL, _T("+a +b")); assertQueryEquals(tc,_T("c OR (a AND b)"), NULL, _T("c (+a +b)")); @@ -165,6 +169,26 @@ StringBuffer sb; sb.appendFloat(0.02f,2); CuAssertStrEquals(tc, _T("appendFloat failed"), _T("0.02"), sb.getBuffer()); + + // make sure OR is the default: + QueryParser* qp = _CLNEW QueryParser(_T("field"), &a); + CLUCENE_ASSERT(QueryParser::OR_OPERATOR == qp->getDefaultOperator()); + qp->setDefaultOperator(QueryParser::AND_OPERATOR); + CLUCENE_ASSERT(QueryParser::AND_OPERATOR == qp->getDefaultOperator()); + + // try creating a query and make sure it uses AND + Query* bq = qp->parse(_T("term1 term2")); + CLUCENE_ASSERT( bq != NULL ); + const TCHAR* s = bq->toString(_T("field")); + if ( _tcscmp(s,_T("+term1 +term2")) != 0 ) { + CuFail(tc, _T("FAILED Query /term1 term2/ yielded /%s/, expecting +term1 +term2\n"), s); + } + _CLDELETE_CARRAY(s); + _CLDELETE(bq); + + qp->setDefaultOperator(QueryParser::OR_OPERATOR); + CLUCENE_ASSERT(QueryParser::OR_OPERATOR == qp->getDefaultOperator()); + _CLDELETE(qp); } void testPunct(CuTest *tc) { @@ -210,6 +234,7 @@ assertTrue(tc, _T("term*"), NULL,_T("PrefixQuery"), _T("term*")); assertTrue(tc, _T("term*^2"), NULL,_T("PrefixQuery"), _T("term*^2.0")); + assertTrue(tc, _T("t*"), NULL,_T("PrefixQuery"), _T("t*")); assertTrue(tc, _T("term*germ"), NULL,_T("WildcardQuery"), _T("term*germ")); } Added: branches/lucene2_3_2/test/search/TestQueries.cpp =================================================================== --- branches/lucene2_3_2/test/search/TestQueries.cpp (rev 0) +++ branches/lucene2_3_2/test/search/TestQueries.cpp 2008-07-02 22:37:28 UTC (rev 2715) @@ -0,0 +1,46 @@ +/*------------------------------------------------------------------------------ +* Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team +* +* Distributable under the terms of either the Apache License (Version 2.0) or +* the GNU Lesser General Public License, as specified in the COPYING file. +------------------------------------------------------------------------------*/ +#include "test.h" + + + void testPrefixQuery(CuTest *tc){ + WhitespaceAnalyzer analyzer; + RAMDirectory directory; + TCHAR* categories[] = {_T("/Computers"), _T("/Computers/Mac"), _T("/Computers/Windows")}; + + IndexWriter writer( &directory, &analyzer, true); + for (int i = 0; i < 3; i++) { + Document *doc = _CLNEW Document(); + doc->add(*_CLNEW Field(_T("category"), categories[i], Field::STORE_YES | Field::INDEX_UNTOKENIZED)); + writer.addDocument(doc); + _CLDELETE(doc); + } + writer.close(); + + PrefixQuery *query = _CLNEW PrefixQuery(_CLNEW Term(_T("category"), _T("/Computers"))); + IndexSearcher searcher(&directory); + Hits *hits = searcher.search(query); + CLUCENE_ASSERT(3 == hits->length()); // All documents in /Computers category and below + _CLDELETE(query); + + query = _CLNEW PrefixQuery(_CLNEW Term(_T("category"), _T("/Computers/Mac"))); + hits = searcher.search(query); + CLUCENE_ASSERT(1 == hits->length()); // One in /Computers/Mac + _CLDELETE(query); + _CLDELETE(hits); + } + + +CuSuite *testqueries(void) +{ + CuSuite *suite = CuSuiteNew(_T("CLucene Queries Test")); + + SUITE_ADD_TEST(suite, testPrefixQuery); + + return suite; +} +// EOF \ No newline at end of file Modified: branches/lucene2_3_2/test/search/TestSearch.cpp =================================================================== --- branches/lucene2_3_2/test/search/TestSearch.cpp 2008-07-02 12:59:45 UTC (rev 2714) +++ branches/lucene2_3_2/test/search/TestSearch.cpp 2008-07-02 22:37:28 UTC (rev 2715) @@ -221,7 +221,7 @@ SimpleAnalyzer analyzer; RAMDirectory ram; - IndexWriter writer( &ram, &analyzer, true); + IndexWriter writer( &ram, &analyzer, true); writer.setUseCompoundFile(false); const TCHAR* docs[] = { _T("a b c d e"), Modified: branches/lucene2_3_2/test/test.h =================================================================== --- branches/lucene2_3_2/test/test.h 2008-07-02 12:59:45 UTC (rev 2714) +++ branches/lucene2_3_2/test/test.h 2008-07-02 22:37:28 UTC (rev 2715) @@ -37,6 +37,7 @@ CuSuite *testhighlight(void); CuSuite *testpriorityqueue(void); CuSuite *testQueryParser(void); +CuSuite *testqueries(void); CuSuite *testsearch(void); CuSuite *testtermvector(void); CuSuite *testsort(void); Modified: branches/lucene2_3_2/test/tests.cpp =================================================================== --- branches/lucene2_3_2/test/tests.cpp 2008-07-02 12:59:45 UTC (rev 2714) +++ branches/lucene2_3_2/test/tests.cpp 2008-07-02 22:37:28 UTC (rev 2715) @@ -16,6 +16,7 @@ {"priorityqueue", testpriorityqueue}, {"queryparser", testQueryParser}, {"search", testsearch}, + {"queries", testqueries}, {"termvector",testtermvector}, {"sort",testsort}, {"duplicates", testduplicates}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |