Continue rolling back pep-3141 changes that changed behavior from 2.5. This
round included:
* Revert round to its 2.6 behavior (half away from 0).
* Because round, floor, and ceil always return float again, it's no
longer necessary to have them delegate to __xxx___, so I've ripped
that out of their implementations and the Real ABC. This also helps
in implementing types that work in both 2.6 and 3.0: you return int
from the __xxx__ methods, and let it get enabled by the version
upgrade.
* Make pow(-1, .5) raise a ValueError again.
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index 5313c3c..16f0f4d 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -63,8 +63,8 @@
self.ftest('ceil(-1.5)', math.ceil(-1.5), -1)
class TestCeil(object):
- def __ceil__(self):
- return 42
+ def __float__(self):
+ return 41.3
class TestNoCeil(object):
pass
self.ftest('ceil(TestCeil())', math.ceil(TestCeil()), 42)
@@ -123,8 +123,8 @@
self.ftest('floor(-1.23e167)', math.floor(-1.23e167), -1.23e167)
class TestFloor(object):
- def __floor__(self):
- return 42
+ def __float__(self):
+ return 42.3
class TestNoFloor(object):
pass
self.ftest('floor(TestFloor())', math.floor(TestFloor()), 42)