Esempio n. 1
0
    def test_parse_tree_starting_paren(self):
        root = parse_tree(expr_4)
        current_node = root

        self.assertEqual(current_node.val, "+")
        self.assertEqual(current_node.right.val, "2")

        current_node = root.left
        self.assertEqual(current_node.val, "+")
        self.assertEqual(current_node.right.val, "6")

        current_node = root.left.left
        self.assertEqual(current_node.val, "*")

        current_node = root.left.left.left
        self.assertEqual(current_node.val, "*")
        self.assertEqual(current_node.right.val, "9")

        current_node = root.left.left.left.left
        self.assertEqual(current_node.val, "+")
        self.assertEqual(current_node.left.val, "2")
        self.assertEqual(current_node.right.val, "4")

        current_node = root.left.left.right
        self.assertEqual(current_node.val, "+")
        self.assertEqual(current_node.right.val, "6")

        current_node = root.left.left.right.left
        self.assertEqual(current_node.val, "*")
        self.assertEqual(current_node.right.val, "8")

        current_node = root.left.left.right.left.left
        self.assertEqual(current_node.val, "+")
        self.assertEqual(current_node.left.val, "6")
        self.assertEqual(current_node.right.val, "9")
Esempio n. 2
0
    def test_parse_tree_single_paren(self):
        root = parse_tree(expr_2)
        current_node = root

        self.assertEqual(current_node.val, "+")

        current_node = root.left
        self.assertEqual(current_node.val, "*")
        self.assertEqual(current_node.left.val, "2")
        self.assertEqual(current_node.right.val, "3")

        current_node = root.right
        self.assertEqual(current_node.val, "*")
        self.assertEqual(current_node.left.val, "4")
        self.assertEqual(current_node.right.val, "5")
Esempio n. 3
0
    def test_parse_tree_simple(self):
        root = parse_tree(expr_1)
        current_node = root

        self.assertEqual(current_node.val, "+")
        self.assertEqual(current_node.right.val, "6")

        current_node = root.left
        self.assertEqual(current_node.val, "*")
        self.assertEqual(current_node.right.val, "5")

        current_node = root.left.left
        self.assertEqual(current_node.val, "+")
        self.assertEqual(current_node.right.val, "4")

        current_node = root.left.left.left
        self.assertEqual(current_node.val, "*")
        self.assertEqual(current_node.right.val, "3")

        current_node = root.left.left.left.left
        self.assertEqual(current_node.val, "+")
        self.assertEqual(current_node.right.val, "2")
        self.assertEqual(current_node.left.val, "1")
Esempio n. 4
0
 def test_evaluate_nested_paren(self):
     root = parse_tree(expr_3)
     result = evaluate_tree_node(root)
     self.assertEqual(result, 51)
Esempio n. 5
0
 def test_evaluate_single_paren(self):
     root = parse_tree(expr_2)
     result = evaluate_tree_node(root)
     self.assertEqual(result, 26)
Esempio n. 6
0
 def test_evaluate_simple(self):
     root = parse_tree(expr_1)
     result = evaluate_tree_node(root)
     self.assertEqual(result, 71)