Skip to content

Commit 6fea85e

Browse files
committed
Fixed Test
1 parent d29afd9 commit 6fea85e

File tree

1 file changed

+35
-13
lines changed

1 file changed

+35
-13
lines changed
Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,49 @@
11
package com.thealgorithms.divideandconquer;
22

3-
import static org.junit.jupiter.api.Assertions.assertEquals;
4-
import static org.junit.jupiter.api.Assertions.assertThrows;
3+
import static org.junit.jupiter.api.Assertions.*;
54

65
import org.junit.jupiter.api.Test;
76

87
class DeterministicQuickSelectTest {
98

109
@Test
11-
void testSelectKthSmallest() {
10+
void testSelectKthSmallestBasic() {
1211
int[] arr = {7, 10, 4, 3, 20, 15};
13-
assertEquals(3, DeterministicQuickSelect.select(arr, 1));
14-
assertEquals(4, DeterministicQuickSelect.select(arr, 2));
15-
assertEquals(7, DeterministicQuickSelect.select(arr, 3));
16-
assertEquals(10, DeterministicQuickSelect.select(arr, 4));
17-
assertEquals(15, DeterministicQuickSelect.select(arr, 5));
18-
assertEquals(20, DeterministicQuickSelect.select(arr, 6));
12+
assertEquals(3, DeterministicQuickSelect.select(arr.clone(), 1)); // smallest
13+
assertEquals(4, DeterministicQuickSelect.select(arr.clone(), 2));
14+
assertEquals(7, DeterministicQuickSelect.select(arr.clone(), 3));
15+
assertEquals(10, DeterministicQuickSelect.select(arr.clone(), 4));
16+
assertEquals(15, DeterministicQuickSelect.select(arr.clone(), 5));
17+
assertEquals(20, DeterministicQuickSelect.select(arr.clone(), 6)); // largest
1918
}
2019

2120
@Test
22-
void testInvalidInput() {
23-
assertThrows(IllegalArgumentException.class, () -> DeterministicQuickSelect.select(null, 1));
24-
assertThrows(IllegalArgumentException.class, () -> DeterministicQuickSelect.select(new int[] {1, 2}, 0));
25-
assertThrows(IllegalArgumentException.class, () -> DeterministicQuickSelect.select(new int[] {1, 2}, 3));
21+
void testSelectSingleElement() {
22+
int[] arr = {42};
23+
assertEquals(42, DeterministicQuickSelect.select(arr, 1));
24+
}
25+
26+
@Test
27+
void testSelectWithDuplicates() {
28+
int[] arr = {5, 3, 8, 5, 2, 3};
29+
assertEquals(2, DeterministicQuickSelect.select(arr.clone(), 1));
30+
assertEquals(3, DeterministicQuickSelect.select(arr.clone(), 2));
31+
assertEquals(3, DeterministicQuickSelect.select(arr.clone(), 3));
32+
assertEquals(5, DeterministicQuickSelect.select(arr.clone(), 4));
33+
assertEquals(5, DeterministicQuickSelect.select(arr.clone(), 5));
34+
assertEquals(8, DeterministicQuickSelect.select(arr.clone(), 6));
35+
}
36+
37+
@Test
38+
void testSelectEmptyArray() {
39+
int[] arr = {};
40+
assertThrows(IllegalArgumentException.class, () -> DeterministicQuickSelect.select(arr, 1));
41+
}
42+
43+
@Test
44+
void testSelectInvalidK() {
45+
int[] arr = {1, 2, 3};
46+
assertThrows(IllegalArgumentException.class, () -> DeterministicQuickSelect.select(arr, 0)); // k < 1
47+
assertThrows(IllegalArgumentException.class, () -> DeterministicQuickSelect.select(arr, 4)); // k > length
2648
}
2749
}

0 commit comments

Comments
 (0)