public void TestDivision3()
        {
            var rpn   = new Rpn("1000/10*2/10");
            var eval  = new CompileRpn(rpn);
            var value = eval.Evaluate(null);

            Assert.AreEqual(20, value);
        }
        public void TestEqLtParsing()
        {
            var rpn   = new Rpn("5<=2+3");
            var eval  = new CompileRpn(rpn);
            var value = eval.Evaluate(null);

            Assert.AreEqual(1, value);
        }
        public void TestSubtraction()
        {
            var rpn   = new Rpn("100-10-10-10");
            var eval  = new CompileRpn(rpn);
            var value = eval.Evaluate(null);

            Assert.AreEqual(70, value);
        }
        public void TestDivision()
        {
            var rpn   = new Rpn("3+4/2");
            var eval  = new CompileRpn(rpn);
            var value = eval.Evaluate(null);

            Assert.AreEqual(5, value);
        }
        public void TestNotEqualOp2()
        {
            var rpn   = new Rpn("85!=85");
            var eval  = new CompileRpn(rpn);
            var value = eval.Evaluate(null);

            Assert.AreEqual(0, value);
        }
        public void TestBasicAddition()
        {
            var rpn   = new Rpn("3+4");
            var eval  = new CompileRpn(rpn);
            var value = eval.Evaluate(null);

            Assert.AreEqual(7, value);
        }
        public void TestOrderEvaluation()
        {
            var rpn   = new Rpn("12/2/3");
            var eval  = new CompileRpn(rpn);
            var value = eval.Evaluate(null);

            Assert.AreEqual(2, value);
        }
Esempio n. 8
0
        public void Test()
        {
            var rpn = new Rpn("nisse+2*sture+5");
            var x   = new CompileRpn(rpn,
                                     new List <NameAndType>
            {
                new NameAndType("nisse", typeof(double)),
                new NameAndType("sture", typeof(double))
            });
            var result = x.Evaluate(new object[] { 1.0, 3.0 });

            Console.WriteLine(result);
        }
        public void TestVariables()
        {
            var rpn = new Rpn("3+(a+q)/(2+2)+3");

            Assert.AreEqual("3 a q + 2 2 + / + 3 +", rpn.ToString());
            var eval = new CompileRpn(rpn, new List <NameAndType>
            {
                new NameAndType("a", typeof(double)), new NameAndType("q", typeof(double))
            });
            var variables = new object[] { 3.0, 5.0 };
            var value     = eval.Evaluate(variables);

            Assert.AreEqual(8, value);
        }
        public void TestEqualOp(double variableValue, double expected)
        {
            var rpn = new Rpn("Url==42");

            Assert.AreEqual("Url 42 ==", rpn.ToString());

            var eval = new CompileRpn(rpn, new List <NameAndType>
            {
                new NameAndType("Url", typeof(double))
            });
            var value = eval.Evaluate(new object[] { variableValue });

            Assert.AreEqual(expected, value);
        }