/** * testIterate */ public function testIterate() { $actual = Ginq::iterate(1, array('x' => 'x+1'))->take(5)->toList(); $this->assertEquals(array(1, 2, 3, 4, 5), $actual); $called = 0; $actual = Ginq::iterate(1, function ($x) use(&$called) { $called++; return $x + 1; })->take(5)->toList(); $this->assertEquals(array(1, 2, 3, 4, 5), $actual); $this->assertEquals(4, $called); $called = 0; $actual = Ginq::iterate(1, function ($x) use(&$called) { $called++; return $x + 1; })->take(1)->toList(); $this->assertEquals(array(1), $actual); $this->assertEquals(0, $called); }