PageRange { public List<int[]> getPages() { List<int[]> pages = new ArrayList<>(); while ( nextPage() ) { int[] range = { getFromIndex(), getToIndex() }; pages.add( range ); } reset(); return pages; } protected  PageRange();  PageRange( int values ); PageRange setPageSize( int pageSize ); PageRange setPages( int pages ); boolean nextPage(); int pageCount(); void reset(); int getFromIndex(); int getToIndex(); int getPageSize(); List<int[]> getPages();  }
@Test public void testGetPages() { PageRange range = new PageRange( 12 ).setPageSize( 5 ); List<int[]> pages = range.getPages(); assertEquals( 3, pages.size() ); assertEquals( 0, pages.get( 0 )[0] ); assertEquals( 5, pages.get( 0 )[1] ); assertEquals( 5, pages.get( 1 )[0] ); assertEquals( 10, pages.get( 1 )[1] ); assertEquals( 10, pages.get( 2 )[0] ); assertEquals( 12, pages.get( 2 )[1] ); }