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:
parent
fab030a253
commit
0da830fa49
1 changed files with 74 additions and 0 deletions
|
@ -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
|
||||
;;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue