Skip to content

Commit 6ef1f7c

Browse files
authored
Add tests, remove main in ThreeSumProblem (#5781)
1 parent 1dfa2e5 commit 6ef1f7c

File tree

3 files changed

+53
-19
lines changed

3 files changed

+53
-19
lines changed

DIRECTORY.md

+1
Original file line numberDiff line numberDiff line change
@@ -1023,6 +1023,7 @@
10231023
* [MirrorOfMatrixTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/MirrorOfMatrixTest.java)
10241024
* [PalindromeSinglyLinkedListTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/PalindromeSinglyLinkedListTest.java)
10251025
* [RangeInSortedArrayTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/RangeInSortedArrayTest.java)
1026+
* [ThreeSumProblemTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/ThreeSumProblemTest.java)
10261027
* [TwoSumProblemTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/TwoSumProblemTest.java)
10271028
* [WordBoggleTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/misc/WordBoggleTest.java)
10281029
* others

src/main/java/com/thealgorithms/misc/ThreeSumProblem.java

-19
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,10 @@
77
import java.util.HashSet;
88
import java.util.LinkedHashSet;
99
import java.util.List;
10-
import java.util.Scanner;
1110
import java.util.Set;
1211

1312
public class ThreeSumProblem {
1413

15-
public static void main(String[] args) {
16-
Scanner scan = new Scanner(System.in);
17-
System.out.print("Enter the target sum ");
18-
int ts = scan.nextInt();
19-
System.out.print("Enter the number of elements in the array ");
20-
int n = scan.nextInt();
21-
System.out.println("Enter all your array elements:");
22-
int[] arr = new int[n];
23-
for (int i = 0; i < n; i++) {
24-
arr[i] = scan.nextInt();
25-
}
26-
ThreeSumProblem th = new ThreeSumProblem();
27-
System.out.println("Brute Force Approach\n" + (th.bruteForce(arr, ts)) + "\n");
28-
System.out.println("Two Pointer Approach\n" + (th.twoPointer(arr, ts)) + "\n");
29-
System.out.println("Hashmap Approach\n" + (th.hashMap(arr, ts)));
30-
scan.close();
31-
}
32-
3314
public List<List<Integer>> bruteForce(int[] nums, int target) {
3415
List<List<Integer>> arr = new ArrayList<List<Integer>>();
3516

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.thealgorithms.misc;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import java.util.ArrayList;
6+
import java.util.Arrays;
7+
import java.util.List;
8+
import java.util.stream.Stream;
9+
import org.junit.jupiter.api.BeforeEach;
10+
import org.junit.jupiter.params.ParameterizedTest;
11+
import org.junit.jupiter.params.provider.Arguments;
12+
import org.junit.jupiter.params.provider.MethodSource;
13+
14+
public class ThreeSumProblemTest {
15+
16+
private ThreeSumProblem tsp;
17+
18+
@BeforeEach
19+
public void setup() {
20+
tsp = new ThreeSumProblem();
21+
}
22+
23+
@ParameterizedTest
24+
@MethodSource("bruteForceTestProvider")
25+
public void testBruteForce(int[] nums, int target, List<List<Integer>> expected) {
26+
assertEquals(expected, tsp.bruteForce(nums, target));
27+
}
28+
29+
@ParameterizedTest
30+
@MethodSource("twoPointerTestProvider")
31+
public void testTwoPointer(int[] nums, int target, List<List<Integer>> expected) {
32+
assertEquals(expected, tsp.twoPointer(nums, target));
33+
}
34+
35+
@ParameterizedTest
36+
@MethodSource("hashMapTestProvider")
37+
public void testHashMap(int[] nums, int target, List<List<Integer>> expected) {
38+
assertEquals(expected, tsp.hashMap(nums, target));
39+
}
40+
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<>()));
43+
}
44+
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))));
47+
}
48+
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<>()));
51+
}
52+
}

0 commit comments

Comments
 (0)