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)
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)