public function testIterator()
{
$data = range(0, 10);
$callback = function ($value) {
return 0 == $value % 2;
};
$iterator = new FilterIterator(new \ArrayIterator($data), $callback);
$expected = [0 => 0, 2 => 2, 4 => 4, 6 => 6, 8 => 8, 10 => 10];
$results = [];
foreach ($iterator as $key => $value) {
$results[$key] = $value;
}
$this->assertSame($expected, $results);
$this->assertSame($expected, $iterator->toArray());
}