diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/macros.lisp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/macros.lisp b/tests/macros.lisp index ef9f8e5..5e0a1fb 100644 --- a/tests/macros.lisp +++ b/tests/macros.lisp @@ -44,3 +44,21 @@ (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))) + +(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 `(-<> ,b (,a ,c)))) + (is equal `(,a (,b (,c ,d))) (macroexpand `(-<> ,d (,c) (,b) (,a)))) + (is equal `(,a (,b (,c ,d))) (macroexpand `(-<> ,d ,c ,b ,a))) + (is equal `(,a (,b ,c) ,d) (macroexpand `(-<> ,c (,b) (,a ,d))))) + (is equal 69 (-<> 489 (- 420))) + (is string= "HELLO" (-<> "Hello World!" (subseq 0 5) string-upcase))) |