def test_Delete(self): tree = RBtree() tree.insert(20) tree.insert(15) tree.insert(25) tree.insert(23) tree.insert(27) self.assertFalse(tree.root.red, False) self.assertEqual(tree.root.right.key, 25) self.assertEqual(tree.root.right.left.key, 23) self.assertTrue(tree.root.right.left.red, True) tree.deleteNode(25) self.assertEqual(tree.root.key, 20) self.assertEqual(tree.root.right.key, 27) self.assertFalse(tree.root.right.red, False) self.assertIsNone(tree.root.right.right.key, None) self.assertEqual(tree.root.right.left.key, 23) self.assertTrue(tree.root.right.left.red, True)
def test_root_delete(self): rb_tree = RBtree() root = Node(5) root.red = False left_child = Node(3) left_child.red = True left_child.parent = root left_child.left = Node(None) left_child.right = Node(None) right_child = Node(8) right_child.red = True right_child.parent = root right_child.left = Node(None) right_child.right = Node(None) root.left = left_child root.right = right_child rb_tree.root = root rb_tree.deleteNode(5) self.assertEqual(rb_tree.root.key, 8) self.assertEqual(rb_tree.root.left.key, 3)