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)); }
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")); }
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); }
public void CompileTwoParameterLambdaTest() { var function = CSharpUtility.CompileLambda <dynamic, dynamic, dynamic>("(arg1, arg2) => arg1 * arg2"); Assert.AreEqual(4, function(2, 2)); }
public void CompileLambdaTest() { var function = CSharpUtility.CompileLambda <dynamic, dynamic>("(source) => source * 2"); Assert.AreEqual(4, function(2)); }