def test_03(self): with self.assertRaises(Exception): self.assertEqual(evaluate(parse("True True"))) with self.assertRaises(Exception): self.assertEqual(evaluate(parse("True False"))) with self.assertRaises(Exception): self.assertEqual(evaluate(parse("False True"))) with self.assertRaises(Exception): self.assertEqual(evaluate(parse("False False")))
def test_simple_program03(self): self.assertEqual(str(parse("2 * 5 / 6 * 8")), "(/ (* 2 5) (* 6 8))")
def test_simple_program02(self): self.assertEqual(str(parse("40 + 2 * 5")), "(+ 40 (* 2 5))")
def test_simple_program01(self): self.assertEqual(str(parse("40 + 2")), "(+ 40 2)")
def test_simplest_program(self): self.assertEqual(str(parse("42")), "42")
def test_empty_program(self): self.assertEqual(parse(""), None)
def test_01(self): evaluate(parse("5 * 6 -> a")) self.assertEqual(evaluate(parse("a")), 30)
def test_simple_program06(self): self.assertEqual(str(parse("a <- 2 + 5")), "(<- a (+ 2 5))")
def test_04(self): self.assertEqual(evaluate(parse("not True")), False) self.assertEqual(evaluate(parse("not False")), True)
def test_02(self): self.assertEqual(evaluate(parse("False")), False)
def test_01(self): self.assertEqual(evaluate(parse("True")), True)
def test_03(self): with self.assertRaises(Exception): self.assertEqual(evaluate(parse("b")))
def test_02(self): self.assertEqual(evaluate(parse("5 -> 6")), 6)
def test_simple_program04(self): self.assertEqual(str(parse("2 + 5 - 6 + 8")), "(- (+ 2 5) (+ 6 8))")
def test_05(self): self.assertEqual(evaluate(parse("True and True")), True) self.assertEqual(evaluate(parse("True and False")), False) self.assertEqual(evaluate(parse("False and True")), False) self.assertEqual(evaluate(parse("False and False")), False)
def test_simple_program05(self): self.assertEqual(str(parse("2 + 5 -> a")), "(-> (+ 2 5) a)")
def test_06(self): self.assertEqual(evaluate(parse("True or True")), True) self.assertEqual(evaluate(parse("True or False")), True) self.assertEqual(evaluate(parse("False or True")), True) self.assertEqual(evaluate(parse("False or False")), False)
def test_parentheses_01(self): self.assertEqual(str(parse("(4 + 5) * 10")), "(* (+ 4 5) 10)")
def test_error_str05(self): with self.assertRaises(Exception): evaluate(parse("2 /"))