From e9dcba06bb5818d7b7b3f9c63e09d30070109fca Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Fri, 21 Feb 2025 13:59:13 +0000 Subject: Add unit tests for lib.functions.take --- lib/functions.lisp | 2 +- tests/functions.lisp | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/functions.lisp b/lib/functions.lisp index 40e940a..dd9976d 100644 --- a/lib/functions.lisp +++ b/lib/functions.lisp @@ -27,7 +27,7 @@ each member is STEP distance apart." (loop :for i :from start :to (1- end) :by step :collect i))) -(fn take (n lst) (-> (fixnum list) list) +(fn take (n lst) (-> (fixnum sequence) sequence) "Return the first N elements of LST." (subseq lst 0 n)) diff --git a/tests/functions.lisp b/tests/functions.lisp index 0025827..8582213 100644 --- a/tests/functions.lisp +++ b/tests/functions.lisp @@ -39,3 +39,12 @@ (true (null (range 1 1))) (is equal '(1 2 3 4) (range 1 5)) (is equal '(-3 -2 -1 0) (range -3 1))) + +(define-test (function-test take) + :compile-at :execute + (fail (take nil nil)) + (fail (take 100 nil)) + (fail (take nil 100)) + (true (->> (list 1 2 3 4) (take 0) null)) + (is equal "H" (take 1 "Hello")) + (is equal '(1 2) (take 2 '(1 2 3 4 5)))) -- cgit v1.2.3-13-gbd6f