/** * @dataProvider oneToTen */ public function testThatAppendedFilteredApplyJoinOperatesOnOriginalCollection(\Pinq\ICollection $collection, array $data) { $appendedReference = 3; $collection->append([&$appendedReference])->join(range(1, 10))->on(function ($outer, $inner) { return $inner <= $outer; })->apply(function (&$outer, $inner) { $outer *= $inner; }); $this->assertMatchesValues($collection, [1 * 1, 2 * 1 * 2, 3 * 1 * 2 * 3, 4 * 1 * 2 * 3 * 4, 5 * 1 * 2 * 3 * 4 * 5, 6 * 1 * 2 * 3 * 4 * 5 * 6, 7 * 1 * 2 * 3 * 4 * 5 * 6 * 7, 8 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8, 9 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9, 10 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10]); $this->assertSame($appendedReference, 3 * 1 * 2 * 3); }