public static void TestOr() { var calculator = new Python3Calculator(); // Booleans var t = new Literal(true); var f = new Literal(false); AssertEquals(calculator.Or(f, t), t); AssertEquals(calculator.Or(t, f), t); AssertEquals(calculator.Or(t, t), t); AssertEquals(calculator.Or(f, f), f); // Numbers var zero = new Literal(0); var a = new Literal(3); var b = new Literal(4.0f); AssertEquals(calculator.Or(zero, a), a); AssertEquals(calculator.Or(a, zero), a); AssertEquals(calculator.Or(b, a), b); AssertEquals(calculator.Or(a, b), a); // Numbers and Booleans AssertEquals(calculator.Or(t, zero), t); AssertEquals(calculator.Or(zero, t), t); AssertEquals(calculator.Or(f, zero), zero); AssertEquals(calculator.Or(zero, f), f); AssertEquals(calculator.Or(t, a), t); AssertEquals(calculator.Or(a, t), a); AssertEquals(calculator.Or(f, a), a); AssertEquals(calculator.Or(a, f), a); AssertEquals(calculator.Or(t, b), t); AssertEquals(calculator.Or(b, t), b); AssertEquals(calculator.Or(f, b), b); AssertEquals(calculator.Or(b, f), b); // Strings var empty = new Literal(""); var str_a = new Literal("a"); var str_b = new Literal("b"); AssertEquals(calculator.Or(empty, str_a), str_a); AssertEquals(calculator.Or(str_a, empty), str_a); AssertEquals(calculator.Or(empty, empty), empty); AssertEquals(calculator.Or(str_a, str_b), str_a); AssertEquals(calculator.Or(str_b, str_a), str_b); // Strings and Booleans AssertEquals(calculator.Or(empty, f), f); AssertEquals(calculator.Or(f, empty), empty); AssertEquals(calculator.Or(empty, t), t); AssertEquals(calculator.Or(t, empty), t); AssertEquals(calculator.Or(str_a, f), str_a); AssertEquals(calculator.Or(f, str_a), str_a); AssertEquals(calculator.Or(str_a, t), str_a); AssertEquals(calculator.Or(t, str_a), t); // Strings and Numbers AssertEquals(calculator.Or(empty, zero), zero); AssertEquals(calculator.Or(zero, empty), empty); AssertEquals(calculator.Or(empty, a), a); AssertEquals(calculator.Or(a, empty), a); AssertEquals(calculator.Or(empty, b), b); AssertEquals(calculator.Or(b, empty), b); AssertEquals(calculator.Or(str_a, zero), str_a); AssertEquals(calculator.Or(zero, str_a), str_a); AssertEquals(calculator.Or(str_a, a), str_a); AssertEquals(calculator.Or(a, str_a), a); AssertEquals(calculator.Or(str_a, b), str_a); AssertEquals(calculator.Or(b, str_a), b); }