Lucene.Net.Util.LuceneTestCase.AssertDocsSkippingEquals C# (CSharp) Méthode

AssertDocsSkippingEquals() public méthode

checks advancing docs
public AssertDocsSkippingEquals ( string info, IndexReader leftReader, int docFreq, Lucene.Net.Index.DocsEnum leftDocs, Lucene.Net.Index.DocsEnum rightDocs, bool hasFreqs ) : void
info string
leftReader Lucene.Net.Index.IndexReader
docFreq int
leftDocs Lucene.Net.Index.DocsEnum
rightDocs Lucene.Net.Index.DocsEnum
hasFreqs bool
Résultat void
        public void AssertDocsSkippingEquals(string info, IndexReader leftReader, int docFreq, DocsEnum leftDocs, DocsEnum rightDocs, bool hasFreqs)
        {
            if (leftDocs == null)
            {
                Assert.IsNull(rightDocs);
                return;
            }
            int docid = -1;
            int averageGap = leftReader.MaxDoc / (1 + docFreq);
            int skipInterval = 16;

            while (true)
            {
                if (Random().NextBoolean())
                {
                    // nextDoc()
                    docid = leftDocs.NextDoc();
                    Assert.AreEqual(docid, rightDocs.NextDoc(), info);
                }
                else
                {
                    // advance()
                    int skip = docid + (int)Math.Ceiling(Math.Abs(skipInterval + Random().NextDouble() * averageGap));
                    docid = leftDocs.Advance(skip);
                    Assert.AreEqual(docid, rightDocs.Advance(skip), info);
                }

                if (docid == DocIdSetIterator.NO_MORE_DOCS)
                {
                    return;
                }
                if (hasFreqs)
                {
                    Assert.AreEqual(leftDocs.Freq(), rightDocs.Freq(), info);
                }
            }
        }