# (c) Tuomas J. Lukka # The lifo queue obeys all normal invariants # plus some of its own. from vob.util.priorityqueuetest import * def setUp(): setUp_PriorityQueue(vob.util.LifoPriorityQueue) def test_lifo(): q = vob.util.LifoPriorityQueue() A, B, C, D, E = "A", "B", "C", "D", "E" q.add(A, 3) q.add(C, 4) q.add(B, 3) q.add(D, 4) failUnlessEqual(q.getAndRemoveLowest(), "B") failUnlessEqual(q.getAndRemoveLowest(), "A") failUnlessEqual(q.getAndRemoveLowest(), "D") failUnlessEqual(q.getAndRemoveLowest(), "C") failUnlessEqual(q.getAndRemoveLowest(), None) failUnlessEqual(q.getAndRemoveLowest(), None) q.add(A, 3) q.add(C, 4) q.add(B, 3) q.add(D, 4) q.add(A, 4) failUnlessEqual(q.getAndRemoveLowest(), "A") failUnlessEqual(q.getAndRemoveLowest(), "B") failUnlessEqual(q.getAndRemoveLowest(), "D") failUnlessEqual(q.getAndRemoveLowest(), "C") failUnlessEqual(q.getAndRemoveLowest(), None) failUnlessEqual(q.getAndRemoveLowest(), None)