def test_peek_one_item_one_queue(self):
     value = 5
     queue = FifoQueue()
     queue.enqueue(value)
     peeked_value = queue.peek()
     self.assertEqual(1, queue.size)
     self.assertEqual(5, peeked_value)
 def test_dequeue_one_item_on_queue(self):
     value = 5
     queue = FifoQueue()
     queue.enqueue(value)
     removed_item = queue.dequeue()
     self.assertEqual(0, queue.size)
     self.assertEqual(5, removed_item)
 def test_enqueue_two_items(self):
     value1, value2 = 5, 10
     queue = FifoQueue()
     queue.enqueue(value1)
     queue.enqueue(value2)
     self.assertEqual(2, queue.size)
     self.assertEqual(5, queue.ll.head.value)
     self.assertEqual(10, queue.ll.tail.value)
 def test_peek_multiple_items_on_queue(self):
     value1, value2, value3 = 5, 10, 15
     queue = FifoQueue()
     queue.enqueue(value1)
     queue.enqueue(value2)
     queue.enqueue(value3)
     peeked_item = queue.peek()
     self.assertEqual(3, queue.size)
     self.assertEqual(5, peeked_item)
 def test_enqueue_three_items(self):
     value1, value2, value3 = 5, 10, 15
     queue = FifoQueue()
     queue.enqueue(value1)
     queue.enqueue(value2)
     queue.enqueue(value3)
     self.assertEqual(3, queue.size)
     self.assertEqual(5, queue.ll.head.value)
     self.assertEqual(15, queue.ll.tail.value)
 def test_dequeue_multiple_items_on_queue(self):
     value1, value2, value3 = 5, 10, 15
     queue = FifoQueue()
     queue.enqueue(value1)
     queue.enqueue(value2)
     queue.enqueue(value3)
     removed_item1 = queue.dequeue()
     removed_item2 = queue.dequeue()
     removed_item3 = queue.dequeue()
     self.assertEqual(0, queue.size)
     self.assertEqual(5, removed_item1)
     self.assertEqual(10, removed_item2)
     self.assertEqual(15, removed_item3)
Ejemplo n.º 7
0
    def breadth_first_search(self):
        visited_nodes = []
        # Use a queue to keep track of all the nodes you need to visit
        node_queue = FifoQueue()

        # Set starting point as no root node
        current_node = self.edges[0].node_from
        visited_nodes.append(current_node)

        while current_node:
            new_edge = self._return_new_edge(current_node, visited_nodes)
            if new_edge:
                visited_nodes.append(new_edge.node_to)
                node_queue.enqueue(new_edge.node_to)
            else:
                current_node = node_queue.dequeue()

        visited_node_values = [node.value for node in visited_nodes]

        return visited_node_values
 def test_enqueue_one_item(self):
     value = 5
     queue = FifoQueue()
     queue.enqueue(value)
     self.assertEqual(1, queue.size)
     self.assertEqual(5, queue.ll.head.value)