public void MathExpressionContext_Can_Forget_Variable() { MathExpressionContext context = new MathExpressionContext(); context.Define("x", 42); Assert.AreEqual(42, context.Resolve("x").Evaluate(context)); context.Forget("x"); var exception = Assert.Throws<MathExpressionException>(() => context.Resolve("x")); Assert.AreEqual("The variable 'x' has not been defined.", exception.Message); }
public void MathExpressionContext_Can_Define_And_Resolve_Expression() { MathExpressionContext context = new MathExpressionContext(); context.Define("x", 5); context.Define("y", MathExpression.Parse("5x")); Assert.AreEqual(25, context.Resolve("y").Evaluate(context)); }
public void MathExpressionContext_Undefined_Variable_Throws() { MathExpressionContext context = new MathExpressionContext(); var exception = Assert.Throws<MathExpressionException>(() => context.Resolve("x")); Assert.AreEqual("The variable 'x' has not been defined.", exception.Message); }
public void MathExpressionContext_Can_Redefine_Variable() { MathExpressionContext context = new MathExpressionContext(); context.Define("x", 42); Assert.AreEqual(42, context.Resolve("x").Evaluate(context)); context.Define("x", 107); Assert.AreEqual(107, context.Resolve("x").Evaluate(context)); }