diff options
Diffstat (limited to 'tests/macros.lisp')
-rw-r--r-- | tests/macros.lisp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/macros.lisp b/tests/macros.lisp index e86fbb3..ef9f8e5 100644 --- a/tests/macros.lisp +++ b/tests/macros.lisp @@ -27,3 +27,20 @@ (is eq 2 (--> x 1 (1+ x))) (is eq 2 (--> x 1 1+)) (is string= "World!" (--> _ "Hello" (format nil "~a World!" _) (subseq _ 6)))) + +(define-test (macro-test "->>") + (true (null (->>))) + (let ((a (gensym)) + (b (gensym)) + (c (gensym)) + (d (gensym))) + (is eq a (->> a)) + (is equal `(,a ,b) (macroexpand `(->> ,b (,a)))) + (is equal `(,a ,b) (macroexpand `(->> ,b ,a))) + (is equal `(,a (,b ,c)) (macroexpand `(->> ,c (,b) (,a)))) + (is equal `(,a (,b ,c)) (macroexpand `(->> ,c ,b ,a))) + (is equal `(,a ,b ,c) (macroexpand `(->> ,c (,a ,b)))) + (is equal `(,a ,b (,c ,d)) (macroexpand `(->> (,c ,d) (,a ,b)))) + (is equal `(,a (,b (,c ,d))) (macroexpand `(->> ,d (,c) (,b) (,a)))) + (is equal `(,a (,b (,c ,d))) (macroexpand `(->> ,d ,c ,b ,a)))) + (is string= "Hello, World!" (->> "world!" (format nil "hello, ~a") string-capitalize))) |