Esempio n. 1
0
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())
Esempio n. 2
0
 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())
Esempio n. 3
0
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')
Esempio n. 4
0
 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)
Esempio n. 5
0
    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()
Esempio n. 7
0
 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())
Esempio n. 8
0
 def test_enqueue_one_element_to_queue(self):
     queue = Queue()
     queue.enqueue('python')
     self.assertEqual(1, queue.size())