### Question:
NativeLabelScanReader implements LabelScanReader { @Override public PrimitiveLongResourceIterator nodesWithAnyOfLabels( long fromId, int... labelIds ) { List<PrimitiveLongResourceIterator> iterators = iteratorsForLabels( fromId, labelIds ); return new CompositeLabelScanValueIterator( iterators, false ); } NativeLabelScanReader( GBPTree<LabelScanKey,LabelScanValue> index ); @Override void close(); @Override PrimitiveLongResourceIterator nodesWithLabel( int labelId ); @Override PrimitiveLongResourceIterator nodesWithAnyOfLabels( long fromId, int... labelIds ); @Override PrimitiveLongResourceIterator nodesWithAllLabels( int... labelIds ); @Override void nodesWithLabel( IndexProgressor.NodeLabelClient client, int labelId );  }### Answer:
@Test public void shouldStartFromGivenId() throws IOException { GBPTree<LabelScanKey,LabelScanValue> index = mock( GBPTree.class ); RawCursor<Hit<LabelScanKey,LabelScanValue>,IOException> cursor = mock( RawCursor.class ); when( cursor.next() ).thenReturn( true, true, false ); when( cursor.get() ).thenReturn( hit( 1, 0b0001_1000__0101_1110L ), hit( 3, 0b0010_0000__1010_0001L ), null ); when( index.seek( any( LabelScanKey.class ), any( LabelScanKey.class ) ) ) .thenReturn( cursor ); long fromId = LabelScanValue.RANGE_SIZE + 3; try ( NativeLabelScanReader reader = new NativeLabelScanReader( index ); PrimitiveLongResourceIterator iterator = reader.nodesWithAnyOfLabels( fromId, LABEL_ID ) ) { assertArrayEquals( new long[] { 64 + 4, 64 + 6, 64 + 11, 64 + 12, 192 + 0, 192 + 5, 192 + 7, 192 + 13 }, asArray( iterator ) ); } }