diff --git a/test-suite/tests/srfi-1.test b/test-suite/tests/srfi-1.test index cb6cc9151..3293730d6 100644 --- a/test-suite/tests/srfi-1.test +++ b/test-suite/tests/srfi-1.test @@ -415,6 +415,72 @@ (pass-if "(1 2) / (3 4) / (5 6)" (equal? '(9 12) (map + '(1 2) '(3 4) '(5 6)))))) +;; +;; map! +;; + +(with-test-prefix "map!" + + (pass-if-exception "no args" exception:wrong-num-args + (map!)) + + (pass-if-exception "no lists" exception:wrong-num-args + (map! 1+)) + + (with-test-prefix "one list" + + (pass-if "empty" + (equal? '() (map! 1+ (list)))) + + (pass-if "(1)" + (equal? '(2) (map! 1+ (list 1)))) + + (pass-if "(1 2)" + (equal? '(2 3) (map! 1+ (list 1 2))))) + + (with-test-prefix "two lists" + + (pass-if "empty / empty" + (equal? '() (map! + (list) (list)))) + + (pass-if "empty / (1)" + (equal? '() (map! + (list) (list 1)))) + + (pass-if "empty / (1 2)" + (equal? '() (map! + (list) (list 1 2)))) + + (pass-if "(1) / empty" + (equal? '() (map! + (list 1) (list)))) + + (pass-if "(1) / (2)" + (equal? '(3) (map! + (list 1) (list 2)))) + + (pass-if "(1) / (2 3)" + (equal? '(3) (map! + (list 1) (list 2 3)))) + + (pass-if "(1 2) / empty" + (equal? '() (map! + (list 1 2) (list)))) + + (pass-if "(1 2) / (3)" + (equal? '(4) (map! + (list 1 2) (list 3)))) + + (pass-if "(1 2) / (3 4)" + (equal? '(4 6) (map! + (list 1 2) (list 3 4))))) + + (with-test-prefix "three lists" + + (pass-if "empty / empty / empty" + (equal? '() (map! + (list) (list) (list)))) + + (pass-if "(1) / (2) / ()" + (equal? '() (map! + (list 1) (list 2) (list)))) + + (pass-if "(1) / (2) / (3)" + (equal? '(6) (map! + (list 1) (list 2) (list 3)))) + + (pass-if "(1 2) / (3 4) / (5 6)" + (equal? '(9 12) (map! + (list 1 2) (list 3 4) (list 5 6)))))) + ;; ;; partition ;;