def test_circular_buffer_appends_pops_partial(): b = CircularBuffer(5) b.append(1) b.append(2) assert list(b) == [1, 2] assert b.pop() == 2 assert list(b) == [1] b.append(3) b.append(4) assert list(b) == [1, 3, 4] assert b.popleft() == 1 assert b.popleft() == 3 assert list(b) == [4] b.appendleft(5) assert list(b) == [5, 4] assert b.popleft() == 5
def test_circular_buffer_appends_pops_overfull(): b = CircularBuffer(5, range(7)) b.append(-1) b.append(-2) assert list(b) == [4, 5, 6, -1, -2] assert b.pop() == -2 assert b.popleft() == 4 assert list(b) == [5, 6, -1] b.append(-3) b.append(-4) assert list(b) == [5, 6, -1, -3, -4] b.appendleft(-5) assert list(b) == [-5, 5, 6, -1, -3] assert b.popleft() == -5 assert b.popleft() == 5 assert list(b) == [6, -1, -3] b.appendleft(-6) assert list(b) == [-6, 6, -1, -3] assert b.popleft() == -6
def test_circular_buffer_len_overfull_pop(): b = CircularBuffer(5, range(7)) b.pop() assert len(b) == 4
def test_circular_buffer_pop_overfull(): b = CircularBuffer(5, range(7)) assert b.pop() == 6 assert list(b) == [2, 3, 4, 5] assert b.pop() == 5 assert list(b) == [2, 3, 4]
def test_circular_buffer_pop_partial(): b = CircularBuffer(5, range(3)) assert b.pop() == 2 assert list(b) == [0, 1] assert b.pop() == 1 assert list(b) == [0]
def test_circular_buffer_pop_empty_invalid(): b = CircularBuffer(5) with pytest.raises(IndexError): b.pop()