public void ExactlyDivideTest() { FakeVariableLinker fvl = new FakeVariableLinker(); DoubleVar d1 = new DoubleVar(FakeVariableLinker.DoubleA); LongVar i1 = new LongVar(FakeVariableLinker.IntA); LongConst a = new LongConst(300); LongConst c = new LongConst(603); DoubleConst b = new DoubleConst(20.7); ArithmeticExpression ae = new ArithmeticExpression(a, i1, Operator.ExactlyDivide); Assert.IsTrue(ae.GetResult(fvl).ToString() == "5"); ae = new ArithmeticExpression(c, a, Operator.ExactlyDivide); Assert.IsTrue(ae.GetResult(fvl).ToString() == "2"); ae = new ArithmeticExpression(c, a, Operator.Divide); Assert.IsTrue(ae.GetResult(fvl).ToString() == "2.01"); ae = new ArithmeticExpression(c, b, Operator.ExactlyDivide); Assert.IsTrue(ae.GetResult(fvl).ToString() == "29"); ae = new ArithmeticExpression(c, a, Operator.Remainder); Assert.IsTrue(ae.GetResult(fvl).ToString() == "3"); ae = new ArithmeticExpression(c, b, Operator.Remainder); Assert.IsTrue(ae.GetResult(fvl).ToString() == (603 % 20.7).ToString()); TestContext.WriteLine(ae.GetResult(fvl).ToString()); // Scan ae = new ArithmeticExpression(c, new DoubleConst(0), Operator.Divide); Assert.ThrowsException <DivideByZeroException>(() => ae.GetResult(fvl)); ae = new ArithmeticExpression(c, new DoubleConst(15), Operator.Divide); Assert.IsTrue(ae.GetResult(fvl).ToString() == "40.2"); //TestContext.WriteLine(ae.GetResult(fvl).ToString()); }
public void ConstCalculate() { LongConst a = new LongConst(3); LongConst b = new LongConst(5); DoubleConst c = new DoubleConst(7.5); ArithmeticExpression ae = new ArithmeticExpression(a, b); ArithmeticExpression ae2 = new ArithmeticExpression(ae, c, Operator.Multiply); Assert.IsTrue(ae2.GetResult(null).ToString() == "60"); }
public void VariableAndConst() { FakeVariableLinker fvl = new FakeVariableLinker(); DoubleVar d1 = new DoubleVar(FakeVariableLinker.DoubleA); LongVar i1 = new LongVar(FakeVariableLinker.IntA); LongConst a = new LongConst(300); DoubleConst b = new DoubleConst(20.7); ArithmeticExpression ae = new ArithmeticExpression(a, i1); ArithmeticExpression ae2 = new ArithmeticExpression(ae, d1, Operator.Multiply); ArithmeticExpression ae3 = new ArithmeticExpression(ae2, b, Operator.Minus); Assert.IsTrue(ae3.GetResult(fvl).ToString() == "897.3"); }