test for min/max builtins
authorStefan Behnel <scoder@users.berlios.de>
Wed, 26 May 2010 22:20:15 +0000 (00:20 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Wed, 26 May 2010 22:20:15 +0000 (00:20 +0200)
tests/run/builtin_min_max.pyx [new file with mode: 0644]

diff --git a/tests/run/builtin_min_max.pyx b/tests/run/builtin_min_max.pyx
new file mode 100644 (file)
index 0000000..b05b2d0
--- /dev/null
@@ -0,0 +1,92 @@
+
+cimport cython
+
+# min()
+
+@cython.test_assert_path_exists("//IfStatNode")
+@cython.test_fail_if_path_exists("//SimpleCallNode")
+def min3(a,b,c):
+    """
+    >>> min3(1,2,3)
+    1
+    >>> min3(2,3,1)
+    1
+    >>> min3(2,1,3)
+    1
+    >>> min3(3,1,2)
+    1
+    >>> min3(3,2,1)
+    1
+    """
+    return min(a,b,c)
+
+@cython.test_assert_path_exists("//IfStatNode")
+@cython.test_fail_if_path_exists("//SimpleCallNode")
+def min3_typed(int a, int b, int c):
+    """
+    >>> min3_typed(1,2,3)
+    1
+    >>> min3_typed(2,3,1)
+    1
+    >>> min3_typed(2,1,3)
+    1
+    >>> min3_typed(3,1,2)
+    1
+    >>> min3_typed(3,2,1)
+    1
+    """
+    return min(a,b,c)
+
+@cython.test_assert_path_exists("//IfStatNode")
+@cython.test_fail_if_path_exists("//SimpleCallNode")
+def literal_min3():
+    """
+    >>> literal_min3()
+    (1, 1, 1, 1, 1)
+    """
+    return min(1,2,3), min(2,1,3), min(2,3,1), min(3,1,2), min(3,2,1)
+
+# max()
+
+@cython.test_assert_path_exists("//IfStatNode")
+@cython.test_fail_if_path_exists("//SimpleCallNode")
+def max3(a,b,c):
+    """
+    >>> max3(1,2,3)
+    3
+    >>> max3(2,3,1)
+    3
+    >>> max3(2,1,3)
+    3
+    >>> max3(3,1,2)
+    3
+    >>> max3(3,2,1)
+    3
+    """
+    return max(a,b,c)
+
+@cython.test_assert_path_exists("//IfStatNode")
+@cython.test_fail_if_path_exists("//SimpleCallNode")
+def max3_typed(int a, int b, int c):
+    """
+    >>> max3_typed(1,2,3)
+    3
+    >>> max3_typed(2,3,1)
+    3
+    >>> max3_typed(2,1,3)
+    3
+    >>> max3_typed(3,1,2)
+    3
+    >>> max3_typed(3,2,1)
+    3
+    """
+    return max(a,b,c)
+
+@cython.test_assert_path_exists("//IfStatNode")
+@cython.test_fail_if_path_exists("//SimpleCallNode")
+def literal_max3():
+    """
+    >>> literal_max3()
+    (3, 3, 3, 3, 3)
+    """
+    return max(1,2,3), max(2,1,3), max(2,3,1), max(3,1,2), max(3,2,1)