Tests for ticket #446.
authorRobert Bradshaw <robertwb@math.washington.edu>
Thu, 5 Nov 2009 05:02:09 +0000 (21:02 -0800)
committerRobert Bradshaw <robertwb@math.washington.edu>
Thu, 5 Nov 2009 05:02:09 +0000 (21:02 -0800)
tests/run/complex_int_T446.pyx [new file with mode: 0644]

diff --git a/tests/run/complex_int_T446.pyx b/tests/run/complex_int_T446.pyx
new file mode 100644 (file)
index 0000000..d2afae5
--- /dev/null
@@ -0,0 +1,46 @@
+import cython
+
+def test_arith(int complex a, int complex b):
+    """
+    >>> test_arith(4, 2)
+    ((-4+0j), (6+0j), (2+0j), (8+0j), (2+0j))
+    >>> test_arith(6+9j, 3j)
+    ((-6-9j), (6+12j), (6+6j), (-27+18j), (3-2j))
+    >>> test_arith(29+11j, 5+7j)
+    ((-29-11j), (34+18j), (24+4j), (68+258j), (3-2j))
+    """
+    return -a, a+b, a-b, a*b, a/b
+
+@cython.cdivision(False)
+def test_div_by_zero(long complex z):
+    """
+    >>> test_div_by_zero(4j)
+    -25j
+    >>> test_div_by_zero(0)
+    Traceback (most recent call last):
+    ...
+    ZeroDivisionError: float division
+    """
+    return 100/z
+
+def test_coercion(int a, long b, int complex c):
+    """
+    >>> test_coercion(1, -2, 3-3j)
+    (1+0j)
+    (-2+0j)
+    (3-3j)
+    (5-6j)
+    """
+    cdef double complex z
+    z = a; print z
+    z = b; print z
+    z = c; print z
+    return z + a + b + c
+
+
+def test_conjugate(long complex z):
+    """
+    >>> test_conjugate(2+3j)
+    (2-3j)
+    """
+    return z.conjugate()
\ No newline at end of file