почему junit4 не имеет Assert.assertArrayEquals () для double[]s?
есть Assert.assertArrayEquals()
методы в Junit4 для всех примитивов, кроме double, например
Assert.assertArrayEquals(int[] expected, int[] actual)
и
Assert.assertArrayEquals(char[] expected, char[] actual)
а не
Assert.assertArrayEquals(double[] expected, double[] actual, double eps)
или
Assert.assertArrayEquals(double[] expected, double[] actual, double[] eps)
(последнее для учета переменных диапазонов двойников). Есть ли фундаментальная причина, по которой я не должен писать такую функцию?
4 ответов
у него есть такой метод (в 4.7), хотя он не документирован в онлайн-javadoc здесь. Это, конечно, было упущение в javadoc / версии, но оно есть сейчас.
метод, похоже, был добавлен в JUnit 4.6, но по какой-то причине отсутствует в 4.5 и предыдущих версиях. Я бы не ожидал каких-либо проблем с обновлением до более новой версии JUnit.
согласно базе данных ошибок JUnit, они являются"работаем над этим". Основываясь на других ответах, похоже, что база данных ошибок не полностью синхронизирована с реальностью.
просто использовать:
AssertTrue(**message**, Arrays.equals(**expected**,**result**)
вам может понадобиться это, чтобы округлить значения результатов для тестирования против ожидаемого:
public double roundTo2Decimals(double val) {
DecimalFormat df2 = new DecimalFormat("###.####");
return Double.valueOf(df2.format(val));
}
посмотреть javdoc дополнительная информация