public void ExecutesDelegatePerformance() { Dictionary<string, object> vars = new Dictionary<string, object>(5); WaitCallback noop = delegate (object arg) { // noop }; vars["noop"] = noop; FunctionNode fn = new FunctionNode(); fn.Text = "noop"; StringLiteralNode str = new StringLiteralNode(); str.Text = "theArg"; fn.addChild(str); int ITERATIONS = 10000000; StopWatch watch = new StopWatch(); using (watch.Start("Duration Direct: {0}")) { for (int i = 0; i < ITERATIONS; i++) { ((WaitCallback)vars["noop"])(str.getText()); } } using (watch.Start("Duration SpEL: {0}")) { for (int i = 0; i < ITERATIONS; i++) { fn.GetValue(null, vars); } } }
public LambdaComparer(LambdaExpressionNode lambdaExpression) { FunctionNode functionNode = new FunctionNode(); functionNode.Text = "compare"; VariableNode x = new VariableNode(); x.Text = "x"; VariableNode y = new VariableNode(); y.Text = "y"; functionNode.addChild(x); functionNode.addChild(y); _fn = functionNode; _variables = new Hashtable(); _variables.Add( "compare", lambdaExpression ); }
public void ExecutesDelegate() { Dictionary<string, object> vars = new Dictionary<string, object>(); vars["concat"] = new TestCallback(Concat); FunctionNode fn = new FunctionNode(); fn.Text = "concat"; StringLiteralNode str = new StringLiteralNode(); str.Text = "theValue"; fn.addChild(str); StringLiteralNode str2 = new StringLiteralNode(); str2.Text = "theValue"; fn.addChild(str2); IExpression exp = fn; Assert.AreEqual(string.Format("{0},{1},{2}", this.GetHashCode(), str.Text, str2.Text), exp.GetValue(null, vars)); }
public LambdaComparer(LambdaExpressionNode lambdaExpression) { FunctionNode functionNode = new FunctionNode(); functionNode.Text = "compare"; VariableNode x = new VariableNode(); x.Text = "x"; VariableNode y = new VariableNode(); y.Text = "y"; functionNode.addChild(x); functionNode.addChild(y); _fn = functionNode; _variables = new Dictionary <string, object>(); _variables.Add("compare", lambdaExpression); }
public LambdaComparer(LambdaExpressionNode lambdaExpression) { var functionNode = new FunctionNode { Text = "compare" }; var x = new VariableNode { Text = "x" }; var y = new VariableNode { Text = "y" }; functionNode.addChild(x); functionNode.addChild(y); _fn = functionNode; _variables = new Dictionary <string, object> { { "compare", lambdaExpression } }; }
public void ExecutesDelegate() { Dictionary <string, object> vars = new Dictionary <string, object>(); vars["concat"] = new TestCallback(Concat); FunctionNode fn = new FunctionNode(); fn.Text = "concat"; StringLiteralNode str = new StringLiteralNode(); str.Text = "theValue"; fn.addChild(str); StringLiteralNode str2 = new StringLiteralNode(); str2.Text = "theValue"; fn.addChild(str2); IExpression exp = fn; Assert.AreEqual(string.Format("{0},{1},{2}", this.GetHashCode(), str.Text, str2.Text), exp.GetValue(null, vars)); }
public void ExecutesLambdaFunction() { Dictionary <string, object> vars = new Dictionary <string, object>(); Expression.RegisterFunction("ident", "{|n| $n}", vars); FunctionNode fn = new FunctionNode(); fn.Text = "ident"; StringLiteralNode str = new StringLiteralNode(); str.Text = "theValue"; fn.addChild(str); IExpression exp = fn; Assert.AreEqual(str.Text, exp.GetValue(null, vars)); }
public void ExecutesDelegatePerformance() { Dictionary <string, object> vars = new Dictionary <string, object>(5); WaitCallback noop = delegate(object arg) { // noop }; vars["noop"] = noop; FunctionNode fn = new FunctionNode(); fn.Text = "noop"; StringLiteralNode str = new StringLiteralNode(); str.Text = "theArg"; fn.addChild(str); int ITERATIONS = 10000000; StopWatch watch = new StopWatch(); using (watch.Start("Duration Direct: {0}")) { for (int i = 0; i < ITERATIONS; i++) { ((WaitCallback)vars["noop"])(str.getText()); } } using (watch.Start("Duration SpEL: {0}")) { for (int i = 0; i < ITERATIONS; i++) { fn.GetValue(null, vars); } } }
public void ExecutesLambdaFunction() { Dictionary<string, object> vars = new Dictionary<string, object>(); Expression.RegisterFunction("ident", "{|n| $n}", vars); FunctionNode fn = new FunctionNode(); fn.Text = "ident"; StringLiteralNode str = new StringLiteralNode(); str.Text = "theValue"; fn.addChild(str); IExpression exp = fn; Assert.AreEqual(str.Text, exp.GetValue(null, vars)); }
public LambdaComparer(LambdaExpressionNode lambdaExpression) { var functionNode = new FunctionNode {Text = "compare"}; var x = new VariableNode {Text = "x"}; var y = new VariableNode {Text = "y"}; functionNode.addChild(x); functionNode.addChild(y); _fn = functionNode; _variables = new Dictionary<string, object> { {"compare", lambdaExpression} }; }