|
2 | 2 |
|
3 | 3 | import static org.junit.jupiter.api.Assertions.assertEquals;
|
4 | 4 |
|
| 5 | +import java.util.stream.Stream; |
5 | 6 | import org.junit.jupiter.params.ParameterizedTest;
|
6 |
| -import org.junit.jupiter.params.provider.CsvSource; |
| 7 | +import org.junit.jupiter.params.provider.Arguments; |
| 8 | +import org.junit.jupiter.params.provider.MethodSource; |
7 | 9 |
|
8 | 10 | public class LevenshteinDistanceTests {
|
| 11 | + private static final Object[][] TEST_CASES |
| 12 | + = {{0, "", ""}, {0, "Hello, World!", "Hello, World!"}, {4, "", "Rust"}, {3, "horse", "ros"}, {6, "tan", "elephant"}, {8, "execute", "intention"}, {0, "", ""}, {0, "Hello, World!", "Hello, World!"}, {4, "", "Rust"}, {3, "horse", "ros"}, {6, "tan", "elephant"}, {8, "execute", "intention"}}; |
9 | 13 |
|
10 | 14 | @ParameterizedTest
|
11 |
| - @CsvSource({// String 1, String 2, Expected Distance |
12 |
| - "'', '', 0", "'Hello, World!', 'Hello, World!', 0", "'', 'Rust', 4", "horse, ros, 3", "tan, elephant, 6", "execute, intention, 8"}) |
13 |
| - void |
14 |
| - naiveLevenshteinDistanceTest(String str1, String str2, int expectedDistance) { |
15 |
| - int result = LevenshteinDistance.naiveLevenshteinDistance(str1, str2); |
16 |
| - assertEquals(expectedDistance, result); |
| 15 | + @MethodSource("testCases") |
| 16 | + void testLevenshteinDistance(int expectedDistance, String str1, String str2) { |
| 17 | + assertEquals(expectedDistance, LevenshteinDistance.naiveLevenshteinDistance(str1, str2)); |
| 18 | + assertEquals(expectedDistance, LevenshteinDistance.optimizedLevenshteinDistance(str1, str2)); |
17 | 19 | }
|
18 | 20 |
|
19 |
| - @ParameterizedTest |
20 |
| - @CsvSource({// String 1, String 2, Expected Distance |
21 |
| - "'', '', 0", "'Hello, World!', 'Hello, World!', 0", "'', 'Rust', 4", "horse, ros, 3", "tan, elephant, 6", "execute, intention, 8"}) |
22 |
| - void |
23 |
| - optimizedLevenshteinDistanceTest(String str1, String str2, int expectedDistance) { |
24 |
| - int result = LevenshteinDistance.optimizedLevenshteinDistance(str1, str2); |
25 |
| - assertEquals(expectedDistance, result); |
| 21 | + private static Stream<Arguments> testCases() { |
| 22 | + return Stream.of(TEST_CASES).map(args -> Arguments.of(args[0], args[1], args[2])); |
26 | 23 | }
|
27 | 24 | }
|
0 commit comments