[Jython-checkins] jython: abs(-0.0) should be 0.0

jeff.allen jython-checkins at python.org
Tue Jan 20 23:07:15 CET 2015


https://hg.python.org/jython/rev/dac0a2a4b370
changeset:   7544:dac0a2a4b370
user:        Jeff Allen <ja.py at farowl.co.uk>
date:        Thu Jan 08 20:05:41 2015 +0000
summary:
  abs(-0.0) should be 0.0

files:
  Lib/test/test_float_jy.py        |  7 +++++++
  src/org/python/core/PyFloat.java |  5 +----
  2 files changed, 8 insertions(+), 4 deletions(-)


diff --git a/Lib/test/test_float_jy.py b/Lib/test/test_float_jy.py
--- a/Lib/test/test_float_jy.py
+++ b/Lib/test/test_float_jy.py
@@ -85,6 +85,13 @@
         self.assert_(type(float('inf')), float)
         self.assertRaises(OverflowError, long, float('Infinity'))
 
+    def test_minus_zero(self):
+        # Some operations confused by -0.0
+        mz = float('-0.0')
+        self.assertEquals(mz, 0.)
+        self.assertEquals(repr(mz)[0], '-')
+        self.assertEquals(repr(abs(mz))[0], '0')
+
     def test_float_none(self):
         self.assertRaises(TypeError, float, None)
 
diff --git a/src/org/python/core/PyFloat.java b/src/org/python/core/PyFloat.java
--- a/src/org/python/core/PyFloat.java
+++ b/src/org/python/core/PyFloat.java
@@ -839,10 +839,7 @@
 
     @ExposedMethod(doc = BuiltinDocs.float___abs___doc)
     final PyObject float___abs__() {
-        if (getValue() < 0) {
-            return float___neg__();
-        }
-        return float___float__();
+        return new PyFloat(Math.abs(getValue()));
     }
 
     @Override

-- 
Repository URL: https://hg.python.org/jython


More information about the Jython-checkins mailing list