assertEquals( Interval.valueOf( 4, 15 ), orderedAndDocumentIterator.intervalIterator().nextInterval() );
assertFalse( orderedAndDocumentIterator.intervalIterator().hasNext() );
}
public void testIndexIntervalIterator() throws IOException {
DocumentIterator i0 = new IntArrayIndexIterator( new int[] { 0, 1, 2, 3, 4, 5 },
new int[][] {
{ 0, 1, 2 },
{ 0 },
{ 3 },
{ 1, 2 },
{ 1, 2 },
{ 1, 3 },
} );
DocumentIterator i1 = new IntArrayIndexIterator( new int[] { 0, 1, 2, 3, 4, 5 },
new int[][] {
{ 0, 1, 2 },
{ 1 },
{ 4 },
{ 2, 4 },
{ 3 },
{ 2, 3 }
} );
DocumentIterator i2 = new IntArrayIndexIterator( new int[] { 0, 1, 2, 3, 4, 5 },
new int[][] {
{ 0, 1, 2 },
{ 2 },
{ 2 },
{ 4, 8 },
{ 4 },
{ 5 }
} );
DocumentIterator orderedAndDocumentIterator = OrderedAndDocumentIterator.getInstance( i0, i1, i2 );
assertTrue( orderedAndDocumentIterator.hasNext() );
assertEquals( 0, orderedAndDocumentIterator.nextDocument() );
assertEquals( 0, orderedAndDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 2 ), orderedAndDocumentIterator.intervalIterator().nextInterval() );
assertFalse( orderedAndDocumentIterator.intervalIterator().hasNext() );
assertEquals( 1, orderedAndDocumentIterator.nextDocument() );
assertEquals( 1, orderedAndDocumentIterator.document() );
assertEquals( Interval.valueOf( 0, 2 ), orderedAndDocumentIterator.intervalIterator().nextInterval() );
assertFalse( orderedAndDocumentIterator.intervalIterator().hasNext() );
assertEquals( 3, orderedAndDocumentIterator.nextDocument() );
assertEquals( 3, orderedAndDocumentIterator.document() );
assertEquals( Interval.valueOf( 1, 4 ), orderedAndDocumentIterator.intervalIterator().nextInterval() );
assertEquals( Interval.valueOf( 2, 8 ), orderedAndDocumentIterator.intervalIterator().nextInterval() );
assertFalse( orderedAndDocumentIterator.intervalIterator().hasNext() );
assertEquals( 4, orderedAndDocumentIterator.nextDocument() );
assertEquals( 4, orderedAndDocumentIterator.document() );
assertEquals( Interval.valueOf( 2, 4 ), orderedAndDocumentIterator.intervalIterator().nextInterval() );
assertFalse( orderedAndDocumentIterator.intervalIterator().hasNext() );
assertEquals( 5, orderedAndDocumentIterator.nextDocument() );
assertEquals( 5, orderedAndDocumentIterator.document() );
assertEquals( Interval.valueOf( 1, 5 ), orderedAndDocumentIterator.intervalIterator().nextInterval() );
assertFalse( orderedAndDocumentIterator.intervalIterator().hasNext() );
assertFalse( orderedAndDocumentIterator.hasNext() );
}