/** * Write this CompressionHeader out to an internal OutputStream, wrap it in a Block, and write that * Block out to the passed-in OutputStream. * * @param cramVersion the CRAM major version number * @param blockStream the stream to write to */ public void write(final Version cramVersion, final OutputStream blockStream) { try (final ByteArrayOutputStream internalOutputStream = new ByteArrayOutputStream()) { internalWrite(internalOutputStream); final Block block = Block.createRawCompressionHeaderBlock(internalOutputStream.toByteArray()); block.write(cramVersion.major, blockStream); } catch (final IOException e) { throw new RuntimeIOException(e); } }
/** * Write this CompressionHeader out to an internal OutputStream, wrap it in a Block, and write that * Block out to the passed-in OutputStream. * * @param cramVersion the CRAM major version number * @param blockStream the stream to write to */ public void write(final Version cramVersion, final OutputStream blockStream) { try (final ByteArrayOutputStream internalOutputStream = new ByteArrayOutputStream()) { internalWrite(internalOutputStream); final Block block = Block.createRawCompressionHeaderBlock(internalOutputStream.toByteArray()); block.write(cramVersion.major, blockStream); } catch (final IOException e) { throw new RuntimeIOException(e); } }
@Test(dataProvider = "RoundTripTest") public void testCompressionHeaderBlockRoundTrips(final byte[] testData, final Version version) throws IOException { final Block chBlock = Block.createRawCompressionHeaderBlock(testData); final Block rtBlock = roundTrip(chBlock, version); contentCheck(rtBlock, testData, testData); }
@Test public void uncompressedTest() { final byte[] testData = "TEST STRING".getBytes(); final Block fhBlock = Block.createRawFileHeaderBlock(testData); contentCheck(fhBlock, testData, testData); final Block chBlock = Block.createRawCompressionHeaderBlock(testData); contentCheck(chBlock, testData, testData); final Block shBlock = Block.createRawSliceHeaderBlock(testData); contentCheck(shBlock, testData, testData); final Block core = Block.createRawCoreDataBlock(testData); contentCheck(core, testData, testData); }