X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Flist.lisp;h=02fed92fd23f277217cc345bebfe835d3b6c8add;hb=7478a2dfeb75791695ea643ecaa56adba8d77139;hp=aba417a22fa0b7b1f48c4f99ef49f67900d40eb9;hpb=47634cb14b5946d1b49b31fdd2f51e3b65cc7b15;p=jscl.git diff --git a/tests/list.lisp b/tests/list.lisp index aba417a..02fed92 100644 --- a/tests/list.lisp +++ b/tests/list.lisp @@ -1,15 +1,41 @@ -; Tests for list functions +;; Tests for list functions + +;; TODO: EQUAL doesn't compare lists correctly at the moment. +;; Once it does the lists can be compared directly in many of these tests ; COPY-TREE -(test (let* ((foo '((1 2) (3 4))) +(test (let* ((foo (list '(1 2) '(3 4))) (bar (copy-tree foo))) ;; (SETF (CAR (CAR FOO)) 0) doesn't work in the test for some reason, ;; despite working fine in the REPL (rplaca (car foo) 0) - ;; TODO: EQUAL doesn't compare lists correctly at the moment. - ;; Once it does the lists can be compared directly (not (= (car (car foo)) (car (car bar)))))) +; TREE-EQUAL +(test (tree-equal '(1 2 3) '(1 2 3))) +(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))))) + +; FIRST to TENTH +(let ((nums '(1 2 3 4 5 6 7 8 9 10))) + (test (= (first nums) 1)) + (test (= (second nums) 2)) + (test (= (third nums) 3)) + (test (= (fourth nums) 4)) + (test (= (fifth nums) 5)) + (test (= (sixth nums) 6)) + (test (= (seventh nums) 7)) + (test (= (eighth nums) 8)) + (test (= (ninth nums) 9)) + (test (= (tenth nums) 10))) + ; SUBST ; Can't really test this until EQUAL works properly on lists + +; POP +(test (let* ((foo '(1 2 3)) + (bar (pop foo))) + (and (= bar 1) + (= (car foo) 2))))