def test_simple_delete_4(self): # XX print("Running test_simple_delete_4") h = BST([6, 4, 5, 10]) self.check_multiline(str(h), [["6"], ["4", "10"], ["_", "5", "_", "_"], ["_", "_"], ["4", "5", "6", "10"]]) n = h.delete(4) self.assertEqual(h.in_order_traversal(), [5, 6, 10]) self.assertTrue(n) n_2 = h.delete(4) self.assertFalse(n_2)
def test_in_order_traversal(self): print("Running test_in_order_traversal") h = BST() n1 = h.insert(20) n2 = h.insert(10) n3 = h.insert(25) n4 = h.insert(5) n5 = h.insert(18) n6 = h.insert(13) n7 = h.insert(15) order = h.in_order_traversal() ground_truth = [n4, n2, n6, n7, n5, n1, n3] for element in order: # Check if there are still elements that could be processed self.assertTrue(len(ground_truth) > 0) gt = ground_truth.pop(0) self.assertTrue(isinstance(element, Node)) self.assertEqual(element, gt) # All elements should have been processed. self.assertTrue(len(ground_truth) == 0)
from bst import Student, BST if __name__ == '__main__': bst1 = BST() bst1.add(5) bst1.add(9) bst1.add(1) print(bst1.in_order_traversal()) bst2 = BST() bst2.add(Student(88, "Sasha")) bst2.add(Student(94, "Rachel")) bst2.add(Student(93, "Phil")) bst2.add(Student(85, "Mike")) in_order = bst2.in_order_traversal() for i in in_order: print(i)