Я пытаюсь написать программу, которая сортирует список из двух целых чисел так, чтобы элементы находились в порядке возрастания, размер списка оставался неизменным, и выдает исключение IllegalArgumentException, если размер списка не равен 2.
Это то, что у меня есть:
public static void sort2(List<Integer> t) { //t is a the list
if(t.size() < 3) {
Collections.sort(t);
System.out.println(t);
}
else if (t.size() == 2) {
throw new IllegalArgumentException("List is empty");
}
}
Однако, когда я выполняю тест JUnit, сортировка проходит, но тест исключения не выполняется. Тест выглядит следующим образом:
public void test10a_sort2() {
ArrayList<Integer> t = new ArrayList<>();
String error = "lab0.sort2(t) failed to throw an IllegalArgumentException";
try {
lab0.sort2(t);
fail(error);
}
catch (IllegalArgumentException x) {
// do nothing
}
catch (Exception x) {
fail("lab0.sort2(t) threw the wrong kind of exception");
}
t.add(1);
try {
lab0.sort2(t);
fail(error);
}
catch (IllegalArgumentException x) {
// do nothing
}
catch (Exception x) {
fail("lab0.sort2(t) threw the wrong kind of exception" + x);
}
t.add(2);
t.add(3);
try {
lab0.sort2(t);
fail(error);
}
catch (IllegalArgumentException x) {
// do nothing
}
catch (Exception x) {
fail("lab0.sort2(t) threw the wrong kind of exception");
}
}
Не совсем уверен, что я делаю не так. Я также пытался использовать try catch, но, похоже, он тоже не работал.