public virtual void TestRangeScorer() { Expression expr = JavascriptCompiler.Compile("2*popularity"); SimpleBindings bindings = new SimpleBindings(); bindings.Add(new SortField("popularity", SortFieldType.INT64)); ValueSource vs = expr.GetValueSource(bindings); Assert.AreEqual(1, reader.Leaves.Count); AtomicReaderContext leaf = reader.Leaves[0]; FunctionValues values = vs.GetValues(new Dictionary <string, object>(), leaf); // everything ValueSourceScorer scorer = values.GetRangeScorer(leaf.Reader, "4" , "40", true, true); Assert.AreEqual(-1, scorer.DocID); Assert.AreEqual(0, scorer.NextDoc()); Assert.AreEqual(1, scorer.NextDoc()); Assert.AreEqual(2, scorer.NextDoc()); Assert.AreEqual(DocIdSetIterator.NO_MORE_DOCS, scorer.NextDoc()); // just the first doc scorer = values.GetRangeScorer(leaf.Reader, "4", "40", false, false); Assert.AreEqual(-1, scorer.DocID); Assert.AreEqual(0, scorer.NextDoc()); Assert.AreEqual(DocIdSetIterator.NO_MORE_DOCS, scorer.NextDoc()); }