$t->fail('__construct() accepts an array');
}
$t->diag('testing basic pagination functions');
try {
    $results->setPage(2);
    $t->pass('->setPage() accepts a integer page');
} catch (Exception $e) {
    $t->fail('->setPage() accepts a integer page');
}
try {
    $results->setMaxPerPage(10);
    $t->pass('->setMaxPerPage() accepts an integer per page');
} catch (Exception $e) {
    $t->fail('->setMaxPerPage() accepts an integer per page');
}
$t->is($results->getPage(), 2, '->getPage() returns current page');
$t->is($results->getMaxPerPage(), 10, '->getMaxPerPage() returns the max per page');
$t->is($results->getNbResults(), 1001, '->getNbResults() returns the total number of results');
$t->ok($results->haveToPaginate(), '->haveToPaginate() returns correct value');
$results->setPage(0);
$t->is($results->getPage(), 1, '->setPage() to 0 sets the page to 1');
$results->setPage(100000);
$t->is($results->getPage(), 101, '->setPage() above to upper bound resets to last page');
$results->setPage(2);
$t->diag('testing ->getResults()');
$t->is_deeply($results->getResults()->toArray(), range(10, 20), '->getResults() returns the correct range');
$results->setPage(3);
$t->is_deeply($results->getResults()->toArray(), range(20, 30), '->getResults() returns the correct range after page change');
$results->setMaxPerPage(0);
$t->is_deeply($results->getResults()->toArray(), range(0, 1000), '->getResults() returns all results if the max per page is 0');
$results->setMaxPerPage(10);