public virtual void TestDocValuesUnstored()
{
Directory dir = NewDirectory();
IndexWriterConfig iwconfig = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()));
iwconfig.SetMergePolicy(NewLogMergePolicy());
IndexWriter writer = new IndexWriter(dir, iwconfig);
for (int i = 0; i < 50; i++)
{
Document doc = new Document();
doc.Add(new NumericDocValuesField("dv", i));
doc.Add(new TextField("docId", "" + i, Field.Store.YES));
writer.AddDocument(doc);
}
DirectoryReader r = writer.Reader;
AtomicReader slow = SlowCompositeReaderWrapper.Wrap(r);
FieldInfos fi = slow.FieldInfos;
FieldInfo dvInfo = fi.FieldInfo("dv");
Assert.IsTrue(dvInfo.HasDocValues());
NumericDocValues dv = slow.GetNumericDocValues("dv");
for (int i = 0; i < 50; i++)
{
Assert.AreEqual(i, dv.Get(i));
Document d = slow.Document(i);
// cannot use d.Get("dv") due to another bug!
Assert.IsNull(d.GetField("dv"));
Assert.AreEqual(Convert.ToString(i), d.Get("docId"));
}
slow.Dispose();
writer.Dispose();
dir.Dispose();
}