X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Flist.lisp;h=2f1b57cc93167022ada2712f2239d5154fd32548;hb=ac57d5570ffb5fb9936ffca4e0d6c8d9fddc1e29;hp=4be245327f7146b5e56eb086f0b5febbf0a7285d;hpb=2669d6cf38b520476ba7b8aeee557e2d9c382ef4;p=jscl.git diff --git a/tests/list.lisp b/tests/list.lisp index 4be2453..2f1b57c 100644 --- a/tests/list.lisp +++ b/tests/list.lisp @@ -49,6 +49,36 @@ (test (equal '((1 . 2) (a . b)) (pairlis '(1) '(2) '((a . b))))) +; COPY-ALIST +(let* ((alist '((1 . 2) (3 . 4))) + (copy (copy-alist alist))) + (test (not (eql alist copy))) + (test (not (eql (car alist) (car copy)))) + (test (equal alist copy))) + +; ASSOC and RASSOC +(let ((alist '((1 . 2) (3 . 4)))) + (test (equal (assoc 1 alist) '(1 . 2))) + (test (equal (rassoc 2 alist) '(1 . 2))) + (test (not (assoc 2 alist))) + (test (not (rassoc 1 alist)))) + +; 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)) + +; ADJOIN +(test (equal (adjoin 1 '(2 3)) '(1 2 3))) +(test (equal (adjoin 1 '(1 2 3)) '(1 2 3))) +(test (equal (adjoin '(1) '((1) (2)) :test #'equal) '((1) (2)))) + +; INTERSECTION +(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)))) + ; SUBST ; Can't really test this until EQUAL works properly on lists