diff --git a/test-suite/tests/srfi-1.test b/test-suite/tests/srfi-1.test index 236905e28..772009043 100644 --- a/test-suite/tests/srfi-1.test +++ b/test-suite/tests/srfi-1.test @@ -457,6 +457,50 @@ (equal? 'c (drop '(a b . c) 2)))) +;; +;; filter-map +;; + +(with-test-prefix "filter-map" + + (with-test-prefix "one list" + (pass-if "(1)" + (equal? '(1) (filter-map noop '(1)))) + + (pass-if "(#f)" + (equal? '() (filter-map noop '(#f)))) + + (pass-if "(1 2)" + (equal? '(1 2) (filter-map noop '(1 2)))) + + (pass-if "(#f 2)" + (equal? '(2) (filter-map noop '(#f 2)))) + + (pass-if "(#f #f)" + (equal? '() (filter-map noop '(#f #f)))) + + (pass-if "(1 2 3)" + (equal? '(1 2 3) (filter-map noop '(1 2 3)))) + + (pass-if "(#f 2 3)" + (equal? '(2 3) (filter-map noop '(#f 2 3)))) + + (pass-if "(1 #f 3)" + (equal? '(1 3) (filter-map noop '(1 #f 3)))) + + (pass-if "(1 2 #f)" + (equal? '(1 2) (filter-map noop '(1 2 #f))))) + + (with-test-prefix "two lists" + (pass-if "(1 2 3) (4 5 6)" + (equal? '(1 2 3) (filter-map noop '(1 2 3) '(4 5 6)))) + + (pass-if "(#f 2 3) (4 5)" + (equal? '(2) (filter-map noop '(#f 2 3) '(4 5)))) + + (pass-if "(4 #f) (1 2 3)" + (equal? '(4) (filter-map noop '(4 #f) '(1 2 3)))))) + ;; ;; length+ ;;