add testcase

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1177049 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael McCandless 2011-09-28 20:36:41 +00:00
parent ab5a62cf46
commit 02736c0976
1 changed files with 44 additions and 0 deletions

View File

@ -16,8 +16,11 @@ package org.apache.lucene.search;
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import java.util.HashSet;
import java.util.Set;
import org.apache.lucene.document.Document; import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField; import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField; import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexReader;
@ -82,6 +85,47 @@ public class TestQueryWrapperFilter extends LuceneTestCase {
reader.close(); reader.close();
dir.close(); dir.close();
} }
public void testRandom() throws Exception {
final Directory d = newDirectory();
final RandomIndexWriter w = new RandomIndexWriter(random, d);
w.w.getConfig().setMaxBufferedDocs(17);
final int numDocs = atLeast(100);
final Set<String> aDocs = new HashSet<String>();
for(int i=0;i<numDocs;i++) {
final Document doc = new Document();
final String v;
if (random.nextInt(5) == 4) {
v = "a";
aDocs.add(""+i);
} else {
v = "b";
}
final Field f = newField("field", v, StringField.TYPE_UNSTORED);
doc.add(f);
doc.add(newField("id", ""+i, StringField.TYPE_STORED));
w.addDocument(doc);
}
final int numDelDocs = atLeast(10);
for(int i=0;i<numDelDocs;i++) {
final String delID = ""+random.nextInt(numDocs);
w.deleteDocuments(new Term("id", delID));
aDocs.remove(delID);
}
final IndexReader r = w.getReader();
w.close();
final TopDocs hits = new IndexSearcher(r).search(new MatchAllDocsQuery(),
new QueryWrapperFilter(new TermQuery(new Term("field", "a"))),
numDocs);
assertEquals(aDocs.size(), hits.totalHits);
for(ScoreDoc sd: hits.scoreDocs) {
assertTrue(aDocs.contains(r.document(sd.doc).get("id")));
}
r.close();
d.close();
}
public void testThousandDocuments() throws Exception { public void testThousandDocuments() throws Exception {
Directory dir = newDirectory(); Directory dir = newDirectory();