@@ -91,4 +91,49 @@ public void testFourSum2_singleQuadruplet() {
91
91
assertEquals (1 , result4 .size ()); // Expect only one quadruplet
92
92
assertTrue (result4 .contains (List .of (2 , 2 , 2 , 2 )));
93
93
}
94
+
95
+ @ Test
96
+ public void testFourSum1_withDuplicateFirstIndex () {
97
+ FourSumProblem solver = new FourSumProblem ();
98
+ int [] nums = {1 , 1 , 0 , 0 , -1 , -1 , 2 , 2 };
99
+ int target = 0 ;
100
+ List <List <Integer >> result = solver .fourSum1 (nums , target );
101
+ assertTrue (!result .isEmpty ()); // Expect some quadruplets
102
+ }
103
+
104
+ @ Test
105
+ public void testFourSum1_withDuplicateSecondIndex () {
106
+ FourSumProblem solver = new FourSumProblem ();
107
+ int [] nums = {2 , 2 , 2 , 2 , 2 , 2 , 0 , 0 };
108
+ int target = 4 ;
109
+ List <List <Integer >> result = solver .fourSum1 (nums , target );
110
+ assertEquals (1 , result .size ()); // Expect only one quadruplet
111
+ assertTrue (result .contains (List .of (0 , 0 , 2 , 2 )));
112
+ }
113
+
114
+ @ Test
115
+ public void testFourSum1_withSuccessfulSum () {
116
+ FourSumProblem solver = new FourSumProblem ();
117
+ int [] nums = {1 , 0 , -1 , 0 , -2 , 2 };
118
+ int target = 0 ;
119
+ List <List <Integer >> result = solver .fourSum1 (nums , target );
120
+ assertEquals (3 , result .size ()); // Expect 3 quadruplets
121
+ assertTrue (result .contains (List .of (-2 , -1 , 1 , 2 )));
122
+ assertTrue (result .contains (List .of (-2 , 0 , 0 , 2 )));
123
+ assertTrue (result .contains (List .of (-1 , 0 , 0 , 1 )));
124
+ }
125
+
126
+ @ Test
127
+ public void testFourSum2_withDuplicateSecondIndex () {
128
+ FourSumProblem solver = new FourSumProblem ();
129
+
130
+ // Case with duplicates affecting the second loop index (j)
131
+ int [] nums = {2 , 2 , 2 , 2 , 2 , 0 , 0 };
132
+ int target = 4 ;
133
+ List <List <Integer >> result = solver .fourSum2 (nums , target );
134
+
135
+ assertEquals (1 , result .size ()); // Expect only one quadruplet
136
+ assertTrue (result .contains (List .of (0 , 0 , 2 , 2 ))); // The only valid quadruplet
137
+ }
138
+
94
139
}
0 commit comments