aboutsummaryrefslogtreecommitdiff
path: root/tests/control-flow.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/control-flow.lisp')
-rw-r--r--tests/control-flow.lisp36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/control-flow.lisp b/tests/control-flow.lisp
index 75095ec..321aae0 100644
--- a/tests/control-flow.lisp
+++ b/tests/control-flow.lisp
@@ -27,6 +27,42 @@
(assert (= i 10))
(assert (= flag 0)))
+(let ((f nil))
+ (setq f
+ (lambda (x)
+ (cond ((> x 5) 1)
+ ((> x 0) (+ 1 1))
+ (#t (+ x 1)))))
+ (assert (= 1 (funcall f 10)))
+ (assert (= 2 (funcall f 3)))
+ (assert (= 0 (funcall f -1))))
+
+(let ((r nil))
+ (if (> 2 1)
+ (setq r 1)
+ (setq r 2))
+ (assert (= r 1)))
+
+(let ((r 1))
+ (when (> 2 1)
+ (setq r 2))
+ (assert (= r 2)))
+
+(let ((r 1))
+ (when (> 1 2)
+ (setq r 2))
+ (assert (= r 1)))
+
+(let ((r 1))
+ (unless (> 1 2)
+ (setq r 2))
+ (assert (= r 2)))
+
+(let ((r 1))
+ (unless (> 2 1)
+ (setq r 2))
+ (assert (= r 1)))
+
(assert-error (funcall (lambda () (break))))
(assert-error (funcall (lambda () (continue))))
(assert (= 1 (funcall (lambda () (return 1)))))