Пример #1
0
    def test_conj_reducer(self):
        conj_reducer = T.get_immutable_appender()
        self.assertEqual(self.conjoining.__class__.__name__, 'Conjoining')

        result = T.transduce(T.compose(T.mapping(lambda x: x)),
                             self.conjoining, range(5))
        self.assertEqual((0, 1, 2, 3, 4), result)
Пример #2
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)
Пример #3
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)
Пример #4
0
    def test_enumerating(self):
        transducer = T.compose(T.mapping(lambda x: x * 2 + 3), T.enumerating())

        result = T.transduce(transducer, self.appending, range(4))
        self.assertEqual([(0, 3), (1, 5), (2, 7), (3, 9)], result)
Пример #5
0
    def test_repeating(self):
        transducer = T.compose(T.mapping(lambda x: x * x), T.repeating(2))

        result = T.transduce(transducer, self.appending, range(2))
        self.assertEqual([0, 0, 1, 1], result)
Пример #6
0
    def test_chunking(self):
        transducer = T.compose(T.mapping(lambda x: x * x), T.chunking(2))

        result = T.transduce(transducer, self.appending, range(5))
        self.assertEqual([[0, 1], [4, 9], [16]], result)
Пример #7
0
    def test_appending_reducer(self):
        self.assertEqual(self.appending.__class__.__name__, 'Appending')

        result = T.transduce(T.compose(T.mapping(lambda x: x)), self.appending,
                             range(5))
        self.assertEqual([0, 1, 2, 3, 4], result)
Пример #8
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)