test/loud.ss
(module loud mzscheme
  (require "../loud.ss"
           (planet "test.ss" ("schematics" "schemeunit.plt" 1)))
  (provide loud-test)

  (define loud-test
    (make-test-suite "loud.ss"
      (make-test-case "string procedures"
        (let ((out (open-output-string))
              (loudmouth (loud:wrap-strings-procedure string-append)))
          (parameterize ((current-output-port out))
            (assert-equal? (parameterize ((loud? #f)) (loudmouth "a" "b"))
                           "ab")
            (assert-equal? (get-output-string out) "")
            (assert-equal? (loudmouth "a" "b") "ab")
            (assert-equal? (get-output-string out) "a b\n"))))
      (make-test-case "pathlike procedures"
        (let ((out (open-output-string))
              (loudmouth (loud:wrap-pathlikes-procedure/message cons "talk")))
          (parameterize ((current-output-port out))
            (assert-equal? (parameterize ((loud? #f)) (loudmouth "a" "b"))
                           (cons "a" "b"))
            (assert-equal? (get-output-string out) "")
            (assert-equal? (loudmouth "a" "b") (cons "a" "b"))
            (assert-equal? (get-output-string out) "talk: a b\n"))))
      ))
  )