def test_history_depth_count_should_match_number_of_pushes(self): s = Stack() #import pdb; pdb.set_trace() self.assertEqual(s.history_depth_count(0),1) self.assertTrue(s.is_empty()) self.assertEqual(s.content(),[]) for i, v in enumerate(self.init_list): s.push(v) expected = [1]*(i+2)+[0]*(len(self.init_list)-1) for depth in range(len(self.init_list)+1): self.assertEqual(s.history_depth_count(depth),expected[depth]) depth_count = s.history_depth_count() self.assertEqual(depth_count,[(0,1),(1,1),(2,1),(3,1),(4,1),(5,1)]) self.assertEqual(s.max_depth(), self.max_depth) self.assertEqual(s.total_operations(), len(self.init_list)) empty = None while empty != KStack.Empty: empty = s.pop() self.assertEqual(s.total_operations(), len(self.init_list)*2)