### Question:
AnnotationUtils { public static int getNumClippedBasesAtEnd(final GATKSAMRecord read) { final Cigar c = read.getCigar(); CigarElement last = c.getCigarElement(c.numCigarElements() - 1); int numEndClippedBases = 0; if (last.getOperator() == CigarOperator.H) { numEndClippedBases = last.getLength(); } final byte[] unclippedReadBases = read.getReadBases(); final byte[] unclippedReadQuals = read.getBaseQualities(); for (int i = unclippedReadBases.length - numEndClippedBases - 1; i >= 0; i--) { if (unclippedReadQuals[i] < PairHMMIndelErrorModel.BASE_QUAL_THRESHOLD) numEndClippedBases++; else break; } return numEndClippedBases; }  static String encodeValueList( final List<Double> valueList, final String precisionFormat ); static String encodeStringList( final List<String> stringList); static boolean walkerSupportsAlleleSpecificAnnotations(final AnnotatorCompatible walker); static boolean walkerRequiresRawData(final AnnotatorCompatible walker); static boolean isAppropriateInput(final String annotation, final AnnotatorCompatible walker, final PerReadAlleleLikelihoodMap map, final Genotype g, final boolean[] warningsLogged, final Logger logger); static int getFinalVariantReadPosition(final GATKSAMRecord read, final int initialReadPosition); static int getNumClippedBasesAtStart(final SAMRecord read); static int getNumAlignedBases(final GATKSAMRecord read); static int getNumClippedBasesAtEnd(final GATKSAMRecord read); static final String ANNOTATION_HC_WARN_MSG; static final int WARNINGS_LOGGED_SIZE; }### Answer:
@Test(dataProvider = "getNumClippedBasesAtEndTestReads") public void testGetNumClippedBasesAtEnd(GATKSAMRecord read, int expected) throws Exception { Assert.assertEquals(AnnotationUtils.getNumClippedBasesAtEnd(read), expected); }