@Test public void testVerbose() throws IOException { final SAMRecordSetBuilder samBuilder = new SAMRecordSetBuilder(); for (int i = 0; i < 20; i++) { samBuilder.addFrag(String.valueOf(i), 1, i, false); } for (final SAMRecord record : samBuilder) { record.setProperPairFlag(true); } final StringWriter results = new StringWriter(); final SamFileValidator validator = new SamFileValidator(new PrintWriter(results), 8000); validator.setVerbose(true, 10); validator.validateSamFileVerbose(samBuilder.getSamReader(), null); final int lineCount = results.toString().split("\n").length; Assert.assertEquals(lineCount, 11); // 1 extra message added to indicate maximum number of errors Assert.assertEquals(validator.getNumErrors(), 6); Assert.assertEquals(validator.getNumWarnings(), 4); }
@Test(dataProvider = "testCleanSamDataProvider") public void testCleanSam(final String samFile, final String expectedCigar) throws IOException { final File cleanedFile = File.createTempFile(samFile + ".", ".sam"); cleanedFile.deleteOnExit(); final String[] args = new String[]{ "INPUT=" + new File(TEST_DATA_DIR, samFile).getAbsolutePath(), "OUTPUT=" + cleanedFile.getAbsolutePath() }; Assert.assertEquals(runPicardCommandLine(args), 0); final SamFileValidator validator = new SamFileValidator(new PrintWriter(System.out), 8000); validator.setIgnoreWarnings(true); validator.setVerbose(true, 1000); validator.setErrorsToIgnore(Arrays.asList(SAMValidationError.Type.MISSING_READ_GROUP)); SamReader samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT).open(cleanedFile); final SAMRecord rec = samReader.iterator().next(); samReader.close(); Assert.assertEquals(rec.getCigarString(), expectedCigar); samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.LENIENT).open(cleanedFile); final boolean validated = validator.validateSamFileVerbose(samReader, null); samReader.close(); Assert.assertTrue(validated, "ValidateSamFile failed"); }
final boolean validated = validator.validateSamFileVerbose(samReader, null); CloserUtil.close(samReader);
break; case VERBOSE: result = validator.validateSamFileVerbose(samReader, reference); break;
break; case VERBOSE: result = validator.validateSamFileVerbose(samReader, reference); break;