/** * Adds the provided reader's records to the detector. * @return The number of records read */ public long add(final long maxRecords, final SAMFileReader reader) { final SAMRecordIterator iterator = reader.iterator(); long recordCount = 0; try { while (iterator.hasNext() && recordCount++ != maxRecords) { this.add(iterator.next()); } return recordCount; } finally { iterator.close(); } }
@Test(dataProvider = "sortsFailCramWithoutIndex", expectedExceptions = IllegalStateException.class) public void testCramSortFail(String file, String fileReference, SAMFileHeader.SortOrder order) throws Exception { final CRAMFileReader cramFileReader = getCramFileReader(file, fileReference); final SAMRecordIterator samRecordIterator = cramFileReader.getIterator().assertSorted(order); Assert.assertTrue(samRecordIterator.hasNext()); while (samRecordIterator.hasNext()) { Assert.assertNotNull(samRecordIterator.next()); } }
@Test(dataProvider = "validSorts") public void testSortAssertionValid(String file, SAMFileHeader.SortOrder order) { SAMRecordIterator it = SamReaderFactory.makeDefault().open(new File(file)).iterator(); try { it.assertSorted(order); while (it.hasNext()) { it.next(); } } finally { it.close(); } }
@Override public SAMRecord next() { counter++; return delegate.next(); }
@Override public void close() { samRecordIterator.close(); }
public boolean hasNext() { return i.hasNext() && max != currentRecord; }
@Override public SAMRecordIterator assertSorted(SAMFileHeader.SortOrder sortOrder) { return delegate.assertSorted(sortOrder); }
@Test(expectedExceptions = IllegalStateException.class) public void testSortsDisagree() throws Exception { SAMRecordIterator it = SamReaderFactory.makeDefault().open(new File(COORDINATE_SORTED_FILE)).iterator(); try { it.assertSorted(SAMFileHeader.SortOrder.queryname); while (it.hasNext()) { it.next(); } Assert.fail("Queryname assertion should have failed on coordinate sorted file but didn't"); } finally { it.close(); } }
public SAMRecord next() { if (this.hasNext()) { currentRecord += 1; return i.next(); } else { throw new NoSuchElementException(); } }
@Override public void close() { delegate.close(); }
public SAMRecordIterator assertSorted(final SAMFileHeader.SortOrder sortOrder) { return i.assertSorted(sortOrder); } }
protected void findNextMatch() { prevNext = null; // Check if limit has been set up and the counter is still less than limit if (limit > 0 && counter >= limit) { return; } while (samRecordIterator.hasNext()) { SAMRecord next = samRecordIterator.next(); if (filters.test(next)) { prevNext = next; counter++; return; } } }
@Test(dataProvider = "invalidSorts", expectedExceptions = IllegalStateException.class) public void testSortAssertionFails(String file, SAMFileHeader.SortOrder order) throws Exception { SAMRecordIterator it = SamReaderFactory.makeDefault().open(new File(file)).iterator(); try { it.assertSorted(order); while (it.hasNext()) { it.next(); } Assert.fail("Iterated successfully over " + file + " with invalid sort assertion: " + order.name()); } finally { it.close(); } }
private void compareInputWithOutputs(final SamReader reader1, final SamReader reader2, final SAMRecordIterator inputIterator, final int expectedFirstSize) { int count = 0; for (SAMRecord rec : reader1) { SAMRecord inputRec = inputIterator.next(); Assert.assertEquals(rec.getReadName(), inputRec.getReadName()); count++; } Assert.assertEquals(count, expectedFirstSize); for (SAMRecord rec : reader2) { SAMRecord inputRec = inputIterator.next(); Assert.assertEquals(rec.getReadName(), inputRec.getReadName()); } }