Lucene.Net.Search.Spans.TestSpans.TestSpanNearUnOrdered C# (CSharp) Method

TestSpanNearUnOrdered() private method

private TestSpanNearUnOrdered ( ) : void
return void
        public virtual void TestSpanNearUnOrdered()
        {
            //See http://www.gossamer-threads.com/lists/lucene/java-dev/52270 for discussion about this test
            SpanNearQuery snq;
            snq = new SpanNearQuery(new SpanQuery[] { MakeSpanTermQuery("u1"), MakeSpanTermQuery("u2") }, 0, false);
            Spans spans = MultiSpansWrapper.Wrap(Searcher.TopReaderContext, snq);
            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(4, spans.Doc(), "doc");
            Assert.AreEqual(1, spans.Start(), "start");
            Assert.AreEqual(3, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(5, spans.Doc(), "doc");
            Assert.AreEqual(2, spans.Start(), "start");
            Assert.AreEqual(4, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(8, spans.Doc(), "doc");
            Assert.AreEqual(2, spans.Start(), "start");
            Assert.AreEqual(4, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(9, spans.Doc(), "doc");
            Assert.AreEqual(0, spans.Start(), "start");
            Assert.AreEqual(2, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(10, spans.Doc(), "doc");
            Assert.AreEqual(0, spans.Start(), "start");
            Assert.AreEqual(2, spans.End(), "end");
            Assert.IsTrue(spans.Next() == false, "Has next and it shouldn't: " + spans.Doc());

            SpanNearQuery u1u2 = new SpanNearQuery(new SpanQuery[] { MakeSpanTermQuery("u1"), MakeSpanTermQuery("u2") }, 0, false);
            snq = new SpanNearQuery(new SpanQuery[] { u1u2, MakeSpanTermQuery("u2") }, 1, false);
            spans = MultiSpansWrapper.Wrap(Searcher.TopReaderContext, snq);
            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(4, spans.Doc(), "doc");
            Assert.AreEqual(0, spans.Start(), "start");
            Assert.AreEqual(3, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            //unordered spans can be subsets
            Assert.AreEqual(4, spans.Doc(), "doc");
            Assert.AreEqual(1, spans.Start(), "start");
            Assert.AreEqual(3, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(5, spans.Doc(), "doc");
            Assert.AreEqual(0, spans.Start(), "start");
            Assert.AreEqual(4, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(5, spans.Doc(), "doc");
            Assert.AreEqual(2, spans.Start(), "start");
            Assert.AreEqual(4, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(8, spans.Doc(), "doc");
            Assert.AreEqual(0, spans.Start(), "start");
            Assert.AreEqual(4, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(8, spans.Doc(), "doc");
            Assert.AreEqual(2, spans.Start(), "start");
            Assert.AreEqual(4, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(9, spans.Doc(), "doc");
            Assert.AreEqual(0, spans.Start(), "start");
            Assert.AreEqual(2, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(9, spans.Doc(), "doc");
            Assert.AreEqual(0, spans.Start(), "start");
            Assert.AreEqual(4, spans.End(), "end");

            Assert.IsTrue(spans.Next(), "Does not have next and it should");
            Assert.AreEqual(10, spans.Doc(), "doc");
            Assert.AreEqual(0, spans.Start(), "start");
            Assert.AreEqual(2, spans.End(), "end");

            Assert.IsTrue(spans.Next() == false, "Has next and it shouldn't");
        }