コード例 #1
0
ファイル: UnitTests.cs プロジェクト: galshav/SearchEngine
        public void SearchEngine_SearchExpression_SingleWordExist()
        {
            var searchFilter = new Framework.ExpressionTree(
                new Framework.Node()
            {
                Data  = "Sunday",
                Left  = null,
                Right = null,
            });

            var dataset = new List <string>()
            {
                "Today is Sunday",
                "Today is not Monday",
                "Tomorrow is Tuesday",
                "Tomorrow isn't Wednesday"
            };

            var searchEngine = new Framework.SearchEngine(dataset: dataset);
            var indices      = searchEngine.Search(searchFilter: searchFilter.Root);

            Assert.AreEqual(expected: 1, actual: indices.Count);
            Assert.AreEqual(expected: 0, actual: indices[0]);
            Assert.AreEqual(expected: "Today is Sunday", actual: dataset[indices[0]]);
        }
コード例 #2
0
ファイル: UnitTests.cs プロジェクト: galshav/SearchEngine
        public void ExpressionTree_BuildComplexExpression_TodayANDSunday_OR_NotORTomorow()
        {
            var leftSubExpression = new Framework.Node()
            {
                Data = "&&",
                Left = new Framework.Node()
                {
                    Data = "Today"
                },
                Right = new Framework.Node()
                {
                    Data = "Sunday"
                },
            };

            var rightSubExpression = new Framework.Node()
            {
                Data = "||",
                Left = new Framework.Node()
                {
                    Data = "Not"
                },
                Right = new Framework.Node()
                {
                    Data = "Tomorrow"
                },
            };

            var expression = new Framework.ExpressionTree(
                new Framework.Node()
            {
                Data  = "||",
                Left  = leftSubExpression,
                Right = rightSubExpression,
            });

            Assert.AreEqual(expected: "||", actual: expression.Root.Data);
            Assert.AreEqual(expected: "||", actual: expression.Root.Right.Data);
            Assert.AreEqual(expected: "&&", actual: expression.Root.Left.Data);
            Assert.AreEqual(expected: "Today", actual: expression.Root.Left.Left.Data);
            Assert.AreEqual(expected: "Sunday", actual: expression.Root.Left.Right.Data);
            Assert.AreEqual(expected: "Not", actual: expression.Root.Right.Left.Data);
            Assert.AreEqual(expected: "Tomorrow", actual: expression.Root.Right.Right.Data);
        }
コード例 #3
0
ファイル: UnitTests.cs プロジェクト: galshav/SearchEngine
        public void ExpressionTree_BuildSimpleExpression_TodayANDSunday()
        {
            var expressionTree = new Framework.ExpressionTree(
                new Framework.Node()
            {
                Data = "&&",
                Left = new Framework.Node()
                {
                    Data = "Today"
                },
                Right = new Framework.Node()
                {
                    Data = "Sunday"
                }
            });

            Assert.AreEqual(expected: "Today", actual: expressionTree.Root.Left.Data);
            Assert.AreEqual(expected: "Sunday", actual: expressionTree.Root.Right.Data);
            Assert.AreEqual(expected: "&&", actual: expressionTree.Root.Data);
        }