#!/usr/bin/env python from boundedqueue import BoundedQueue numTests = 0 numPassed = 0 def assertTrue(name, value): global numTests, numPassed print "Testing: %s..." % name, numTests += 1 if value: print "PASS" numPassed += 1 else: print "***FAIL***" print def assertEqual(name, queue, list): assertTrue(name, queue.equalsList(list)) bq0 = BoundedQueue(0) assertEqual("Empty queue is empty", bq0, []) assertTrue("Empty queue size 0", bq0.size is 0) assertTrue("Empty queue maxSize 0", bq0.maxSize is 0) bq1 = BoundedQueue(5) bq1.dequeue() assertEqual("Dequeue of empty queue doesn't change state", bq1, []) bq1.enqueue(1) assertEqual("Enqueue a single element", bq1, [1]) bq1.dequeue() assertEqual("Dequeue a single element", bq1, []) bq2 = BoundedQueue(5) bq2.enqueue(1) bq2.enqueue(2) bq2.enqueue(3) bq2.enqueue(4) bq2.enqueue(5) bq2.enqueue(6) assertEqual("Enqueue respects bounds of queue", bq2, [1, 2, 3, 4, 5]) bq2.dequeue() assertEqual("Dequeue on multi-element queue", bq2, [2, 3, 4, 5]) bq2.enqueue(7) bq2.enqueue(8) assertEqual("Enqueue after dequeue", bq2, [2, 3, 4, 5, 7]) bq2.dequeue() bq2.dequeue() bq2.dequeue() assertEqual("Dequeue on multi-element queue", bq2, [5, 7]) bq2.dequeue() bq2.dequeue() assertEqual("Dequeue", bq2, []) print print "Results: %d of %d tests passed" % (numPassed, numTests)