예제 #1
0
 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])
예제 #2
0
 def test_underflow(self):
     q = FixedQueue(10)
     with self.assertRaises(Exception):
         q.dequeue()
     
     q.enqueue(0)
     q.dequeue()
     with self.assertRaises(Exception):
         q.dequeue()
예제 #3
0
파일: test.py 프로젝트: hyejinHong0602/BOJ
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()