public function testThatMaintainsCorrectSameIteratorScheme(\Pinq\ITraversable $traversable, array $data) { $originalScheme = $traversable->getIteratorScheme(); $queriedTraversable = $traversable->where(function () { throw new \Exception('This should never be executed'); })->append([])->difference([])->except([])->groupBy(function () { return 1; })->groupJoin([])->on(function () { return true; })->to(function () { return 1; })->indexBy(function () { return 1; })->intersect([])->join([])->on(function () { return true; })->to(function () { return 1; })->keys()->orderBy(function () { return 1; }, \Pinq\Direction::ASCENDING)->thenByDescending(function () { return 1; })->reindex()->select(function () { return 1; })->selectMany(function () { return []; })->skip(1)->take(5)->union([])->where(function () { return true; })->whereIn([]); //Well that was fun $this->assertSame($originalScheme, $queriedTraversable->getIteratorScheme()); }