def test_enqueue_dequeue(self): q = FixedQueue(6) q.enqueue(4) q.enqueue(1) q.enqueue(3) self.assertEqual(q.dequeue(), 4) q.enqueue(8) self.assertEqual(q.dequeue(), 1) self.assertEqual(q._xs, [4, 1, 3, 8, None, None])
def test_underflow(self): q = FixedQueue(10) with self.assertRaises(Exception): q.dequeue() q.enqueue(0) q.dequeue() with self.assertRaises(Exception): q.dequeue()
q = FixedQueue(64) while True: print(f'현재 데이터 개수: {len(q)} / {q.capacity}') menu = select_menu() if menu == Menu.인큐: x = int(input('인큐할 데이터를 입력하세요.:')) try: q.enqueue(x) except FixedQueue.Full: print('큐가 가득 찼습니다') elif menu == Menu.디큐: try: x = q.dequeue() print(f'디큐한 데이터는 {x}입니다.') except FixedQueue.Empty: print('큐가 비어있습니다.') elif menu == Menu.피크: try: x = q.peek() print(f'피크한 데이터는 {x}입니다') except FixedQueue.Empty: print('큐가 비었습니다.') elif menu == Menu.검색: x = int(input('검색할 값을 입력하세요.:')) if x in q: print(f'{q.count(x)}개 포함되고, 맨 앞의 위치는 {q.find(x)}입니다.')
def test_dequeue(): q = FixedQueue(3) q.enqueue(1) q.enqueue(2) q.enqueue(3) assert (q.dequeue() == 1) q.enqueue(4) assert (q.dequeue() == 2) q.enqueue(5) assert (q.dequeue() == 3) q.enqueue(6) assert (q.dequeue() == 4) q.enqueue(7) assert (q.dequeue() == 5) assert (len(q) == 2) q.dequeue() assert (len(q) == 1) q.dequeue() assert (len(q) == 0) with pytest.raises(IndexError): q.dequeue()