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_popleft(): b = CircularBuffer(5, range(7)) b.popleft() assert len(b) == 4
def test_circular_buffer_popleft_overfull(): b = CircularBuffer(5, range(7)) assert b.popleft() == 2 assert list(b) == [3, 4, 5, 6] assert b.popleft() == 3 assert list(b) == [4, 5, 6]
def test_circular_buffer_popleft_partial(): b = CircularBuffer(5, range(3)) assert b.popleft() == 0 assert list(b) == [1, 2] assert b.popleft() == 1 assert list(b) == [2]
def test_circular_buffer_popleft_empty_invalid(): b = CircularBuffer(5) with pytest.raises(IndexError): b.popleft()