{ 2, 5 },
{ 0 },
{ 2 },
{ 4, 6 },
} );
DocumentIterator consecutiveDocumentIterator = ConsecutiveDocumentIterator.getInstance( i0, i1, i2 );
assertTrue( consecutiveDocumentIterator.hasNext() );
assertEquals( 0, consecutiveDocumentIterator.nextDocument() );
assertEquals( 0, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertEquals( Interval.valueOf( 3, 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() );
assertEquals( 3, consecutiveDocumentIterator.nextDocument() );
assertEquals( 3, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 4, 6 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertFalse( consecutiveDocumentIterator.hasNext() );
i0.reset();
i1.reset();
i2.reset();
consecutiveDocumentIterator = ConsecutiveDocumentIterator.getInstance( i0, i1, i2 );
assertEquals( 2, consecutiveDocumentIterator.skipTo( 1 ) );
assertEquals( 2, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 2 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertEquals( 3, consecutiveDocumentIterator.nextDocument() );
assertEquals( 3, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 4, 6 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertFalse( consecutiveDocumentIterator.hasNext() );
i0.reset();
i1.reset();
i2.reset();
consecutiveDocumentIterator = ConsecutiveDocumentIterator.getInstance( new DocumentIterator[] { i0, i1, i2 }, new int[] { 1, 0, 0 } );
assertTrue( consecutiveDocumentIterator.hasNext() );
assertEquals( 0, consecutiveDocumentIterator.nextDocument() );
assertEquals( 0, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 2, 5 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertEquals( 3, consecutiveDocumentIterator.nextDocument() );
assertEquals( 3, consecutiveDocumentIterator.document() );
assertEquals( Interval.valueOf( 3, 6 ), consecutiveDocumentIterator.intervalIterator().nextInterval() );
assertFalse( consecutiveDocumentIterator.intervalIterator().hasNext() );
assertFalse( consecutiveDocumentIterator.hasNext() );
}