def test_unreleased(self): iter_0, iter_1 = unzip(self.iterable) for i in range(20): next(iter_0) self.assertEqual(self.released, set())
def test_sequential(self): i_iter, s_iter = unzip(self.iterable) ints = list(i_iter) self.assertEqual(ints, self.ints) strs = list(s_iter) self.assertEqual(strs, self.strs)
def test_parallel(self): iters = unzip(self.iterable) self.assertEqual(len(iters), 3) for i in range(10): self.assertEqual(next(iters[0]), i) self.assertEqual(next(iters[1]), i + 1) self.assertEqual(next(iters[2]), i * i)
def test_parallel(self): i_iter, s_iter = unzip(self.iterable) ints, strs = [], [] for i, s in zip(i_iter, s_iter): ints.append(i) strs.append(s) self.assertEqual(ints, self.ints) self.assertEqual(strs, self.strs)
def test_random(self): i_iter, s_iter = unzip(self.iterable) ints, strs = [], [] while True: try: if random.randrange(2): ints.append(next(i_iter)) else: strs.append(next(s_iter)) except StopIteration: break ints.extend(i_iter) strs.extend(s_iter) self.assertEqual(ints, self.ints) self.assertEqual(strs, self.strs)