def test_queue_size(self): que = Queue() random_values = get_random_values() for i, v in enumerate(random_values): que.push(v) self.assertEqual(que.size(), i + 1) for i in range(len(random_values)): que.pop() self.assertEqual(que.size(), len(random_values) - i - 1)
def test_queue_init(self): que = Queue() self.assertEqual(que.size(), 0) self.assertEqual(que.is_empty(), True) with self.assertRaises(IndexError): que.pop() with self.assertRaises(IndexError): que.peek()
def hot_potato(name_list, num): q = Queue() for i in range(len(name_list)): q.enqueue(name_list[i]) while num > 0 : if q.size() > 1: for i in range(num): q.enqueue(q.dequeue()) q.dequeue() if q.size() == 1: remaining_person = q.dequeue() break return remaining_person
def test_queue_copy(self): que = Queue() random_values = get_random_values() for v in random_values: que.push(v) copied_que = que.copy() for v in random_values: self.assertEqual(copied_que.peek(), v) copied_que.pop() self.assertEqual(que.size(), len(random_values))
def test_queue_reversed(self): que = Queue() random_values = get_random_values() for v in random_values: que.push(v) reversed_queue = reversed(que) for v in random_values[::-1]: self.assertEqual(reversed_queue.peek(), v) reversed_queue.pop() self.assertEqual(que.size(), len(random_values))
def hot_potato(namelist, num): q = Queue() for name in namelist: q.enqueue(name) while q.size() > 1: for i in range(num): q.enqueue(q.dequeue()) q.dequeue() return q.dequeue()
def hot_potato(name_list, num): # Finish the function q = Queue() for i in name_list: q.enqueue(i) while q.size() > 1: for _ in range(num): tmp = q.dequeue() q.enqueue(tmp) q.dequeue() remaining_person = q.dequeue() return remaining_person
def test_queue_reversed_with_override(self): self.assertEqual(list(reversed([123, 456])), [456, 123]) que = Queue() random_values = get_random_values() for v in random_values: que.push(v) reversed_queue = reversed(que) for v in random_values[::-1]: self.assertEqual(reversed_queue.peek(), v) reversed_queue.pop() self.assertEqual(que.size(), len(random_values)) self.assertEqual(list(reversed([123, 456])), [456, 123])
def hot_potato(name_list, num): q = Queue() for name in name_list: q.enqueue(name) while q.size() > 1: for j in range(num): person = q.dequeue() q.enqueue(person) q.dequeue() remaining_person = q.dequeue() return remaining_person
def bfs(g, start): start.setDistance(0) start.setPred(None) vertQueue = Queue() vertQueue.enqueue(start) while (vertQueue.size() > 0): currentVert = vertQueue.dequeue() for nbr in currentVert.getConnections(): if (nbr.getColor() == 'white'): nbr.setColor('gray') nbr.setDistance(currentVert.getDistance() + 1) nbr.setPred(currentVert) vertQueue.enqueue(nbr) currentVert.setColor('black')