public virtual void TestRareVectors()
{
RandomDocumentFactory docFactory = new RandomDocumentFactory(this, 10, 20);
foreach (Options options in ValidOptions())
{
int numDocs = AtLeast(200);
int docWithVectors = Random().Next(numDocs);
Document emptyDoc = new Document();
Directory dir = NewDirectory();
RandomIndexWriter writer = new RandomIndexWriter(Random(), dir, ClassEnvRule.Similarity, ClassEnvRule.TimeZone);
RandomDocument doc = docFactory.NewDocument(TestUtil.NextInt(Random(), 1, 3), 20, options);
for (int i = 0; i < numDocs; ++i)
{
if (i == docWithVectors)
{
writer.AddDocument(AddId(doc.ToDocument(), "42"));
}
else
{
writer.AddDocument(emptyDoc);
}
}
IndexReader reader = writer.Reader;
int docWithVectorsID = DocID(reader, "42");
for (int i = 0; i < 10; ++i)
{
int docID = Random().Next(numDocs);
Fields fields = reader.GetTermVectors(docID);
if (docID == docWithVectorsID)
{
AssertEquals(doc, fields);
}
else
{
Assert.IsNull(fields);
}
}
Fields fields_ = reader.GetTermVectors(docWithVectorsID);
AssertEquals(doc, fields_);
reader.Dispose();
writer.Dispose();
dir.Dispose();
}
}