private void Math(Scope scope, object left, object right, Operator op, double expected) { Expression expLeft = (left.GetType() == typeof(string)) ? (Expression) new VariableExpression(left.ToString(), scope) : (Expression) new ConstantExpression(left); Expression expRight = (right.GetType() == typeof(string)) ? (Expression) new VariableExpression(right.ToString(), scope) : (Expression) new ConstantExpression(right); var exp = new BinaryExpression(expLeft, op, expRight); Assert.AreEqual(expected, exp.EvaluateAs <double>()); }