/**
  * Test getInnerPagesIterator.
  * @covers Rentalhost\VanillaPagination\Pagination::getInnerPagesIterator
  */
 public function testGetInnerPagesIterator()
 {
     $pagination = new Pagination(0, 20);
     static::assertSame([], $pagination->getInnerPagesIterator(5)->getArrayCopy());
     $pagination = new Pagination(1, 20);
     static::assertSame([1], $pagination->getInnerPagesIterator(3)->getArrayCopy());
     $pagination = new Pagination(50, 20);
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3], $pagination->getInnerPagesIterator(3)->getArrayCopy());
     $pagination->setCurrentPage(2);
     static::assertSame([1, 2, 3], $pagination->getInnerPagesIterator(3)->getArrayCopy());
     $pagination->setCurrentPage(3);
     static::assertSame([1, 2, 3], $pagination->getInnerPagesIterator(3)->getArrayCopy());
     $pagination = new Pagination(60, 20);
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3], $pagination->getInnerPagesIterator(4)->getArrayCopy());
     $pagination->setCurrentPage(2);
     static::assertSame([1, 2, 3], $pagination->getInnerPagesIterator(4)->getArrayCopy());
     $pagination->setCurrentPage(3);
     static::assertSame([1, 2, 3], $pagination->getInnerPagesIterator(4)->getArrayCopy());
     $pagination = new Pagination(80, 20);
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3, 4], $pagination->getInnerPagesIterator(4)->getArrayCopy());
     $pagination = new Pagination(100, 20);
     // Forcing minimum of 7 pages to this type of iterator.
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3, 4, 5], $pagination->getInnerPagesIterator(4)->getArrayCopy());
     $pagination = new Pagination(200, 20);
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3, 4, 5, null, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(2);
     static::assertSame([1, 2, 3, 4, 5, null, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(3);
     static::assertSame([1, 2, 3, 4, 5, null, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(4);
     static::assertSame([1, 2, 3, 4, 5, null, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(5);
     static::assertSame([1, null, 4, 5, 6, null, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(6);
     static::assertSame([1, null, 5, 6, 7, null, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(7);
     static::assertSame([1, null, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(8);
     static::assertSame([1, null, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(9);
     static::assertSame([1, null, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(10);
     static::assertSame([1, null, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(7)->getArrayCopy());
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3, 4, 5, 6, null, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(2);
     static::assertSame([1, 2, 3, 4, 5, 6, null, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(3);
     static::assertSame([1, 2, 3, 4, 5, 6, null, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(4);
     static::assertSame([1, 2, 3, 4, 5, 6, null, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(5);
     static::assertSame([1, null, 4, 5, 6, 7, null, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(6);
     static::assertSame([1, null, 5, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(7);
     static::assertSame([1, null, 5, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(8);
     static::assertSame([1, null, 5, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(9);
     static::assertSame([1, null, 5, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination->setCurrentPage(10);
     static::assertSame([1, null, 5, 6, 7, 8, 9, 10], $pagination->getInnerPagesIterator(8)->getArrayCopy());
     $pagination = new Pagination(400, 20);
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3, 4, 5, 6, 7, '...', 20], $pagination->getInnerPagesIterator(9, '...')->getArrayCopy());
     $pagination->setCurrentPage(5);
     static::assertSame([1, 2, 3, 4, 5, 6, 7, '...', 20], $pagination->getInnerPagesIterator(9, '...')->getArrayCopy());
     $pagination->setCurrentPage(6);
     static::assertSame([1, '...', 4, 5, 6, 7, 8, '...', 20], $pagination->getInnerPagesIterator(9, '...')->getArrayCopy());
     $pagination->setCurrentPage(7);
     static::assertSame([1, '...', 5, 6, 7, 8, 9, '...', 20], $pagination->getInnerPagesIterator(9, '...')->getArrayCopy());
     $pagination->setCurrentPage(14);
     static::assertSame([1, '...', 12, 13, 14, 15, 16, '...', 20], $pagination->getInnerPagesIterator(9, '...')->getArrayCopy());
     $pagination->setCurrentPage(15);
     static::assertSame([1, '...', 13, 14, 15, 16, 17, '...', 20], $pagination->getInnerPagesIterator(9, '...')->getArrayCopy());
     $pagination->setCurrentPage(16);
     static::assertSame([1, '...', 14, 15, 16, 17, 18, 19, 20], $pagination->getInnerPagesIterator(9, '...')->getArrayCopy());
     $pagination = new Pagination(400, 20);
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3, 4, 5, 6, 7, 8, null, 20], $pagination->getInnerPagesIterator(10, null)->getArrayCopy());
     $pagination->setCurrentPage(5);
     static::assertSame([1, 2, 3, 4, 5, 6, 7, 8, null, 20], $pagination->getInnerPagesIterator(10, null)->getArrayCopy());
     $pagination->setCurrentPage(6);
     static::assertSame([1, null, 4, 5, 6, 7, 8, 9, null, 20], $pagination->getInnerPagesIterator(10, null)->getArrayCopy());
     $pagination->setCurrentPage(7);
     static::assertSame([1, null, 5, 6, 7, 8, 9, 10, null, 20], $pagination->getInnerPagesIterator(10, null)->getArrayCopy());
     $pagination->setCurrentPage(13);
     static::assertSame([1, null, 11, 12, 13, 14, 15, 16, null, 20], $pagination->getInnerPagesIterator(10, null)->getArrayCopy());
     $pagination->setCurrentPage(14);
     static::assertSame([1, null, 12, 13, 14, 15, 16, 17, null, 20], $pagination->getInnerPagesIterator(10, null)->getArrayCopy());
     $pagination->setCurrentPage(15);
     static::assertSame([1, null, 13, 14, 15, 16, 17, 18, 19, 20], $pagination->getInnerPagesIterator(10, null)->getArrayCopy());
     $pagination->setCurrentPage(16);
     static::assertSame([1, null, 13, 14, 15, 16, 17, 18, 19, 20], $pagination->getInnerPagesIterator(10, null)->getArrayCopy());
     $pagination = new Pagination(400, 20);
     $pagination->setCurrentPage(1);
     static::assertSame([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, null, 20], $pagination->getInnerPagesIterator(19, null)->getArrayCopy());
     $pagination->setCurrentPage(10);
     static::assertSame([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, null, 20], $pagination->getInnerPagesIterator(19, null)->getArrayCopy());
     $pagination->setCurrentPage(11);
     static::assertSame([1, null, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], $pagination->getInnerPagesIterator(19, null)->getArrayCopy());
     $pagination->setCurrentPage(20);
     static::assertSame([1, null, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], $pagination->getInnerPagesIterator(19, null)->getArrayCopy());
 }