public static void getWithPriorityExecutionDurationPercentilesTest(StatisticPriorityScheduler scheduler) {
assertEquals(0, scheduler.getExecutionDurationPercentiles(TaskPriority.High, 50).get(50.), 0);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.Low);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.Low);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.Low);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.Low);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.Low);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.High);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.High);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.High);
scheduler.execute(new ClockUpdateRunnable(), TaskPriority.High);
scheduler.execute(new ClockUpdateRunnable(DELAY_TIME), TaskPriority.High);
blockTillSchedulerIdle(scheduler, 10);
assertEquals(1, scheduler.getExecutionDurationPercentiles(TaskPriority.High, 75).get(75.), 1);
assertTrue(scheduler.getExecutionDurationPercentiles(TaskPriority.High, 90).get(90.) >= (DELAY_TIME-ALLOWED_VARIANCE));
assertEquals(1, scheduler.getExecutionDurationPercentiles(TaskPriority.Low, 90).get(90.), 1);
}