/** * @param Enumerator $collection * @param callable $add This callable will add an item to $collection. */ function doMapTests(Enumerator $collection, callable $add) { $add(0); $add(1); $add(2); $add(3); $a = $collection->map(function ($value, $key) { return [$value * 2, $key]; }); $this->assertCount(4, $a); $expect = [0, 2, 4, 6]; foreach ($a as $key => $value) { $this->assertEquals($expect[$key], $value[0]); } }