public static void TestVariableArithmetic()
        {
            var context = new ExecutionContext(new Python3Calculator());
            var foo = new Variable("foo", context);
            var bar = new Variable("bar", context);

            context.Assign(foo, new Literal(3));
            context.Assign(bar, new Literal(5.0f));

            AssertEquals(context.Add(foo, bar).AsValue(), 8.0f);
            AssertEquals(context.Add(bar, foo).AsValue(), 8.0f);

            AssertEquals(context.Subtract(foo, bar).AsValue(), -2.0f);
            AssertEquals(context.Subtract(bar, foo).AsValue(), 2.0f);

            AssertEquals(context.Multiply(foo, bar).AsValue(), 15.0f);
            AssertEquals(context.Multiply(bar, foo).AsValue(), 15.0f);

            AssertEquals(context.Divide(foo, bar).AsValue(), 3 / 5.0f);
            AssertEquals(context.Divide(bar, foo).AsValue(), 5.0f / 3);

            AssertEquals(context.Mod(foo, bar).AsValue(), 3.0f);
            AssertEquals(context.Mod(bar, foo).AsValue(), 2.0f);
        }