program. Scheme工程的独立核验入口[mce-project-checks]

Defines: (caught-key run-checks)

Assembled in Scheme工程核验模块

Outputs: lp-example/mce/checks.scm

Requires: run, examples, errors

(define (caught-key thunk)
       (catch #t (lambda () (thunk) 'returned)
         (lambda (key . arguments) key)))

(define (run-checks)
       (for-each
         (lambda (example)
           (unless (equal? (run (cadr example)) (caddr example))
             (error "Result mismatch" (car example)))) examples)
       (for-each
         (lambda (example)
           (unless (eq? (caught-key (lambda () (run (cadr example)))) (caddr example))
             (error "Exception mismatch" (car example)))) errors)
       (list (length examples) (length errors)))