diff options
author | Jeffrey Yasskin <jyasskin@gmail.com> | 2008-01-04 08:01:23 (GMT) |
---|---|---|
committer | Jeffrey Yasskin <jyasskin@gmail.com> | 2008-01-04 08:01:23 (GMT) |
commit | 737c73f96ff52cda4b433d25f887525442b7b430 (patch) | |
tree | bd81e5e6f6410395f6f2acc3d634c8f2d3be8c39 | |
parent | e0734e7dc0dcccc91ed657191b804b3a846ad3f6 (diff) | |
download | cpython-737c73f96ff52cda4b433d25f887525442b7b430.zip cpython-737c73f96ff52cda4b433d25f887525442b7b430.tar.gz cpython-737c73f96ff52cda4b433d25f887525442b7b430.tar.bz2 |
Make math.{floor,ceil}({int,long}) return float again for backwards
compatibility after r59671 made them return integral types.
-rw-r--r-- | Lib/test/test_math.py | 8 | ||||
-rw-r--r-- | Objects/intobject.c | 4 | ||||
-rw-r--r-- | Objects/longobject.c | 4 |
3 files changed, 12 insertions, 4 deletions
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py index f5bf1a3..5313c3c 100644 --- a/Lib/test/test_math.py +++ b/Lib/test/test_math.py @@ -51,6 +51,10 @@ class MathTests(unittest.TestCase): def testCeil(self): self.assertRaises(TypeError, math.ceil) + # These types will be int in py3k. + self.assertEquals(float, type(math.ceil(1))) + self.assertEquals(float, type(math.ceil(1L))) + self.assertEquals(float, type(math.ceil(1.0))) self.ftest('ceil(0.5)', math.ceil(0.5), 1) self.ftest('ceil(1.0)', math.ceil(1.0), 1) self.ftest('ceil(1.5)', math.ceil(1.5), 2) @@ -103,6 +107,10 @@ class MathTests(unittest.TestCase): def testFloor(self): self.assertRaises(TypeError, math.floor) + # These types will be int in py3k. + self.assertEquals(float, type(math.floor(1))) + self.assertEquals(float, type(math.floor(1L))) + self.assertEquals(float, type(math.floor(1.0))) self.ftest('floor(0.5)', math.floor(0.5), 0) self.ftest('floor(1.0)', math.floor(1.0), 1) self.ftest('floor(1.5)', math.floor(1.5), 1) diff --git a/Objects/intobject.c b/Objects/intobject.c index a93b9b2..96d7f76 100644 --- a/Objects/intobject.c +++ b/Objects/intobject.c @@ -1086,9 +1086,9 @@ static PyMethodDef int_methods[] = { "Returns self, the complex conjugate of any int."}, {"__trunc__", (PyCFunction)int_int, METH_NOARGS, "Truncating an Integral returns itself."}, - {"__floor__", (PyCFunction)int_int, METH_NOARGS, + {"__floor__", (PyCFunction)int_float, METH_NOARGS, "Flooring an Integral returns itself."}, - {"__ceil__", (PyCFunction)int_int, METH_NOARGS, + {"__ceil__", (PyCFunction)int_float, METH_NOARGS, "Ceiling of an Integral returns itself."}, {"__round__", (PyCFunction)int_round, METH_VARARGS, "Rounding an Integral returns itself.\n" diff --git a/Objects/longobject.c b/Objects/longobject.c index e2ffb35..eea5c3b 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -3402,9 +3402,9 @@ static PyMethodDef long_methods[] = { "Returns self, the complex conjugate of any long."}, {"__trunc__", (PyCFunction)long_long, METH_NOARGS, "Truncating an Integral returns itself."}, - {"__floor__", (PyCFunction)long_long, METH_NOARGS, + {"__floor__", (PyCFunction)long_float, METH_NOARGS, "Flooring an Integral returns itself."}, - {"__ceil__", (PyCFunction)long_long, METH_NOARGS, + {"__ceil__", (PyCFunction)long_float, METH_NOARGS, "Ceiling of an Integral returns itself."}, {"__round__", (PyCFunction)long_round, METH_VARARGS, "Rounding an Integral returns itself.\n" |