[pypy-commit] pypy default: Add a test that I wrote long ago, but apparently forgot to check in.

arigo noreply at buildbot.pypy.org
Mon Dec 5 20:07:39 CET 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r50179:ed550a1d0c11
Date: 2011-12-05 20:07 +0100
http://bitbucket.org/pypy/pypy/changeset/ed550a1d0c11/

Log:	Add a test that I wrote long ago, but apparently forgot to check in.

diff --git a/pypy/jit/metainterp/test/test_math.py b/pypy/jit/metainterp/test/test_math.py
new file mode 100644
--- /dev/null
+++ b/pypy/jit/metainterp/test/test_math.py
@@ -0,0 +1,47 @@
+import math
+from pypy.jit.metainterp.test.support import LLJitMixin, OOJitMixin
+from pypy.rlib.rfloat import isinf, isnan, INFINITY, NAN
+
+class MathTests:
+    
+    def test_math_sqrt(self):
+        def f(x):
+            try:
+                return math.sqrt(x)
+            except ValueError:
+                return -INFINITY
+        
+        res = self.interp_operations(f, [0.0])
+        assert res == 0.0
+        self.check_operations_history(call_pure=1)
+        #
+        res = self.interp_operations(f, [25.0])
+        assert res == 5.0
+        self.check_operations_history(call_pure=1)
+        #
+        res = self.interp_operations(f, [-0.0])
+        assert str(res) == '-0.0'
+        self.check_operations_history(call_pure=1)
+        #
+        res = self.interp_operations(f, [1000000.0])
+        assert res == 1000.0
+        self.check_operations_history(call_pure=1)
+        #
+        res = self.interp_operations(f, [-1.0])
+        assert res == -INFINITY
+        self.check_operations_history(call_pure=0)
+        #
+        res = self.interp_operations(f, [INFINITY])
+        assert isinf(res) and not isnan(res) and res > 0.0
+        self.check_operations_history(call_pure=0)
+        #
+        res = self.interp_operations(f, [NAN])
+        assert isnan(res) and not isinf(res)
+        self.check_operations_history(call_pure=0)
+
+
+class TestOOtype(MathTests, OOJitMixin):
+    pass
+
+class TestLLtype(MathTests, LLJitMixin):
+    pass


More information about the pypy-commit mailing list