Java 类org.junit.internal.ComparisonCriteria 实例源码
项目:openjdk-jdk10
文件:GraalTest.java
/**
* Compares two given values for equality, doing a recursive test if both values are arrays of
* the same type.
*
* @param message the identifying message for the {@link AssertionError}
* @param delta the maximum delta between two doubles or floats for which both numbers are still
* considered equal.
*/
protected void assertDeepEquals(String message, Object expected, Object actual, double delta) {
if (expected != null && actual != null) {
Class<?> expectedClass = expected.getClass();
Class<?> actualClass = actual.getClass();
if (expectedClass.isArray()) {
Assert.assertEquals(message, expectedClass, actual.getClass());
if (expected instanceof int[]) {
Assert.assertArrayEquals(message, (int[]) expected, (int[]) actual);
} else if (expected instanceof byte[]) {
Assert.assertArrayEquals(message, (byte[]) expected, (byte[]) actual);
} else if (expected instanceof char[]) {
Assert.assertArrayEquals(message, (char[]) expected, (char[]) actual);
} else if (expected instanceof short[]) {
Assert.assertArrayEquals(message, (short[]) expected, (short[]) actual);
} else if (expected instanceof float[]) {
Assert.assertArrayEquals(message, (float[]) expected, (float[]) actual, (float) delta);
} else if (expected instanceof long[]) {
Assert.assertArrayEquals(message, (long[]) expected, (long[]) actual);
} else if (expected instanceof double[]) {
Assert.assertArrayEquals(message, (double[]) expected, (double[]) actual, delta);
} else if (expected instanceof boolean[]) {
new ExactComparisonCriteria().arrayEquals(message, expected, actual);
} else if (expected instanceof Object[]) {
new ComparisonCriteria() {
@Override
protected void assertElementsEqual(Object e, Object a) {
assertDeepEquals(message, e, a, delta);
}
}.arrayEquals(message, expected, actual);
} else {
Assert.fail((message == null ? "" : message) + "non-array value encountered: " + expected);
}
} else if (expectedClass.equals(double.class) && actualClass.equals(double.class)) {
Assert.assertEquals((double) expected, (double) actual, delta);
} else if (expectedClass.equals(float.class) && actualClass.equals(float.class)) {
Assert.assertEquals((float) expected, (float) actual, delta);
} else {
Assert.assertEquals(message, expected, actual);
}
} else {
Assert.assertEquals(message, expected, actual);
}
}
项目:graal-core
文件:GraalTest.java
/**
* Compares two given values for equality, doing a recursive test if both values are arrays of
* the same type.
*
* @param message the identifying message for the {@link AssertionError}
* @param delta the maximum delta between two doubles or floats for which both numbers are still
* considered equal.
*/
protected void assertDeepEquals(String message, Object expected, Object actual, double delta) {
if (expected != null && actual != null) {
Class<?> expectedClass = expected.getClass();
Class<?> actualClass = actual.getClass();
if (expectedClass.isArray()) {
Assert.assertEquals(message, expectedClass, actual.getClass());
if (expected instanceof int[]) {
Assert.assertArrayEquals(message, (int[]) expected, (int[]) actual);
} else if (expected instanceof byte[]) {
Assert.assertArrayEquals(message, (byte[]) expected, (byte[]) actual);
} else if (expected instanceof char[]) {
Assert.assertArrayEquals(message, (char[]) expected, (char[]) actual);
} else if (expected instanceof short[]) {
Assert.assertArrayEquals(message, (short[]) expected, (short[]) actual);
} else if (expected instanceof float[]) {
Assert.assertArrayEquals(message, (float[]) expected, (float[]) actual, (float) delta);
} else if (expected instanceof long[]) {
Assert.assertArrayEquals(message, (long[]) expected, (long[]) actual);
} else if (expected instanceof double[]) {
Assert.assertArrayEquals(message, (double[]) expected, (double[]) actual, delta);
} else if (expected instanceof boolean[]) {
new ExactComparisonCriteria().arrayEquals(message, expected, actual);
} else if (expected instanceof Object[]) {
new ComparisonCriteria() {
@Override
protected void assertElementsEqual(Object e, Object a) {
assertDeepEquals(message, e, a, delta);
}
}.arrayEquals(message, expected, actual);
} else {
Assert.fail((message == null ? "" : message) + "non-array value encountered: " + expected);
}
} else if (expectedClass.equals(double.class) && actualClass.equals(double.class)) {
Assert.assertEquals((double) expected, (double) actual, delta);
} else if (expectedClass.equals(float.class) && actualClass.equals(float.class)) {
Assert.assertEquals((float) expected, (float) actual, delta);
} else {
Assert.assertEquals(message, expected, actual);
}
} else {
Assert.assertEquals(message, expected, actual);
}
}