コード例 #1
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_add_with_length_hint():
    one = ChIter(range(5))
    two = ChIter(range(5, 10))
    i = one + two
    length = length_hint(one) + length_hint(two)

    assert length_hint(i) == length
コード例 #2
0
def test_groupby():
    iterable = [1, 1, 3, 2, 2]

    i = ChIter(iterable).groupby()

    assert isinstance(i, ChIter)
    assert [(k, list(g)) for k, g in itertools.groupby(iterable)] == [(k, list(g)) for k, g in i]
コード例 #3
0
def test_dict():
    items = [(1, 2), (3, 4)]

    i = ChIter(items).dict()

    assert isinstance(i, dict)
    assert dict(items) == i
コード例 #4
0
def test_takewhile():
    def predicate(x):
        return x <= 2

    i = ChIter(range(5)).takewhile(predicate)

    assert isinstance(i, ChIter)
    assert list(itertools.takewhile(predicate, range(5))) == list(i)
コード例 #5
0
def test_filterfalse():
    def func(x):
        return x % 2

    i = ChIter(range(5)).filterfalse(func)

    assert isinstance(i, ChIter)
    assert list(itertools.filterfalse(func, range(5))) == list(i)
コード例 #6
0
def test_zip_longest_fillvalue():
    data = [(1, 2), (1,)]
    empty_value = object()

    i = ChIter(data).zip_longest(fillvalue=empty_value)

    assert isinstance(i, ChIter)
    assert list(itertools.zip_longest(*data, fillvalue=empty_value)) == list(i)
コード例 #7
0
def test_dropwhile():
    def func(x):
        return x > 2

    i = ChIter(range(5)).dropwhile(func)

    assert isinstance(i, ChIter)
    assert list(itertools.dropwhile(func, range(5))) == list(i)
コード例 #8
0
def test_tee():
    i = ChIter(range(5)).tee()

    assert isinstance(i, ChIter)
    i1, i2 = i

    assert isinstance(i1, ChIter)
    assert isinstance(i2, ChIter)

    assert list(i1) == list(i2)
コード例 #9
0
def test_groupby_key():
    def key(x):
        return x % 2

    iterable = [1, 1, 3, 2, 2]

    i = ChIter(iterable).groupby(key)

    assert isinstance(i, ChIter)
    assert [(k, list(g)) for k, g in itertools.groupby(iterable, key)] == [(k, list(g)) for k, g in i]
コード例 #10
0
def test_tee_n():
    i = ChIter(range(5)).tee(3)

    assert isinstance(i, ChIter)
    i1, i2, i3 = i

    assert isinstance(i1, ChIter)
    assert isinstance(i2, ChIter)
    assert isinstance(i3, ChIter)

    assert list(i1) == list(i2) == list(i3)
コード例 #11
0
def test_starmap_length_hint():
    i = ChIter(enumerate(range(5))).starmap(pow)

    assert length_hint(enumerate(range(5))) == length_hint(i)
コード例 #12
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_next_empty():
    with pytest.raises(StopIteration):
        next(ChIter([]))
コード例 #13
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_next_with_length_hint():
    i = ChIter([None])

    assert length_hint(i) == 1
    next(i)
    assert length_hint(i) == 0
コード例 #14
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_next():
    item = next(ChIter([None]))
    assert item is None
コード例 #15
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_iterator():
    iterator = iter(ChIter([]))
    assert isinstance(iterator, Iterator)
コード例 #16
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_from_iterables_with_length_hint():
    i = ChIter.from_iterables(range(5), range(5, 10))

    assert length_hint(i) == length_hint(range(10))
コード例 #17
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_add_right_not_iter():
    with pytest.raises(TypeError):
        None + ChIter(range(5, 10))
コード例 #18
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_add_left():
    i = ChIter(range(5)) + range(5, 10)

    assert isinstance(i, ChIter)
    assert list(i) == list(range(10))
コード例 #19
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_add_right():
    i = range(5) + ChIter(range(5, 10))

    assert isinstance(i, ChIter)
    assert list(i) == list(range(10))
コード例 #20
0
def test_compress():
    selectors = [True, False, True]
    i = ChIter(range(5)).compress(selectors)

    assert isinstance(i, ChIter)
    assert list(itertools.compress(range(5), selectors)) == list(i)
コード例 #21
0
def test_accumulate():
    i = ChIter(range(5)).accumulate()

    assert isinstance(i, ChIter)
    assert list(i) == list(itertools.accumulate(range(5)))
コード例 #22
0
def test_combinations_with_replacement():
    i = ChIter(range(5)).combinations_with_replacement(2)

    assert isinstance(i, ChIter)
    assert list(itertools.combinations_with_replacement(range(5), 2)) == list(i)
コード例 #23
0
def test_combinations():
    i = ChIter(range(5)).combinations(2)

    assert isinstance(i, ChIter)
    assert list(itertools.combinations(range(5), 2)) == list(i)
コード例 #24
0
def test_cycle():
    i = ChIter([None]).cycle()

    assert isinstance(i, ChIter)
    assert list(zip(i, range(5))) == list(zip(itertools.cycle([None]), range(5)))
コード例 #25
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_add_left_not_iter():
    with pytest.raises(TypeError):
        ChIter(range(5)) + None
コード例 #26
0
def test_zip_longest():
    i = ChIter(enumerate(range(5))).zip_longest()

    assert isinstance(i, ChIter)
    assert list(itertools.zip_longest(*enumerate(range(5)))) == list(i)
コード例 #27
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_as_iterator():
    assert isinstance(ChIter([]), Iterator)
コード例 #28
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_from_iterables():
    i = ChIter.from_iterables(range(5), range(5, 10))

    assert isinstance(i, ChIter)
    assert list(i) == list(range(10))
コード例 #29
0
ファイル: test_base.py プロジェクト: ybibaev/chiter
def test_length_hint():
    i = length_hint(ChIter(range(5)))

    assert isinstance(i, int)
    assert i == length_hint(range(5))
コード例 #30
0
def test_zip_longest_length_hint():
    i = ChIter(enumerate(range(5))).zip_longest()

    assert length_hint(enumerate(range(5))) == length_hint(i)