summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'data/tests/conditionals.fate')
-rw-r--r--data/tests/conditionals.fate222
1 files changed, 222 insertions, 0 deletions
diff --git a/data/tests/conditionals.fate b/data/tests/conditionals.fate
new file mode 100644
index 0000000..02730c6
--- /dev/null
+++ b/data/tests/conditionals.fate
@@ -0,0 +1,222 @@
+(fate_version 1)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;; COMPUTATIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; COMPUTATION IF-ELSE
+(assert (ifelse (true) (true) (false)) FAILED: computation if-else A)
+(assert (ifelse (false) (false) (true)) FAILED: computation if-else B)
+(assert (ifelse (false) (false) (ifelse (true) (true) (false))) FAILED: computation if-else C)
+
+;; COMPUTATION COND
+(assert
+ (cond
+ ((true) (true))
+ )
+ FAILED: computation cond A
+)
+(assert
+ (cond
+ ((false) (false))
+ ((true) (true))
+ )
+ FAILED: computation cond D
+)
+(assert
+ (cond
+ ((false) (false))
+ ((true) (true))
+ ((true) (false))
+ )
+ FAILED: computation cond E
+)
+(assert
+ (cond
+ ((false) (false))
+ ((true)
+ (cond
+ ((false) (false))
+ ((true) (true))
+ ((true) (false))
+ )
+ )
+ ((true) (false))
+ )
+ FAILED: computation cond D
+)
+
+;; COMPUTATION SWITCH
+;; TODO: re-enable. Currently not implemented in Wyrd compiler
+;;(assert
+;; (switch 3
+;; (0 (false))
+;; (1 (false))
+;; (3 (true))
+;; (2 (false))
+;; (false)
+;; )
+;; FAILED: computation switch A
+;;)
+;;(assert
+;; (switch 3
+;; (0 (false))
+;; (1 (false))
+;; (2 (false))
+;; (true)
+;; )
+;; FAILED: computation switch B
+;;)
+;;(assert
+;; (switch 3
+;; (0 (false))
+;; (1 (false))
+;; (2 (false))
+;; (switch 2
+;; (0 (false))
+;; (1 (false))
+;; (2 (true))
+;; (false)
+;; )
+;; )
+;; FAILED: computation switch C
+;;)
+;;(assert
+;; (switch 3
+;; (0 (false))
+;; (1 (false))
+;; (2
+;; (switch 1
+;; (0 (false))
+;; (2 (false))
+;; (1 (true))
+;; (false)
+;; )
+;; )
+;; (false)
+;; )
+;; FAILED: computation switch D
+;;)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;; INSTRUCTIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(declare_variable boolean test_var)
+(set test_var (true))
+
+(assert (var test_var) FAILED: setting test_var)
+
+;; INSTRUCTION IF
+(if (false)
+ (assert (false) FAILED: instruction if A)
+)
+
+(set test_var (false))
+(if (true)
+ (set test_var (true))
+)
+(assert (var test_var) FAILED: instruction if B)
+
+(if (false)
+ (if (false)
+ (assert (false) FAILED: instruction if C)
+ )
+)
+(if (true)
+ (if (false)
+ (assert (false) FAILED: instruction if D)
+ )
+)
+(if (false)
+ (if (true)
+ (assert (false) FAILED: instruction if E)
+ )
+)
+
+(set test_var (false))
+(if (true)
+ (if (true)
+ (set test_var (true))
+ )
+)
+(assert (var test_var) FAILED: instruction if F)
+
+;; INSTRUCTION IF-ELSE
+(set test_var (false))
+(ifelse (false)
+ (assert (false) FAILED: instruction ifelse A)
+ (set test_var (true))
+)
+(assert (var test_var) FAILED: instruction ifelse B)
+
+(set test_var (false))
+(ifelse (true)
+ (set test_var (true))
+ (assert (false) FAILED: instruction ifelse C)
+)
+(assert (var test_var) FAILED: instruction ifelse D)
+
+(set test_var (false))
+(ifelse (true)
+ (ifelse (false)
+ (assert (false) FAILED: instruction ifelse E)
+ (set test_var (true))
+ )
+ (assert (false) FAILED: instruction ifelse F)
+)
+(assert (var test_var) FAILED: instruction ifelse G)
+
+;; INSTRUCTION COND
+(set test_var (false))
+(cond
+ ((false) (assert (false) FAILED: instruction cond A))
+ ((true) (set test_var (true)))
+)
+(assert (var test_var) FAILED: instruction cond B)
+
+(set test_var (false))
+(cond
+ ((true) (set test_var (true)))
+ ((false) (assert (false) FAILED: instruction cond B))
+)
+(assert (var test_var) FAILED: instruction cond C)
+
+(set test_var (false))
+(cond
+ ((true) (set test_var (true)))
+ ((true) (assert (false) FAILED: instruction cond D))
+ ((false) (assert (false) FAILED: instruction cond E))
+)
+(assert (var test_var) FAILED: instruction cond F)
+
+;; INSTRUCTION SWITCH
+(set test_var (false))
+(switch 3
+ (0 (assert (false) FAILED: instruction switch B))
+ (1 (assert (false) FAILED: instruction switch C))
+ (set test_var (true))
+)
+(assert (var test_var) FAILED: instruction switch D)
+
+(set test_var (false))
+(switch 3
+ (0 (assert (false) FAILED: instruction switch E))
+ (1 (assert (false) FAILED: instruction switch F))
+ (3 (set test_var (true)))
+ (2 (assert (false) FAILED: instruction switch G))
+ (assert (false) FAILED: instruction switch H)
+)
+(assert (var test_var) FAILED: instruction switch I)
+
+(set test_var (false))
+(switch 3
+ (0 (assert (false) FAILED: instruction switch J))
+ (1 (assert (false) FAILED: instruction switch K))
+ (3 (set test_var (true)))
+ (3 (assert (false) FAILED: instruction switch L))
+ (2 (assert (false) FAILED: instruction switch M))
+ (assert (false) FAILED: instruction switch N)
+)
+(assert (var test_var) FAILED: instruction switch O)
+
+(end)