public void Costant()
 {
     var expression = new Expression {Value = TokenBuilder.Number(5)};
     var linqExp = ToLinqExpressionVisitor.GetExpression(expression, "x");
     Assert.IsInstanceOfType(typeof(ConstantExpression), linqExp.Body);
     var constant = (ConstantExpression) linqExp.Body;
     Assert.AreEqual(ExpressionType.Constant, constant.NodeType);
     Assert.AreEqual(5, constant.Value);
     Assert.AreEqual(typeof(Double), constant.Type);
 }
 public void AddBinaryExpression()
 {
     var expression = new Expression {Value = TokenBuilder.Variable("x")} +
                      new Expression {Value = TokenBuilder.Number(5)};
     var linqExp = ToLinqExpressionVisitor.GetExpression(expression, "x");
     Assert.IsInstanceOfType(typeof(BinaryExpression), linqExp.Body);
     var binaryExpression = (BinaryExpression)linqExp.Body;
     AssertBinary(binaryExpression, ExpressionType.Add);
     AssertConstant(((ConstantExpression)binaryExpression.Right), 5);
     AssertParameter((ParameterExpression)binaryExpression.Left, "x");
 }
 public void AddMultiplyPrecedence()
 {
     var expression = new Expression { Value = TokenBuilder.Number(6) } +
                     (new Expression { Value = TokenBuilder.Number(4) } *
                     new Expression { Value = TokenBuilder.Number(3) });
     var linqExp = ToLinqExpressionVisitor.GetExpression(expression, "x");
     Assert.IsInstanceOfType(typeof(BinaryExpression), linqExp.Body);
     var binaryExpression = (BinaryExpression)linqExp.Body;
     AssertBinary(binaryExpression, ExpressionType.Add);
     AssertConstant(((ConstantExpression)binaryExpression.Left), 6);
     var right = (BinaryExpression) binaryExpression.Right;
     AssertBinary(right, ExpressionType.Multiply);
     AssertConstant(((ConstantExpression)right.Left), 4);
     AssertConstant(((ConstantExpression)right.Right), 3);
 }
 public void Variable()
 {
     var expression = new Expression { Value = TokenBuilder.Variable("x") };
     var linqExp = ToLinqExpressionVisitor.GetExpression(expression, "x");
     Assert.IsInstanceOfType(typeof(ParameterExpression), linqExp.Body);
     var parameter = (ParameterExpression)linqExp.Body;
     Assert.AreEqual(ExpressionType.Parameter, parameter.NodeType);
     Assert.AreEqual("x", parameter.Name);
     Assert.AreEqual(typeof(Double), parameter.Type);
 }