def test_breadth_first_traversal(self): print("Running test_breadth_first_traversal") h = AVL() n1 = h.insert(20) n2 = h.insert(10) n3 = h.insert(25) n4 = h.insert(5) n5 = h.insert(18) b = h.breadth_first_traversal() ground_truth = [n1, n2, n3, n4, n5, None, None, None, None, None, None] for layer in b: for element in layer: # 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) or element is None) self.assertEqual(element, gt) # All elements should have been processed. self.assertTrue(len(ground_truth) == 0)