async def test_tee_when_not_interleaved(): """Check that all tees produce correct values when not interleaved.""" a, b = aitertools.tee(range(10)) a_values = await aitertools.alist(a) b_values = await aitertools.alist(b) assert a_values == b_values assert a_values == list(range(10))
async def test_tee_when_interleaved(): """Check that all tees produce correct values when interleaved.""" a, b = aitertools.tee(range(100)) a_values, b_values = [], [] for _ in range(100): a_values.append((await aitertools.anext(a))) b_values.append((await aitertools.anext(b))) assert a_values == b_values assert a_values == list(range(100))
async def test_tee_can_be_instantiated(): """Check that new tees can be created from individual tees.""" a, b = aitertools.tee('abc') c = type(a)('def') assert (await aitertools.alist(c)) == list('def')
async def test_tee_empty_iterable(): """Check that all tees are empty when the iterable is empty.""" a, b = aitertools.tee([]) assert (await aitertools.alist(a)) == [] assert (await aitertools.alist(b)) == []