Kaydet (Commit) 737c73f9 authored tarafından 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.
üst e0734e7d
...@@ -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