why does junit4 not have Assert.assertArrayEquals() for double[]s?
Question
There appear to be Assert.assertArrayEquals()
methods in Junit4 for all primitives other than double, e.g.
Assert.assertArrayEquals(int[] expected, int[] actual)
and
Assert.assertArrayEquals(char[] expected, char[] actual)
but not
Assert.assertArrayEquals(double[] expected, double[] actual, double eps)
or
Assert.assertArrayEquals(double[] expected, double[] actual, double[] eps)
(the latter to account for variable ranges of doubles). Is there a fundamental reason why I should not write such a function?
Solution
It does have such a method (in 4.7), although it is not documented on the online javadoc here. It was certainly an oversight in the javadoc/version, but it is there now.
OTHER TIPS
The method seem to have been added in JUnit 4.6, but is for some reason missing in 4.5 and previous versions. I wouldn't expect any problems upgrading to a newer JUnit version.
According to the JUnit bug database, they are "working on it". Based on other answers, it sounds like the bug database is not completely in sync with reality.
just use:
AssertTrue(**message**, Arrays.equals(**expected**,**result**)
You might need this to round your result values to test against expected:
public double roundTo2Decimals(double val) {
DecimalFormat df2 = new DecimalFormat("###.####");
return Double.valueOf(df2.format(val));
}
See javdoc for more info