Author: Timo Paulssen <[email protected]>
Branch: py3k-ceil-floor
Changeset: r59060:30125a5875fc
Date: 2012-11-23 00:17 +0100
http://bitbucket.org/pypy/pypy/changeset/30125a5875fc/
Log: adapted a test case from 3.2/test/test_math for ceil.
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
@@ -2,6 +2,11 @@
import sys
from pypy.module.math.test import test_direct
+# taken from cpython test case test/test_math.py
+eps = 1E-05
+
+def almost_equal(a, b):
+ return abs(a-b) <= eps
class AppTestMath:
spaceconfig = dict(usemodules=['math', 'struct'])
@@ -287,3 +292,27 @@
setattr(Z, '__{}__'.format(name), lambda self: i)
func = getattr(math, name)
assert func(Z()) == i
+
+ def test_ceil(self):
+ import math
+ raises(TypeError, math.ceil)
+ assert type(math.ceil(0.4)) is int
+ assert almost_equal(math.ceil(0.5), 1)
+ assert almost_equal(math.ceil(1.0), 1)
+ assert almost_equal(math.ceil(1.5), 2)
+ assert almost_equal(math.ceil(-0.5), 0)
+ assert almost_equal(math.ceil(-1.0), -1)
+ assert almost_equal(math.ceil(-1.5), -1)
+
+ class TestCeil:
+ def __ceil__(self):
+ return 42
+ class TestNoCell:
+ pass
+ assert almost_equal(math.ceil(TestCeil()), 42)
+ raises(TypeError, math.ceil, TestNoCeil())
+
+ t = TestNoCeil()
+ t.__ceil__ = lambda *args: args
+ raises(TypeError, math.ceil, t)
+ raises(TypeError, math.ceil, t, 0)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit