@Test(dataProvider = "testReadsData") public void testReads(final IntervalList list, final SAMFileHeader fileHeader, final Collection<SAMRecord> recordCollection, final int expectedPassing, final int expectedTotal ) { IntervalFilter intervalFilter = new IntervalFilter(list.getIntervals(), fileHeader); FilteringSamIterator filteringSamIterator = new FilteringSamIterator(recordCollection.iterator(), intervalFilter); // check that the total number of passing reads is the expected number Assert.assertEquals(filteringSamIterator.stream() // check that the reads that pass have the word "intersecting" in their name .peek(s -> Assert.assertTrue(s.getReadName().contains("intersecting"))) .count(), expectedPassing); //check that the total number of reads given in the Collection, is the expected number Assert.assertEquals(recordCollection.size(), expectedTotal); } }
@Test public void testFilterNames() { SAMRecordSetBuilder builder = new SAMRecordSetBuilder(); names.forEach(builder::addUnmappedFragment); FilteringSamIterator filteringSamIterator = new FilteringSamIterator(builder.getRecords().iterator(), new ReadNameFilter(new File(TEST_DIR, "names.txt"), true)); Assert.assertEquals(filteringSamIterator.stream() .peek(s -> Assert.assertTrue(s.getReadName().contains("filter"))) .count(), 3); }
@Test(dataProvider = "TrueFalse") public void testFilterNamesEmptySetTrue(boolean include) { SAMRecordSetBuilder builder = new SAMRecordSetBuilder(); names.forEach(builder::addUnmappedFragment); FilteringSamIterator filteringSamIterator = new FilteringSamIterator(builder.getRecords().iterator(), new ReadNameFilter(Collections.emptySet(), include)); Assert.assertEquals(filteringSamIterator.hasNext(), !include); Assert.assertEquals(filteringSamIterator.stream().count(), include ? 0 : names.size()); } }
@Test public void testPrimaryRecords() { SAMRecordSetBuilder builder = new SAMRecordSetBuilder(); int i = 0; for (boolean record1Unmapped : new boolean[]{true, false}) { for (boolean record2Unmapped : new boolean[]{true, false}) { for (boolean record1Strand : new boolean[]{true, false}) { for (boolean record2Strand : new boolean[]{true, false}) { builder.addPair("pair" + i, 0, 10, 30, record1Unmapped, record2Unmapped, null, null, record1Strand, record2Strand, false, false, 10); builder.addFrag("frag" + i++, 0, 10, record1Unmapped, record2Strand, null, null, 10, false); } } } } FilteringSamIterator filteringSamIterator = new FilteringSamIterator(builder.getRecords().iterator(), new SecondaryAlignmentFilter()); // i is incremented once for each 3 records that are added (a pair and a fragment) Assert.assertEquals(filteringSamIterator.stream().count(), i * 3); }
Assert.assertEquals(filteringSamIterator.stream().count(), i * 3);
Assert.assertEquals(filteringSamIterator.stream().count(), i * 3);