Fix complex zero division testing.
authorRobert Bradshaw <robertwb@math.washington.edu>
Sat, 31 Oct 2009 20:42:53 +0000 (13:42 -0700)
committerRobert Bradshaw <robertwb@math.washington.edu>
Sat, 31 Oct 2009 20:42:53 +0000 (13:42 -0700)
Cython/Compiler/ExprNodes.py
tests/run/complex_numbers_T305.pyx

index 90a0671c22a9aaaf68c1b277ae6b1f205521e7d6..bd6b2ff88dd2cae9abbc4bd0526cdc88770b21ca 100644 (file)
@@ -5536,6 +5536,7 @@ class CoercionNode(ExprNode):
     #  arg       ExprNode       node being coerced
     
     subexprs = ['arg']
+    constant_result = not_a_constant
     
     def __init__(self, arg):
         self.pos = arg.pos
index f07dcffe679e5d5dae0b03df68782e076058ad79..e59e0a412aca2ba95f9241380c5381ca4ff46d6e 100644 (file)
@@ -1,6 +1,3 @@
-#cdef extern from "complex.h":
-#    pass
-
 cimport cython
 
 def test_object_conversion(o):
@@ -23,21 +20,20 @@ def test_arithmetic(double complex z, double complex w):
     ((6+12j), (-6-12j), (6+15j), (6+9j), (-36+18j), (4-2j))
     >>> test_arithmetic(5-10j, 3+4j)
     ((5-10j), (-5+10j), (8-6j), (2-14j), (55-10j), (-1-2j))
-    
-    ## XXX this is not working
-    ## >>> test_div_by_zero(4j)
-    ## -0.25j
-    ## >>> test_div_by_zero(0)
-    ## Traceback (most recent call last):
-    ## ...
-    ## ZeroDivisionError: float division
     """
     return +z, -z, z+w, z-w, z*w, z/w
 
-## XXX this is not working
-## @cython.cdivision(False)
-## def test_div_by_zero(double complex z):
-##    return 1/z
+@cython.cdivision(False)
+def test_div_by_zero(double complex z):
+    """
+    >>> test_div_by_zero(4j)
+    -0.25j
+    >>> test_div_by_zero(0)
+    Traceback (most recent call last):
+    ...
+    ZeroDivisionError: float division
+    """
+    return 1/z
 
 def test_coercion(int a, float b, double c, float complex d, double complex e):
     """