Example #1
0
def test_normal():
    """Test grouper."""
    # grouper with multiple
    data = iter('ABCDEF')
    res = grouper(data, 2)
    assert next(res) == ('A', 'B')
    assert list(res) == [('C', 'D'), ('E', 'F')]
    assert list(data) == []

    # grouper with non-multiple
    data = iter('ABCDE')
    res = grouper(data, 2)
    assert next(res) == ('A', 'B')
    assert list(res) == [('C', 'D'), ('E', None)]
    assert list(data) == []

    # grouper with non-multiple but fillvalue used
    data = iter('ABCDE')
    res = grouper(data, 2, fillvalue='X')
    assert next(res) == ('A', 'B')
    assert list(res) == [('C', 'D'), ('E', 'X')]
    assert list(data) == []

    # grouper with empty
    data = ()
    res = grouper(data, 2)
    assert list(res) == []

    # grouper with 0 specified
    data = iter('ABCDE')
    res = grouper(data, 0)
    assert list(res) == []
    assert list(data) == ['A', 'B', 'C', 'D', 'E']
Example #2
0
def test_normal_peek():
    """Test grouper with peeking at iterable."""
    # grouper with multiple but peek makes it non-multiple
    data = iter('ABCDEF')
    res = grouper(data, 2)
    assert next(res) == ('A', 'B')
    assert next(data) == 'C'
    assert list(res) == [('D', 'E'), ('F', None)]
    assert list(data) == []

    # grouper with non-multiple but peek makes it multiple
    data = iter('ABCDE')
    res = grouper(data, 2)
    assert next(res) == ('A', 'B')
    assert next(data) == 'C'
    assert list(res) == [('D', 'E')]
    assert list(data) == []

    # grouper with multiple but peek makes it non-multiple but fillvalue used
    data = iter('ABCDEF')
    res = grouper(data, 2, fillvalue='X')
    assert next(res) == ('A', 'B')
    assert next(data) == 'C'
    assert list(res) == [('D', 'E'), ('F', 'X')]
    assert list(data) == []
Example #3
0
def test_oddity():
    """Test oddities of grouper."""
    # grouper with -1 specified
    data = iter('ABCDE')
    res = grouper(data, -1)
    assert list(res) == []
    assert list(data) == ['A', 'B', 'C', 'D', 'E']

    # grouper of empty with -1 specified
    data = ()
    res = grouper(data, -1)
    assert list(res) == []