public function test($functionName)
{
$callback = function ($v, $k, $collection) {
InvalidArgumentException::assertCollection($collection, __FUNCTION__, 3);
return $v == 'value' && strlen($k) > 0;
};
$this->assertSame(['value', 2 => 'value'], $functionName($this->list, $callback));
$this->assertSame(['value', 2 => 'value'], $functionName($this->listIterator, $callback));
$this->assertSame(['k1' => 'value', 'k3' => 'value'], $functionName($this->hash, $callback));
$this->assertSame(['k1' => 'value', 'k3' => 'value'], $functionName($this->hashIterator, $callback));
}