Example #1
0
        public void MultiplicationExpressionEvaluatesDifferenceOfComplexDecimalExpression()
        {
            // 2 * x - 7 + x * 10
            IExpression two   = new Constant(2);
            IExpression x     = new VariableX();
            IExpression seven = new Constant(7);
            IExpression ten   = new Constant(10);

            IExpression result = new MultiplyExpression(two, x);

            result = new SubtractionExpression(result, seven);
            result = new SumExpression(result, x);
            result = new MultiplyExpression(result, ten);
            Context c = new Context(0.5);


            var y = result.Interpret(c);

            Assert.AreEqual(-55, y, 1e-10);


            c = new Context(1.5);
            y = result.Interpret(c);
            Assert.AreEqual(-25, y, 1e-10);
        }
Example #2
0
        public void MultiplicationExpressionEvaluatesDifferenceOf2Constants()
        {
            IExpression leftConstant  = new Constant(4);
            IExpression rightConstant = new Constant(6);

            IExpression difference = new MultiplyExpression(leftConstant, rightConstant);
            Context     context    = new Context(0);
            var         result     = difference.Interpret(context);

            Assert.AreEqual(24, result, 1e-10);
        }
Example #3
0
        public static void Main(string[] args)
        {
            Context context = new Context();

            // define set of variables
            Complex x = new Complex(15, 9);
            Complex y = new Complex(5, 3);

            // add variables to context
            context.SetVariable("x", x);
            context.SetVariable("y", y);

            // Object to calcute sum
            IExpression additionExpression = new AddExpression(new NumberExpresssion("x"), new NumberExpresssion("y"));
            Complex     sum = additionExpression.Interpret(context);

            Console.WriteLine(sum);

            // Object to calcute difference
            IExpression substractionExpression = new SubtractExpression(new NumberExpresssion("x"), new NumberExpresssion("y"));
            Complex     difference             = substractionExpression.Interpret(context);

            Console.WriteLine(difference);

            // Object to calculate product
            IExpression multiplicationExpression = new MultiplyExpression(new NumberExpresssion("x"), new NumberExpresssion("y"));
            Complex     product = multiplicationExpression.Interpret(context);

            Console.WriteLine(product);

            // Object to calculate quotient
            IExpression divisionExpression = new DivideExspression(new NumberExpresssion("x"), new NumberExpresssion("y"));
            Complex     quotient           = divisionExpression.Interpret(context);

            Console.WriteLine(quotient);

            Console.Read();
        }