public override int NextDoc() { // (docId + 1) on next line requires -1 initial value for docNr: var d = bitSet.NextSetBit(docId + 1); // -1 returned by BitSet.nextSetBit() when exhausted docId = d == -1 ? NO_MORE_DOCS : d; return docId; }
public override PForDeltaDocIdSet CopyOf(BitSet bs, int length) { PForDeltaDocIdSet.Builder builder = (new PForDeltaDocIdSet.Builder()).SetIndexInterval(TestUtil.NextInt32(Random, 1, 20)); for (int doc = bs.NextSetBit(0); doc != -1; doc = bs.NextSetBit(doc + 1)) { builder.Add(doc); } return(builder.Build()); }
public override FixedBitSet CopyOf(BitSet bs, int length) { FixedBitSet set = new FixedBitSet(length); for (int doc = bs.NextSetBit(0); doc != -1; doc = bs.NextSetBit(doc + 1)) { set.Set(doc); } return(set); }
public override WAH8DocIdSet CopyOf(BitSet bs, int length) { int indexInterval = TestUtil.NextInt32(Random, 8, 256); WAH8DocIdSet.Builder builder = (WAH8DocIdSet.Builder)(new WAH8DocIdSet.Builder()).SetIndexInterval(indexInterval); for (int i = bs.NextSetBit(0); i != -1; i = bs.NextSetBit(i + 1)) { builder.Add(i); } return(builder.Build()); }
public virtual void Collect(int doc, float score) { pos = answer.NextSetBit(pos + 1); if (pos != doc + docBase) { throw RuntimeException.Create("Expected doc " + pos + " but got " + doc + docBase); } base.Collect(doc); }
public override int NextDoc() { doc = bs.NextSetBit(doc + 1); if (doc == -1) { doc = NO_MORE_DOCS; } Debug.Assert(doc < numBits); return(doc); }
internal virtual void DoNextSetBit(BitSet a, FixedBitSet b) { int aa = -1, bb = -1; do { aa = a.NextSetBit(aa + 1); bb = bb < b.Length - 1 ? b.NextSetBit(bb + 1) : -1; Assert.AreEqual(aa, bb); } while (aa >= 0); }
internal virtual void DoIterate2(BitSet a, FixedBitSet b) { int aa = -1, bb = -1; DocIdSetIterator iterator = b.GetIterator(); do { aa = a.NextSetBit(aa + 1); bb = Random.NextBoolean() ? iterator.NextDoc() : iterator.Advance(bb + 1); Assert.AreEqual(aa == -1 ? DocIdSetIterator.NO_MORE_DOCS : aa, bb); } while (aa >= 0); }
public override int NextDoc() { doc = bs.NextSetBit(doc + 1); if (doc == -1) { doc = NO_MORE_DOCS; } if (Debugging.AssertsEnabled) { Debugging.Assert(doc < numBits); } return(doc); }
/// <summary> /// Assert that the content of the <see cref="DocIdSet"/> is the same as the content of the <see cref="BitSet"/>. /// </summary> #pragma warning disable xUnit1013 public virtual void AssertEquals(int numBits, BitSet ds1, T ds2) #pragma warning restore xUnit1013 { // nextDoc DocIdSetIterator it2 = ds2.GetIterator(); if (it2 == null) { Assert.AreEqual(-1, ds1.NextSetBit(0)); } else { Assert.AreEqual(-1, it2.DocID); for (int doc = ds1.NextSetBit(0); doc != -1; doc = ds1.NextSetBit(doc + 1)) { Assert.AreEqual(doc, it2.NextDoc()); Assert.AreEqual(doc, it2.DocID); } Assert.AreEqual(DocIdSetIterator.NO_MORE_DOCS, it2.NextDoc()); Assert.AreEqual(DocIdSetIterator.NO_MORE_DOCS, it2.DocID); } // nextDoc / advance it2 = ds2.GetIterator(); if (it2 == null) { Assert.AreEqual(-1, ds1.NextSetBit(0)); } else { for (int doc = -1; doc != DocIdSetIterator.NO_MORE_DOCS;) { if (Random.NextBoolean()) { doc = ds1.NextSetBit(doc + 1); if (doc == -1) { doc = DocIdSetIterator.NO_MORE_DOCS; } Assert.AreEqual(doc, it2.NextDoc()); Assert.AreEqual(doc, it2.DocID); } else { int target = doc + 1 + Random.Next(Random.NextBoolean() ? 64 : Math.Max(numBits / 8, 1)); doc = ds1.NextSetBit(target); if (doc == -1) { doc = DocIdSetIterator.NO_MORE_DOCS; } Assert.AreEqual(doc, it2.Advance(target)); Assert.AreEqual(doc, it2.DocID); } } } // bits() IBits bits = ds2.Bits; if (bits != null) { // test consistency between bits and iterator it2 = ds2.GetIterator(); for (int previousDoc = -1, doc = it2.NextDoc(); ; previousDoc = doc, doc = it2.NextDoc()) { int max = doc == DocIdSetIterator.NO_MORE_DOCS ? bits.Length : doc; for (int i = previousDoc + 1; i < max; ++i) { Assert.AreEqual(false, bits.Get(i)); } if (doc == DocIdSetIterator.NO_MORE_DOCS) { break; } Assert.AreEqual(true, bits.Get(doc)); } } }