|
1 | 1 | package com.thealgorithms.sorts;
|
2 | 2 |
|
3 | 3 | import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
4 |
| -import static org.junit.jupiter.api.Assertions.assertThrows; |
| 4 | +import static org.junit.jupiter.params.provider.Arguments.arguments; |
5 | 5 |
|
6 | 6 | import java.util.stream.Stream;
|
7 |
| -import org.junit.jupiter.api.Test; |
| 7 | + |
8 | 8 | import org.junit.jupiter.params.ParameterizedTest;
|
9 |
| -import org.junit.jupiter.params.provider.Arguments; |
10 | 9 | import org.junit.jupiter.params.provider.MethodSource;
|
11 | 10 |
|
12 |
| -public class StalinSortTest { |
13 |
| - |
| 11 | +class StalinSortTest { |
14 | 12 | @ParameterizedTest
|
15 | 13 | @MethodSource("provideArraysForStalinSort")
|
16 |
| - public void testStalinSort(Comparable[] inputArray, Comparable[] expectedArray) { |
17 |
| - StalinSort stalinSort = new StalinSort(); |
18 |
| - // Explicitly call the sort method that accepts arrays |
19 |
| - assertArrayEquals(expectedArray, stalinSort.sort((Comparable[]) inputArray)); |
| 14 | + void testStalinSort(Integer[] input, Integer[] expected) { |
| 15 | + assertArrayEquals(expected, new StalinSort().sort(input)); |
20 | 16 | }
|
21 | 17 |
|
22 | 18 | private static Stream<Arguments> provideArraysForStalinSort() {
|
23 | 19 | return Stream.of(
|
24 |
| - Arguments.of(new Integer[] {4}, new Integer[] {4}), |
25 |
| - Arguments.of(new Integer[] {4, 23, 6, 78, 1, 54, 231, 9, 12}, new Integer[] {4, 23, 78, 231}), |
26 |
| - Arguments.of(new Integer[] {5, 5, 5, 5, 5}, new Integer[] {5, 5, 5, 5, 5}), |
27 |
| - Arguments.of(new Integer[] {1, 2, 3, 4, 5}, new Integer[] {1, 2, 3, 4, 5}), |
28 |
| - Arguments.of(new Integer[] {5, 4, 3, 2, 1}, new Integer[] {5}), |
29 |
| - Arguments.of(new String[] {"c", "a", "e", "b", "d"}, new String[] {"c", "e"}), |
30 |
| - Arguments.of(new Integer[] {-1, -2, -3, 4, 5}, new Integer[] {-1, 4, 5}), |
31 |
| - Arguments.of(new Integer[] {0, -1, -2, 1, 2}, new Integer[] {0, 1, 2}), |
32 |
| - Arguments.of(new Integer[] {3, -1, 0, -5, 2}, new Integer[] {3}), |
33 |
| - Arguments.of(new Integer[] {10, 10, 10, 10}, new Integer[] {10, 10, 10, 10}), |
34 |
| - Arguments.of(new Integer[] {1, 2, 2, 3, 3, 3, 4}, new Integer[] {1, 2, 2, 3, 3, 3, 4}), |
35 |
| - Arguments.of(new Integer[] {Integer.MAX_VALUE, Integer.MIN_VALUE, 0}, new Integer[] {Integer.MAX_VALUE}), |
36 |
| - Arguments.of(new Character[] {'d', 'a', 'c', 'b'}, new Character[] {'d'}), |
37 |
| - Arguments.of(new Integer[] {100, 200, 150, 300, 250, 400, 350, 450, 500}, new Integer[] {100, 200, 300, 400, 500}) |
| 20 | + arguments(new Integer[] {4}, new Integer[] {4}), |
| 21 | + arguments(new Integer[] {4, 23, 6, 78, 1, 54, 231, 9, 12}, new Integer[] {4, 23, 78, 231}), |
| 22 | + arguments(new Integer[] {5, 5, 5, 5, 5}, new Integer[] {5, 5, 5, 5, 5}), |
| 23 | + arguments(new Integer[] {1, 2, 3, 4, 5}, new Integer[] {1, 2, 3, 4, 5}), |
| 24 | + arguments(new Integer[] {5, 4, 3, 2, 1}, new Integer[] {5}), |
| 25 | + arguments(new String[] {"c", "a", "e", "b", "d"}, new String[] {"c", "e"}), |
| 26 | + arguments(new Integer[] {-1, -2, -3, 4, 5}, new Integer[] {-1, 4, 5}), |
| 27 | + arguments(new Integer[] {0, -1, -2, 1, 2}, new Integer[] {0, 1, 2}), |
| 28 | + arguments(new Integer[] {3, -1, 0, -5, 2}, new Integer[] {3}), |
| 29 | + arguments(new Integer[] {10, 10, 10, 10}, new Integer[] {10, 10, 10, 10}), |
| 30 | + arguments(new Integer[] {1, 2, 2, 3, 3, 3, 4}, new Integer[] {1, 2, 2, 3, 3, 3, 4}), |
| 31 | + arguments(new Integer[] {Integer.MAX_VALUE, Integer.MIN_VALUE, 0}, new Integer[] {Integer.MAX_VALUE}), |
| 32 | + arguments(new Character[] {'d', 'a', 'c', 'b'}, new Character[] {'d'}), |
| 33 | + arguments(new Integer[] {100, 200, 150, 300, 250, 400, 350, 450, 500}, new Integer[] {100, 200, 300, 400, 500}) |
38 | 34 | );
|
39 | 35 | }
|
40 |
| - |
41 |
| - @Test |
42 |
| - public void testWithEmptyArray() { |
43 |
| - StalinSort stalinSort = new StalinSort(); |
44 |
| - Integer[] inputArray = {}; |
45 |
| - Integer[] expectedArray = {}; |
46 |
| - assertArrayEquals(expectedArray, stalinSort.sort(inputArray)); |
47 |
| - } |
48 |
| - |
49 |
| - @Test |
50 |
| - public void testWithNullValues() { |
51 |
| - assertThrows(NullPointerException.class, () -> { |
52 |
| - StalinSort stalinSort = new StalinSort(); |
53 |
| - stalinSort.sort(null); |
54 |
| - }); |
55 |
| - } |
56 |
| - |
57 |
| - @Test |
58 |
| - public void testWithMixedDataTypes() { |
59 |
| - assertThrows(ClassCastException.class, () -> { |
60 |
| - StalinSort stalinSort = new StalinSort(); |
61 |
| - stalinSort.sort(new Comparable[] {"a", 1}); |
62 |
| - }); |
63 |
| - } |
64 | 36 | }
|
0 commit comments