@Test(dataProvider = "PcrErrorModelTestProvider", enabled = true) public void createPcrErrorModelTest(final String repeat, final int repeatLength) { final LikelihoodCalculationEngine engine = new LikelihoodCalculationEngine( (byte) 0, false, PairHMM.HMM_IMPLEMENTATION.ORIGINAL, 0.0, true, LikelihoodCalculationEngine.PCR_ERROR_MODEL.CONSERVATIVE); final String readString = Utils.dupString(repeat, repeatLength); final byte[] insQuals = new byte[readString.length()]; final byte[] delQuals = new byte[readString.length()]; Arrays.fill(insQuals, (byte) LikelihoodCalculationEngine.INITIAL_QSCORE); Arrays.fill(delQuals, (byte) LikelihoodCalculationEngine.INITIAL_QSCORE); engine.applyPCRErrorModel(readString.getBytes(), insQuals, delQuals); final RepeatCovariate repeatCovariate = new RepeatLengthCovariate(); repeatCovariate.initialize( LikelihoodCalculationEngine.MAX_STR_UNIT_LENGTH, LikelihoodCalculationEngine.MAX_REPEAT_LENGTH); for (int i = 1; i < insQuals.length; i++) { final int repeatLengthFromCovariate = repeatCovariate.findTandemRepeatUnits(readString.getBytes(), i - 1).getSecond(); final byte adjustedScore = LikelihoodCalculationEngine.getErrorModelAdjustedQual(repeatLengthFromCovariate, 3.0); Assert.assertEquals(insQuals[i - 1], adjustedScore); Assert.assertEquals(delQuals[i - 1], adjustedScore); } }