public virtual void TestAddIndexes()
{
Directory d1 = NewDirectory();
RandomIndexWriter w = new RandomIndexWriter(Random(), d1, Similarity, TimeZone);
Document doc = new Document();
doc.Add(NewStringField("id", "1", Field.Store.YES));
doc.Add(new NumericDocValuesField("dv", 1));
w.AddDocument(doc);
IndexReader r1 = w.Reader;
w.Dispose();
Directory d2 = NewDirectory();
w = new RandomIndexWriter(Random(), d2, Similarity, TimeZone);
doc = new Document();
doc.Add(NewStringField("id", "2", Field.Store.YES));
doc.Add(new NumericDocValuesField("dv", 2));
w.AddDocument(doc);
IndexReader r2 = w.Reader;
w.Dispose();
Directory d3 = NewDirectory();
w = new RandomIndexWriter(Random(), d3, Similarity, TimeZone);
w.AddIndexes(SlowCompositeReaderWrapper.Wrap(r1), SlowCompositeReaderWrapper.Wrap(r2));
r1.Dispose();
d1.Dispose();
r2.Dispose();
d2.Dispose();
w.ForceMerge(1);
DirectoryReader r3 = w.Reader;
w.Dispose();
AtomicReader sr = GetOnlySegmentReader(r3);
Assert.AreEqual(2, sr.NumDocs);
NumericDocValues docValues = sr.GetNumericDocValues("dv");
Assert.IsNotNull(docValues);
r3.Dispose();
d3.Dispose();
}