示例#1
0
        public void ParseExpressionAcceptsDefaultParameterDictionary()
        {
            var parameters = new Dictionary <string, double> {
                { "Dummy", 123 }, { "Yummy", 456 }
            };
            var compiledFunction = Сalc.ParseExpression("Dummy+Yummy", parameters).Compile();

            Assert.Equal(579d, compiledFunction());
        }
示例#2
0
        public void ParseFunctionProducesExpressionWithParameters()
        {
            var compiledFunction = Сalc.ParseFunction("Dummy+Yummy").Compile();
            var parameters       = new Dictionary <string, double> {
                { "Dummy", 2 }, { "Yummy", 3 }
            };

            Assert.Equal(5d, compiledFunction(parameters));
        }
示例#3
0
 public void OverriddenParseExpressionMethodStillWorks()
 {
     Assert.Equal(0d, Сalc.ParseExpression("0").Compile()());
     Assert.Equal(System.Math.E, Сalc.ParseExpression("E").Compile()());
 }
示例#4
0
        public void ParseExpressionAcceptsDefaultParameterAnonymousClass()
        {
            var compiledFunction = Сalc.ParseExpression("Dummy+Yummy", new { Dummy = 123, Yummy = 456 }).Compile();

            Assert.Equal(579d, compiledFunction());
        }
示例#5
0
        public void ParseExpressionAcceptsDefaultParameterExpressions()
        {
            var compiledFunction = Сalc.ParseExpression("Dummy+Yummy", Dummy => 123, Yummy => 456).Compile();

            Assert.Equal(579d, compiledFunction());
        }
示例#6
0
 public void GetParameterExpressionSupportsSystemMathConstantsAndCustomVariables()
 {
     Assert.Equal(System.Math.PI, Сalc.GetParameterExpression("PI").Execute());
     Assert.Equal(System.Math.E, Сalc.GetParameterExpression("E").Execute());
     Assert.Equal("Parameters.get_Item(\"Dummy\")", Сalc.GetParameterExpression("Dummy").ToString());
 }
示例#7
0
 public void CallFunctionSupportsRegisteredFunctionsAsWellAsSystemMathFunctions()
 {
     Assert.Equal(2d, Сalc.CallFunction("Min", Expression.Constant(2d), Expression.Constant(3d)).Execute());                          // System.Math.Min
     Assert.Equal(1d, Сalc.CallFunction("Min", Expression.Constant(2d), Expression.Constant(3d), Expression.Constant(1d)).Execute()); // custom Min
     Assert.Throws <ParseException>(() => Сalc.CallFunction("Mul", Expression.Constant(0d)));
 }
示例#8
0
 public void MangleNameProducesMangledFunctionName()
 {
     Assert.Equal(":0", Сalc.MangleName(null, 0));
     Assert.Equal("MySine:2", Сalc.MangleName("MySine", 2));
 }