public virtual void TestMoreThan32ProhibitedClauses()
{
Directory d = NewDirectory();
RandomIndexWriter w = new RandomIndexWriter(Random(), d, Similarity, TimeZone);
Document doc = new Document();
doc.Add(new TextField("field", "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33", Field.Store.NO));
w.AddDocument(doc);
doc = new Document();
doc.Add(new TextField("field", "33", Field.Store.NO));
w.AddDocument(doc);
IndexReader r = w.Reader;
w.Dispose();
// we don't wrap with AssertingIndexSearcher in order to have the original scorer in setScorer.
IndexSearcher s = NewSearcher(r, true, false);
BooleanQuery q = new BooleanQuery();
for (int term = 0; term < 33; term++)
{
q.Add(new BooleanClause(new TermQuery(new Term("field", "" + term)), BooleanClause.Occur.MUST_NOT));
}
q.Add(new BooleanClause(new TermQuery(new Term("field", "33")), BooleanClause.Occur.SHOULD));
int[] count = new int[1];
s.Search(q, new CollectorAnonymousInnerClassHelper2(this, doc, count));
Assert.AreEqual(1, count[0]);
r.Dispose();
d.Dispose();
}