@Test
	public final void testCalculateExpectedDelay() {
		Task task;
		int actual_delay;
		
		task = new Task(0, 0, 0);
		actual_delay = task.calculateExpectedDelay(0);
		assertEquals(0, actual_delay);
		
		task = new Task(0, 0, 1);
		actual_delay = task.calculateExpectedDelay(0);
		assertEquals(1, actual_delay);
		
		task = new Task(0, 0, 2);
		actual_delay = task.calculateExpectedDelay(0);
		assertEquals(2, actual_delay);

		task = new Task(0, 1, 0);
		actual_delay = task.calculateExpectedDelay(1);
		assertEquals(0, actual_delay);
		
		task = new Task(0, 1, 1);
		actual_delay = task.calculateExpectedDelay(1);
		assertEquals(1, actual_delay);
		
		task = new Task(0, 1, 2);
		actual_delay = task.calculateExpectedDelay(1);
		assertEquals(2, actual_delay);

		task = new Task(0, 3, 1);
		actual_delay = task.calculateExpectedDelay(0);
		assertEquals(-2, actual_delay);
		
		task = new Task(0, 3, 1);
		actual_delay = task.calculateExpectedDelay(1);
		assertEquals(-1, actual_delay);
		
		task = new Task(0, 3, 1);
		actual_delay = task.calculateExpectedDelay(2);
		assertEquals(0, actual_delay);
		
	}