aboutsummaryrefslogtreecommitdiff
path: root/tests/list.lisp
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-06-24 15:44:12 +0800
committerMistivia <i@mistivia.com>2025-06-24 15:50:55 +0800
commit65cd835954825568a432c2e62d8019269dcafd74 (patch)
tree52724d76c7506e1acce6c20903ff18fbeda02c8f /tests/list.lisp
parent60b8cd0df3ed844ea5c77286ac27afff5b3c9b37 (diff)
add list function
Diffstat (limited to 'tests/list.lisp')
-rw-r--r--tests/list.lisp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/list.lisp b/tests/list.lisp
new file mode 100644
index 0000000..168ccf2
--- /dev/null
+++ b/tests/list.lisp
@@ -0,0 +1,23 @@
+(let ((l (list 1 2 3)))
+ (set-cdr l 4)
+ (assert (equal? l (cons 1 4))))
+
+(let ((l (list 1 2 3)))
+ (set-car l 4)
+ (assert (equal? l (list 4 2 3))))
+
+(assert-error (set-car 1))
+(assert-error (set-car))
+(assert-error (set-car (list 1) (list 2) (list 3)))
+(assert-error (set-car ""))
+(assert-error (set-cdr 1))
+(assert-error (set-cdr))
+(assert-error (set-cdr (list 1) (list 2) (list 3)))
+(assert-error (set-cdr ""))
+
+(assert (= 3 (length (list 1 2 3))))
+(assert (= 0 (length nil)))
+
+(assert (= 3 (nth 2 (list 1 2 3))))
+(assert (equal? nil (nthcdr 2 (list 1 2 3))))
+(assert (equal? (list 3) (nthcdr 1 (list 1 2 3))))