1(define-library (pingala prosody-test) 2 (export run-tests) 3 (import (scheme base) (scheme write) (scheme process-context) 4 (pingala prosody)) 5 (begin 6 ;; test utils 7 (define failed? #f) 8 (define (fail expr expected res) 9 (set! failed? #t) 10 (display "FAIL: ") 11 (write expr) 12 (display ": expected: ") 13 (write expected) 14 (display " but got: ") 15 (write res) 16 (newline)) 17 (define (test-exit) (exit (not failed?))) 18 (define-syntax test 19 (syntax-rules () 20 ((test expected expr) 21 (let ((res expr)) 22 (if (not (equal? res expected)) 23 (fail 'expr expected res)))))) 24 ;; tests 25 (define (run-tests) 26 (test "ma" (ganas 0)) 27 (test "bha" (ganas 6)) 28 (test "L-L-H" (ganas-pattern "sa")) 29 (test "L-L-H" (ganas-pattern 3)) 30 (test "H-L-L" (ganas-pattern "bha")) 31 (test-exit)))) 32