public static void TestAssignment() { var context = new ExecutionContext(new Python3Calculator()); var foo = new Variable("foo", context); var bar = new Variable("bar", context); var boolean = new Literal(false); var intNumber = new Literal(3); var floatNumber = new Literal(3.0f); context.Assign(foo, new Literal(3)); AssertEquals(foo.AsLiteral(), new Literal(3)); AssertEquals(foo.AsValue(), 3); context.Assign(bar, new Literal(3)); AssertEquals(bar.AsLiteral(), new Literal(3)); AssertEquals(bar.AsValue(), 3); context.Assign(bar, new Literal(5)); context.Assign(foo, bar); AssertEquals(foo.AsLiteral(), new Literal(5)); AssertEquals(foo.AsValue(), 5); AssertEquals(bar.AsLiteral(), new Literal(5)); AssertEquals(bar.AsValue(), 5); AssertException<InvalidOperationException>(() => context.Assign(boolean, foo)); AssertException<InvalidOperationException>(() => context.Assign(intNumber, foo)); AssertException<InvalidOperationException>(() => context.Assign(floatNumber, foo)); }