diff options
Diffstat (limited to 'core/src/test/java/org/elasticsearch/index/fielddata/ordinals/MultiOrdinalsTests.java')
-rw-r--r-- | core/src/test/java/org/elasticsearch/index/fielddata/ordinals/MultiOrdinalsTests.java | 48 |
1 files changed, 19 insertions, 29 deletions
diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/ordinals/MultiOrdinalsTests.java b/core/src/test/java/org/elasticsearch/index/fielddata/ordinals/MultiOrdinalsTests.java index c594427b7e..1ae6197c54 100644 --- a/core/src/test/java/org/elasticsearch/index/fielddata/ordinals/MultiOrdinalsTests.java +++ b/core/src/test/java/org/elasticsearch/index/fielddata/ordinals/MultiOrdinalsTests.java @@ -18,8 +18,8 @@ */ package org.elasticsearch.index.fielddata.ordinals; -import org.apache.lucene.index.RandomAccessOrds; import org.apache.lucene.index.SortedDocValues; +import org.apache.lucene.index.SortedSetDocValues; import org.apache.lucene.util.packed.PackedInts; import org.elasticsearch.index.fielddata.FieldData; import org.elasticsearch.search.MultiValueMode; @@ -102,7 +102,7 @@ public class MultiOrdinalsTests extends ESTestCase { } }); Ordinals ords = creationMultiOrdinals(builder); - RandomAccessOrds docs = ords.ordinals(); + SortedSetDocValues docs = ords.ordinals(); final SortedDocValues singleOrds = MultiValueMode.MIN.select(docs); int docId = ordsAndIds.get(0).id; List<Long> docOrds = new ArrayList<>(); @@ -111,22 +111,18 @@ public class MultiOrdinalsTests extends ESTestCase { docOrds.add(ordAndId.ord); } else { if (!docOrds.isEmpty()) { - assertThat((long) singleOrds.getOrd(docId), equalTo(docOrds.get(0))); + assertTrue(singleOrds.advanceExact(docId)); + assertThat((long) singleOrds.ordValue(), equalTo(docOrds.get(0))); - docs.setDocument(docId); - final int numOrds = docs.cardinality(); - assertThat(numOrds, equalTo(docOrds.size())); - for (int i = 0; i < numOrds; i++) { - assertThat(docs.nextOrd(), equalTo(docOrds.get(i))); + assertTrue(docs.advanceExact(docId)); + for (Long ord : docOrds) { + assertThat(docs.nextOrd(), equalTo(ord)); } - final long[] array = new long[docOrds.size()]; - for (int i = 0; i < array.length; i++) { - array[i] = docOrds.get(i); - } - assertIter(docs, docId, array); + assertEquals(SortedSetDocValues.NO_MORE_ORDS, docs.nextOrd()); } for (int i = docId + 1; i < ordAndId.id; i++) { - assertThat((long) singleOrds.getOrd(i), equalTo(RandomAccessOrds.NO_MORE_ORDS)); + assertFalse(singleOrds.advanceExact(i)); + assertFalse(docs.advanceExact(i)); } docId = ordAndId.id; docOrds.clear(); @@ -209,18 +205,10 @@ public class MultiOrdinalsTests extends ESTestCase { }; Ordinals ordinals = creationMultiOrdinals(builder); - RandomAccessOrds docs = ordinals.ordinals(); + SortedSetDocValues docs = ordinals.ordinals(); assertEquals(docs, ordinalPlan); } - protected static void assertIter(RandomAccessOrds docs, int docId, long... expectedOrdinals) { - docs.setDocument(docId); - assertThat(docs.cardinality(), equalTo(expectedOrdinals.length)); - for (long expectedOrdinal : expectedOrdinals) { - assertThat(docs.nextOrd(), equalTo(expectedOrdinal)); - } - } - public void testMultiValuesDocsWithOverlappingStorageArrays() throws Exception { int maxDoc = 7; long maxOrds = 15; @@ -261,11 +249,11 @@ public class MultiOrdinalsTests extends ESTestCase { }; Ordinals ordinals = new MultiOrdinals(builder, PackedInts.FASTEST); - RandomAccessOrds docs = ordinals.ordinals(); + SortedSetDocValues docs = ordinals.ordinals(); assertEquals(docs, ordinalPlan); } - private void assertEquals(RandomAccessOrds docs, long[][] ordinalPlan) { + private void assertEquals(SortedSetDocValues docs, long[][] ordinalPlan) throws IOException { long maxOrd = 0; for (int doc = 0; doc < ordinalPlan.length; ++doc) { if (ordinalPlan[doc].length > 0) { @@ -276,10 +264,12 @@ public class MultiOrdinalsTests extends ESTestCase { assertThat(FieldData.isMultiValued(docs), equalTo(true)); for (int doc = 0; doc < ordinalPlan.length; ++doc) { long[] ords = ordinalPlan[doc]; - docs.setDocument(doc); - assertThat(docs.cardinality(), equalTo(ords.length)); - for (int i = 0; i < ords.length; ++i) { - assertThat(docs.ordAt(i), equalTo(ords[i])); + assertEquals(ords.length > 0, docs.advanceExact(doc)); + if (ords.length > 0) { + for (long ord : ords) { + assertThat(docs.nextOrd(), equalTo(ord)); + } + assertThat(docs.nextOrd(), equalTo(SortedSetDocValues.NO_MORE_ORDS)); } } } |