def test_items_are_returned_in_priority_order(items): """We always get the smallest item first.""" pq = NaivePriorityQueue() for item in items: pq.put(item) assert len(pq) == len(items) current = pq.get() while len(pq) > 0: prior, current = current, pq.get() assert prior <= current
def test_all_items_are_returned_exactly_once(items): """We always get every item exactly once.""" pq = NaivePriorityQueue() for item in items: pq.put(item) assert len(pq) == len(items) while len(pq) > 0: items.remove(pq.get()) assert len(items) == 0