diff options
Diffstat (limited to 'tests/run/if_and_or.pyx')
-rw-r--r-- | tests/run/if_and_or.pyx | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/run/if_and_or.pyx b/tests/run/if_and_or.pyx new file mode 100644 index 000000000..6f2534078 --- /dev/null +++ b/tests/run/if_and_or.pyx @@ -0,0 +1,119 @@ +# mode: run +# tag: if, and, or + +def if_x(x): + """ + >>> if_x(0) + 2 + >>> if_x(1) + 1 + """ + if x: + return 1 + else: + return 2 + +def if_not(x): + """ + >>> if_not(0) + 1 + >>> if_not(1) + 2 + """ + if not x: + return 1 + else: + return 2 + + +def if_and(a, b): + """ + >>> if_and(3, 0) + 2 + >>> if_and(0, 3) + 2 + >>> if_and(0, 0) + 2 + >>> if_and(3, 3) + 1 + """ + if a and b: + return 1 + else: + return 2 + + +def if_not_and(a, b): + """ + >>> if_not_and(3, 0) + 1 + >>> if_not_and(0, 3) + 1 + >>> if_not_and(0, 0) + 1 + >>> if_not_and(3, 3) + 2 + """ + if not (a and b): + return 1 + else: + return 2 + + +def if_or(a, b): + """ + >>> if_or(3, 0) + 1 + >>> if_or(0, 3) + 1 + >>> if_or(0, 0) + 2 + >>> if_or(3, 3) + 1 + """ + if a or b: + return 1 + else: + return 2 + + +def if_not_or(a, b): + """ + >>> if_not_or(3, 0) + 2 + >>> if_not_or(0, 3) + 2 + >>> if_not_or(0, 0) + 1 + >>> if_not_or(3, 3) + 2 + """ + if not (a or b): + return 1 + else: + return 2 + + +def if_and_or(a, b, c, d): + """ + >>> if_and_or(3, 0, 0, 3) + 1 + >>> if_and_or(0, 3, 0, 3) + 1 + >>> if_and_or(0, 3, 3, 0) + 1 + >>> if_and_or(0, 3, 3, 0) + 1 + >>> if_and_or(0, 0, 0, 0) + 2 + >>> if_and_or(0, 3, 0, 0) + 2 + >>> if_and_or(0, 0, 3, 0) + 2 + >>> if_and_or(0, 0, 0, 3) + 2 + """ + if (a or b) and (c or d): + return 1 + else: + return 2 |