Esempio n. 1
0
 def test_linked_pq(self):
     from ch04.linked import PQ
     pq = PQ(3)
     self.assertFalse(pq.is_full())
     with self.assertRaises(RuntimeError):
         pq.dequeue()
     for i in range(3):
         pq.enqueue(i, i)
     self.assertTrue(pq.is_full())
     with self.assertRaises(RuntimeError):
         pq.enqueue(99, 99)
Esempio n. 2
0
 def test_heap_pq_edge_cases(self):
     from ch04.heap import PQ
     pq = PQ(3)
     with self.assertRaises(RuntimeError):
         pq.peek()
     self.assertFalse(pq.is_full())
     with self.assertRaises(RuntimeError):
         pq.dequeue()
     for i in range(3):
         pq.enqueue(i, i)
     self.assertTrue(pq.is_full())
     with self.assertRaises(RuntimeError):
         pq.enqueue(99, 99)
Esempio n. 3
0
 def test_dynamic_heap_pq_status(self):
     from ch04.dynamic_heap import PQ
     pq = PQ(5)
     self.assertTrue(pq.is_empty())
     for v, p in [('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]:
         pq.enqueue(v, p)
     self.assertTrue(pq.is_full())
Esempio n. 4
0
 def test_queue_ordered(self):
     from ch04.ordered import PQ
     pq = PQ(5)
     self.assertFalse(pq.is_full())
     for v, p in [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)]:
         pq.enqueue(v, p)
     val = 5
     while pq:
         self.assertEqual(val, pq.dequeue())
         val -= 1
     with self.assertRaises(RuntimeError):
         pq.dequeue()