Skip to content

Commit d3d3bc8

Browse files
committed
Improve test readability and maintainability
1 parent d21b09b commit d3d3bc8

File tree

1 file changed

+10
-27
lines changed

1 file changed

+10
-27
lines changed

src/test/java/com/thealgorithms/scheduling/PreemptivePrioritySchedulingTest.java

+10-27
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,28 @@
33
import static org.junit.jupiter.api.Assertions.assertEquals;
44

55
import com.thealgorithms.devutils.entities.ProcessDetails;
6-
import java.util.ArrayList;
76
import java.util.List;
8-
import org.junit.jupiter.api.Test;
7+
import java.util.stream.Stream;
8+
import org.junit.jupiter.params.ParameterizedTest;
9+
import org.junit.jupiter.params.provider.Arguments;
10+
import org.junit.jupiter.params.provider.MethodSource;
911

1012
/**
1113
* Test Cases of Preemptive Priority Scheduling Algorithm
1214
*
1315
* @author [Bama Charan Chhandogi](https://www.github.com/BamaCharanChhandogi)
1416
*/
1517
class PreemptivePrioritySchedulingTest {
16-
17-
@Test
18-
void testPreemptivePriorityScheduling() {
19-
List<ProcessDetails> processes = new ArrayList<>();
20-
processes.add(new ProcessDetails("P1", 0, 5, 2));
21-
processes.add(new ProcessDetails("P2", 1, 4, 4));
22-
processes.add(new ProcessDetails("P3", 2, 2, 6));
23-
processes.add(new ProcessDetails("P4", 4, 1, 8));
24-
18+
@ParameterizedTest
19+
@MethodSource("provideProcessesAndExpectedSchedules")
20+
void testPreemptivePriorityScheduling(List<ProcessDetails> processes, List<String> expectedSchedule) {
2521
PreemptivePriorityScheduling scheduler = new PreemptivePriorityScheduling(processes);
2622
scheduler.scheduleProcesses();
27-
28-
List<String> expectedSchedule = List.of("P1", "P2", "P3", "P3", "P4", "P2", "P2", "P2", "P1", "P1", "P1", "P1");
29-
3023
assertEquals(expectedSchedule, scheduler.ganttChart);
3124
}
3225

33-
@Test
34-
void testPreemptivePrioritySchedulingWithIdleTime() {
35-
List<ProcessDetails> processes = new ArrayList<>();
36-
processes.add(new ProcessDetails("P1", 2, 5, 3));
37-
processes.add(new ProcessDetails("P2", 5, 3, 5));
38-
processes.add(new ProcessDetails("P3", 7, 1, 9));
39-
40-
PreemptivePriorityScheduling scheduler = new PreemptivePriorityScheduling(processes);
41-
scheduler.scheduleProcesses();
42-
43-
List<String> expectedSchedule = List.of("Idle", "Idle", "P1", "P1", "P1", "P2", "P2", "P3", "P2", "P1", "P1");
44-
45-
assertEquals(expectedSchedule, scheduler.ganttChart);
26+
static Stream<Arguments> provideProcessesAndExpectedSchedules() {
27+
return Stream.of(Arguments.of(List.of(new ProcessDetails("P1", 0, 5, 2), new ProcessDetails("P2", 1, 4, 4), new ProcessDetails("P3", 2, 2, 6), new ProcessDetails("P4", 4, 1, 8)), List.of("P1", "P2", "P3", "P3", "P4", "P2", "P2", "P2", "P1", "P1", "P1", "P1")),
28+
Arguments.of(List.of(new ProcessDetails("P1", 2, 5, 3), new ProcessDetails("P2", 5, 3, 5), new ProcessDetails("P3", 7, 1, 9)), List.of("Idle", "Idle", "P1", "P1", "P1", "P2", "P2", "P3", "P2", "P1", "P1")));
4629
}
4730
}

0 commit comments

Comments
 (0)