|
1 | 1 | package com.thealgorithms.maths;
|
2 | 2 |
|
3 |
| -import static org.junit.jupiter.api.Assertions.*; |
4 |
| - |
5 |
| -import org.junit.jupiter.api.Test; |
| 3 | +import java.util.stream.Stream; |
| 4 | +import org.junit.jupiter.api.Assertions; |
| 5 | +import org.junit.jupiter.params.ParameterizedTest; |
| 6 | +import org.junit.jupiter.params.provider.Arguments; |
| 7 | +import org.junit.jupiter.params.provider.MethodSource; |
6 | 8 |
|
7 | 9 | class SumOfDigitsTest {
|
| 10 | + @ParameterizedTest |
| 11 | + @MethodSource("testCases") |
| 12 | + void sumOfDigitsTest(final int expected, final int input) { |
| 13 | + Assertions.assertEquals(expected, SumOfDigits.sumOfDigits(input)); |
| 14 | + } |
8 | 15 |
|
9 |
| - SumOfDigits SoD = new SumOfDigits(); |
10 |
| - |
11 |
| - @Test |
12 |
| - void testZero() { |
13 |
| - assertEquals(0, SumOfDigits.sumOfDigits(0)); |
14 |
| - assertEquals(0, SumOfDigits.sumOfDigitsRecursion(0)); |
15 |
| - assertEquals(0, SumOfDigits.sumOfDigitsFast(0)); |
| 16 | + @ParameterizedTest |
| 17 | + @MethodSource("testCases") |
| 18 | + void sumOfDigitsRecursionTest(final int expected, final int input) { |
| 19 | + Assertions.assertEquals(expected, SumOfDigits.sumOfDigitsRecursion(input)); |
16 | 20 | }
|
17 | 21 |
|
18 |
| - @Test |
19 |
| - void testPositive() { |
20 |
| - assertEquals(15, SumOfDigits.sumOfDigits(12345)); |
21 |
| - assertEquals(15, SumOfDigits.sumOfDigitsRecursion(12345)); |
22 |
| - assertEquals(15, SumOfDigits.sumOfDigitsFast(12345)); |
| 22 | + @ParameterizedTest |
| 23 | + @MethodSource("testCases") |
| 24 | + void sumOfDigitsFastTest(final int expected, final int input) { |
| 25 | + Assertions.assertEquals(expected, SumOfDigits.sumOfDigitsFast(input)); |
23 | 26 | }
|
24 | 27 |
|
25 |
| - @Test |
26 |
| - void testNegative() { |
27 |
| - assertEquals(6, SumOfDigits.sumOfDigits(-123)); |
28 |
| - assertEquals(6, SumOfDigits.sumOfDigitsRecursion(-123)); |
29 |
| - assertEquals(6, SumOfDigits.sumOfDigitsFast(-123)); |
| 28 | + private static Stream<Arguments> testCases() { |
| 29 | + return Stream.of(Arguments.of(0, 0), Arguments.of(1, 1), Arguments.of(15, 12345), Arguments.of(6, -123), Arguments.of(1, -100000), Arguments.of(8, 512)); |
30 | 30 | }
|
31 | 31 | }
|
0 commit comments