Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
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)