Author: Amaury Forgeot d'Arc <[email protected]>
Branch: 
Changeset: r60625:83989cc371b2
Date: 2013-01-28 19:53 +0100
http://bitbucket.org/pypy/pypy/changeset/83989cc371b2/

Log:    Add rcomplex.isfinite()

diff --git a/rpython/rlib/rcomplex.py b/rpython/rlib/rcomplex.py
--- a/rpython/rlib/rcomplex.py
+++ b/rpython/rlib/rcomplex.py
@@ -566,3 +566,6 @@
 def c_isnan(r, i):
     return isnan(r) or isnan(i)
 
+
+def c_isfinite(r, i):
+    return isfinite(r) and isfinite(i)
diff --git a/rpython/rlib/test/test_rcomplex.py 
b/rpython/rlib/test/test_rcomplex.py
--- a/rpython/rlib/test/test_rcomplex.py
+++ b/rpython/rlib/test/test_rcomplex.py
@@ -260,3 +260,24 @@
         rAssertAlmostEqual(expected[1], actual[1],
                            abs_err=real_abs_err,
                            msg=error_message)
+
+def test_isnan():
+    assert not c.c_isnan(0, 0)
+    assert c.c_isnan(float('nan'), 0)
+    assert c.c_isnan(1, float('nan'))
+    assert not c.c_isnan(float('inf'), 0)
+
+def test_isinf():
+    assert not c.c_isinf(0, 0)
+    assert c.c_isinf(float('inf'), 0)
+    assert c.c_isinf(float('-inf'), 0)
+    assert c.c_isinf(1, float('inf'))
+    assert not c.c_isinf(float('nan'), 0)
+
+def test_isfinite():
+    assert c.c_isfinite(0, 0)
+    assert not c.c_isfinite(float('nan'), 0)
+    assert not c.c_isfinite(float('-inf'), 0)
+    assert not c.c_isfinite(0, float('nan'))
+    assert not c.c_isfinite(0, float('-inf'))
+
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to