示例#1
0
        public void CompileLambdaWithSupportTest()
        {
            var supportFunctions = new Dictionary <string, string>()
            {
                { "multiplyBy2", "i => i * 2" },
                { "multiplyBy3", "i => i * 3" }
            };

            var function = CSharpUtility.CompileLambda <dynamic, dynamic>("(source) => multiplyBy3(multiplyBy2(source))", supportFunctions);

            Assert.AreEqual(12, function(2));
        }
示例#2
0
        public void CompileLambdaWithTwoParameterSupportTest()
        {
            var supportFunctions = new Dictionary <string, string>()
            {
                { "multiply", "(a, b) => a * b" },
                { "add", "(a, b) => a + b" }
            };

            var function = CSharpUtility.CompileLambda <dynamic, dynamic>("(v) => multiply(v, 5)", supportFunctions);

            Assert.AreEqual(15, function(3));

            function = CSharpUtility.CompileLambda <dynamic, dynamic>("(a) => add(a, \"B\")", supportFunctions);
            Assert.AreEqual("AB", function("A"));
        }
示例#3
0
        public void CompileLambdaWithTraceTest()
        {
            dynamic value    = null;
            var     function = CSharpUtility.CompileLambda <dynamic, dynamic>("(source) => Trace(source) * 2", null, (v, m) => {
                value = v;
                return(v);
            });

            Assert.AreEqual(4, function(2));
            Assert.AreEqual(2, value);

            function = CSharpUtility.CompileLambda <dynamic, dynamic>("(source) => Trace(source, \"Message\") * 2", null, (v, m) => {
                value = m;
                return(v);
            });

            function(2);
            Assert.AreEqual("Message", value);
        }
示例#4
0
        public void CompileTwoParameterLambdaTest()
        {
            var function = CSharpUtility.CompileLambda <dynamic, dynamic, dynamic>("(arg1, arg2) => arg1 * arg2");

            Assert.AreEqual(4, function(2, 2));
        }
示例#5
0
        public void CompileLambdaTest()
        {
            var function = CSharpUtility.CompileLambda <dynamic, dynamic>("(source) => source * 2");

            Assert.AreEqual(4, function(2));
        }