You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by mc...@apache.org on 2008/02/19 15:35:04 UTC

svn commit: r629108 - in /harmony/enhanced/classlib/trunk/modules/luni/src: main/java/java/lang/Math.java test/api/common/org/apache/harmony/luni/tests/java/lang/MathTest.java

Author: mcfirst
Date: Tue Feb 19 06:35:02 2008
New Revision: 629108

URL: http://svn.apache.org/viewvc?rev=629108&view=rev
Log:
Applied patch from HARMONY-5501 [classlib][luni] regression in Math.rint after r620463

Modified:
    harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/lang/Math.java
    harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/MathTest.java

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/lang/Math.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/lang/Math.java?rev=629108&r1=629107&r2=629108&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/lang/Math.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/lang/Math.java Tue Feb 19 06:35:02 2008
@@ -449,8 +449,11 @@
 	 * @return the closest integer to the argument (as a double).
 	 */
 	public static double rint(double d) {
+	    if(d == +0.0d || d == -0.0d) {
+	        return d;
+	    }
             double res = floor(d + 0.5d);
-            return res - d == 0.5d && d > 0 ? res - 1 : res;  
+            return res - d == 0.5d && res%2 != 0 ? res - 1 : res;
         }
 
 	/**

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/MathTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/MathTest.java?rev=629108&r1=629107&r2=629108&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/MathTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/MathTest.java Tue Feb 19 06:35:02 2008
@@ -496,6 +496,10 @@
 				2.0, Math.rint(2.1), 0D);
 		assertTrue("Failed to round properly " + 2.5 + " to even", Math
 				.rint(2.5) == 2.0);
+                assertTrue("Failed to round properly " + (+0.0d),
+                        Math.rint(+0.0d) == +0.0d);
+                assertTrue("Failed to round properly " + (-0.0d),
+                        Math.rint(-0.0d) == -0.0d);
 	}
 
 	/**