assertEquals( 0, caching.position() ); assertFalse( caching.hasPrevious() ); assertEquals( (Integer) 0, caching.next() ); assertTrue( caching.hasNext() ); assertTrue( caching.hasPrevious() ); assertEquals( (Integer) 1, caching.next() ); assertTrue( caching.hasPrevious() ); assertEquals( (Integer) 1, caching.current() ); assertEquals( (Integer) 2, caching.next() ); assertEquals( (Integer) 2, caching.current() ); assertEquals( (Integer) 3, (Integer) caching.position() ); assertEquals( (Integer) 3, caching.next() ); assertEquals( (Integer) 3, caching.current() ); assertTrue( caching.hasPrevious() ); assertEquals( (Integer) 4, caching.next() ); assertEquals( 5, caching.position() ); assertEquals( (Integer) 4, caching.previous() ); assertEquals( (Integer) 6, caching.previous() ); assertEquals( 6, caching.position( 0 ) ); assertEquals( (Integer) 0, caching.next() );