5
5
import java .util .ArrayList ;
6
6
import java .util .Arrays ;
7
7
import java .util .List ;
8
+ import java .util .stream .Stream ;
8
9
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 ;
10
13
11
14
public class ThreeSumProblemTest {
12
15
@@ -17,60 +20,33 @@ public void setup() {
17
20
tsp = new ThreeSumProblem (); // Initialize the class before each test
18
21
}
19
22
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 ) {
25
26
assertEquals (expected , tsp .bruteForce (nums , target ));
26
27
}
27
28
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 ) {
41
32
assertEquals (expected , tsp .twoPointer (nums , target ));
42
33
}
43
34
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 ));
50
39
}
51
40
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 <>()));
59
43
}
60
44
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 ))));
67
47
}
68
48
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 <>()));
75
51
}
76
52
}
0 commit comments