Example #1
0
def test_delete_2():
    b = BST()
    a = [17, 31, 9, 4, 2, 7, 18, 1, 13, 55, 8, 16, 21, 32]
    for el in a:
        b.insert(el)
    assert b._root._data == a[0]
    b.delete_node(a[4])
    a.pop(4)
    tester = []
    for i in b.in_order(b._root):
        tester.append(i._data)
    assert tester == sorted(a)
Example #2
0
 def test_delete_node(self):
     bst = BST()
     bst.insert_node(50, "node50")
     bst.insert_node(30, "node30")
     bst.insert_node(20, "node20")
     bst.insert_node(40, "node40")
     bst.insert_node(70, "node70")
     bst.insert_node(60, "node60")
     bst.insert_node(80, "node80")
     smallest = bst.smallest()
     self.assertTrue(smallest == 20)
     logging.debug("BST root: %s" % str(bst.to_list()))
     bst.delete_node(30)
     logging.debug("BST root: %s" % str(bst.to_list()))
     self.assertTrue(bst.root.left.value == 40)
     self.assertTrue(bst.root.left.left.value == 20)
     logging.debug("BST root: %s" % str(bst.to_list()))
     bst.delete_node(100)
     bst.delete_node(70)
     logging.debug("BST root: %s" % str(bst.to_list()))
     self.assertTrue(bst.root.right.value == 80)
     self.assertTrue(bst.root.right.left.value == 60)
     bst.delete_node(50)
     logging.debug("BST root: %s" % str(bst.to_list()))
     self.assertTrue(bst.root.value == 60)
     self.assertTrue(bst.root.left.value == 40)
     self.assertTrue(bst.root.right.value == 80)