aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--progs/tests/boolean_ops.sy56
-rw-r--r--progs/tests/boolean_order.sy42
2 files changed, 98 insertions, 0 deletions
diff --git a/progs/tests/boolean_ops.sy b/progs/tests/boolean_ops.sy
new file mode 100644
index 0000000..368068b
--- /dev/null
+++ b/progs/tests/boolean_ops.sy
@@ -0,0 +1,56 @@
+start :: fn {
+ ts := 0
+ t :: fn -> bool {
+ ts += 1
+ ret true
+ }
+
+ fs := 0
+ f :: fn -> bool {
+ fs += 1
+ ret false
+ }
+
+ i :: fn -> bool {
+ <!>
+ ret false
+ }
+
+ if f() && i() {
+ <!>
+ }
+
+ if t() || i() {
+ // Empty
+ } else {
+ <!>
+ }
+
+ if f() && i() && i() {
+ <!>
+ }
+
+ if t() || i() || i() {
+ // Empty
+ } else {
+ <!>
+ }
+
+ fs <=> 2
+ ts <=> 2
+}
+
+
+
+ // if t() || i() && f() {
+ // // Empty
+ // } else {
+ // <!>
+ // }
+
+ // if f() && t() || i() {
+ // // Empty
+ // } else {
+ // <!>
+ // }
+
diff --git a/progs/tests/boolean_order.sy b/progs/tests/boolean_order.sy
new file mode 100644
index 0000000..ecec262
--- /dev/null
+++ b/progs/tests/boolean_order.sy
@@ -0,0 +1,42 @@
+start :: fn {
+ ts := 0
+ t :: fn -> bool {
+ ts += 1
+ ret true
+ }
+
+ fs := 0
+ f :: fn -> bool {
+ fs += 1
+ ret false
+ }
+
+ i :: fn -> bool {
+ <!>
+ ret false
+ }
+
+ if t() || i() && i() {
+ // Empty
+ } else {
+ <!>
+ }
+
+ if f() && i() || t() {
+ // Empty
+ } else {
+ <!>
+ }
+
+ fs <=> 1
+ fs = 0
+ ts <=> 2
+ ts = 0
+
+ f() && i() || f() <=> t() && f() || f()
+ f() && i() || f() <=> (t() && f()) || f()
+ t() && t() && f() || t() <=> t() || i() && i() && i()
+
+ fs <=> 9
+ ts <=> 6
+}