@Test(dataProvider = "emptyFeatureListProvider") public void testAddMismatchReadFeaturesNoReadFeaturesForMatch(final String refBases, final String readBases, final String fastqScores) { final List<ReadFeature> readFeatures = buildMatchOrMismatchReadFeatures(refBases, readBases, fastqScores); Assert.assertTrue(readFeatures.isEmpty()); }
/** * Test the outcome of a ACGTN mismatch. * The result should always be a {@link Substitution} read feature. */ @Test public void testAddMismatchReadFeaturesSingleSubstitution() { final List<ReadFeature> readFeatures = buildMatchOrMismatchReadFeatures("A", "C", "!"); Assert.assertEquals(1, readFeatures.size()); final ReadFeature rf = readFeatures.get(0); Assert.assertTrue(rf instanceof Substitution); final Substitution substitution = (Substitution) rf; Assert.assertEquals(1, substitution.getPosition()); Assert.assertEquals('C', substitution.getBase()); Assert.assertEquals('A', substitution.getReferenceBase()); }
/** * Test the outcome of non-ACGTN ref and read bases mismatching each other. * The result should be explicit read base and score capture via {@link ReadBase}. */ @Test public void testAddMismatchReadFeaturesAmbiguityMismatch() { final List<ReadFeature> readFeatures = buildMatchOrMismatchReadFeatures("R", "F", "1"); Assert.assertEquals(1, readFeatures.size()); final ReadFeature rf = readFeatures.get(0); Assert.assertTrue(rf instanceof ReadBase); final ReadBase readBaseFeature = (ReadBase) rf; Assert.assertEquals(1, readBaseFeature.getPosition()); Assert.assertEquals('F', readBaseFeature.getBase()); Assert.assertEquals(SAMUtils.fastqToPhred('1'), readBaseFeature.getQualityScore()); }