@Test public void openPath() throws IOException { final Path path = localBam.toPath(); final List<SAMRecord> records; final SAMFileHeader fileHeader; try (final SamReader reader = SamReaderFactory.makeDefault().open(path)) { LOG.info(String.format("Reading from %s ...", path)); records = Iterables.slurp(reader); fileHeader = reader.getFileHeader(); reader.close(); } try (final SamReader fileReader = SamReaderFactory.makeDefault().open(localBam)) { final List<SAMRecord> expectedRecords = Iterables.slurp(fileReader); final SAMFileHeader expectedFileHeader = fileReader.getFileHeader(); Assert.assertEquals(records, expectedRecords); Assert.assertEquals(fileHeader, expectedFileHeader); } }
// See https://github.com/samtools/htsjdk/issues/76 @Test(dataProvider = "queryIntervalIssue76TestCases") public void queryIntervalIssue76( final String sequenceName, final int start, final int end, final int expectedCount) throws IOException { final File input = new File(TEST_DATA_DIR, "issue76.bam"); final SamReader reader = SamReaderFactory.makeDefault().open(input); final QueryInterval interval = new QueryInterval( reader.getFileHeader().getSequence(sequenceName).getSequenceIndex(), start, end); Assert.assertEquals(countRecordsInQueryInterval(reader, interval), expectedCount); reader.close(); }
@Test(dataProvider = "composeAllPermutationsOfSamInputResource") public void exhaustInputResourcePermutation(final SamInputResource resource) throws IOException { final SamReader reader = SamReaderFactory.makeDefault().open(resource); LOG.info(String.format("Reading from %s ...", resource)); final List<SAMRecord> slurped = Iterables.slurp(reader); final SAMFileHeader fileHeader = reader.getFileHeader(); reader.hasIndex(); reader.indexing().hasBrowseableIndex(); reader.close(); /* Ensure all tests have read the same records in the same order or, if this is the first test, set it as the template. */ observedHeaders.add(fileHeader); observedRecordOrdering.add(slurped); Assert.assertEquals(observedHeaders.size(), 1, "read different headers than other testcases"); Assert.assertEquals( observedRecordOrdering.size(), 1, "read different records than other testcases"); }