public function testThatGroupJoinMaintainsGroupedDataReferences(\Pinq\ITraversable $traversable) { $joinData = $this->makeRefs(range(1, 100)); $traversable->append(range(1, 100, 10))->groupJoin($joinData)->on(function ($o, $i) { return (int) ($o / 10) === (int) ($i / 10); })->to(function ($o, \Pinq\ITraversable $group) { return $group; })[3]->iterate(function (&$i) { $i *= 10; }); $this->assertSame(array_merge(range(1, 29), range(300, 390, 10), range(40, 100)), $joinData); }