aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/eq.lisp4
-rw-r--r--tests/list.lisp30
-rw-r--r--tests/test.lisp3
-rw-r--r--tests/type.lisp32
4 files changed, 67 insertions, 2 deletions
diff --git a/tests/eq.lisp b/tests/eq.lisp
index a7758bb..27e9aee 100644
--- a/tests/eq.lisp
+++ b/tests/eq.lisp
@@ -1,5 +1,5 @@
-(assert-error (eq?1 2 3))
-(assert-error (equal?1 2 3))
+(assert-error (eq? 1 2 3))
+(assert-error (equal? 1 2 3))
(assert (eq? 1 1))
(assert (eq? 'a 'a))
diff --git a/tests/list.lisp b/tests/list.lisp
index e154458..07fd08c 100644
--- a/tests/list.lisp
+++ b/tests/list.lisp
@@ -25,3 +25,33 @@
(assert (equal? (list 1 2 3 4)
(map (lambda (x) (+ 1 x)) (list 0 1 2 3))))
+
+(assert-error (reverse 1))
+(assert-error (reverse (cons 1 2)))
+
+(assert (equal? (list 1 2 3) (reverse (list 3 2 1))))
+(assert (equal? (list 1 2) (reverse (list 2 1))))
+(assert (equal? (list 1) (reverse (list 1))))
+(assert (equal? nil (reverse nil)))
+
+(assert-error (nreverse 1))
+(assert-error (nreverse (cons 1 2)))
+
+(assert (equal? (list 1 2 3) (nreverse (list 3 2 1))))
+(assert (equal? (list 1 2) (nreverse (list 2 1))))
+(assert (equal? (list 1) (nreverse (list 1))))
+(assert (equal? nil (nreverse nil)))
+
+(assert-error (last '()))
+(assert-error (last 1))
+
+(assert (equal? 3 (last (list 1 2 3))))
+(assert (equal? 3 (last (list 2 3))))
+(assert (equal? 3 (last (list 3))))
+
+(assert (member? nil (list 1 2 nil)))
+(assert (member? 1 (list 1 2 nil)))
+(assert (member? 2 (list 1 2 nil)))
+(assert (not (member? nil (list 1 2))))
+(assert (not (member? 3 (list 1 2))))
+
diff --git a/tests/test.lisp b/tests/test.lisp
index 59f91fb..8969a5b 100644
--- a/tests/test.lisp
+++ b/tests/test.lisp
@@ -19,6 +19,7 @@
(test-module let-binding)
(test-module string)
(test-module list)
+(test-module type)
(princ "\n\nTest with intensive GC:\n\n")
(_alwaysgc #t)
@@ -36,5 +37,7 @@
(test-module macro)
(test-module let-binding)
(test-module string)
+(test-module list)
+(test-module type)
(exit)
diff --git a/tests/type.lisp b/tests/type.lisp
new file mode 100644
index 0000000..d22913f
--- /dev/null
+++ b/tests/type.lisp
@@ -0,0 +1,32 @@
+(assert (list? (list 12 2 3)))
+(assert (list? nil))
+(assert (list? (list 1)))
+(assert (not (list? 1)))
+(assert (not (list? (cons 1 2))))
+(assert (not (list? '(1 2 . 3))))
+
+(assert (cons? (list 1 2 3)))
+(assert (cons? '(1 2 . 3)))
+(assert (not (cons? '())))
+
+(assert (null? nil))
+(assert (null? '()))
+(assert (not (null? #f)))
+
+(assert (number? 1))
+(assert (number? 1))
+(assert (number? 1.1))
+(assert (float? 1.1))
+(assert (float? (float 1)))
+(assert (not (float? 1)))
+(assert (not (integer? 1.1)))
+
+(assert (atom? nil))
+(assert (atom? #t))
+(assert (atom? 'a))
+(assert (atom? 1))
+(assert (atom? 1.1))
+(assert (atom? #\c))
+(assert (atom? "hello"))
+(assert (not (atom? (cons 1 2))))
+(assert (lambda () 1))