public void ScanBasedOnSingleTermTest()
        {
            var document         = FromLines(0, "first-string", "second-string", "third-string");
            var index            = new TermsIndex(new[] { document }, new SimpleWordExtractor());
            var searchExpression = new INode.Term("second-string");

            var indexScan = GetService <IIndexScan>();
            var foundDocs = indexScan.Execute(index, searchExpression);

            Assert.AreEqual(1, foundDocs.Count);
            Assert.AreEqual(document.Name, foundDocs.Single().Name);
        }
        public void ScanBasedOnConjunctionAndNegationTest()
        {
            var whichSatisfies = FromLines(1, "second-string", "third-string");

            var index = new TermsIndex(new[]
            {
                FromLines(0, "first-string", "second-string"),
                whichSatisfies,
                FromLines(2, "second-string", "third-string", "forth-string")
            }, new SimpleWordExtractor());

            var searchExpression = new INode.And(
                new INode.And(
                    new INode.Term("second-string"),
                    new INode.Term("third-string")),
                new INode.Not(
                    new INode.Term("forth-string")));

            var indexScan = GetService <IIndexScan>();
            var foundDocs = indexScan.Execute(index, searchExpression);

            Assert.AreEqual(1, foundDocs.Count);
            Assert.AreEqual(whichSatisfies.Name, foundDocs.Single().Name);
        }