def test_ArrayQueue(): q1 = Queue() raises(IndexError, lambda: q1.popleft()) q1 = Queue(implementation='array', items=[0]) q1.append(1) q1.append(2) q1.append(3) assert str(q1) == '[0, 1, 2, 3]' assert len(q1) == 4 assert q1.popleft() == 0 assert q1.popleft() == 1 assert len(q1) == 2 assert q1.popleft() == 2 assert q1.popleft() == 3 assert len(q1) == 0 q2 = Queue(implementation='array', items=[0], double_ended=True) q2.append(1) q2.append(2) q2.appendleft(3) assert str(q2) == '[3, 0, 1, 2]' assert len(q2) == 4 assert q2.popleft() == 3 assert q2.pop() == 2 assert len(q2) == 2 assert q2.popleft() == 0 assert q2.pop() == 1 assert len(q2) == 0 q1 = Queue(implementation='array', items=[0]) assert raises(NotImplementedError, lambda: q1.appendleft(2))
def test_LinkedListQueue(): q1 = Queue(implementation='linked_list') q1.append(1) assert raises(TypeError, lambda: Queue(implementation='linked_list', items={0, 1})) q1 = Queue(implementation='linked_list', items=[0, 1]) q1.append(2) q1.append(3) assert str(q1) == ("['(0, None)', '(1, None)', " "'(2, None)', '(3, None)']") assert len(q1) == 4 assert q1.popleft().key == 0 assert q1.popleft().key == 1 assert len(q1) == 2 assert q1.popleft().key == 2 assert q1.popleft().key == 3 assert len(q1) == 0 raises(IndexError, lambda: q1.popleft()) q1 = Queue(implementation='linked_list', items=['a', None, type, {}]) assert len(q1) == 4 front = q1.front assert front.key == q1.popleft().key rear = q1.rear for _ in range(len(q1) - 1): q1.popleft() assert rear.key == q1.popleft().key q1 = Queue(implementation='linked_list', double_ended=True) q1.appendleft(1) q2 = Queue(implementation='linked_list', items=[0, 1]) assert raises(NotImplementedError, lambda: q2.appendleft(1)) q1 = Queue(implementation='linked_list', items=[0, 1], double_ended=True) q1.appendleft(2) q1.append(3) assert str(q1) == "['(2, None)', '(0, None)', '(1, None)', '(3, None)']" assert len(q1) == 4 assert q1.popleft().key == 2 assert q1.pop().key == 3 assert len(q1) == 2 assert q1.pop().key == 1 assert q1.popleft().key == 0 assert len(q1) == 0 assert raises(IndexError, lambda: q1.popleft())