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?

Was it helpful?

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top