X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Flist.lisp;h=ffc672d3065697cc24b0acd2a19e578de9a8fe69;hb=24be362db85130ee0ac336448a0f74f53ff90a2a;hp=7ce643eee8eab10dce2548e61c902985a74e007b;hpb=7b9c47361e1aac31bc78d4627b651b8cc5ee0a7c;p=jscl.git diff --git a/tests/list.lisp b/tests/list.lisp index 7ce643e..ffc672d 100644 --- a/tests/list.lisp +++ b/tests/list.lisp @@ -120,9 +120,11 @@ ; TREE-EQUAL (test (tree-equal '(1 2 3) '(1 2 3))) +(test (not (tree-equal '(1 2 3) '(3 2 1)))) (test (tree-equal '(1 (2 (3 4) 5) 6) '(1 (2 (3 4) 5) 6))) -(test (tree-equal (cons 1 2) (cons 2 3) - :test (lambda (a b) (not (= a b))))) +(test (tree-equal (cons 1 2) (cons 2 3) :test (lambda (a b) (not (= a b))))) +(test (tree-equal '(1 . 2) '(2 . 1) :test-not #'eql)) +(test (not (tree-equal '(1 . 2) '(1 . 2) :test-not #'eql))) ; FIRST to TENTH (let ((nums '(1 2 3 4 5 6 7 8 9 10))) @@ -167,13 +169,18 @@ (test (equal (assoc 1 alist) '(1 . 2))) (test (equal (rassoc 2 alist) '(1 . 2))) (test (not (assoc 2 alist))) - (test (not (rassoc 1 alist)))) + (test (not (rassoc 1 alist))) + (test (equal (assoc 3 alist :test-not #'=) '(1 . 2))) + (test (equal (rassoc 4 alist :test-not #'=) '(1 . 2))) + (test (equal (assoc 1 alist :key (lambda (x) (/ x 3))) '(3 . 4))) + (test (equal (rassoc 2 alist :key (lambda (x) (/ x 2))) '(3 . 4)))) ; MEMBER (test (equal (member 2 '(1 2 3)) '(2 3))) (test (not (member 4 '(1 2 3)))) (test (equal (member 4 '((1 . 2) (3 . 4)) :key #'cdr) '((3 . 4)))) (test (member '(2) '((1) (2) (3)) :test #'equal)) +(test (member 1 '(1 2 3) :test-not #'eql)) ; ADJOIN (test (equal (adjoin 1 '(2 3)) '(1 2 3))) @@ -184,6 +191,9 @@ (test (equal (intersection '(1 2) '(2 3)) '(2))) (test (not (intersection '(1 2 3) '(4 5 6)))) (test (equal (intersection '((1) (2)) '((2) (3)) :test #'equal) '((2)))) +(test (equal '((1 . 2)) + (intersection '((1 . 2) (2 . 3)) '((9 . 2) (9 . 4)) + :test #'equal :key #'cdr))) ; POP (test (let* ((foo '(1 2 3)) @@ -194,6 +204,14 @@ ;; MAPCAR (test (equal (mapcar #'+ '(1 2) '(3) '(4 5 6)) '(8))) +;; MAPLIST +(test (equal '((1 2 3 4 1 2 1 2 3) (2 3 4 2 2 3)) + (maplist #'append '(1 2 3 4) '(1 2) '(1 2 3)))) +(test (equal '((FOO A B C D) (FOO B C D) (FOO C D) (FOO D)) + (maplist #'(lambda (x) (cons 'foo x)) '(a b c d)))) +(test (equal '(0 0 1 0 1 1 1) + (maplist #'(lambda (x) (if (member (car x) (cdr x)) 0 1)) '(a b a c d b c)))) + ;; MAPC (test (equal (mapc #'+ '(1 2) '(3) '(4 5 6)) '(1 2))) (test (let (foo)