Загрузка данных


(define-syntax test
  (syntax-rules ()
    ((_ expr expected)
     (list 'expr (lambda () expr) expected))))

(define (run-test t)
  (write (car t))
  (let ((result ((cadr t))))
    (if (equal? result (caddr t))
        (begin (display " ok") (newline) #t)
        (begin (display " FAIL") (newline)
               (display "  Expected: ") (write (caddr t)) (newline)
               (display "  Returned: ") (write result) (newline)
               #f))))

(define (run-tests tests)
  (let loop ((ts tests) (all-ok #t))
    (if (null? ts)
        all-ok
        (let ((r (run-test (car ts))))
          (loop (cdr ts) (and all-ok r))))))