Skip to content

Commit 30fa372

Browse files
committed
Fix
1 parent d7ab24b commit 30fa372

File tree

1 file changed

+20
-44
lines changed

1 file changed

+20
-44
lines changed

src/test/java/com/thealgorithms/misc/ThreeSumProblemTest.java

Lines changed: 20 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
import java.util.ArrayList;
66
import java.util.Arrays;
77
import java.util.List;
8+
import java.util.stream.Stream;
89
import org.junit.jupiter.api.BeforeEach;
9-
import org.junit.jupiter.api.Test;
10+
import org.junit.jupiter.params.ParameterizedTest;
11+
import org.junit.jupiter.params.provider.Arguments;
12+
import org.junit.jupiter.params.provider.MethodSource;
1013

1114
public class ThreeSumProblemTest {
1215

@@ -17,60 +20,33 @@ public void setup() {
1720
tsp = new ThreeSumProblem(); // Initialize the class before each test
1821
}
1922

20-
@Test
21-
public void testBruteForceValidTriplets() {
22-
int[] nums = {1, 2, -3, 4, -2, -1};
23-
int target = 0;
24-
List<List<Integer>> expected = Arrays.asList(Arrays.asList(-3, 1, 2), Arrays.asList(-3, -1, 4));
23+
@ParameterizedTest
24+
@MethodSource("bruteForceTestProvider")
25+
public void testBruteForce(int[] nums, int target, List<List<Integer>> expected) {
2526
assertEquals(expected, tsp.bruteForce(nums, target));
2627
}
2728

28-
@Test
29-
public void testBruteForceNoTripletFound() {
30-
int[] nums = {1, 2, 3, 4, 5};
31-
int target = 50; // No valid triplet exists
32-
List<List<Integer>> expected = new ArrayList<>(); // Expecting an empty list
33-
assertEquals(expected, tsp.bruteForce(nums, target));
34-
}
35-
36-
@Test
37-
public void testTwoPointerValidTriplets() {
38-
int[] nums = {0, -1, 2, -3, 1};
39-
int target = 0;
40-
List<List<Integer>> expected = Arrays.asList(Arrays.asList(-3, 1, 2), Arrays.asList(-1, 0, 1));
29+
@ParameterizedTest
30+
@MethodSource("twoPointerTestProvider")
31+
public void testTwoPointer(int[] nums, int target, List<List<Integer>> expected) {
4132
assertEquals(expected, tsp.twoPointer(nums, target));
4233
}
4334

44-
@Test
45-
public void testTwoPointerNegativeNumbers() {
46-
int[] nums = {-5, -4, -3, -2, -1};
47-
int target = -10;
48-
List<List<Integer>> expected = Arrays.asList(Arrays.asList(-5, -4, -1), Arrays.asList(-5, -3, -2));
49-
assertEquals(expected, tsp.twoPointer(nums, target));
35+
@ParameterizedTest
36+
@MethodSource("hashMapTestProvider")
37+
public void testHashMap(int[] nums, int target, List<List<Integer>> expected) {
38+
assertEquals(expected, tsp.hashMap(nums, target));
5039
}
5140

52-
@Test
53-
public void testHashMapValidTriplets() {
54-
int[] nums = {1, 2, -1, -4, 3, 0};
55-
int target = 2;
56-
List<List<Integer>> expected = Arrays.asList(Arrays.asList(-1, 0, 3), Arrays.asList(-1, 1, 2) // Check for distinct triplets
57-
);
58-
assertEquals(expected, tsp.hashMap(nums, target));
41+
private static Stream<Arguments> bruteForceTestProvider() {
42+
return Stream.of(Arguments.of(new int[] {1, 2, -3, 4, -2, -1}, 0, Arrays.asList(Arrays.asList(-3, 1, 2), Arrays.asList(-3, -1, 4))), Arguments.of(new int[] {1, 2, 3, 4, 5}, 50, new ArrayList<>()));
5943
}
6044

61-
@Test
62-
public void testHashMapNoTripletFound() {
63-
int[] nums = {5, 7, 9, 11};
64-
int target = 10;
65-
List<List<Integer>> expected = new ArrayList<>();
66-
assertEquals(expected, tsp.hashMap(nums, target));
45+
private static Stream<Arguments> twoPointerTestProvider() {
46+
return Stream.of(Arguments.of(new int[] {0, -1, 2, -3, 1}, 0, Arrays.asList(Arrays.asList(-3, 1, 2), Arrays.asList(-1, 0, 1))), Arguments.of(new int[] {-5, -4, -3, -2, -1}, -10, Arrays.asList(Arrays.asList(-5, -4, -1), Arrays.asList(-5, -3, -2))));
6747
}
6848

69-
@Test
70-
public void testHashMapEmptyArray() {
71-
int[] nums = {};
72-
int target = 0;
73-
List<List<Integer>> expected = new ArrayList<>();
74-
assertEquals(expected, tsp.hashMap(nums, target));
49+
private static Stream<Arguments> hashMapTestProvider() {
50+
return Stream.of(Arguments.of(new int[] {1, 2, -1, -4, 3, 0}, 2, Arrays.asList(Arrays.asList(-1, 0, 3), Arrays.asList(-1, 1, 2))), Arguments.of(new int[] {5, 7, 9, 11}, 10, new ArrayList<>()), Arguments.of(new int[] {}, 0, new ArrayList<>()));
7551
}
7652
}

0 commit comments

Comments
 (0)