У меня есть функция Rust, которая panic при некоторых условиях, и я хочу написать тестовый пример, чтобы проверить, паникует ли функция или нет. Я не мог найти ничего, кроме макросов assert! и assert_eq!. Есть ли какой-нибудь механизм для тестирования этого?
Я мог бы создать новую задачу и проверить, паникует ли эта задача или нет. Имеет ли это смысл?
Возврат Result<T, E> не подходит в моем случае.
Я хочу добавить поддержку признака Add к типу Matrix, который я реализую. Идеальный синтаксис для такого добавления будет выглядеть так:
let m = m1 + m2 + m3;
где m1, m2, m3 - все матрицы. Следовательно, тип результата Add должен быть Matrix. Что-то вроде следующего было бы слишком загадочным:
let m = ((m1 + m2).unwrap() + m3).unwrap()
В то же время функция add() должна проверять, что две добавляемые матрицы имеют одинаковую размерность. Таким образом, add() должен паниковать, если размеры не совпадают. Доступная опция panic!().