public static void getAverageExecutionDurationNoInputTest(StatisticPriorityScheduler scheduler) { assertEquals(-1, scheduler.getAverageExecutionDuration(), 0); }
public static void getAverageExecutionDurationSimpleTest(StatisticPriorityScheduler scheduler) { assertEquals(-1, scheduler.getAverageExecutionDuration(), 0); scheduler.execute(new ClockUpdateRunnable()); blockTillSchedulerIdle(scheduler, 1); assertEquals(1, scheduler.getAverageExecutionDuration(), 1); scheduler.execute(new ClockUpdateRunnable(DELAY_TIME)); blockTillSchedulerIdle(scheduler, 2); assertTrue(scheduler.getAverageExecutionDuration() >= DELAY_TIME / 2); }
public static void getWithPriorityAverageExecutionDurationTest(StatisticPriorityScheduler scheduler) { int lowPriorityCount = TEST_QTY; int highPriorityCount = TEST_QTY * 2; for (int i = 0; i < lowPriorityCount; i++) { scheduler.execute(DoNothingRunnable.instance(), TaskPriority.Low); } TestRunnable lastRunnable = null; for (int i = 0; i < highPriorityCount; i++) { lastRunnable = new TestRunnable(); scheduler.execute(lastRunnable, TaskPriority.High); } lastRunnable.blockTillFinished(); // block till all are finished blockTillSchedulerIdle(scheduler, lowPriorityCount + highPriorityCount); List<Long> runTimes = scheduler.getExecutionDurationSamples(TaskPriority.High); assertEquals(highPriorityCount, runTimes.size()); double totalRunTime = 0; Iterator<Long> it = runTimes.iterator(); while (it.hasNext()) { totalRunTime += it.next(); } double avgRunTime = totalRunTime / runTimes.size(); assertEquals(avgRunTime, scheduler.getAverageExecutionDuration(TaskPriority.High), 0); }
assertEquals(avgRunTime, scheduler.getAverageExecutionDuration(), 0);
public static void getWithPriorityAverageExecutionDurationNoInputTest(StatisticPriorityScheduler scheduler) { TestRunnable tr = new TestRunnable(); scheduler.execute(tr, TaskPriority.Low); tr.blockTillFinished(); blockTillSchedulerIdle(scheduler, 1); assertEquals(-1, scheduler.getAverageExecutionDuration(TaskPriority.High), 0); }
public static void resetCollectedStatsTest(StatisticPriorityScheduler scheduler) { TestRunnable lastRunnable = null; boolean flip = false; for (int i = 0; i < TEST_QTY; i++) { lastRunnable = new TestRunnable(); if (flip) { scheduler.execute(lastRunnable, TaskPriority.High); flip = false; } else { scheduler.execute(lastRunnable, TaskPriority.Low); flip = true; } } lastRunnable.blockTillFinished(); // block till all are finished blockTillSchedulerIdle(scheduler, TEST_QTY); // reset stats scheduler.resetCollectedStats(); assertEquals(-1, scheduler.getAverageExecutionDuration(), 0); for (TaskPriority p : TaskPriority.values()) { assertEquals(-1, scheduler.getAverageExecutionDelay(p), 0); } }