<?php
/**
* Test: NetteIteratorsCachingIterator width.
*/
declare(strict_types=1);
use NetteIterators;
use TesterAssert;
require __DIR__ . '/../bootstrap.php';
test('', function () {
$arr = ['The', 'Nette', 'Framework'];
$iterator = new IteratorsCachingIterator($arr);
$iterator->rewind();
$iterator->rewind();
assert::
true($iterator->
valid());
assert::
true($iterator->
isFirst(0));
assert::
false($iterator->
isLast(0));
assert::
true($iterator->
isFirst(1));
assert::
true($iterator->
isLast(1));
assert::
true($iterator->
isFirst(2));
assert::
false($iterator->
isLast(2));
$iterator->next();
assert::
true($iterator->
valid());
assert::
false($iterator->
isFirst(0));
assert::
false($iterator->
isLast(0));
assert::
true($iterator->
isFirst(1));
assert::
true($iterator->
isLast(1));
assert::
false($iterator->
isFirst(2));
assert::
true($iterator->
isLast(2));
$iterator->next();
assert::
true($iterator->
valid());
assert::
false($iterator->
isFirst(0));
assert::
true($iterator->
isLast(0));
assert::
true($iterator->
isFirst(1));
assert::
true($iterator->
isLast(1));
assert::
true($iterator->
isFirst(2));
assert::
true($iterator->
isLast(2));
$iterator->next();
assert::
false($iterator->
valid());
});
test('', function () {
$iterator = new IteratorsCachingIterator([]);
assert::
false($iterator->
isFirst(0));
assert::
true($iterator->
isLast(0));
assert::
false($iterator->
isFirst(1));
assert::
true($iterator->
isLast(1));
assert::
false($iterator->
isFirst(2));
assert::
true($iterator->
isLast(2));
});