示例#1
0
        public void TEST_003( )
        {
            var expression       = "(2^3)^2"; // => 8 ^ 2 => 64
            var expressionEngine = new ExpressionEngine();

            Assert.AreEqual(64, expressionEngine.Evaluate(expression));
        }
示例#2
0
        public void TEST_005( )
        {
            var expression       = "2^3!^2"; //=> 2^( (3*2) ^ 2 ) => 2^(6^2) => 2^36
            var expressionEngine = new ExpressionEngine();

            Assert.AreEqual(68719476736, expressionEngine.Evaluate(expression));
        }
示例#3
0
        public void TEST_004( )
        {
            var expression       = "2^3^2"; // => 2^(3^2) => 2^9 => 512 should be same value as test #2
            var expressionEngine = new ExpressionEngine();

            Assert.AreEqual(512, expressionEngine.Evaluate(expression));
        }
示例#4
0
        public void TEST_006( )
        {
            var expression       = "(2^3!)^2";
            var expressionEngine = new ExpressionEngine();

            Assert.AreEqual(4096, expressionEngine.Evaluate(expression));
        }
示例#5
0
        public void TEST_001( )
        {
            var expression       = "2^3";
            var expressionEngine = new ExpressionEngine();

            Assert.AreEqual(8, expressionEngine.Evaluate(expression));
        }
示例#6
0
        public void Not_A_Valid_Expression( )
        {
            var expression = "(1 + 2))";
            var evalEngine = new ExpressionEngine();

            Assert.AreEqual(3, evalEngine.Evaluate(expression));
        }
示例#7
0
        public void TEST_002( )
        {
            var expression       = "2^(3^2)"; // => 2^9 => 512
            var expressionEngine = new ExpressionEngine();

            Assert.AreEqual(512, expressionEngine.Evaluate(expression));
        }
示例#8
0
        public void Test_001( )
        {
            var expression = "5!";

            var evalEngine = new ExpressionEngine();

            Assert.AreEqual(120, evalEngine.Evaluate(expression));
        }
示例#9
0
        public void FP_Test_001( )
        {
            var expression = "1 + 1e5";

            var evalEngine = new ExpressionEngine();

            Assert.AreEqual(100001, evalEngine.Evaluate(expression));
        }
示例#10
0
        public void SubExpression_Test_001()
        {
            var expression = "3 * (2 + 1)";

            var evalEngine = new ExpressionEngine();

            Assert.AreEqual(9, evalEngine.Evaluate(expression));
        }
示例#11
0
        public void Negate_Test( )
        {
            var expression = "-3 * (2 + 1)";

            var evalEngine = new ExpressionEngine();

            Assert.AreEqual(-9, evalEngine.Evaluate(expression));
        }
示例#12
0
        public void EvaluateExponent5()
        {
            var expression = "2^3!^2";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(68719476736, result);
        }
示例#13
0
        public void EvaluateExponent1()
        {
            var expression = "2^3";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(8, result);
        }
示例#14
0
        public void EvaluateInvalidTest()
        {
            var expression = "(1 + 2))";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(3, result);
        }
示例#15
0
        public void EvaluateDecimal()
        {
            var expression = "1 + 1e5";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(100001, result);
        }
示例#16
0
        public void EvaluateSubExpressions()
        {
            var expression = "3 * (2 + 1)";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(9, result);
        }
示例#17
0
        public void EvaluateNegation()
        {
            var expression = "-3 * (2 + 1)";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(-9, result);
        }
示例#18
0
        public void EvaluateTest()
        {
            var expression = "1 + 2 * 3";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(7, result);
        }
示例#19
0
        public void EvaluateExponent6()
        {
            var expression = "(2^3!)^2";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(4096, result);
        }
示例#20
0
        public void EvaluateFactorial1()
        {
            var expression = "5!";

            var ee     = new ExpressionEngine();
            var result = ee.Evaluate(expression);

            Assert.AreEqual(120, result);
        }
示例#21
0
        public void ParseTest_004()
        {
            var expression = "2 * x * y";
            var variables  = new { x = 5, y = 10 };

            var ee = new ExpressionEngine( );

            var result = ee.Evaluate(expression, variables);

            Assert.AreEqual(100, result);
        }
示例#22
0
        public void Test_002( )
        {
            var expression = "2x + y";
            var variables  = new { x = 5, y = 10 };

            var ee = new ExpressionEngine( );

            var result = ee.Evaluate(expression, variables);

            Assert.AreEqual(20, result);
        }
        public void Test0()
        {
            var expression = "2 x";
            var variables  = new { x = 5 };

            var ee = new ExpressionEngine();

            var result = ee.Evaluate(expression, variables);

            Assert.AreEqual(10, result);
        }
示例#24
0
 private void Evaluate(object obj)
 {
     try {
         CurrentValue += Parentheses;
         double answer = ExpressionEngine.Evaluate(currentValue);
         DisplayBar = DisplayValue + " =";
         // CurrentValue = Math.Round(answer, 8).ToString(CultureInfo.GetCultureInfo("en-US"));
         lastAnswer   = string.Format(CultureInfo.GetCultureInfo("en-US"), "{0:0.########}", answer);
         CurrentValue = lastAnswer;
     } catch (Exception) {
         CurrentValue = "";
         DisplayValue = "Error";
     }
 }