public void Lambda1_CorrectlyCreatesLambdaExpression() { var constant = Expression.Constant(5); var body = Expression.Lambda <Action>(constant); var expected = new TestExpression <Action>(body); var actual = TestExpression.Lambda((TestExpression)TestExpression.Const(5)); AssertAreEqualExpressions(expected, actual); }
public void Lambda4_CorrectlyCreatesLambdaExpression() { var constant = Expression.Parameter(typeof(int), "variable"); var parameter = Expression.Parameter(typeof(int), "parameter"); var addition = Expression.Add(parameter, constant); var body = Expression.Lambda <Func <int, int> >(addition, parameter); var expected = new TestExpression <Func <int, int> >(body); var variable = TestExpression.Var <int>("variable"); var actual = TestExpression.Lambda <int, int>(parameter => TestExpression.Expr(variable, b => parameter + b)); AssertAreEqualExpressions(expected, actual); }
public void Lambda5_CorrectlyCreatesLambdaExpression() { var constant = Expression.Parameter(typeof(int), "variable"); var parameter1 = Expression.Parameter(typeof(int), "parameter1"); var parameter2 = Expression.Parameter(typeof(int), "parameter2"); var addition1 = Expression.Add(parameter1, parameter2); var addition2 = Expression.Add(addition1, constant); var body = Expression.Lambda <Action <int, int> >(addition2, parameter1, parameter2); var expected = new TestExpression <Action <int, int> >(body); var variable = TestExpression.Var <int>("variable"); var actual = TestExpression.Lambda <int, int>((parameter1, parameter2) => (TestExpression)TestExpression.Expr(variable, b => parameter1 + parameter2 + b)); AssertAreEqualExpressions(expected, actual); }