class TestQueue(unittest.TestCase): def setUp(self): self.queue = Queue() def tearDown(self): return super().tearDown() def test_size(self): self.assertEqual(self.queue.size(), 0) def test_enqueue(self): self.queue.enqueue(1) self.assertEqual(self.queue.size(), 1) def test_dequeue(self): self.queue.enqueue(1) self.assertEqual(self.queue.dequeue(), 1) self.assertEqual(self.queue.size(), 0) def test_front(self): self.queue.enqueue(1) self.assertEqual(self.queue.front(), 1) def test_dequeue_exception(self): self.assertIsNone(self.queue.dequeue()) def test_front_exception(self): self.assertIsNone(self.queue.front())
def test_enqueue_five_elements_to_queue_and_dequeue_two_elements(self): queue = Queue() langs = ['python', 'java', 'ruby', 'php', 'go'] for lang in langs: queue.enqueue(lang) self.assertEqual(len(langs), queue.size()) element1 = queue.dequeue() element2 = queue.dequeue() self.assertEqual('python', element1) self.assertEqual('java', element2) self.assertEqual(3, queue.size())
def bfs(start): start.setDistance(0) start.setPred(None) # Queue for hold vertexes. vertQueue = Queue() vertQueue.enqueue(start) while vertQueue.size() > 0: # Get first value from queue. curVertex = vertQueue.dequeue() # Go through all the neigbors of the current vertex. for nbr in curVertex.getConnections(): # Check if the neighbor was not achieved. if nbr.getColor() == 'white': # Mark neighbor as achieved. nbr.setColor('grey') # Compute distance between current vertex and neighbor. nbr.setDistance(curVertex.getDistance() + 1) # Set predecessor as a current vertex for, # for afterwards recreate the path. nbr.setPred(curVertex) # Add neighbor to end of queue. vertQueue.enqueue(nbr) # Mark current vertex as passed. curVertex.setColor('black')
def test_enqueue_five_elements_and_iterate_queue(self): queue = Queue() langs = ['python', 'java', 'ruby', 'php', 'go'] for lang in langs: queue.enqueue(lang) self.assertEqual(len(langs), queue.size()) for element in queue: self.assertIn(element, langs)
def test_queue(self): q = Queue() q.append(2) q.append(3) self.assertEqual(q.size() == 2, True) val = q.pop() self.assertEqual(val == 2, True) self.assertEqual(q.size() == 1, True) self.assertEqual(q.pop() == 3, True) self.assertEqual(q.pop() == None, True) val = [1, 2, 3, 4, 5] for v in val: q.append(v) for v in val: self.assertEqual(q.pop() == v, True)
def bfs(g, start): start.set_distance(0) start.set_pred(None) vert_queue = Queue() vert_queue.enqueue(start) while vert_queue.size() > 0: current_vert = vert_queue.dequeue()
def test_enqueue_five_elements_to_queue_and_dequeue_all_elements(self): queue = Queue() langs = ['python', 'java', 'ruby', 'php', 'go'] for lang in langs: queue.enqueue(lang) self.assertEqual(len(langs), queue.size()) element1 = queue.dequeue() element2 = queue.dequeue() element3 = queue.dequeue() element4 = queue.dequeue() element5 = queue.dequeue() self.assertEqual('python', element1) self.assertEqual('java', element2) self.assertEqual('ruby', element3) self.assertEqual('php', element4) self.assertEqual('go', element5) self.assertTrue(queue.is_empty())
def test_enqueue_one_element_to_queue(self): queue = Queue() queue.enqueue('python') self.assertEqual(1, queue.size())