public void ComputeTest_MissingOperand() { OperationExpressionCalculator target = new OperationExpressionCalculator(ObjectManager <IOperationRule> .Instance.Objects); target.Compute("3 * (4 + 5) > 2 &&"); }
public void ComputeTest_MissingBracket() { OperationExpressionCalculator target = new OperationExpressionCalculator(ObjectManager <IOperationRule> .Instance.Objects); target.Compute("3.2 * (1.3 + 2 + (7 / 3)"); }
public void ComputeTest() { OperationExpressionCalculator target = new OperationExpressionCalculator(ObjectManager <IOperationRule> .Instance.Objects); Assert.AreEqual(false, target.Compute("!true")); Assert.AreEqual(2L, target.Compute("2")); Assert.AreEqual(2.1M, target.Compute("2.1")); Assert.AreEqual("a", target.Compute("\"a\"")); Assert.AreEqual(true, target.Compute("true")); Assert.AreEqual(2L, target.Compute("+2")); Assert.AreEqual(2.1M, target.Compute("+2.1")); Assert.AreEqual(-2L, target.Compute("-2")); Assert.AreEqual(-2.1M, target.Compute("-2.1")); Assert.AreEqual(3L, target.Compute("1 + 2")); Assert.AreEqual(6L, target.Compute("1 + 2 + 3")); Assert.AreEqual(3.3M, target.Compute("1.1 + 2.2")); Assert.AreEqual(6.6M, target.Compute("1.1 + 2.2 + 3.3")); Assert.AreEqual(-1L, target.Compute("1 - 2")); Assert.AreEqual(-1.1M, target.Compute("1.1 - 2.2")); Assert.AreEqual(6L, target.Compute("2 * 3")); Assert.AreEqual(7.26M, target.Compute("2.2 * 3.3")); Assert.AreEqual(2.5M, target.Compute("5 / 2")); Assert.AreEqual(2.6M, target.Compute("5.2 / 2")); Assert.AreEqual(1L, target.Compute("5 % 2")); Assert.AreEqual(false, target.Compute("1 > 2")); Assert.AreEqual(true, target.Compute("5.2 > 2")); Assert.AreEqual(false, target.Compute("2 < 1")); Assert.AreEqual(true, target.Compute("2 < 5.2")); Assert.AreEqual(false, target.Compute("1 >= 2")); Assert.AreEqual(true, target.Compute("5.2 >= 2")); Assert.AreEqual(false, target.Compute("2 <= 1")); Assert.AreEqual(true, target.Compute("2 <= 5.2")); Assert.AreEqual(false, target.Compute("2.1 = 1")); Assert.AreEqual(true, target.Compute("1 = 1")); Assert.AreEqual(false, target.Compute("\"2\" = 2")); Assert.AreEqual(false, target.Compute("\"ab\" = 2")); Assert.AreEqual(true, target.Compute("\"ab\" = \"AB\"")); Assert.AreEqual(true, target.Compute("2.1 != 1")); Assert.AreEqual(false, target.Compute("1 != 1")); Assert.AreEqual(true, target.Compute("\"2\" != 2")); Assert.AreEqual(true, target.Compute("\"ab\" != 2")); Assert.AreEqual(false, target.Compute("\"ab\" != \"AB\"")); Assert.AreEqual(false, target.Compute("2.1 > 1 && 2 > 3")); Assert.AreEqual(true, target.Compute("2.1 > 1 || 2 > 3")); Assert.AreEqual(true, target.Compute(" !(1 + -2 * +3 > 5.2 / (1 + 1)) && \"a\" != 3 && 1.2 + 3.4 = 4.6 ")); }
public void ComputeTest_InvalidCharacter() { OperationExpressionCalculator target = new OperationExpressionCalculator(ObjectManager <IOperationRule> .Instance.Objects); target.Compute("1 + 2 b 3 - 1"); }
public void ComputeTest_InvalidOperand() { OperationExpressionCalculator target = new OperationExpressionCalculator(ObjectManager <IOperationRule> .Instance.Objects); target.Compute("8 + !3"); }