1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-28 16:00:22 +02:00

(list=): New tests.

This commit is contained in:
Kevin Ryde 2005-02-03 23:21:17 +00:00
parent fab030a253
commit 0da830fa49

View file

@ -616,6 +616,80 @@
(pass-if "(4 #f) (1 2 3)"
(equal? '(4) (filter-map noop '(4 #f) '(1 2 3))))))
;;
;; list=
;;
(with-test-prefix "list="
(pass-if "no lists"
(eq? #t (list= eqv?)))
(with-test-prefix "one list"
(pass-if "empty"
(eq? #t (list= eqv? '())))
(pass-if "one elem"
(eq? #t (list= eqv? '(1))))
(pass-if "two elems"
(eq? #t (list= eqv? '(2)))))
(with-test-prefix "two lists"
(pass-if "empty / empty"
(eq? #t (list= eqv? '() '())))
(pass-if "one / empty"
(eq? #f (list= eqv? '(1) '())))
(pass-if "empty / one"
(eq? #f (list= eqv? '() '(1))))
(pass-if "one / one same"
(eq? #t (list= eqv? '(1) '(1))))
(pass-if "one / one diff"
(eq? #f (list= eqv? '(1) '(2))))
(pass-if "called arg order"
(let ((good #t))
(list= (lambda (x y)
(set! good (and good (= (1+ x) y)))
#t)
'(1 3) '(2 4))
good)))
(with-test-prefix "three lists"
(pass-if "empty / empty / empty"
(eq? #t (list= eqv? '() '() '())))
(pass-if "one / empty / empty"
(eq? #f (list= eqv? '(1) '() '())))
(pass-if "one / one / empty"
(eq? #f (list= eqv? '(1) '(1) '())))
(pass-if "one / diff / empty"
(eq? #f (list= eqv? '(1) '(2) '())))
(pass-if "one / one / one"
(eq? #t (list= eqv? '(1) '(1) '(1))))
(pass-if "two / two / diff"
(eq? #f (list= eqv? '(1 2) '(1 2) '(1 99))))
(pass-if "two / two / two"
(eq? #t (list= eqv? '(1 2) '(1 2) '(1 2))))
(pass-if "called arg order"
(let ((good #t))
(list= (lambda (x y)
(set! good (and good (= (1+ x) y)))
#t)
'(1 4) '(2 5) '(3 6))
good))))
;;
;; list-copy
;;