class testInOrder(unittest.TestCase): def setUp(self): self.my_bst = BSTree() self.filled_tree = BSTree() self.filled_tree.insert(5) self.filled_tree.insert(3) self.filled_tree.insert(6) self.filled_tree.insert(8) self.filled_tree.insert(11) self.filled_tree.insert(2) self.filled_tree.insert(9) # i just realized how unbalanced that tree is. bad design on my part. # i'll fix it for the following. self.number_catcher = [] def test_in_order_on_empty_bst(self): for i in self.my_bst.in_order(): self.number_catcher.append(i) self.assertEqual(self.number_catcher, [None]) def test_in_order_on_filled_bst(self): for i in self.filled_tree.in_order(): self.number_catcher.append(i) self.assertEqual(self.number_catcher, [2, 3, 5, 6, 8, 9, 11])
class testNodeDeletion(unittest.TestCase): def setUp(self): self.my_bst = BSTree() self.solo_tree = BSTree() self.solo_tree.insert(10) self.left_tree = BSTree() self.left_tree.insert(10) self.left_tree.insert(5) self.right_tree = BSTree() self.right_tree.insert(10) self.right_tree.insert(15) self.filled_tree = BSTree() self.filled_tree.insert(10) self.filled_tree.insert(5) self.filled_tree.insert(15) self.filled_tree.insert(2) self.filled_tree.insert(12) self.filled_tree.insert(7) self.filled_tree.insert(17) self.filled_tree.insert(1) self.filled_tree.insert(4) self.filled_tree.insert(6) self.filled_tree.insert(9) self.filled_tree.insert(11) self.filled_tree.insert(14) self.filled_tree.insert(16) self.filled_tree.insert(23) def test_delete_on_empty_tree(self): self.assertEqual(self.my_bst.delete(7), None) def test_delete_on_one_node_tree(self): catcher = [] self.solo_tree.delete(10) for i in self.solo_tree.in_order(): catcher.append(i) self.assertEqual(catcher, [None]) def test_delete_on_node_with_left_only(self): catcher = [] self.left_tree.delete(10) for i in self.left_tree.in_order(): catcher.append(i) self.assertEqual(catcher, [5]) def test_delete_on_node_with_right_only(self): catcher = [] self.right_tree.delete(10) for i in self.right_tree.in_order(): catcher.append(i) self.assertEqual(catcher, [15]) def test_delete_for_value_that_doesnt_appear(self): catcher = [] self.filled_tree.delete(18) for i in self.filled_tree.in_order(): catcher.append(i) self.assertEqual(catcher, [10, 5, 15, 2, 7, 12, 17, 1, 4, 6, 9, 11, 14, 16, 23])