why does junit4 not have Assert.assertArrayEquals() for double[]s?
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?
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.
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.
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
精彩评论