public void MathExpressionContext_Cannot_Define_Variable_That_Implicitly_Refers_To_Itself()
{
MathExpressionContext context = new MathExpressionContext();
context.Define("x", 5);
context.Define("y", MathExpression.Parse("5x"));
var exception = Assert.Throws<MathExpressionException>(() => context.Define("x", MathExpression.Parse("y")));
Assert.AreEqual("Variable 'x' is refering to itself recursively.", exception.Message);
}