Skip to content

Commit 05d6dcc

Browse files
author
LUKMANul
committed
Add JUnit tests for QuickSelectMedianOfMedians
1 parent dc9d377 commit 05d6dcc

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.thealgorithms.divideandconquer;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertThrows;
5+
6+
import org.junit.jupiter.api.Test;
7+
8+
public class QuickSelectMedianOfMediansTest {
9+
10+
@Test
11+
public void testBasicCases() {
12+
assertEquals(7, QuickSelectMedianOfMedians.quickSelect(new int[]{12, 3, 5, 7, 4, 19, 26}, 3));
13+
assertEquals(4, QuickSelectMedianOfMedians.quickSelect(new int[]{4, 2, 5, 2, 7, 4, 3}, 4));
14+
assertEquals(0, QuickSelectMedianOfMedians.quickSelect(new int[]{-5, -10, 0, 5, 10}, 2));
15+
assertEquals(3, QuickSelectMedianOfMedians.quickSelect(new int[]{8, 3, 1}, 1));
16+
assertEquals(10, QuickSelectMedianOfMedians.quickSelect(new int[]{10, 20, 30, 40, 50}, 0));
17+
assertEquals(50, QuickSelectMedianOfMedians.quickSelect(new int[]{10, 20, 30, 40, 50}, 4));
18+
assertEquals(42, QuickSelectMedianOfMedians.quickSelect(new int[]{42}, 0));
19+
}
20+
21+
@Test
22+
public void testInvalidInputs() {
23+
assertThrows(IllegalArgumentException.class, () ->
24+
QuickSelectMedianOfMedians.quickSelect(null, 0));
25+
assertThrows(IllegalArgumentException.class, () ->
26+
QuickSelectMedianOfMedians.quickSelect(new int[]{1, 2, 3}, -1));
27+
assertThrows(IllegalArgumentException.class, () ->
28+
QuickSelectMedianOfMedians.quickSelect(new int[]{1, 2, 3}, 3));
29+
assertThrows(IllegalArgumentException.class, () ->
30+
QuickSelectMedianOfMedians.quickSelect(new int[]{}, 0));
31+
}
32+
}

0 commit comments

Comments
 (0)