def test_delete_w_one_child(self): bin = BST() bin.insert(5) bin.insert(2) bin.insert(18) bin.insert(-4) bin.insert(3) bin.insert(21) bin.insert(19) bin.insert(25) bin.delete(bin.root.right) self.assertEqual([x.val for x in bin.get_level(1)], [2, 21])
def test_delete_w_two_children(self): bin = BST() bin.insert(5) bin.insert(2) bin.insert(12) bin.insert(-4) bin.insert(3) bin.insert(9) bin.insert(21) bin.insert(19) bin.insert(25) bin.delete(bin.root.right) self.assertEqual([x.val for x in bin.get_level(1)], [2, 19]) self.assertEqual([x.val for x in bin.get_level(3)], [25])
def test_delete_w_no_children(self): bin = BST() bin.insert(7) bin.insert(3) bin.insert(8) bin.insert(1) bin.insert(5) bin.insert(2) bin.insert(4) bin.insert(6) bin.insert(10) bin.insert(9) bin.insert(20) bin.delete(bin.root.right.right.right) self.assertEqual([x.val for x in bin.get_level(3)], [2, 4, 6, 9])