Lucene.Net.Search.TestNumericRangeQuery64.TestSorting C# (CSharp) Method

TestSorting() private method

private TestSorting ( int precisionStep ) : void
precisionStep int
return void
        private void TestSorting(int precisionStep)
        {
            string field = "field" + precisionStep;
            // 10 random tests, the index order is ascending,
            // so using a reverse sort field should retun descending documents
            int num = TestUtil.NextInt(Random(), 10, 20);
            for (int i = 0; i < num; i++)
            {
                long lower = (long)(Random().NextDouble() * NoDocs * Distance) + StartOffset;
                long upper = (long)(Random().NextDouble() * NoDocs * Distance) + StartOffset;
                if (lower > upper)
                {
                    long a = lower;
                    lower = upper;
                    upper = a;
                }
                Query tq = NumericRangeQuery.NewLongRange(field, precisionStep, lower, upper, true, true);
                TopDocs topDocs = Searcher.Search(tq, null, NoDocs, new Sort(new SortField(field, SortField.Type_e.LONG, true)));
                if (topDocs.TotalHits == 0)
                {
                    continue;
                }
                ScoreDoc[] sd = topDocs.ScoreDocs;
                Assert.IsNotNull(sd);
                long last = (long)Searcher.Doc(sd[0].Doc).GetField(field).NumericValue;
                for (int j = 1; j < sd.Length; j++)
                {
                    long act = (long)Searcher.Doc(sd[j].Doc).GetField(field).NumericValue;
                    Assert.IsTrue(last > act, "Docs should be sorted backwards");
                    last = act;
                }
            }
        }