def testFindMin(self): tree2 = BST() self.assertIsNone(tree2.find_min()) tree2.insert(5) self.assertEqual(5, tree2.find(5).key) self.assertEqual(5, tree2.find_min().key) self.assertEqual(4, self.tree1.find_min().key)
def test_general_functions(self): # XX print("Running test_general_functions") # Add a number of elements to at least prevent some possible toy-example working out h = BST([50, 70, 80, 60, 55, 67, 90, 57, 20, 10, 15, 0]) self.assertEqual(h.find_min(), 0) self.assertEqual(h.find_max(), 90) self.assertFalse(h.is_empty()) n = h.search(67) m = h.search(99) self.assertTrue(isinstance(n, Node)) self.assertEqual(n.get_key(), 67) self.assertEqual(m, None) self.assertTrue(h.contains(67)) self.assertFalse(h.contains(100))
class BSTTest(unittest.TestCase): def setUp(self): self.tree1 = BST() self.tree1.insert(23) self.tree1.insert(8) self.tree1.insert(4) self.tree1.insert(16) self.tree1.insert(15) self.tree1.insert(42) def testInsert(self): tree2 = BST() tree2.insert(5) tree2.check_ri() self.assertEqual(5, tree2.find(5).key) tree2.insert(3) tree2.check_ri() self.assertEqual(3, tree2.find(3).key) tree2.insert(4) tree2.check_ri() self.assertEqual(4, tree2.find(4).key) tree2.insert(4) tree2.check_ri() self.assertEqual(4, tree2.find(4).key) def testFind(self): tree2 = BST() self.assertIsNone(tree2.find(3)) tree2.insert(4) self.assertIsNone(tree2.find(3)) def testDeleteNodeWithoutChildren(self): d = self.tree1.delete(15) self.tree1.check_ri() self.assertEqual(15, d.key) self.assertIsNone(self.tree1.find(15)) def testDeleteNodeWithOneChild(self): d = self.tree1.delete(16) self.tree1.check_ri() self.assertEqual(16, d.key) self.assertIsNone(self.tree1.find(16)) def testDeleteNodeWithTwoChildren(self): d = self.tree1.delete(8) self.tree1.check_ri() self.assertEqual(8, d.key) self.assertIsNone(self.tree1.find(8)) def testDeleteRoot(self): d = self.tree1.delete(23) self.tree1.check_ri() self.assertEqual(23, d.key) self.assertIsNone(self.tree1.find(23)) self.assertEqual(42, self.tree1.find(42).key) def testDelateLastNode(self): tree2 = BST() tree2.insert(1) deleted = tree2.delete(1) self.assertEqual(1, deleted.key) tree2.check_ri() tree2.insert(2) tree2.check_ri() def testNextLarger(self): self.assertEqual(15, self.tree1.next_larger(8).key) self.assertEqual(23, self.tree1.next_larger(16).key) def testFindMin(self): tree2 = BST() self.assertIsNone(tree2.find_min()) tree2.insert(5) self.assertEqual(5, tree2.find(5).key) self.assertEqual(5, tree2.find_min().key) self.assertEqual(4, self.tree1.find_min().key)