Case-insensitive character inequalities.
[jscl.git] / tests / control.lisp
index 7fc4055..fba8956 100644 (file)
 
 (test (foo-2 nil))
 
+
+(test (equal (flet ((foo () (return-from foo 42)))
+               (foo))
+             42))
+
+(test (equal (let ((out (list)))
+               (labels ((zfoo (n rf i)
+                          (if (> n 0)
+                              (progn
+                                (push (lambda () (return-from zfoo n)) rf)
+                                (push n out)
+                                (zfoo (1- n) rf i)
+                                (push (- n) out))
+                              (progn
+                                (push 999 out)
+                                (funcall (nth i (reverse rf)))
+                                (push -999 out)))))
+                 (let ((rf (list)))
+                   (zfoo 5 rf 3)
+                   out)))
+             '(-5 -4 -3 999 1 2 3 4 5)))
+
+;; COMPLEMENT
+(test (funcall (complement #'zerop) 1))
+;; FIXME: Uncomment whenever characterp is defined
+;(test (not (funcall (complement #'characterp) #\A)))
+(test (not (funcall (complement #'member) 'a '(a b c))))
+(test (funcall (complement #'member) 'd '(a b c)))