CachingIterator.width.phpt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * Test: Nette\Iterators\CachingIterator width.
  4. */
  5. declare(strict_types=1);
  6. use Nette\Iterators;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. test('', function () {
  10. $arr = ['The', 'Nette', 'Framework'];
  11. $iterator = new Iterators\CachingIterator($arr);
  12. $iterator->rewind();
  13. $iterator->rewind();
  14. Assert::true($iterator->valid());
  15. Assert::true($iterator->isFirst(0));
  16. Assert::false($iterator->isLast(0));
  17. Assert::true($iterator->isFirst(1));
  18. Assert::true($iterator->isLast(1));
  19. Assert::true($iterator->isFirst(2));
  20. Assert::false($iterator->isLast(2));
  21. $iterator->next();
  22. Assert::true($iterator->valid());
  23. Assert::false($iterator->isFirst(0));
  24. Assert::false($iterator->isLast(0));
  25. Assert::true($iterator->isFirst(1));
  26. Assert::true($iterator->isLast(1));
  27. Assert::false($iterator->isFirst(2));
  28. Assert::true($iterator->isLast(2));
  29. $iterator->next();
  30. Assert::true($iterator->valid());
  31. Assert::false($iterator->isFirst(0));
  32. Assert::true($iterator->isLast(0));
  33. Assert::true($iterator->isFirst(1));
  34. Assert::true($iterator->isLast(1));
  35. Assert::true($iterator->isFirst(2));
  36. Assert::true($iterator->isLast(2));
  37. $iterator->next();
  38. Assert::false($iterator->valid());
  39. });
  40. test('', function () {
  41. $iterator = new Iterators\CachingIterator([]);
  42. Assert::false($iterator->isFirst(0));
  43. Assert::true($iterator->isLast(0));
  44. Assert::false($iterator->isFirst(1));
  45. Assert::true($iterator->isLast(1));
  46. Assert::false($iterator->isFirst(2));
  47. Assert::true($iterator->isLast(2));
  48. });