Gaucheの単体テストで範囲をテスト

SICPの問題を解いてると答が範囲に含まれるかどうかをテストしたいことがよくあるので、簡単なのを自分で作った。

(use gauche.test)

;; Range test.
(define (test-range* msg expect1 expect2 thunk)
  (define (compare dummy result)
    (and (<= expect1 result)
         (>= expect2 result)))
  (test* msg (format #f "from ~s to ~s" expect1 expect2) thunk compare))