class TestTwoSum:
def setup_method(self):
self.solution = Solution()
@logged_test
@pytest.mark.parametrize(
"nums, target, expected",
[
([2, 7, 11, 15], 9, [0, 1]),
([3, 3], 6, [0, 1]), # duplicate values
([-1, -2, -3, -4, -5], -8, [2, 4]), # all negatives
([1, 2], 5, []), # no answer exists
([-1000000000, 1000000000], 0, [0, 1]), # boundary values
],
)
def test_two_sum(self, nums: list[int], target: int, expected: list[int]):
result = run_two_sum(Solution, nums, target)
assert_two_sum(result, expected)