/**
  * @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]);
     }
 }