public void OneOperandAndOneUnaryOperator2() { const string Expected = @"4 4 !"; ExpressionSearch search = new ExpressionSearch(); search.AddOperand("4"); search.AddOperator("!"); TestSearch(search, Expected); }
public void CancelSearch() { ExpressionSearch search = new ExpressionSearch(); search.AddOperand("4"); search.AddOperator("+"); int count = 0; search.Run(e => ++ count < 3); count.Should().Be(3); }
private static void TestSearch(ExpressionSearch search, string expected) { List <string> expressions = new List <string>(); Func <Expression, bool> found = e => { expressions.Add(e.ToString()); return(true); }; search.Run(found); expressions.Sort(); string.Join(Environment.NewLine, expressions).Should().Be(expected); }
public void OneOperandAndOneBinaryOperator3() { const string Expected = @"3 3 3 + 3 3 + 3 + 3 3 3 + +"; ExpressionSearch search = new ExpressionSearch { NumeralCount = 3 }; search.AddOperand("3"); search.AddOperator("+"); TestSearch(search, Expected); }
public void OneOperandAndOneBinaryOperator() { const string Expected = @"4 4 4 + 4 4 + 4 + 4 4 + 4 + 4 + 4 4 + 4 4 + + 4 4 4 + + 4 4 4 + + 4 + 4 4 4 + 4 + + 4 4 4 4 + + +"; ExpressionSearch search = new ExpressionSearch(); search.AddOperand("4"); search.AddOperator("+"); TestSearch(search, Expected); }
public void TwoOperandsAndTwoOperatorsBinaryAndUnary() { const string Expected = @".4 .4 .4 .4 .4 + + + .4 .4 .4 + .4 + + .4 .4 .4 + + .4 .4 .4 + + .4 + .4 .4 .4 + + 4 + .4 .4 .4 + + 4 R + .4 .4 .4 + 4 + + .4 .4 .4 + 4 R + + .4 .4 .4 4 + + + .4 .4 .4 4 R + + + .4 .4 + .4 .4 + .4 .4 + + .4 .4 + .4 + .4 .4 + .4 + .4 + .4 .4 + .4 + 4 + .4 .4 + .4 + 4 R + .4 .4 + .4 4 + + .4 .4 + .4 4 R + + .4 .4 + 4 .4 + + .4 .4 + 4 + .4 .4 + 4 + .4 + .4 .4 + 4 + 4 + .4 .4 + 4 + 4 R + .4 .4 + 4 4 + + .4 .4 + 4 4 R + + .4 .4 + 4 R .4 + + .4 .4 + 4 R + .4 .4 + 4 R + .4 + .4 .4 + 4 R + 4 + .4 .4 + 4 R + 4 R + .4 .4 + 4 R 4 + + .4 .4 + 4 R 4 R + + .4 .4 + 4 R 4 R + R + .4 .4 4 .4 + + + .4 .4 4 + .4 + + .4 .4 4 + + .4 .4 4 + + .4 + .4 .4 4 + + 4 + .4 .4 4 + + 4 R + .4 .4 4 + 4 + + .4 .4 4 + 4 R + + .4 .4 4 4 + + + .4 .4 4 4 R + + + .4 .4 4 R .4 + + + .4 .4 4 R + .4 + + .4 .4 4 R + + .4 .4 4 R + + .4 + .4 .4 4 R + + 4 + .4 .4 4 R + + 4 R + .4 .4 4 R + 4 + + .4 .4 4 R + 4 R + + .4 .4 4 R 4 + + + .4 .4 4 R 4 R + + + .4 .4 4 R 4 R + R + + .4 4 .4 .4 + + + .4 4 .4 + .4 + + .4 4 .4 + + .4 4 .4 + + .4 + .4 4 .4 + + 4 + .4 4 .4 + + 4 R + .4 4 .4 + 4 + + .4 4 .4 + 4 R + + .4 4 .4 4 + + + .4 4 .4 4 R + + + .4 4 + .4 4 + .4 .4 + + .4 4 + .4 + .4 4 + .4 + .4 + .4 4 + .4 + 4 + .4 4 + .4 + 4 R + .4 4 + .4 4 + + .4 4 + .4 4 R + + .4 4 + 4 .4 + + .4 4 + 4 + .4 4 + 4 + .4 + .4 4 + 4 + 4 + .4 4 + 4 + 4 R + .4 4 + 4 4 + + .4 4 + 4 4 R + + .4 4 + 4 R .4 + + .4 4 + 4 R + .4 4 + 4 R + .4 + .4 4 + 4 R + 4 + .4 4 + 4 R + 4 R + .4 4 + 4 R 4 + + .4 4 + 4 R 4 R + + .4 4 + 4 R 4 R + R + .4 4 4 .4 + + + .4 4 4 + .4 + + .4 4 4 + + .4 4 4 + + .4 + .4 4 4 + + 4 + .4 4 4 + + 4 R + .4 4 4 + 4 + + .4 4 4 + 4 R + + .4 4 4 4 + + + .4 4 4 4 R + + + .4 4 4 R .4 + + + .4 4 4 R + .4 + + .4 4 4 R + + .4 4 4 R + + .4 + .4 4 4 R + + 4 + .4 4 4 R + + 4 R + .4 4 4 R + 4 + + .4 4 4 R + 4 R + + .4 4 4 R 4 + + + .4 4 4 R 4 R + + + .4 4 4 R 4 R + R + + .4 4 R .4 .4 + + + .4 4 R .4 + .4 + + .4 4 R .4 + + .4 4 R .4 + + .4 + .4 4 R .4 + + 4 + .4 4 R .4 + + 4 R + .4 4 R .4 + 4 + + .4 4 R .4 + 4 R + + .4 4 R .4 4 + + + .4 4 R .4 4 R + + + .4 4 R + .4 4 R + .4 .4 + + .4 4 R + .4 + .4 4 R + .4 + .4 + .4 4 R + .4 + 4 + .4 4 R + .4 + 4 R + .4 4 R + .4 4 + + .4 4 R + .4 4 R + + .4 4 R + 4 .4 + + .4 4 R + 4 + .4 4 R + 4 + .4 + .4 4 R + 4 + 4 + .4 4 R + 4 + 4 R + .4 4 R + 4 4 + + .4 4 R + 4 4 R + + .4 4 R + 4 R .4 + + .4 4 R + 4 R + .4 4 R + 4 R + .4 + .4 4 R + 4 R + 4 + .4 4 R + 4 R + 4 R + .4 4 R + 4 R 4 + + .4 4 R + 4 R 4 R + + .4 4 R + 4 R 4 R + R + .4 4 R 4 .4 + + + .4 4 R 4 + .4 + + .4 4 R 4 + + .4 4 R 4 + + .4 + .4 4 R 4 + + 4 + .4 4 R 4 + + 4 R + .4 4 R 4 + 4 + + .4 4 R 4 + 4 R + + .4 4 R 4 4 + + + .4 4 R 4 4 R + + + .4 4 R 4 R .4 + + + .4 4 R 4 R + .4 + + .4 4 R 4 R + + .4 4 R 4 R + + .4 + .4 4 R 4 R + + 4 + .4 4 R 4 R + + 4 R + .4 4 R 4 R + 4 + + .4 4 R 4 R + 4 R + + .4 4 R 4 R + R .4 + + .4 4 R 4 R + R + .4 4 R 4 R + R + .4 + .4 4 R 4 R + R + 4 + .4 4 R 4 R + R + 4 R + .4 4 R 4 R + R 4 + + .4 4 R 4 R + R 4 R + + .4 4 R 4 R + R 4 R + R + .4 4 R 4 R 4 + + + .4 4 R 4 R 4 R + + + .4 4 R 4 R 4 R + R + + .4 4 R 4 R 4 R + R + R + 4 4 .4 .4 .4 + + + 4 .4 .4 + .4 + + 4 .4 .4 + + 4 .4 .4 + + .4 + 4 .4 .4 + + 4 + 4 .4 .4 + + 4 R + 4 .4 .4 + 4 + + 4 .4 .4 + 4 R + + 4 .4 .4 4 + + + 4 .4 .4 4 R + + + 4 .4 + 4 .4 + .4 .4 + + 4 .4 + .4 + 4 .4 + .4 + .4 + 4 .4 + .4 + 4 + 4 .4 + .4 + 4 R + 4 .4 + .4 4 + + 4 .4 + .4 4 R + + 4 .4 + 4 .4 + + 4 .4 + 4 + 4 .4 + 4 + .4 + 4 .4 + 4 + 4 + 4 .4 + 4 + 4 R + 4 .4 + 4 4 + + 4 .4 + 4 4 R + + 4 .4 + 4 R .4 + + 4 .4 + 4 R + 4 .4 + 4 R + .4 + 4 .4 + 4 R + 4 + 4 .4 + 4 R + 4 R + 4 .4 + 4 R 4 + + 4 .4 + 4 R 4 R + + 4 .4 + 4 R 4 R + R + 4 .4 4 .4 + + + 4 .4 4 + .4 + + 4 .4 4 + + 4 .4 4 + + .4 + 4 .4 4 + + 4 + 4 .4 4 + + 4 R + 4 .4 4 + 4 + + 4 .4 4 + 4 R + + 4 .4 4 4 + + + 4 .4 4 4 R + + + 4 .4 4 R .4 + + + 4 .4 4 R + .4 + + 4 .4 4 R + + 4 .4 4 R + + .4 + 4 .4 4 R + + 4 + 4 .4 4 R + + 4 R + 4 .4 4 R + 4 + + 4 .4 4 R + 4 R + + 4 .4 4 R 4 + + + 4 .4 4 R 4 R + + + 4 .4 4 R 4 R + R + + 4 4 .4 .4 + + + 4 4 .4 + .4 + + 4 4 .4 + + 4 4 .4 + + .4 + 4 4 .4 + + 4 + 4 4 .4 + + 4 R + 4 4 .4 + 4 + + 4 4 .4 + 4 R + + 4 4 .4 4 + + + 4 4 .4 4 R + + + 4 4 + 4 4 + .4 .4 + + 4 4 + .4 + 4 4 + .4 + .4 + 4 4 + .4 + 4 + 4 4 + .4 + 4 R + 4 4 + .4 4 + + 4 4 + .4 4 R + + 4 4 + 4 .4 + + 4 4 + 4 + 4 4 + 4 + .4 + 4 4 + 4 + 4 + 4 4 + 4 + 4 + R 4 4 + 4 + 4 + R R 4 4 + 4 + 4 R + 4 4 + 4 4 + + 4 4 + 4 4 + + R 4 4 + 4 4 + + R R 4 4 + 4 4 R + + 4 4 + 4 R .4 + + 4 4 + 4 R + 4 4 + 4 R + .4 + 4 4 + 4 R + 4 + 4 4 + 4 R + 4 R + 4 4 + 4 R 4 + + 4 4 + 4 R 4 R + + 4 4 + 4 R 4 R + R + 4 4 4 .4 + + + 4 4 4 + .4 + + 4 4 4 + + 4 4 4 + + .4 + 4 4 4 + + 4 + 4 4 4 + + 4 + R 4 4 4 + + 4 + R R 4 4 4 + + 4 R + 4 4 4 + 4 + + 4 4 4 + 4 + + R 4 4 4 + 4 + + R R 4 4 4 + 4 R + + 4 4 4 4 + + + 4 4 4 4 + + + R 4 4 4 4 + + + R R 4 4 4 4 R + + + 4 4 4 R .4 + + + 4 4 4 R + .4 + + 4 4 4 R + + 4 4 4 R + + .4 + 4 4 4 R + + 4 + 4 4 4 R + + 4 R + 4 4 4 R + 4 + + 4 4 4 R + 4 R + + 4 4 4 R 4 + + + 4 4 4 R 4 R + + + 4 4 4 R 4 R + R + + 4 4 R .4 .4 + + + 4 4 R .4 + .4 + + 4 4 R .4 + + 4 4 R .4 + + .4 + 4 4 R .4 + + 4 + 4 4 R .4 + + 4 R + 4 4 R .4 + 4 + + 4 4 R .4 + 4 R + + 4 4 R .4 4 + + + 4 4 R .4 4 R + + + 4 4 R + 4 4 R + .4 .4 + + 4 4 R + .4 + 4 4 R + .4 + .4 + 4 4 R + .4 + 4 + 4 4 R + .4 + 4 R + 4 4 R + .4 4 + + 4 4 R + .4 4 R + + 4 4 R + 4 .4 + + 4 4 R + 4 + 4 4 R + 4 + .4 + 4 4 R + 4 + 4 + 4 4 R + 4 + 4 R + 4 4 R + 4 4 + + 4 4 R + 4 4 R + + 4 4 R + 4 R .4 + + 4 4 R + 4 R + 4 4 R + 4 R + .4 + 4 4 R + 4 R + 4 + 4 4 R + 4 R + 4 R + 4 4 R + 4 R 4 + + 4 4 R + 4 R 4 R + + 4 4 R + 4 R 4 R + R + 4 4 R 4 .4 + + + 4 4 R 4 + .4 + + 4 4 R 4 + + 4 4 R 4 + + .4 + 4 4 R 4 + + 4 + 4 4 R 4 + + 4 R + 4 4 R 4 + 4 + + 4 4 R 4 + 4 R + + 4 4 R 4 4 + + + 4 4 R 4 4 R + + + 4 4 R 4 R .4 + + + 4 4 R 4 R + .4 + + 4 4 R 4 R + + 4 4 R 4 R + + .4 + 4 4 R 4 R + + 4 + 4 4 R 4 R + + 4 R + 4 4 R 4 R + 4 + + 4 4 R 4 R + 4 R + + 4 4 R 4 R + R .4 + + 4 4 R 4 R + R + 4 4 R 4 R + R + .4 + 4 4 R 4 R + R + 4 + 4 4 R 4 R + R + 4 R + 4 4 R 4 R + R 4 + + 4 4 R 4 R + R 4 R + + 4 4 R 4 R + R 4 R + R + 4 4 R 4 R 4 + + + 4 4 R 4 R 4 R + + + 4 4 R 4 R 4 R + R + + 4 4 R 4 R 4 R + R + R + 4 R 4 R .4 .4 .4 + + + 4 R .4 .4 + .4 + + 4 R .4 .4 + + 4 R .4 .4 + + .4 + 4 R .4 .4 + + 4 + 4 R .4 .4 + + 4 R + 4 R .4 .4 + 4 + + 4 R .4 .4 + 4 R + + 4 R .4 .4 4 + + + 4 R .4 .4 4 R + + + 4 R .4 + 4 R .4 + .4 .4 + + 4 R .4 + .4 + 4 R .4 + .4 + .4 + 4 R .4 + .4 + 4 + 4 R .4 + .4 + 4 R + 4 R .4 + .4 4 + + 4 R .4 + .4 4 R + + 4 R .4 + 4 .4 + + 4 R .4 + 4 + 4 R .4 + 4 + .4 + 4 R .4 + 4 + 4 + 4 R .4 + 4 + 4 R + 4 R .4 + 4 4 + + 4 R .4 + 4 4 R + + 4 R .4 + 4 R .4 + + 4 R .4 + 4 R + 4 R .4 + 4 R + .4 + 4 R .4 + 4 R + 4 + 4 R .4 + 4 R + 4 R + 4 R .4 + 4 R 4 + + 4 R .4 + 4 R 4 R + + 4 R .4 + 4 R 4 R + R + 4 R .4 4 .4 + + + 4 R .4 4 + .4 + + 4 R .4 4 + + 4 R .4 4 + + .4 + 4 R .4 4 + + 4 + 4 R .4 4 + + 4 R + 4 R .4 4 + 4 + + 4 R .4 4 + 4 R + + 4 R .4 4 4 + + + 4 R .4 4 4 R + + + 4 R .4 4 R .4 + + + 4 R .4 4 R + .4 + + 4 R .4 4 R + + 4 R .4 4 R + + .4 + 4 R .4 4 R + + 4 + 4 R .4 4 R + + 4 R + 4 R .4 4 R + 4 + + 4 R .4 4 R + 4 R + + 4 R .4 4 R 4 + + + 4 R .4 4 R 4 R + + + 4 R .4 4 R 4 R + R + + 4 R 4 .4 .4 + + + 4 R 4 .4 + .4 + + 4 R 4 .4 + + 4 R 4 .4 + + .4 + 4 R 4 .4 + + 4 + 4 R 4 .4 + + 4 R + 4 R 4 .4 + 4 + + 4 R 4 .4 + 4 R + + 4 R 4 .4 4 + + + 4 R 4 .4 4 R + + + 4 R 4 + 4 R 4 + .4 .4 + + 4 R 4 + .4 + 4 R 4 + .4 + .4 + 4 R 4 + .4 + 4 + 4 R 4 + .4 + 4 R + 4 R 4 + .4 4 + + 4 R 4 + .4 4 R + + 4 R 4 + 4 .4 + + 4 R 4 + 4 + 4 R 4 + 4 + .4 + 4 R 4 + 4 + 4 + 4 R 4 + 4 + 4 R + 4 R 4 + 4 4 + + 4 R 4 + 4 4 R + + 4 R 4 + 4 R .4 + + 4 R 4 + 4 R + 4 R 4 + 4 R + .4 + 4 R 4 + 4 R + 4 + 4 R 4 + 4 R + 4 R + 4 R 4 + 4 R 4 + + 4 R 4 + 4 R 4 R + + 4 R 4 + 4 R 4 R + R + 4 R 4 4 .4 + + + 4 R 4 4 + .4 + + 4 R 4 4 + + 4 R 4 4 + + .4 + 4 R 4 4 + + 4 + 4 R 4 4 + + 4 R + 4 R 4 4 + 4 + + 4 R 4 4 + 4 R + + 4 R 4 4 4 + + + 4 R 4 4 4 R + + + 4 R 4 4 R .4 + + + 4 R 4 4 R + .4 + + 4 R 4 4 R + + 4 R 4 4 R + + .4 + 4 R 4 4 R + + 4 + 4 R 4 4 R + + 4 R + 4 R 4 4 R + 4 + + 4 R 4 4 R + 4 R + + 4 R 4 4 R 4 + + + 4 R 4 4 R 4 R + + + 4 R 4 4 R 4 R + R + + 4 R 4 R .4 .4 + + + 4 R 4 R .4 + .4 + + 4 R 4 R .4 + + 4 R 4 R .4 + + .4 + 4 R 4 R .4 + + 4 + 4 R 4 R .4 + + 4 R + 4 R 4 R .4 + 4 + + 4 R 4 R .4 + 4 R + + 4 R 4 R .4 4 + + + 4 R 4 R .4 4 R + + + 4 R 4 R + 4 R 4 R + .4 .4 + + 4 R 4 R + .4 + 4 R 4 R + .4 + .4 + 4 R 4 R + .4 + 4 + 4 R 4 R + .4 + 4 R + 4 R 4 R + .4 4 + + 4 R 4 R + .4 4 R + + 4 R 4 R + 4 .4 + + 4 R 4 R + 4 + 4 R 4 R + 4 + .4 + 4 R 4 R + 4 + 4 + 4 R 4 R + 4 + 4 R + 4 R 4 R + 4 4 + + 4 R 4 R + 4 4 R + + 4 R 4 R + 4 R .4 + + 4 R 4 R + 4 R + 4 R 4 R + 4 R + .4 + 4 R 4 R + 4 R + 4 + 4 R 4 R + 4 R + 4 R + 4 R 4 R + 4 R 4 + + 4 R 4 R + 4 R 4 R + + 4 R 4 R + 4 R 4 R + R + 4 R 4 R + R 4 R 4 R + R .4 .4 + + 4 R 4 R + R .4 + 4 R 4 R + R .4 + .4 + 4 R 4 R + R .4 + 4 + 4 R 4 R + R .4 + 4 R + 4 R 4 R + R .4 4 + + 4 R 4 R + R .4 4 R + + 4 R 4 R + R 4 .4 + + 4 R 4 R + R 4 + 4 R 4 R + R 4 + .4 + 4 R 4 R + R 4 + 4 + 4 R 4 R + R 4 + 4 R + 4 R 4 R + R 4 4 + + 4 R 4 R + R 4 4 R + + 4 R 4 R + R 4 R .4 + + 4 R 4 R + R 4 R + 4 R 4 R + R 4 R + .4 + 4 R 4 R + R 4 R + 4 + 4 R 4 R + R 4 R + 4 R + 4 R 4 R + R 4 R + R 4 R 4 R + R 4 R + R .4 + 4 R 4 R + R 4 R + R 4 + 4 R 4 R + R 4 R + R 4 R + 4 R 4 R + R 4 R + R 4 R + R 4 R 4 R + R 4 R 4 + + 4 R 4 R + R 4 R 4 R + + 4 R 4 R + R 4 R 4 R + R + 4 R 4 R + R 4 R 4 R + R + R 4 R 4 R 4 .4 + + + 4 R 4 R 4 + .4 + + 4 R 4 R 4 + + 4 R 4 R 4 + + .4 + 4 R 4 R 4 + + 4 + 4 R 4 R 4 + + 4 R + 4 R 4 R 4 + 4 + + 4 R 4 R 4 + 4 R + + 4 R 4 R 4 4 + + + 4 R 4 R 4 4 R + + + 4 R 4 R 4 R .4 + + + 4 R 4 R 4 R + .4 + + 4 R 4 R 4 R + + 4 R 4 R 4 R + + .4 + 4 R 4 R 4 R + + 4 + 4 R 4 R 4 R + + 4 R + 4 R 4 R 4 R + 4 + + 4 R 4 R 4 R + 4 R + + 4 R 4 R 4 R + R .4 + + 4 R 4 R 4 R + R + 4 R 4 R 4 R + R + .4 + 4 R 4 R 4 R + R + 4 + 4 R 4 R 4 R + R + 4 R + 4 R 4 R 4 R + R + R 4 R 4 R 4 R + R + R .4 + 4 R 4 R 4 R + R + R 4 + 4 R 4 R 4 R + R + R 4 R + 4 R 4 R 4 R + R + R 4 R + R 4 R 4 R 4 R + R 4 + + 4 R 4 R 4 R + R 4 R + + 4 R 4 R 4 R + R 4 R + R + 4 R 4 R 4 R + R 4 R + R + R 4 R 4 R 4 R 4 + + + 4 R 4 R 4 R 4 R + + + 4 R 4 R 4 R 4 R + R + + 4 R 4 R 4 R 4 R + R + R + 4 R 4 R 4 R 4 R + R + R + R"; ExpressionSearch search = new ExpressionSearch(); search.AddOperand("4"); search.AddOperand(".4"); search.AddOperator("R"); search.AddOperator("+"); TestSearch(search, Expected); }
public void TwoOperandsAndTwoBinaryOperators() { const string Expected = @".4 .4 .4 - .4 .4 - .4 - .4 .4 - .4 - .4 - .4 .4 - .4 - .4 + .4 .4 - .4 - 4 - .4 .4 - .4 - 4 + .4 .4 - .4 .4 - - .4 .4 - .4 .4 - + .4 .4 - .4 .4 + - .4 .4 - .4 .4 + + .4 .4 - .4 + .4 .4 - .4 + .4 - .4 .4 - .4 + .4 + .4 .4 - .4 + 4 - .4 .4 - .4 + 4 + .4 .4 - .4 4 - - .4 .4 - .4 4 - + .4 .4 - .4 4 + - .4 .4 - .4 4 + + .4 .4 - 4 - .4 .4 - 4 - .4 - .4 .4 - 4 - .4 + .4 .4 - 4 - 4 - .4 .4 - 4 - 4 + .4 .4 - 4 .4 - - .4 .4 - 4 .4 - + .4 .4 - 4 .4 + - .4 .4 - 4 .4 + + .4 .4 - 4 + .4 .4 - 4 + .4 - .4 .4 - 4 + .4 + .4 .4 - 4 + 4 - .4 .4 - 4 + 4 + .4 .4 - 4 4 - - .4 .4 - 4 4 - + .4 .4 - 4 4 + - .4 .4 - 4 4 + + .4 .4 .4 - - .4 .4 .4 - - .4 - .4 .4 .4 - - .4 + .4 .4 .4 - - 4 - .4 .4 .4 - - 4 + .4 .4 .4 - .4 - - .4 .4 .4 - .4 - + .4 .4 .4 - .4 + - .4 .4 .4 - .4 + + .4 .4 .4 - + .4 .4 .4 - + .4 - .4 .4 .4 - + .4 + .4 .4 .4 - + 4 - .4 .4 .4 - + 4 + .4 .4 .4 - 4 - - .4 .4 .4 - 4 - + .4 .4 .4 - 4 + - .4 .4 .4 - 4 + + .4 .4 .4 .4 - - - .4 .4 .4 .4 - - + .4 .4 .4 .4 - + - .4 .4 .4 .4 - + + .4 .4 .4 .4 + - - .4 .4 .4 .4 + - + .4 .4 .4 .4 + + - .4 .4 .4 .4 + + + .4 .4 .4 + - .4 .4 .4 + - .4 - .4 .4 .4 + - .4 + .4 .4 .4 + - 4 - .4 .4 .4 + - 4 + .4 .4 .4 + .4 - - .4 .4 .4 + .4 - + .4 .4 .4 + .4 + - .4 .4 .4 + .4 + + .4 .4 .4 + + .4 .4 .4 + + .4 - .4 .4 .4 + + .4 + .4 .4 .4 + + 4 - .4 .4 .4 + + 4 + .4 .4 .4 + 4 - - .4 .4 .4 + 4 - + .4 .4 .4 + 4 + - .4 .4 .4 + 4 + + .4 .4 .4 4 - - - .4 .4 .4 4 - - + .4 .4 .4 4 - + - .4 .4 .4 4 - + + .4 .4 .4 4 + - - .4 .4 .4 4 + - + .4 .4 .4 4 + + - .4 .4 .4 4 + + + .4 .4 + .4 .4 + .4 - .4 .4 + .4 - .4 - .4 .4 + .4 - .4 + .4 .4 + .4 - 4 - .4 .4 + .4 - 4 + .4 .4 + .4 .4 - - .4 .4 + .4 .4 - + .4 .4 + .4 .4 + - .4 .4 + .4 .4 + + .4 .4 + .4 + .4 .4 + .4 + .4 - .4 .4 + .4 + .4 + .4 .4 + .4 + 4 - .4 .4 + .4 + 4 + .4 .4 + .4 4 - - .4 .4 + .4 4 - + .4 .4 + .4 4 + - .4 .4 + .4 4 + + .4 .4 + 4 - .4 .4 + 4 - .4 - .4 .4 + 4 - .4 + .4 .4 + 4 - 4 - .4 .4 + 4 - 4 + .4 .4 + 4 .4 - - .4 .4 + 4 .4 - + .4 .4 + 4 .4 + - .4 .4 + 4 .4 + + .4 .4 + 4 + .4 .4 + 4 + .4 - .4 .4 + 4 + .4 + .4 .4 + 4 + 4 - .4 .4 + 4 + 4 + .4 .4 + 4 4 - - .4 .4 + 4 4 - + .4 .4 + 4 4 + - .4 .4 + 4 4 + + .4 .4 4 - - .4 .4 4 - - .4 - .4 .4 4 - - .4 + .4 .4 4 - - 4 - .4 .4 4 - - 4 + .4 .4 4 - .4 - - .4 .4 4 - .4 - + .4 .4 4 - .4 + - .4 .4 4 - .4 + + .4 .4 4 - + .4 .4 4 - + .4 - .4 .4 4 - + .4 + .4 .4 4 - + 4 - .4 .4 4 - + 4 + .4 .4 4 - 4 - - .4 .4 4 - 4 - + .4 .4 4 - 4 + - .4 .4 4 - 4 + + .4 .4 4 .4 - - - .4 .4 4 .4 - - + .4 .4 4 .4 - + - .4 .4 4 .4 - + + .4 .4 4 .4 + - - .4 .4 4 .4 + - + .4 .4 4 .4 + + - .4 .4 4 .4 + + + .4 .4 4 + - .4 .4 4 + - .4 - .4 .4 4 + - .4 + .4 .4 4 + - 4 - .4 .4 4 + - 4 + .4 .4 4 + .4 - - .4 .4 4 + .4 - + .4 .4 4 + .4 + - .4 .4 4 + .4 + + .4 .4 4 + + .4 .4 4 + + .4 - .4 .4 4 + + .4 + .4 .4 4 + + 4 - .4 .4 4 + + 4 + .4 .4 4 + 4 - - .4 .4 4 + 4 - + .4 .4 4 + 4 + - .4 .4 4 + 4 + + .4 .4 4 4 - - - .4 .4 4 4 - - + .4 .4 4 4 - + - .4 .4 4 4 - + + .4 .4 4 4 + - - .4 .4 4 4 + - + .4 .4 4 4 + + - .4 .4 4 4 + + + .4 4 - .4 4 - .4 - .4 4 - .4 - .4 - .4 4 - .4 - .4 + .4 4 - .4 - 4 - .4 4 - .4 - 4 + .4 4 - .4 .4 - - .4 4 - .4 .4 - + .4 4 - .4 .4 + - .4 4 - .4 .4 + + .4 4 - .4 + .4 4 - .4 + .4 - .4 4 - .4 + .4 + .4 4 - .4 + 4 - .4 4 - .4 + 4 + .4 4 - .4 4 - - .4 4 - .4 4 - + .4 4 - .4 4 + - .4 4 - .4 4 + + .4 4 - 4 - .4 4 - 4 - .4 - .4 4 - 4 - .4 + .4 4 - 4 - 4 - .4 4 - 4 - 4 + .4 4 - 4 .4 - - .4 4 - 4 .4 - + .4 4 - 4 .4 + - .4 4 - 4 .4 + + .4 4 - 4 + .4 4 - 4 + .4 - .4 4 - 4 + .4 + .4 4 - 4 + 4 - .4 4 - 4 + 4 + .4 4 - 4 4 - - .4 4 - 4 4 - + .4 4 - 4 4 + - .4 4 - 4 4 + + .4 4 .4 - - .4 4 .4 - - .4 - .4 4 .4 - - .4 + .4 4 .4 - - 4 - .4 4 .4 - - 4 + .4 4 .4 - .4 - - .4 4 .4 - .4 - + .4 4 .4 - .4 + - .4 4 .4 - .4 + + .4 4 .4 - + .4 4 .4 - + .4 - .4 4 .4 - + .4 + .4 4 .4 - + 4 - .4 4 .4 - + 4 + .4 4 .4 - 4 - - .4 4 .4 - 4 - + .4 4 .4 - 4 + - .4 4 .4 - 4 + + .4 4 .4 .4 - - - .4 4 .4 .4 - - + .4 4 .4 .4 - + - .4 4 .4 .4 - + + .4 4 .4 .4 + - - .4 4 .4 .4 + - + .4 4 .4 .4 + + - .4 4 .4 .4 + + + .4 4 .4 + - .4 4 .4 + - .4 - .4 4 .4 + - .4 + .4 4 .4 + - 4 - .4 4 .4 + - 4 + .4 4 .4 + .4 - - .4 4 .4 + .4 - + .4 4 .4 + .4 + - .4 4 .4 + .4 + + .4 4 .4 + + .4 4 .4 + + .4 - .4 4 .4 + + .4 + .4 4 .4 + + 4 - .4 4 .4 + + 4 + .4 4 .4 + 4 - - .4 4 .4 + 4 - + .4 4 .4 + 4 + - .4 4 .4 + 4 + + .4 4 .4 4 - - - .4 4 .4 4 - - + .4 4 .4 4 - + - .4 4 .4 4 - + + .4 4 .4 4 + - - .4 4 .4 4 + - + .4 4 .4 4 + + - .4 4 .4 4 + + + .4 4 + .4 4 + .4 - .4 4 + .4 - .4 - .4 4 + .4 - .4 + .4 4 + .4 - 4 - .4 4 + .4 - 4 + .4 4 + .4 .4 - - .4 4 + .4 .4 - + .4 4 + .4 .4 + - .4 4 + .4 .4 + + .4 4 + .4 + .4 4 + .4 + .4 - .4 4 + .4 + .4 + .4 4 + .4 + 4 - .4 4 + .4 + 4 + .4 4 + .4 4 - - .4 4 + .4 4 - + .4 4 + .4 4 + - .4 4 + .4 4 + + .4 4 + 4 - .4 4 + 4 - .4 - .4 4 + 4 - .4 + .4 4 + 4 - 4 - .4 4 + 4 - 4 + .4 4 + 4 .4 - - .4 4 + 4 .4 - + .4 4 + 4 .4 + - .4 4 + 4 .4 + + .4 4 + 4 + .4 4 + 4 + .4 - .4 4 + 4 + .4 + .4 4 + 4 + 4 - .4 4 + 4 + 4 + .4 4 + 4 4 - - .4 4 + 4 4 - + .4 4 + 4 4 + - .4 4 + 4 4 + + .4 4 4 - - .4 4 4 - - .4 - .4 4 4 - - .4 + .4 4 4 - - 4 - .4 4 4 - - 4 + .4 4 4 - .4 - - .4 4 4 - .4 - + .4 4 4 - .4 + - .4 4 4 - .4 + + .4 4 4 - + .4 4 4 - + .4 - .4 4 4 - + .4 + .4 4 4 - + 4 - .4 4 4 - + 4 + .4 4 4 - 4 - - .4 4 4 - 4 - + .4 4 4 - 4 + - .4 4 4 - 4 + + .4 4 4 .4 - - - .4 4 4 .4 - - + .4 4 4 .4 - + - .4 4 4 .4 - + + .4 4 4 .4 + - - .4 4 4 .4 + - + .4 4 4 .4 + + - .4 4 4 .4 + + + .4 4 4 + - .4 4 4 + - .4 - .4 4 4 + - .4 + .4 4 4 + - 4 - .4 4 4 + - 4 + .4 4 4 + .4 - - .4 4 4 + .4 - + .4 4 4 + .4 + - .4 4 4 + .4 + + .4 4 4 + + .4 4 4 + + .4 - .4 4 4 + + .4 + .4 4 4 + + 4 - .4 4 4 + + 4 + .4 4 4 + 4 - - .4 4 4 + 4 - + .4 4 4 + 4 + - .4 4 4 + 4 + + .4 4 4 4 - - - .4 4 4 4 - - + .4 4 4 4 - + - .4 4 4 4 - + + .4 4 4 4 + - - .4 4 4 4 + - + .4 4 4 4 + + - .4 4 4 4 + + + 4 4 .4 - 4 .4 - .4 - 4 .4 - .4 - .4 - 4 .4 - .4 - .4 + 4 .4 - .4 - 4 - 4 .4 - .4 - 4 + 4 .4 - .4 .4 - - 4 .4 - .4 .4 - + 4 .4 - .4 .4 + - 4 .4 - .4 .4 + + 4 .4 - .4 + 4 .4 - .4 + .4 - 4 .4 - .4 + .4 + 4 .4 - .4 + 4 - 4 .4 - .4 + 4 + 4 .4 - .4 4 - - 4 .4 - .4 4 - + 4 .4 - .4 4 + - 4 .4 - .4 4 + + 4 .4 - 4 - 4 .4 - 4 - .4 - 4 .4 - 4 - .4 + 4 .4 - 4 - 4 - 4 .4 - 4 - 4 + 4 .4 - 4 .4 - - 4 .4 - 4 .4 - + 4 .4 - 4 .4 + - 4 .4 - 4 .4 + + 4 .4 - 4 + 4 .4 - 4 + .4 - 4 .4 - 4 + .4 + 4 .4 - 4 + 4 - 4 .4 - 4 + 4 + 4 .4 - 4 4 - - 4 .4 - 4 4 - + 4 .4 - 4 4 + - 4 .4 - 4 4 + + 4 .4 .4 - - 4 .4 .4 - - .4 - 4 .4 .4 - - .4 + 4 .4 .4 - - 4 - 4 .4 .4 - - 4 + 4 .4 .4 - .4 - - 4 .4 .4 - .4 - + 4 .4 .4 - .4 + - 4 .4 .4 - .4 + + 4 .4 .4 - + 4 .4 .4 - + .4 - 4 .4 .4 - + .4 + 4 .4 .4 - + 4 - 4 .4 .4 - + 4 + 4 .4 .4 - 4 - - 4 .4 .4 - 4 - + 4 .4 .4 - 4 + - 4 .4 .4 - 4 + + 4 .4 .4 .4 - - - 4 .4 .4 .4 - - + 4 .4 .4 .4 - + - 4 .4 .4 .4 - + + 4 .4 .4 .4 + - - 4 .4 .4 .4 + - + 4 .4 .4 .4 + + - 4 .4 .4 .4 + + + 4 .4 .4 + - 4 .4 .4 + - .4 - 4 .4 .4 + - .4 + 4 .4 .4 + - 4 - 4 .4 .4 + - 4 + 4 .4 .4 + .4 - - 4 .4 .4 + .4 - + 4 .4 .4 + .4 + - 4 .4 .4 + .4 + + 4 .4 .4 + + 4 .4 .4 + + .4 - 4 .4 .4 + + .4 + 4 .4 .4 + + 4 - 4 .4 .4 + + 4 + 4 .4 .4 + 4 - - 4 .4 .4 + 4 - + 4 .4 .4 + 4 + - 4 .4 .4 + 4 + + 4 .4 .4 4 - - - 4 .4 .4 4 - - + 4 .4 .4 4 - + - 4 .4 .4 4 - + + 4 .4 .4 4 + - - 4 .4 .4 4 + - + 4 .4 .4 4 + + - 4 .4 .4 4 + + + 4 .4 + 4 .4 + .4 - 4 .4 + .4 - .4 - 4 .4 + .4 - .4 + 4 .4 + .4 - 4 - 4 .4 + .4 - 4 + 4 .4 + .4 .4 - - 4 .4 + .4 .4 - + 4 .4 + .4 .4 + - 4 .4 + .4 .4 + + 4 .4 + .4 + 4 .4 + .4 + .4 - 4 .4 + .4 + .4 + 4 .4 + .4 + 4 - 4 .4 + .4 + 4 + 4 .4 + .4 4 - - 4 .4 + .4 4 - + 4 .4 + .4 4 + - 4 .4 + .4 4 + + 4 .4 + 4 - 4 .4 + 4 - .4 - 4 .4 + 4 - .4 + 4 .4 + 4 - 4 - 4 .4 + 4 - 4 + 4 .4 + 4 .4 - - 4 .4 + 4 .4 - + 4 .4 + 4 .4 + - 4 .4 + 4 .4 + + 4 .4 + 4 + 4 .4 + 4 + .4 - 4 .4 + 4 + .4 + 4 .4 + 4 + 4 - 4 .4 + 4 + 4 + 4 .4 + 4 4 - - 4 .4 + 4 4 - + 4 .4 + 4 4 + - 4 .4 + 4 4 + + 4 .4 4 - - 4 .4 4 - - .4 - 4 .4 4 - - .4 + 4 .4 4 - - 4 - 4 .4 4 - - 4 + 4 .4 4 - .4 - - 4 .4 4 - .4 - + 4 .4 4 - .4 + - 4 .4 4 - .4 + + 4 .4 4 - + 4 .4 4 - + .4 - 4 .4 4 - + .4 + 4 .4 4 - + 4 - 4 .4 4 - + 4 + 4 .4 4 - 4 - - 4 .4 4 - 4 - + 4 .4 4 - 4 + - 4 .4 4 - 4 + + 4 .4 4 .4 - - - 4 .4 4 .4 - - + 4 .4 4 .4 - + - 4 .4 4 .4 - + + 4 .4 4 .4 + - - 4 .4 4 .4 + - + 4 .4 4 .4 + + - 4 .4 4 .4 + + + 4 .4 4 + - 4 .4 4 + - .4 - 4 .4 4 + - .4 + 4 .4 4 + - 4 - 4 .4 4 + - 4 + 4 .4 4 + .4 - - 4 .4 4 + .4 - + 4 .4 4 + .4 + - 4 .4 4 + .4 + + 4 .4 4 + + 4 .4 4 + + .4 - 4 .4 4 + + .4 + 4 .4 4 + + 4 - 4 .4 4 + + 4 + 4 .4 4 + 4 - - 4 .4 4 + 4 - + 4 .4 4 + 4 + - 4 .4 4 + 4 + + 4 .4 4 4 - - - 4 .4 4 4 - - + 4 .4 4 4 - + - 4 .4 4 4 - + + 4 .4 4 4 + - - 4 .4 4 4 + - + 4 .4 4 4 + + - 4 .4 4 4 + + + 4 4 - 4 4 - .4 - 4 4 - .4 - .4 - 4 4 - .4 - .4 + 4 4 - .4 - 4 - 4 4 - .4 - 4 + 4 4 - .4 .4 - - 4 4 - .4 .4 - + 4 4 - .4 .4 + - 4 4 - .4 .4 + + 4 4 - .4 + 4 4 - .4 + .4 - 4 4 - .4 + .4 + 4 4 - .4 + 4 - 4 4 - .4 + 4 + 4 4 - .4 4 - - 4 4 - .4 4 - + 4 4 - .4 4 + - 4 4 - .4 4 + + 4 4 - 4 - 4 4 - 4 - .4 - 4 4 - 4 - .4 + 4 4 - 4 - 4 - 4 4 - 4 - 4 + 4 4 - 4 .4 - - 4 4 - 4 .4 - + 4 4 - 4 .4 + - 4 4 - 4 .4 + + 4 4 - 4 + 4 4 - 4 + .4 - 4 4 - 4 + .4 + 4 4 - 4 + 4 - 4 4 - 4 + 4 + 4 4 - 4 4 - - 4 4 - 4 4 - + 4 4 - 4 4 + - 4 4 - 4 4 + + 4 4 .4 - - 4 4 .4 - - .4 - 4 4 .4 - - .4 + 4 4 .4 - - 4 - 4 4 .4 - - 4 + 4 4 .4 - .4 - - 4 4 .4 - .4 - + 4 4 .4 - .4 + - 4 4 .4 - .4 + + 4 4 .4 - + 4 4 .4 - + .4 - 4 4 .4 - + .4 + 4 4 .4 - + 4 - 4 4 .4 - + 4 + 4 4 .4 - 4 - - 4 4 .4 - 4 - + 4 4 .4 - 4 + - 4 4 .4 - 4 + + 4 4 .4 .4 - - - 4 4 .4 .4 - - + 4 4 .4 .4 - + - 4 4 .4 .4 - + + 4 4 .4 .4 + - - 4 4 .4 .4 + - + 4 4 .4 .4 + + - 4 4 .4 .4 + + + 4 4 .4 + - 4 4 .4 + - .4 - 4 4 .4 + - .4 + 4 4 .4 + - 4 - 4 4 .4 + - 4 + 4 4 .4 + .4 - - 4 4 .4 + .4 - + 4 4 .4 + .4 + - 4 4 .4 + .4 + + 4 4 .4 + + 4 4 .4 + + .4 - 4 4 .4 + + .4 + 4 4 .4 + + 4 - 4 4 .4 + + 4 + 4 4 .4 + 4 - - 4 4 .4 + 4 - + 4 4 .4 + 4 + - 4 4 .4 + 4 + + 4 4 .4 4 - - - 4 4 .4 4 - - + 4 4 .4 4 - + - 4 4 .4 4 - + + 4 4 .4 4 + - - 4 4 .4 4 + - + 4 4 .4 4 + + - 4 4 .4 4 + + + 4 4 + 4 4 + .4 - 4 4 + .4 - .4 - 4 4 + .4 - .4 + 4 4 + .4 - 4 - 4 4 + .4 - 4 + 4 4 + .4 .4 - - 4 4 + .4 .4 - + 4 4 + .4 .4 + - 4 4 + .4 .4 + + 4 4 + .4 + 4 4 + .4 + .4 - 4 4 + .4 + .4 + 4 4 + .4 + 4 - 4 4 + .4 + 4 + 4 4 + .4 4 - - 4 4 + .4 4 - + 4 4 + .4 4 + - 4 4 + .4 4 + + 4 4 + 4 - 4 4 + 4 - .4 - 4 4 + 4 - .4 + 4 4 + 4 - 4 - 4 4 + 4 - 4 + 4 4 + 4 .4 - - 4 4 + 4 .4 - + 4 4 + 4 .4 + - 4 4 + 4 .4 + + 4 4 + 4 + 4 4 + 4 + .4 - 4 4 + 4 + .4 + 4 4 + 4 + 4 - 4 4 + 4 + 4 + 4 4 + 4 4 - - 4 4 + 4 4 - + 4 4 + 4 4 + - 4 4 + 4 4 + + 4 4 4 - - 4 4 4 - - .4 - 4 4 4 - - .4 + 4 4 4 - - 4 - 4 4 4 - - 4 + 4 4 4 - .4 - - 4 4 4 - .4 - + 4 4 4 - .4 + - 4 4 4 - .4 + + 4 4 4 - + 4 4 4 - + .4 - 4 4 4 - + .4 + 4 4 4 - + 4 - 4 4 4 - + 4 + 4 4 4 - 4 - - 4 4 4 - 4 - + 4 4 4 - 4 + - 4 4 4 - 4 + + 4 4 4 .4 - - - 4 4 4 .4 - - + 4 4 4 .4 - + - 4 4 4 .4 - + + 4 4 4 .4 + - - 4 4 4 .4 + - + 4 4 4 .4 + + - 4 4 4 .4 + + + 4 4 4 + - 4 4 4 + - .4 - 4 4 4 + - .4 + 4 4 4 + - 4 - 4 4 4 + - 4 + 4 4 4 + .4 - - 4 4 4 + .4 - + 4 4 4 + .4 + - 4 4 4 + .4 + + 4 4 4 + + 4 4 4 + + .4 - 4 4 4 + + .4 + 4 4 4 + + 4 - 4 4 4 + + 4 + 4 4 4 + 4 - - 4 4 4 + 4 - + 4 4 4 + 4 + - 4 4 4 + 4 + + 4 4 4 4 - - - 4 4 4 4 - - + 4 4 4 4 - + - 4 4 4 4 - + + 4 4 4 4 + - - 4 4 4 4 + - + 4 4 4 4 + + - 4 4 4 4 + + +"; ExpressionSearch search = new ExpressionSearch(); search.AddOperand("4"); search.AddOperand(".4"); search.AddOperator("+"); search.AddOperator("-"); TestSearch(search, Expected); }
public void TwoOperandsAndOneBinaryOperator() { const string Expected = @".4 .4 .4 - .4 .4 - .4 - .4 .4 - .4 - .4 - .4 .4 - .4 - 4 - .4 .4 - .4 .4 - - .4 .4 - .4 4 - - .4 .4 - 4 - .4 .4 - 4 - .4 - .4 .4 - 4 - 4 - .4 .4 - 4 .4 - - .4 .4 - 4 4 - - .4 .4 .4 - - .4 .4 .4 - - .4 - .4 .4 .4 - - 4 - .4 .4 .4 - .4 - - .4 .4 .4 - 4 - - .4 .4 .4 .4 - - - .4 .4 .4 4 - - - .4 .4 4 - - .4 .4 4 - - .4 - .4 .4 4 - - 4 - .4 .4 4 - .4 - - .4 .4 4 - 4 - - .4 .4 4 .4 - - - .4 .4 4 4 - - - .4 4 - .4 4 - .4 - .4 4 - .4 - .4 - .4 4 - .4 - 4 - .4 4 - .4 .4 - - .4 4 - .4 4 - - .4 4 - 4 - .4 4 - 4 - .4 - .4 4 - 4 - 4 - .4 4 - 4 .4 - - .4 4 - 4 4 - - .4 4 .4 - - .4 4 .4 - - .4 - .4 4 .4 - - 4 - .4 4 .4 - .4 - - .4 4 .4 - 4 - - .4 4 .4 .4 - - - .4 4 .4 4 - - - .4 4 4 - - .4 4 4 - - .4 - .4 4 4 - - 4 - .4 4 4 - .4 - - .4 4 4 - 4 - - .4 4 4 .4 - - - .4 4 4 4 - - - 4 4 .4 - 4 .4 - .4 - 4 .4 - .4 - .4 - 4 .4 - .4 - 4 - 4 .4 - .4 .4 - - 4 .4 - .4 4 - - 4 .4 - 4 - 4 .4 - 4 - .4 - 4 .4 - 4 - 4 - 4 .4 - 4 .4 - - 4 .4 - 4 4 - - 4 .4 .4 - - 4 .4 .4 - - .4 - 4 .4 .4 - - 4 - 4 .4 .4 - .4 - - 4 .4 .4 - 4 - - 4 .4 .4 .4 - - - 4 .4 .4 4 - - - 4 .4 4 - - 4 .4 4 - - .4 - 4 .4 4 - - 4 - 4 .4 4 - .4 - - 4 .4 4 - 4 - - 4 .4 4 .4 - - - 4 .4 4 4 - - - 4 4 - 4 4 - .4 - 4 4 - .4 - .4 - 4 4 - .4 - 4 - 4 4 - .4 .4 - - 4 4 - .4 4 - - 4 4 - 4 - 4 4 - 4 - .4 - 4 4 - 4 - 4 - 4 4 - 4 .4 - - 4 4 - 4 4 - - 4 4 .4 - - 4 4 .4 - - .4 - 4 4 .4 - - 4 - 4 4 .4 - .4 - - 4 4 .4 - 4 - - 4 4 .4 .4 - - - 4 4 .4 4 - - - 4 4 4 - - 4 4 4 - - .4 - 4 4 4 - - 4 - 4 4 4 - .4 - - 4 4 4 - 4 - - 4 4 4 .4 - - - 4 4 4 4 - - -"; ExpressionSearch search = new ExpressionSearch(); search.AddOperand("4"); search.AddOperand(".4"); search.AddOperator("-"); TestSearch(search, Expected); }