Я хочу написать тест для нескольких методов сортировки.
Я пробовал это:
public abstract class SortingTestBase {
public abstract BubbleSort getSortingMethod();
@Test
public void shouldSortSimpleArray(){
// given
int[] given = new int[]{5, 4, 3, 2, 1};
int[] expected = new int[]{1, 2, 3, 4, 5};
// when
long startTime = System.currentTimeMillis();
int[] result = BubbleSort.sort(given);
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
// then
assertArrayEquals(expected, result);
}
}
во время компиляции я получаю
java .lang.InstantiationException в java .base / jdk.internal .reflect.
class BubbleSort {
public static int[] sort(int[] array) {
if (array == null) {
throw new IllegalArgumentException("Array cannot be null");
}
int[] arrayToSort = array.clone();
if (arrayToSort.length < 2) {
return arrayToSort;
}
for (int i = 0; i < arrayToSort.length - 1; i++) {
for (int j = 0; j < arrayToSort.length - 1 - i; j++) {
if (arrayToSort[j + 1] < arrayToSort[j]) {
ArrayHelper.swap(arrayToSort, j, j + 1);
}
}
}
return arrayToSort;
}
Может кто-нибудь объяснить мне, почему я получаю это?
Любое руководство, как я могу это исправить?