11import unittest
22from typing import List
33from parameterized import parameterized
4- from algorithms .two_pointers .three_sum import three_sum
4+ from algorithms .two_pointers .three_sum import three_sum , three_number_sum
55
66THREE_SUM_TEST_CASES = [
77 ([- 1 , 0 , 1 , 2 , - 1 , - 4 ], [[- 1 , - 1 , 2 ], [- 1 , 0 , 1 ]]),
1414 ([- 1 , 0 , 1 , 2 , - 1 , - 4 , - 1 , 2 , 1 ], [[- 1 , - 1 , 2 ], [- 1 , 0 , 1 ], [- 4 , 2 , 2 ]]),
1515]
1616
17+ THREE_NUMBER_SUM_TEST_CASES = [
18+ ([12 , 3 , 1 , 2 , - 6 , 5 , - 8 , 6 ], 0 , [[- 8 , 2 , 6 ], [- 8 , 3 , 5 ], [- 6 , 1 , 5 ]]),
19+ ]
20+
1721
1822class ThreeSumTestCases (unittest .TestCase ):
1923 @parameterized .expand (THREE_SUM_TEST_CASES )
@@ -22,5 +26,14 @@ def test_three_sum(self, nums: List[int], expected: List[List[int]]):
2226 self .assertEqual (expected , actual )
2327
2428
29+ class ThreeNumberSumTestCases (unittest .TestCase ):
30+ @parameterized .expand (THREE_NUMBER_SUM_TEST_CASES )
31+ def test_three_number_sum (
32+ self , nums : List [int ], target_sum : int , expected : List [List [int ]]
33+ ):
34+ actual = three_number_sum (nums , target_sum )
35+ self .assertEqual (expected , actual )
36+
37+
2538if __name__ == "__main__" :
2639 unittest .main ()
0 commit comments