public function testMappingAndFirst()
 {
     $transformed = Fp\transduce(Fp\compose(Fp\mapping(square_makker()), Fp\first(function ($x) {
         return $x > 6;
     })), Fp\single_result(), range(1, 6));
     $this->assertEquals(9, $transformed);
 }
Example #2
0
 public function testItApplyTheCallableOnEachItem()
 {
     $transducer = Fp\filtering(is_even_makker());
     $squared = Fp\transduce($transducer, Fp\appending(), range(1, 6));
     $this->assertEquals([2, 4, 6], $squared);
 }
Example #3
0
 public function testItApplyTheCallableOnEachItem()
 {
     $transducer = Fp\mapping(square_makker());
     $squared = Fp\transduce($transducer, Fp\appending(), range(1, 2));
     $this->assertEquals([1, 4], $squared);
 }
Example #4
0
 public function testItEnumerateItems()
 {
     $transducer = Fp\enumerating();
     $transformed = Fp\transduce($transducer, Fp\appending(), range(1, 3));
     $this->assertEquals([[0, 1], [1, 2], [2, 3]], $transformed);
 }
 public function testItReturnASingleValueForCollectionTransducer()
 {
     $transducer = Fp\filtering(is_even_makker());
     $reduced = Fp\transduce($transducer, Fp\single_result(), range(3, 6));
     $this->assertEquals(4, $reduced);
 }
Example #6
0
 public function testItApplyTheCallableOnEachItem()
 {
     $transducer = Fp\first(equal_three_makker());
     $reduced = Fp\transduce($transducer, Fp\single_result(), range(1, 6));
     $this->assertEquals(3, $reduced);
 }
 public function testCompositionWithMapFilterWithArityOfOne()
 {
     $transduced = Fp\transduce(Fp\compose(Fp\map(square_makker()), Fp\filter(is_even_makker())), Fp\appending(), [1, 2, 3, 4, 5, 6]);
     $this->assertEquals([4, 16, 36], $transduced);
 }
Example #8
0
 public function testPartialFinalBatch()
 {
     $transducer = Fp\batching(3);
     $transformed = Fp\transduce($transducer, Fp\appending(), range(1, 5));
     $this->assertEquals([[1, 2, 3], [4, 5]], $transformed);
 }
Example #9
0
 public function transduce(callable $transducers, Fp\Reducer\Reducer $reducer, $init = null)
 {
     return new Self(Fp\transduce($transducers, $reducer, $this->values(), $init));
 }