From 0da830fa4921a9b9669b5b4c27d2338adbad321e Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Thu, 3 Feb 2005 23:21:17 +0000 Subject: [PATCH] (list=): New tests. --- test-suite/tests/srfi-1.test | 74 ++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/test-suite/tests/srfi-1.test b/test-suite/tests/srfi-1.test index 37fe54752..d9945507a 100644 --- a/test-suite/tests/srfi-1.test +++ b/test-suite/tests/srfi-1.test @@ -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 ;;