Commit aec6285a authored by Jeffrey Yasskin's avatar Jeffrey Yasskin

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

compatibility after r59671 made them return integral types.
parent 7bde1d11
...@@ -51,6 +51,10 @@ class MathTests(unittest.TestCase): ...@@ -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): ...@@ -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)
......
...@@ -1086,9 +1086,9 @@ static PyMethodDef int_methods[] = { ...@@ -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"
......
...@@ -3402,9 +3402,9 @@ static PyMethodDef long_methods[] = { ...@@ -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"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment