(Object e1, Object e2)
| 1443 | } |
| 1444 | |
| 1445 | private static boolean deepEqualsElements(Object e1, Object e2) { |
| 1446 | Class<?> cl1, cl2; |
| 1447 | |
| 1448 | if (e1 == e2) { |
| 1449 | return true; |
| 1450 | } |
| 1451 | |
| 1452 | if (e1 == null || e2 == null) { |
| 1453 | return false; |
| 1454 | } |
| 1455 | |
| 1456 | cl1 = e1.getClass().getComponentType(); |
| 1457 | cl2 = e2.getClass().getComponentType(); |
| 1458 | |
| 1459 | if (cl1 != cl2) { |
| 1460 | return false; |
| 1461 | } |
| 1462 | |
| 1463 | if (cl1 == null) { |
| 1464 | return e1.equals(e2); |
| 1465 | } |
| 1466 | |
| 1467 | /* |
| 1468 | * compare as arrays |
| 1469 | */ |
| 1470 | if (!cl1.isPrimitive()) { |
| 1471 | return deepEquals((Object[]) e1, (Object[]) e2); |
| 1472 | } |
| 1473 | |
| 1474 | if (cl1.equals(int.class)) { |
| 1475 | return equals((int[]) e1, (int[]) e2); |
| 1476 | } |
| 1477 | if (cl1.equals(char.class)) { |
| 1478 | return equals((char[]) e1, (char[]) e2); |
| 1479 | } |
| 1480 | if (cl1.equals(boolean.class)) { |
| 1481 | return equals((boolean[]) e1, (boolean[]) e2); |
| 1482 | } |
| 1483 | if (cl1.equals(byte.class)) { |
| 1484 | return equals((byte[]) e1, (byte[]) e2); |
| 1485 | } |
| 1486 | if (cl1.equals(long.class)) { |
| 1487 | return equals((long[]) e1, (long[]) e2); |
| 1488 | } |
| 1489 | if (cl1.equals(float.class)) { |
| 1490 | return equals((float[]) e1, (float[]) e2); |
| 1491 | } |
| 1492 | if (cl1.equals(double.class)) { |
| 1493 | return equals((double[]) e1, (double[]) e2); |
| 1494 | } |
| 1495 | return equals((short[]) e1, (short[]) e2); |
| 1496 | } |
| 1497 | |
| 1498 | private static boolean isSame(double double1, double double2) { |
| 1499 | // Simple case |
no test coverage detected