re-fix Double failures; I misdiagnosed because expected/actual arguments were flopped. (Fixed that, too.)
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2432 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/super/com/google/gwt/emul/java/lang/Double.java b/user/super/com/google/gwt/emul/java/lang/Double.java
index 9aa19fb..23957fc 100644
--- a/user/super/com/google/gwt/emul/java/lang/Double.java
+++ b/user/super/com/google/gwt/emul/java/lang/Double.java
@@ -38,8 +38,8 @@
// the exponent is biased by one less than its midpoint, e.g. 2^11 / 2 - 1;
static final int EXPONENT_BIAS = 1 << (EXPONENT_BITSIZE - 1) - 1;
// the mask is all 1 bits in the exponent, e.g. 0x7ff shifted over by 52
- static final long EXPONENT_MASK = (1L
- << EXPONENT_BITSIZE - 1) << MANTISSA_BITSIZE;
+ static final long EXPONENT_MASK = ((1L
+ << EXPONENT_BITSIZE) - 1) << MANTISSA_BITSIZE;
// place 1-bit in top position
static final long NAN_MANTISSA = 1L << (MANTISSA_BITSIZE - 1);
// sign bit is the MSB bit
@@ -74,7 +74,7 @@
if (Double.isNaN(d)) {
// IEEE754, NaN exponent bits all 1s, and mantissa is non-zero
- return (1L << (EXPONENT_BITSIZE -1)) | NAN_MANTISSA;
+ return EXPONENT_MASK | NAN_MANTISSA;
}
if (Double.isInfinite(d)) {
// an infinite number is a number with a zero mantissa and all
diff --git a/user/test/com/google/gwt/emultest/java/lang/DoubleTest.java b/user/test/com/google/gwt/emultest/java/lang/DoubleTest.java
index 2472e67..887fde6 100644
--- a/user/test/com/google/gwt/emultest/java/lang/DoubleTest.java
+++ b/user/test/com/google/gwt/emultest/java/lang/DoubleTest.java
@@ -37,7 +37,6 @@
// TODO(fabbott): this constants are from the JDK 1.6 Double, so we can't rely on them
// when we build on 1.5! But when we *do* support 1.6, this def'n should go away
public static final double MIN_NORMAL = 2.2250738585072014e-308;
-
public String getModuleName() {
return "com.google.gwt.emultest.EmulSuite";
@@ -80,23 +79,22 @@
public void testDoubleToLongBits() {
assertEquals("NaN double->longbits test",
- Double.doubleToLongBits(Double.NaN), NAN_LONG_VALUE);
+ NAN_LONG_VALUE, Double.doubleToLongBits(Double.NaN));
assertEquals("posinf double->longbits test",
- Double.doubleToLongBits(Double.POSITIVE_INFINITY), POSINF_LONG_VALUE);
+ POSINF_LONG_VALUE, Double.doubleToLongBits(Double.POSITIVE_INFINITY));
assertEquals("neginf double->longbits test",
- Double.doubleToLongBits(Double.NEGATIVE_INFINITY), NEGINF_LONG_VALUE);
+ NEGINF_LONG_VALUE, Double.doubleToLongBits(Double.NEGATIVE_INFINITY));
assertEquals("maxvalue double->longbits test",
- Double.doubleToLongBits(Double.MAX_VALUE), MAXD_LONG_VALUE);
+ MAXD_LONG_VALUE, Double.doubleToLongBits(Double.MAX_VALUE));
assertEquals("minvalue double->longbits test",
- Double.doubleToLongBits(Double.MIN_VALUE), MIND_LONG_VALUE);
- assertEquals(Double.doubleToLongBits(Double.MIN_VALUE), MIND_LONG_VALUE);
+ MIND_LONG_VALUE, Double.doubleToLongBits(Double.MIN_VALUE));
assertEquals("test1 double->longbits test",
- Double.doubleToLongBits(TEST1_DOUBLE_VALUE), TEST1_LONG_VALUE);
+ TEST1_LONG_VALUE, Double.doubleToLongBits(TEST1_DOUBLE_VALUE));
assertEquals("-test1 double->longbits test",
- Double.doubleToLongBits(-TEST1_DOUBLE_VALUE), NEGTEST1_LONG_VALUE);
+ NEGTEST1_LONG_VALUE, Double.doubleToLongBits(-TEST1_DOUBLE_VALUE));
// TODO(fabbott): swap back to Double.MIN_NORMAL when we use jdk 1.6
assertEquals("minnormal double->longbits test",
- Double.doubleToLongBits(MIN_NORMAL), MINNORM_LONG_VALUE);
+ MINNORM_LONG_VALUE, Double.doubleToLongBits(MIN_NORMAL));
}
public void testLongBitsToDouble() {