### Question:
StopWatch { public long getMillisPerOperation(long theNumOperations) { return (long) (((double) getMillis()) / Math.max(1.0, theNumOperations)); } StopWatch();  StopWatch(Date theStart);  StopWatch(long theStart); void endCurrentTask(); String formatMillisPerOperation(long theNumOperations); String formatTaskDurations(); String formatThroughput(long theNumOperations, TimeUnit theUnit); String getEstimatedTimeRemaining(double theCompleteToDate, double theTotal); long getMillis(Date theNow); long getMillis(); long getMillisAndRestart(); long getMillisPerOperation(long theNumOperations); Date getStartedDate(); double getThroughput(long theNumOperations, TimeUnit theUnit); void restart(); void startTask(String theTaskName); @Override String toString(); static String formatMillis(long theMillis); static String formatMillis(double theMillis);  }### Answer:
@Test public void testMillisPerOperation() { int minutes = 60; StopWatch sw = new StopWatch(DateUtils.addMinutes(new Date(), -minutes)); int numOperations = 60; long millis = sw.getMillisPerOperation(numOperations); ourLog.info("{} operations in {}ms = {}ms / operation", numOperations, minutes * DateUtils.MILLIS_PER_MINUTE, millis); assertThat(millis, Matchers.lessThan(62000L)); assertThat(millis, Matchers.greaterThan(58000L)); }