diff options
author | Stefan Behnel <stefan_ml@behnel.de> | 2020-03-31 10:52:42 +0200 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2020-03-31 10:53:03 +0200 |
commit | 49257123602bea7327aad532e6c21276deed3ed6 (patch) | |
tree | bfe08a9fbd4a508a06956c2c9b0ea187d335182f | |
parent | e1aab098e87b53cf36947189f272959e46060bd6 (diff) | |
download | cython-49257123602bea7327aad532e6c21276deed3ed6.tar.gz |
Add a dedicated test for and/or operators in a boolean context.
-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 |