Author: Timo Paulssen <timona...@perpetuum-immobile.de>
Branch: py3k-ceil-floor
Changeset: r59071:6a1c5f8e7931
Date: 2012-11-23 13:28 +0100
http://bitbucket.org/pypy/pypy/changeset/6a1c5f8e7931/

Log:    use math1, test custom classes with __float__, fix docstring.

diff --git a/pypy/module/math/interp_math.py b/pypy/module/math/interp_math.py
--- a/pypy/module/math/interp_math.py
+++ b/pypy/module/math/interp_math.py
@@ -164,19 +164,19 @@
     w_descr = space.lookup(w_x, '__floor__')
     if w_descr is not None:
         return space.get_and_call_function(w_descr, w_x)
-    w_floor_float_result = space.wrap(math.floor(space.float_w(w_x)))
+    w_floor_float_result = math1(space, math.floor, w_x)
     return space.call_function(space.w_int, w_floor_float_result)
 
 def ceil(space, w_x):
     """ceil(x)
 
-       Return the ceiling of x as a float.
+       Return the ceiling of x as an int.
        This is the smallest integral value >= x.
     """
     w_descr = space.lookup(w_x, '__ceil__')
     if w_descr is not None:
         return space.get_and_call_function(w_descr, w_x)
-    w_ceil_float_result = space.wrap(math.ceil(space.float_w(w_x)))
+    w_ceil_float_result = math1(space, math.ceil, w_x)
     return space.call_function(space.w_int, w_ceil_float_result)
 
 def sqrt(space, w_x):
diff --git a/pypy/module/math/test/test_math.py 
b/pypy/module/math/test/test_math.py
--- a/pypy/module/math/test/test_math.py
+++ b/pypy/module/math/test/test_math.py
@@ -325,6 +325,12 @@
 
         assert math.ceil(StrangeCeil()) == "this is a string"
 
+        class CustomFloat:
+            def __float__(self):
+                return 99.9
+
+        assert math.ceil(CustomFloat()) == 100
+
     def test_floor(self):
         # adapted from the cpython test case
         import math
@@ -364,3 +370,9 @@
         assert math.floor(StrangeCeil()) == "this is a string"
 
         assert math.floor(1.23e167) - 1.23e167 == 0.0
+ 
+        class CustomFloat:
+            def __float__(self):
+                return 99.9
+
+        assert math.floor(CustomFloat()) == 99
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to