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]]); }
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); }
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); }