Make math.{floor,ceil}({int,long}) return float again for backwards

compatibility after r59671 made them return integral types.
This commit is contained in:
Jeffrey Yasskin 2008-01-04 08:01:23 +00:00
parent e0734e7dc0
commit 737c73f96f
3 changed files with 12 additions and 4 deletions

View file

@ -51,6 +51,10 @@ class MathTests(unittest.TestCase):
def testCeil(self): def testCeil(self):
self.assertRaises(TypeError, math.ceil) 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(0.5)', math.ceil(0.5), 1)
self.ftest('ceil(1.0)', math.ceil(1.0), 1) self.ftest('ceil(1.0)', math.ceil(1.0), 1)
self.ftest('ceil(1.5)', math.ceil(1.5), 2) self.ftest('ceil(1.5)', math.ceil(1.5), 2)
@ -103,6 +107,10 @@ class MathTests(unittest.TestCase):
def testFloor(self): def testFloor(self):
self.assertRaises(TypeError, math.floor) 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(0.5)', math.floor(0.5), 0)
self.ftest('floor(1.0)', math.floor(1.0), 1) self.ftest('floor(1.0)', math.floor(1.0), 1)
self.ftest('floor(1.5)', math.floor(1.5), 1) self.ftest('floor(1.5)', math.floor(1.5), 1)

View file

@ -1086,9 +1086,9 @@ static PyMethodDef int_methods[] = {
"Returns self, the complex conjugate of any int."}, "Returns self, the complex conjugate of any int."},
{"__trunc__", (PyCFunction)int_int, METH_NOARGS, {"__trunc__", (PyCFunction)int_int, METH_NOARGS,
"Truncating an Integral returns itself."}, "Truncating an Integral returns itself."},
{"__floor__", (PyCFunction)int_int, METH_NOARGS, {"__floor__", (PyCFunction)int_float, METH_NOARGS,
"Flooring an Integral returns itself."}, "Flooring an Integral returns itself."},
{"__ceil__", (PyCFunction)int_int, METH_NOARGS, {"__ceil__", (PyCFunction)int_float, METH_NOARGS,
"Ceiling of an Integral returns itself."}, "Ceiling of an Integral returns itself."},
{"__round__", (PyCFunction)int_round, METH_VARARGS, {"__round__", (PyCFunction)int_round, METH_VARARGS,
"Rounding an Integral returns itself.\n" "Rounding an Integral returns itself.\n"

View file

@ -3402,9 +3402,9 @@ static PyMethodDef long_methods[] = {
"Returns self, the complex conjugate of any long."}, "Returns self, the complex conjugate of any long."},
{"__trunc__", (PyCFunction)long_long, METH_NOARGS, {"__trunc__", (PyCFunction)long_long, METH_NOARGS,
"Truncating an Integral returns itself."}, "Truncating an Integral returns itself."},
{"__floor__", (PyCFunction)long_long, METH_NOARGS, {"__floor__", (PyCFunction)long_float, METH_NOARGS,
"Flooring an Integral returns itself."}, "Flooring an Integral returns itself."},
{"__ceil__", (PyCFunction)long_long, METH_NOARGS, {"__ceil__", (PyCFunction)long_float, METH_NOARGS,
"Ceiling of an Integral returns itself."}, "Ceiling of an Integral returns itself."},
{"__round__", (PyCFunction)long_round, METH_VARARGS, {"__round__", (PyCFunction)long_round, METH_VARARGS,
"Rounding an Integral returns itself.\n" "Rounding an Integral returns itself.\n"