mirror of
https://github.com/apache/commons-math.git
synced 2025-03-07 00:49:14 +00:00
MATH-1118
Equality of double values in accordance with the semantics of "java.lang.Double". git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1587548 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5b118e04de
commit
70101ee3ca
@ -57,6 +57,18 @@ public final class MathUtils {
|
||||
return new Double(value).hashCode();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns {@code true} if the values are equal according to semantics of
|
||||
* {@link Double#equals(Object)}.
|
||||
*
|
||||
* @param x Value
|
||||
* @param y Value
|
||||
* @return {@code new Double(x).equals(new Double(y))}
|
||||
*/
|
||||
public static boolean equals(double x, double y) {
|
||||
return new Double(x).equals(new Double(y));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an integer hash code representing the given double array.
|
||||
*
|
||||
|
@ -25,10 +25,27 @@ import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Test cases for the MathUtils class.
|
||||
*
|
||||
* @version $Id$
|
||||
* 2007) $
|
||||
*/
|
||||
public final class MathUtilsTest {
|
||||
@Test
|
||||
public void testEqualsDouble() {
|
||||
final double x = 1234.5678;
|
||||
Assert.assertTrue(MathUtils.equals(x, x));
|
||||
Assert.assertFalse(MathUtils.equals(x, -x));
|
||||
|
||||
// Special cases (cf. semantics of JDK's "Double").
|
||||
// 1. NaN
|
||||
Assert.assertTrue(MathUtils.equals(Double.NaN, Double.NaN));
|
||||
// 2. Negative zero
|
||||
final double mZero = -0d;
|
||||
final double zero = 0d;
|
||||
Assert.assertTrue(MathUtils.equals(zero, zero));
|
||||
Assert.assertTrue(MathUtils.equals(mZero, mZero));
|
||||
Assert.assertFalse(MathUtils.equals(mZero, zero));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHash() {
|
||||
double[] testArray = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user