diff --git a/src/main/java/org/junit/Assert.java b/src/main/java/org/junit/Assert.java index d7deb06bb33e..fdefe0ee8c40 100755 --- a/src/main/java/org/junit/Assert.java +++ b/src/main/java/org/junit/Assert.java @@ -108,7 +108,11 @@ static public void fail() { */ static public void assertEquals(String message, Object expected, Object actual) { - if (equalsRegardingNull(expected, actual)) { + if (expected instanceof Double && actual instanceof Double) { + assertEquals(message, (Double) expected, (Double) actual, 0.0); + } else if (expected instanceof Float && actual instanceof Float) { + assertEquals(message, (Float) expected, (Float) actual, 0.0); + } else if (equalsRegardingNull(expected, actual)) { return; } else if (expected instanceof String && actual instanceof String) { String cleanMessage = message == null ? "" : message; diff --git a/src/test/java/org/junit/tests/assertion/AssertionTest.java b/src/test/java/org/junit/tests/assertion/AssertionTest.java index 27b47cd25bd4..729ec3afacbb 100755 --- a/src/test/java/org/junit/tests/assertion/AssertionTest.java +++ b/src/test/java/org/junit/tests/assertion/AssertionTest.java @@ -256,6 +256,10 @@ public void equals() { assertEquals(1l, 1l); assertEquals(1.0, 1.0, 0.0); assertEquals(1.0d, 1.0d, 0.0d); + assertEquals(new Double(0.0), new Double(-0.0), 0.0d); + assertEquals(new Double(0.0), new Double(-0.0)); + assertEquals(new Float(0.0), new Float(-0.0), 0.0); + assertEquals(new Float(0.0), new Float(-0.0)); } @Test(expected = AssertionError.class)