{ {} },
{ { 2 }, { 5 } },
{ {} },
{ { 2 } },
} );
DocumentIterator consecutiveDocumentIterator = ConsecutiveDocumentIterator.getInstance( i0, i1, i2 );
assertTrue( consecutiveDocumentIterator.hasNext() );
assertEquals( 0, consecutiveDocumentIterator.nextDocument() );
assertEquals( 0, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 1 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertEquals( Interval.valueOf( 1, 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertEquals( 1, consecutiveDocumentIterator.nextDocument() );
assertEquals( 1, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertEquals( 2, consecutiveDocumentIterator.nextDocument() );
assertEquals( 2, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertEquals( 3, consecutiveDocumentIterator.nextDocument() );
assertEquals( 3, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
i0.reset();
i1.reset();
i2.reset();
consecutiveDocumentIterator = ConsecutiveDocumentIterator.getInstance( i0, i1, i2 );
assertEquals( 2, consecutiveDocumentIterator.skipTo( 2 ) );
assertEquals( 2, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertEquals( 3, consecutiveDocumentIterator.nextDocument() );
assertFalse( consecutiveDocumentIterator.hasNext() );
i0.reset();
i1.reset();
i2.reset();
consecutiveDocumentIterator = ConsecutiveDocumentIterator.getInstance( new DocumentIterator[] { i0, i1, i2 }, new int[] { 1, 1, 1 } );
assertTrue( consecutiveDocumentIterator.hasNext() );
assertEquals( 0, consecutiveDocumentIterator.nextDocument() );
assertEquals( 0, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertEquals( 1, consecutiveDocumentIterator.nextDocument() );
assertEquals( 1, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 5 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertEquals( 2, consecutiveDocumentIterator.nextDocument() );
assertEquals( 2, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
}