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_getitem_empty_invalid():
    b = CircularBuffer(5)
    with pytest.raises(IndexError):
        b[0]
def test_circular_buffer_getitem_partial_negative():
    b = CircularBuffer(5, range(3))
    assert b[-1] == 2
def test_circular_buffer_contains_overfull_false_obj():
    b = CircularBuffer(5, range(7))
    assert "foo" not in b
def test_circular_buffer_len_overfull_popleft():
    b = CircularBuffer(5, range(7))
    b.popleft()
    assert len(b) == 4
def test_circular_buffer_contains_overfull_true():
    b = CircularBuffer(5, range(7))
    assert 2 in b
    assert 3 in b
    assert 6 in b
def test_circular_buffer_init_unsized_error():
    with pytest.raises(TypeError):
        CircularBuffer()
def test_circular_buffer_iter_full():
    b = CircularBuffer(5, range(5))
    assert list(iter(b)) == [0, 1, 2, 3, 4]
def test_circular_buffer_len_partial():
    assert len(CircularBuffer(5, range(3))) == 3
def test_circular_buffer_iter_empty():
    b = CircularBuffer(5)
    assert list(iter(b)) == []
def test_circular_buffer_iter_partial():
    b = CircularBuffer(5, range(3))
    assert list(iter(b)) == [0, 1, 2]
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_empty():
    assert len(CircularBuffer(5)) == 0
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_contains_partial_false_none():
    b = CircularBuffer(5, range(3))
    assert None not in b
def test_circular_buffer_iter_overfull():
    b = CircularBuffer(5, range(7))
    assert list(iter(b)) == [2, 3, 4, 5, 6]
def test_circular_buffer_contains_partial_false_obj():
    b = CircularBuffer(5, range(3))
    assert "foo" not in b
def test_circular_buffer_reversed_empty():
    b = CircularBuffer(5)
    assert list(reversed(b)) == []
def test_circular_buffer_contains_overfull_false_int():
    b = CircularBuffer(5, range(7))
    assert -1 not in b
    assert 0 not in b
    assert 1 not in b
    assert 7 not in b
def test_circular_buffer_reversed_partial():
    b = CircularBuffer(5, range(3))
    assert list(reversed(b)) == [2, 1, 0]
def test_circular_buffer_contains_overfull_false_none():
    b = CircularBuffer(5, range(7))
    assert None not in b
def test_circular_buffer_reversed_full():
    b = CircularBuffer(5, range(5))
    assert list(reversed(b)) == [4, 3, 2, 1, 0]
def test_circular_buffer_len_overfull():
    assert len(CircularBuffer(5, range(7))) == 5
def test_circular_buffer_reversed_overfull():
    b = CircularBuffer(5, range(7))
    assert list(reversed(b)) == [6, 5, 4, 3, 2]
def test_circular_buffer_maxlen():
    b = CircularBuffer(5)
    assert b.maxlen == 5
def test_circular_buffer_contains_partial_true():
    b = CircularBuffer(5, range(3))
    assert 0 in b
    assert 1 in b
    assert 2 in b
def test_circular_buffer_getitem_partial():
    b = CircularBuffer(5, range(3))
    assert b[0] == 0
    assert b[1] == 1
    assert b[2] == 2
def test_circular_buffer_contains_partial_false_int():
    b = CircularBuffer(5, range(3))
    assert -1 not in b
    assert 3 not in b
def test_circular_buffer_getitem_partial_invalid_negative():
    b = CircularBuffer(5, range(3))
    with pytest.raises(IndexError):
        b[-10]
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]