You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2013/08/20 04:46:13 UTC
svn commit: r1515689 -
/lucene/dev/branches/lucene5178/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
Author: rmuir
Date: Tue Aug 20 02:46:13 2013
New Revision: 1515689
URL: http://svn.apache.org/r1515689
Log:
add test
Modified:
lucene/dev/branches/lucene5178/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
Modified: lucene/dev/branches/lucene5178/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5178/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java?rev=1515689&r1=1515688&r2=1515689&view=diff
==============================================================================
--- lucene/dev/branches/lucene5178/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java (original)
+++ lucene/dev/branches/lucene5178/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java Tue Aug 20 02:46:13 2013
@@ -26,6 +26,7 @@ import org.apache.lucene.document.Numeri
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.document.SortedSetDocValuesField;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util._TestUtil;
@@ -321,4 +322,52 @@ public class TestMultiDocValues extends
ir2.close();
dir.close();
}
+
+ public void testDocsWithField() throws Exception {
+ assumeTrue("codec does not support docsWithField", defaultCodecSupportsDocsWithField());
+ Directory dir = newDirectory();
+
+ IndexWriterConfig iwc = newIndexWriterConfig(random(), TEST_VERSION_CURRENT, null);
+ iwc.setMergePolicy(newLogMergePolicy());
+ RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
+
+ int numDocs = atLeast(500);
+ for (int i = 0; i < numDocs; i++) {
+ Document doc = new Document();
+ if (random().nextInt(4) >= 0) {
+ doc.add(new NumericDocValuesField("numbers", random().nextLong()));
+ }
+ doc.add(new NumericDocValuesField("numbersAlways", random().nextLong()));
+ iw.addDocument(doc);
+ if (random().nextInt(17) == 0) {
+ iw.commit();
+ }
+ }
+ DirectoryReader ir = iw.getReader();
+ iw.forceMerge(1);
+ DirectoryReader ir2 = iw.getReader();
+ AtomicReader merged = getOnlySegmentReader(ir2);
+ iw.close();
+
+ Bits multi = MultiDocValues.getDocsWithField(ir, "numbers");
+ Bits single = merged.getDocsWithField("numbers");
+ if (multi == null) {
+ assertNull(single);
+ } else {
+ assertEquals(single.length(), multi.length());
+ for (int i = 0; i < numDocs; i++) {
+ assertEquals(single.get(i), multi.get(i));
+ }
+ }
+
+ multi = MultiDocValues.getDocsWithField(ir, "numbersAlways");
+ single = merged.getDocsWithField("numbersAlways");
+ assertEquals(single.length(), multi.length());
+ for (int i = 0; i < numDocs; i++) {
+ assertEquals(single.get(i), multi.get(i));
+ }
+ ir.close();
+ ir2.close();
+ dir.close();
+ }
}