Beispiel #1
0
 def test_processor_chain_complex(self):
     p0 = Processor(lambda partial, options={}: '%s -> %s' %
                    (options, partial * 34))
     p = Processor.flow([
         float, int, lambda partial, options={}: '%s -> %s' %
         (options, partial * 34)
     ])
     self.assertEqual(p('1.0'), '1.0 -> 34')
Beispiel #2
0
    def test_processor_chain_lambda_original_value(self):
        partA = lambda partial, options={}: {'total': sum(partial)}

        def partB(partial, options={}):
            partial.update({'fraction': options[1] / partial['total']})
            return partial

        def partC(partial, options={}):
            return {'fraction': options[1] / partial['total']}

        pReduce = Processor.flow([partA, partC], aggregator='reduce')
        pReduceMerge = Processor.flow([partA, partB], aggregator='reduce')
        pMerge = Processor.flow([partA, partC], aggregator='merge')
        resultReduce = pReduce([10, 2, 100])
        resultReduceMerge = pReduceMerge([10, 2, 100])
        resultMerge = pMerge([10, 2, 100])
        exp = {'total': 112, 'fraction': 2 / 112}
        self.assertEqual({'fraction': 2 / 112}, resultReduce)
        self.assertEqual(exp, resultReduceMerge)
        self.assertEqual(exp, resultMerge)
        self.assertEqual(resultReduceMerge, resultMerge)
Beispiel #3
0
 def test_processor_chain_complex(self):
     p = Processor.flow([float, int, lambda x: x * 34])
     self.assertEqual(p('1.0'), 34)
Beispiel #4
0
 def test_processor_chain_flow(self):
     p = Processor.flow([float, int])
     self.assertEqual(p('1.0'), 1)
     # Base case of 1 elem
     p = Processor.flow([int])
     self.assertEqual(p('1.0'), 1)