|
3 | 3 | import static org.junit.jupiter.api.Assertions.assertFalse;
|
4 | 4 | import static org.junit.jupiter.api.Assertions.assertTrue;
|
5 | 5 |
|
6 |
| -import org.junit.jupiter.api.Test; |
| 6 | +import java.util.stream.Stream; |
| 7 | +import org.junit.jupiter.params.ParameterizedTest; |
| 8 | +import org.junit.jupiter.params.provider.Arguments; |
| 9 | +import org.junit.jupiter.params.provider.MethodSource; |
| 10 | + |
7 | 11 | /**
|
8 |
| - * test Cases of Numbers Different Signs |
| 12 | + * Parameterized tests for NumbersDifferentSigns class, which checks |
| 13 | + * if two integers have different signs using bitwise XOR. |
| 14 | + * |
9 | 15 | * @author Bama Charan Chhandogi
|
10 | 16 | */
|
11 | 17 | class NumbersDifferentSignsTest {
|
12 | 18 |
|
13 |
| - @Test |
14 |
| - void testDifferentSignsPositiveNegative() { |
15 |
| - assertTrue(NumbersDifferentSigns.differentSigns(2, -1)); |
| 19 | + @ParameterizedTest |
| 20 | + @MethodSource("provideTestCases") |
| 21 | + void testDifferentSigns(int num1, int num2, boolean expected) { |
| 22 | + if (expected) { |
| 23 | + assertTrue(NumbersDifferentSigns.differentSigns(num1, num2)); |
| 24 | + } else { |
| 25 | + assertFalse(NumbersDifferentSigns.differentSigns(num1, num2)); |
| 26 | + } |
16 | 27 | }
|
17 | 28 |
|
18 |
| - @Test |
19 |
| - void testDifferentSignsNegativePositive() { |
20 |
| - assertTrue(NumbersDifferentSigns.differentSigns(-3, 7)); |
21 |
| - } |
| 29 | + private static Stream<Arguments> provideTestCases() { |
| 30 | + return Stream.of( |
| 31 | + // Different signs (positive and negative) |
| 32 | + Arguments.of(2, -1, Boolean.TRUE), Arguments.of(-3, 7, Boolean.TRUE), |
22 | 33 |
|
23 |
| - @Test |
24 |
| - void testSameSignsPositive() { |
25 |
| - assertFalse(NumbersDifferentSigns.differentSigns(10, 20)); |
26 |
| - } |
| 34 | + // Same signs (both positive) |
| 35 | + Arguments.of(10, 20, Boolean.FALSE), Arguments.of(0, 5, Boolean.FALSE), // 0 is considered non-negative |
| 36 | + |
| 37 | + // Same signs (both negative) |
| 38 | + Arguments.of(-5, -8, Boolean.FALSE), |
| 39 | + |
| 40 | + // Edge case: Large positive and negative values |
| 41 | + Arguments.of(Integer.MAX_VALUE, Integer.MIN_VALUE, Boolean.TRUE), |
27 | 42 |
|
28 |
| - @Test |
29 |
| - void testSameSignsNegative() { |
30 |
| - assertFalse(NumbersDifferentSigns.differentSigns(-5, -8)); |
| 43 | + // Edge case: Same number (positive and negative) |
| 44 | + Arguments.of(-42, -42, Boolean.FALSE), Arguments.of(42, 42, Boolean.FALSE)); |
31 | 45 | }
|
32 | 46 | }
|
0 commit comments