Esempio n. 1
0
 public function testFnNestedMap()
 {
     $fnMap = function ($v) {
         $v['mul'] = strlen($v['name']) * $v['count'];
         return $v;
     };
     $fnMap2 = function ($v) {
         $v['mul'] = -strlen($v['name']) * $v['count'];
         return $v;
     };
     $fruitBasket = array(TestData::$fruit, TestData::$fruit, TestData::$fruit, TestData::$fruit, TestData::$fruit);
     $n1 = Sequence::make($fruitBasket)->map(FnGen::fnNestedMap($fnMap))->to_a();
     $n2 = Sequence::make($fruitBasket)->map(FnSequence::make()->map($fnMap)->to_a())->to_a();
     $n3 = Sequence::make($fruitBasket)->map(function ($values) use($fnMap) {
         return Sequence::make($values)->map($fnMap)->to_a();
     })->to_a();
     $x1 = Sequence::make($fruitBasket)->map(FnGen::fnNestedMap($fnMap2))->to_a();
     $this->assertEquals($n3, $n1);
     $this->assertEquals($n3, $n2);
     $this->assertNotEquals($n1, $x1);
 }