def test_reuse_single_taking_instance(self):
     take_5 = tdc.taking(5)
     tdx = compose(
         take_5,
         tdc.mapping(lambda x: x * 2),
         take_5)
     x = tdc.reduce(tdx(append), range(100), [])
     y = itertools.islice(
         (x * 2 for x in itertools.islice(range(100), 5)), 5)
     self.assertEqual(x, list(y))
 def test_taking_does_not_consume_all_input(self):
     take_5 = tdc.taking(5)
     input_data = (i for i in range(100))
     tdc.reduce(take_5(operator.add), input_data, 0)
     self.assertEqual(len(list(input_data)), 95)
 def test_taking(self):
     t = tdc.taking(10)
     x = tdc.reduce(t(operator.add), range(100), 0)
     self.assertEqual(x, sum(range(10)))