1(define-library (pingala test-map) 2 (export test-map test-exit) 3 (import (scheme base) (scheme write) (scheme process-context)) 4 (begin 5 (define failed? #f) 6 (define (fail expected res) 7 (set! failed? #t) 8 (display "FAIL: expected ") 9 (write expected) 10 (display " but got ") 11 (write res) 12 (newline)) 13 (define (test-exit) (exit (if failed? 1 0))) 14 (define-syntax test-map 15 (syntax-rules () 16 ((test-map expected proc values) 17 (let ((res (map proc 'values))) 18 (if (not (equal? res 'expected)) 19 (fail 'expected res)))))))) 20