Add unit tests for lib.functions.split
This commit is contained in:
@@ -31,10 +31,10 @@ each member is STEP distance apart."
|
||||
"Return the first N elements of LST."
|
||||
(subseq lst 0 n))
|
||||
|
||||
(fn split (n lst) (-> (fixnum list) list)
|
||||
(fn split (n lst) (-> (fixnum sequence) (values sequence sequence))
|
||||
"Return CONS where CAR is the first N elements of LST and CDR is the rest."
|
||||
(cons (take n lst)
|
||||
(subseq lst n)))
|
||||
(values (take n lst)
|
||||
(subseq lst n)))
|
||||
|
||||
(fn rev-map (indicator lst &key (key-eq #'eq))
|
||||
(-> (function list &key (:key-eq function)) list)
|
||||
|
||||
@@ -48,3 +48,18 @@
|
||||
(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))))
|
||||
|
||||
(define-test (function-test split)
|
||||
:compile-at :execute
|
||||
(fail (split nil nil))
|
||||
(fail (split 100 nil))
|
||||
(fail (split nil 100))
|
||||
(is-values (split 0 '(1 2 3 4))
|
||||
(eq nil)
|
||||
(equal '(1 2 3 4)))
|
||||
(is-values (split 1 '(1 2 3 4))
|
||||
(equal '(1))
|
||||
(equal '(2 3 4)))
|
||||
(is-values (split 5 "Hello World")
|
||||
(string= "Hello")
|
||||
(string= " World")))
|
||||
|
||||
Reference in New Issue
Block a user