given( $iterator = new LUT\Map(self::$_dummyArray), $limit = new LUT\Limit($iterator, 2, 3) ) ->when($result = iterator_to_array($limit)) ->then ->array($result) ->isEqualTo([ 2 => 'o', 3 => 'b', 4 => 'a' ]); } public function case_negative_offset() { $this ->given($iterator = new LUT\Map(self::$_dummyArray)) ->exception(function () use ($iterator) { new LUT\Limit($iterator, -2, 3); }) ->isInstanceOf(\OutOfRangeException::class); } public function case_empty() { $this ->given( $iterator = new LUT\Map(self::$_dummyArray), $limit = new LUT\Limit($iterator, 0, 0) ) ->exception(function () use ($limit) { iterator_to_array($limit); }) ->isInstanceOf(\OutOfBoundsException::class); } }