public void TestSingleFilter()
{
ChainedFilter chain = GetChainedFilter(new Filter[] { dateFilter }, null);
int numHits = searcher.Search(query, chain, 1000).TotalHits;
Assert.AreEqual(MAX, numHits);
chain = new ChainedFilter(new Filter[] { bobFilter });
numHits = searcher.Search(query, chain, 1000).TotalHits;
Assert.AreEqual(MAX / 2, numHits);
chain = GetChainedFilter(new Filter[] { bobFilter }, new ChainedFilter.Logic[] { ChainedFilter.Logic.AND });
TopDocs hits = searcher.Search(query, chain, 1000);
numHits = hits.TotalHits;
Assert.AreEqual(MAX / 2, numHits);
Assert.AreEqual("bob", searcher.Doc(hits.ScoreDocs[0].doc).Get("owner"));
chain = GetChainedFilter(new Filter[] { bobFilter }, new ChainedFilter.Logic[] { ChainedFilter.Logic.ANDNOT });
hits = searcher.Search(query, chain, 1000);
numHits = hits.TotalHits;
Assert.AreEqual(MAX / 2, numHits);
Assert.AreEqual("sue", searcher.Doc(hits.ScoreDocs[0].doc).Get("owner"));
}