Ejemplo n.º 1
0
        public void EvaluationTest()
        {
            var operand  = new NumberExpression("10");
            var addition = new AdditionBinaryExpression
            {
                LeftOperand  = operand,
                RightOperand = operand
            };

            var subraction = new SubtractionBinaryExpression
            {
                LeftOperand  = operand,
                RightOperand = operand
            };

            var division = new DivisionBinaryExpression
            {
                LeftOperand  = operand,
                RightOperand = operand
            };

            var multiplication = new MultiplicationBinaryExpression
            {
                LeftOperand  = operand,
                RightOperand = operand
            };

            Assert.AreEqual(20, addition.Evaluate(), "Ошибка в вычилсении AdditionBinaryExpression");
            Assert.AreEqual(0, subraction.Evaluate(), "Ошибка в вычилсении SubtractionBinaryExpression");
            Assert.AreEqual(1, division.Evaluate(), "Ошибка в вычилсении DivisionBinaryExpression");
            Assert.AreEqual(100, multiplication.Evaluate(), "Ошибка в вычилсении MultiplicationBinaryExpression");
        }
Ejemplo n.º 2
0
        public void ExpressionTest()
        {
            // (10 + 20) * 30 / 40
            var e1 = new ValueExpression(10);
            var e2 = new ValueExpression(20);
            var e3 = new ValueExpression(30);
            var e4 = new ValueExpression(40);

            Expression expression =
                new DivisionBinaryExpression(
                    new MultiplicationBinaryExpression(
                        new AdditionBinaryExpression(e1, e2), e3), e4);

            var solution = expression.Solve();

            Assert.That(solution, Is.EqualTo(22.5));
        }