/**
* @dataProvider oneToTen
*/
public function testThatQueryUpdatesWhenValuesAreMutated(\Pinq\ITraversable $traversable, array $data)
{
$mutableValues = new \ArrayObject([2, 4, 6, 8, 10]);
$query = $traversable->whereIn($mutableValues)->orderByDescending(function ($i) {
return $i;
})->groupJoin(range(1, 10, 2))->on(function ($i, $v) {
return $v < $i;
})->to(function ($i, \Pinq\ITraversable $nums) {
return $i . ':' . $nums->implode(',');
});
$this->assertMatchesValues($query, ['10:1,3,5,7,9', '8:1,3,5,7', '6:1,3,5', '4:1,3', '2:1']);
$mutableValues->exchangeArray([1, 3, 5, 7, 9]);
$this->assertMatchesValues($query, ['9:1,3,5,7', '7:1,3,5', '5:1,3', '3:1', '1:']);
}