From: Jeffrey Yasskin Date: Fri, 4 Jan 2008 08:01:23 +0000 (+0000) Subject: Make math.{floor,ceil}({int,long}) return float again for backwards X-Git-Tag: v2.6a1~758 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=737c73f96ff52cda4b433d25f887525442b7b430;p=thirdparty%2FPython%2Fcpython.git Make math.{floor,ceil}({int,long}) return float again for backwards compatibility after r59671 made them return integral types. --- diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py index f5bf1a3f9835..5313c3cad03e 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 a93b9b201a43..96d7f76ab1ca 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 e2ffb35a9747..eea5c3bad50f 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"