public RecordCountPerUnitCollector(
     final String sample, final String library, final String readGroup) {
   metric = new TotalNumberMetric();
   metric.SAMPLE = sample;
   metric.LIBRARY = library;
   metric.READ_GROUP = readGroup;
   unitsToMetrics.put(
       noneOrStr(sample) + "_" + noneOrStr(library) + "_" + noneOrStr(readGroup), metric);
 }
      @Override
      public void acceptRecord(final TestArg args) {
        numProcessed += 1;
        metric.TALLY += 1;
        if (metric.SAMPLE != null) {
          Assert.assertEquals(metric.SAMPLE, args.samRecord.getReadGroup().getSample());
        }
        if (metric.LIBRARY != null) {
          Assert.assertEquals(metric.LIBRARY, args.samRecord.getReadGroup().getLibrary());
        }

        if (metric.READ_GROUP != null) {
          Assert.assertEquals(metric.READ_GROUP, args.samRecord.getReadGroup().getPlatformUnit());
        }
      }
 @Override
 public void finish() {
   metric.FINISHED = true;
 }