public void testReadAndSkipWithMultipleBlocks(final List<BCF2TypedValue> block1, final List<BCF2TypedValue> block2) throws IOException {
final byte[] record1 = encodeRecord(block1);
final byte[] record2 = encodeRecord(block2);
decodeRecord(block1, record1);
decodeRecord(block2, record2);
BCF2Decoder decoder = new BCF2Decoder();
decoder.setRecordBytes(record1);
decodeRecord(block1, decoder);
decoder.setRecordBytes(record2);
decodeRecord(block2, decoder);
final byte[] combined = combineRecords(record1, record2);
final List<BCF2TypedValue> combinedObjects = new ArrayList<BCF2TypedValue>(block1);
combinedObjects.addAll(block2);
InputStream stream = new ByteArrayInputStream(combined);
decoder.readNextBlock(record1.length, stream);
decodeRecord(block1, decoder);
decoder.readNextBlock(record2.length, stream);
decodeRecord(block2, decoder);
stream = new ByteArrayInputStream(combined);
decoder.skipNextBlock(record1.length, stream);
decoder.readNextBlock(record2.length, stream);
decodeRecord(block2, decoder);
}