def test_first(self): transducer = T.compose( T.filtering(lambda x: True if x > 4 else False), T.first(lambda x: True if x * x > 64 else False)) result = T.transduce(transducer, T.single(), range(1000)) self.assertEqual(9, result)
def test_transduce(self): transducer = T.compose(T.filtering(is_prime), T.mapping(lambda x: x + 1)) self.assertEqual(transducer.__class__.__name__, 'function') result = T.transduce(transducer, self.appending, range(20)) self.assertEqual([3, 4, 6, 8, 12, 14, 18, 20], result)
def test2(data): # Any actions return data def test_generator(data): # Any actions return data master = master() output_sink = output() generator1 = master.create_generator(action=test_generator, data='Generator_test') transducer2 = T.compose(T.mapping(lambda x: x), T.filtering(is_prime)) transducer1 = T.compose(T.mapping(lambda x: x + 1), T.filtering(lambda x: True if x > 1 else False)) chain = master.solve(generators=[generator1], transducers=[transducer1, transducer2], actions=[test1, test2], target=output_sink) input(iterable=range(15), target=chain) print('\nCashed:\n') input(iterable=range(20), target=chain)