Exemplo n.º 1
0
 def push(self, tuple):
     priority, value = tuple
     if self._priorities.has_key(priority):
         self._priorities[priority].push(value)
     else:
         hqueue = HQueue()
         hqueue.push(value)
         self._priorities[priority] = hqueue
Exemplo n.º 2
0
 def _breadth_traversal(self):
     """ returns queue containing Node objects """
     queue = HQueue()
     queue.push(self._root)
     i = 0
     while i < len(queue._contents):
         el = queue._contents[i]
         if not el.childless():
             queue.push(el.left)
             if el.right:
                 queue.push(el.right)
         i += 1
     return queue
Exemplo n.º 3
0
    def setUp(self):
	self.hqueue = HQueue()
Exemplo n.º 4
0
class TestHQueueFunctions(unittest.TestCase):
    def setUp(self):
	self.hqueue = HQueue()
    
    def test_push(self):
	self.hqueue.push(1)
	self.assertEqual(self.hqueue._contents[0], 1)

    def test_dequeue(self):
	self.hqueue.push(1)
	self.hqueue.push(2)
	self.assertEqual(self.hqueue.dequeue(), 1)

    def test_length(self):
	self.hqueue.push(1)
	self.hqueue.push(2)
	self.assertEqual(len(self.hqueue), 2)

    def test_push_after_dequeue(self):
	self.hqueue.push(1)
	self.hqueue.push(2)
	self.hqueue.dequeue()
	self.hqueue.push(3)
	self.assertEqual(self.hqueue.dequeue(),2)

    def test_dequeue_empty(self):
	with self.assertRaises(IndexError):
	    self.hqueue.dequeue()
    
#    def test_next(self):
#	self.hqueue.push(1)
#	self.hqueue.push(2)
#	self.assertEqual(self.hqueue.next(), 1)
#	self.assertEqual(self.hqueue.next(), 2)
#    
#    def test_next_on_empty(self):
#	with self.assertRaises(StopIteration):
#	    self.hqueue.next()

    def test_iter(self):
	test_values = [1, 2, 3]
	for test_value in test_values:
	    self.hqueue.push(test_value)
	for element, test_value in self.hqueue, test_values:
	    self.assertEquals(element, test_value)