def test_delete_on_complex_tree(): """Test that the selected node is deleted.""" from bst import Bst nodes = [10, 9, 15, 2, 6, 12, 20, 1, 3] new_bst = Bst() for item in nodes: new_bst.insert(item) new_bst.delete(2) assert new_bst.contains(2) is False
def test_delete_on_range(): """Test that the node selected is removed from the tree.""" from bst import Bst new_bst = Bst() for items in range(20): new_bst.insert(items) new_bst.delete(10) assert new_bst.contains(10) is False assert new_bst.size == 19
def test_delete(): """Test that the selected node is deleted.""" from bst import Bst new_bst = Bst() new_bst.insert(1) new_bst.delete(1) assert new_bst.contains(1) is False assert new_bst.head is None assert new_bst.size == 0
def test_edge_cases_delete_tree(): """Test deletion on tree from EdgeCases example tree.""" from bst import Bst new_bst = Bst() new_bst.insert(10) new_bst.insert(20) new_bst.insert(5) new_bst.delete(10) assert new_bst.contains(10) is False assert new_bst.size == 2 assert new_bst.head.value == 20 assert new_bst.head.right is None assert new_bst.head.left.value == 5
def test_delete_on_small_range(): """Test that the node selected is removed from the tree.""" from bst import Bst new_bst = Bst() for items in range(5): new_bst.insert(items) new_bst.delete(1) assert new_bst.contains(1) is False assert new_bst.size == 4 assert new_bst.head.value == 2 assert new_bst.head.left.value == 0 assert new_bst.head.right.value == 3 assert new_bst.head.right.right.value == 4
def test_off_balance_delete_tree_non_head(): """Test deletion on tree from complex tree.""" from bst import Bst new_bst = Bst() new_bst.insert(10) new_bst.insert(20) new_bst.insert(5) new_bst.insert(15) new_bst.insert(25) new_bst.delete(20) assert new_bst.contains(20) is False assert new_bst.size == 4 assert new_bst.head.value == 10 assert new_bst.head.right.value == 25 assert new_bst.head.left.value == 5 assert new_bst.head.right.left.value == 15
def test_contains(self): # Test with a root only tree = root_only() self.assertFalse(tree.isempty()) self.assertEquals(tree.getsize(), 1) self.assertIsNotNone(tree.root) self.assertEquals(tree.root.getdata(), ROOT_DATA) # Should contain the root data self.assertTrue(tree.contains(ROOT_DATA)) # Should not contain any of the children data self.assertFalse(tree.contains(LEFT_DATA)) self.assertFalse(tree.contains(RIGHT_DATA)) # Should not contain any of the grandchildren data self.assertFalse(tree.contains(LL_DATA)) self.assertFalse(tree.contains(LR_DATA)) self.assertFalse(tree.contains(RL_DATA)) self.assertFalse(tree.contains(RR_DATA)) tree.remove(ROOT_DATA) self.assertTrue(tree.isempty()) self.assertIsNone(tree.root) self.assertFalse(tree.contains(ROOT_DATA)) # Now test with the balanced tree tree = balanced_tree() self.assertFalse(tree.isempty()) self.assertEquals(tree.getsize(), 7) self.assertIsNotNone(tree.root) self.assertEquals(tree.root.getdata(), ROOT_DATA) # Should contain the root data self.assertTrue(tree.contains(ROOT_DATA)) # Should not contain any of the children data self.assertTrue(tree.contains(LEFT_DATA)) self.assertTrue(tree.contains(RIGHT_DATA)) # Should not contain any of the grandchildren data self.assertTrue(tree.contains(LL_DATA)) self.assertTrue(tree.contains(LR_DATA)) self.assertTrue(tree.contains(RL_DATA)) self.assertTrue(tree.contains(RR_DATA)) TO_ADD_DATA = 50 self.assertFalse(tree.contains(TO_ADD_DATA)) tree.add(TO_ADD_DATA) self.assertTrue(tree.getsize(), 8) self.assertTrue(tree.contains(TO_ADD_DATA)) # Finally, test with an empty tree tree = Bst() self.assertTrue(tree.isempty()) self.assertIsNone(tree.root) # Should not contain the root data self.assertFalse(tree.contains(ROOT_DATA)) # Should not contain any of the children data self.assertFalse(tree.contains(LEFT_DATA)) self.assertFalse(tree.contains(RIGHT_DATA)) # Should not contain any of the grandchildren data self.assertFalse(tree.contains(LL_DATA)) self.assertFalse(tree.contains(LR_DATA)) self.assertFalse(tree.contains(RL_DATA)) self.assertFalse(tree.contains(RR_DATA))
def test_contain_false(): """Test if value in list return False.""" from bst import Bst new_bst = Bst() new_bst.insert(3) assert new_bst.contains(4) is False
def test_contain_true(): """Test if value in list return True.""" from bst import Bst new_bst = Bst() new_bst.insert(3) assert new_bst.contains(3) is True