function testIntegratedRecursion() { $numbers = new qinq\Collection([1, 2, [3, 4, [5, 6]], 7, [8, [9, 10]]]); $matches = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]; foreach ($numbers->recursive(function ($value) { return $value * $value; })->flatten() as $number) { $match = array_shift($matches); $this->assertEquals($match, $number); } }