public function testThatRemoveWhereRemovesItemsWhereTheFunctionReturnsTrueAndPreservesKeys(\Pinq\ICollection $numbers, array $data)
{
$predicate = function ($i, $k) {
return $i % 2 === 0;
};
$numbers->removeWhere($predicate);
foreach ($data as $key => $value) {
if ($predicate($value, $key)) {
unset($data[$key]);
}
}
$this->assertMatches($numbers, $data);
}