diff --git a/typed-compose.rkt b/typed-compose.rkt index 3bd4f9b..623e62b 100644 --- a/typed-compose.rkt +++ b/typed-compose.rkt @@ -34,7 +34,8 @@ (f x)))) (module+ test - (check-equal? ((compose-n add1 add1 add1) 3) 6)) + (test-case "compose-n" + (check-equal? ((compose-n add1 add1 add1) 3) 6))) (: compose-3 (All (a b c d) (-> (-> c d) @@ -114,17 +115,18 @@ (λ (x) (f1 (f2 (f3 (f4 (f5 (f6 (f7 (f8 (f9 x))))))))))) (module+ test - (define (s->n [s : String]) (cast (string->number s) Number)) - (define (n->s [n : Number]) (number->string n)) - (check-equal? ((compose-3 n->s add1 s->n) "3") "4") - (check-equal? ((compose-4 n->s add1 add1 s->n) "3") "5") - (check-equal? ((compose-5 n->s add1 add1 add1 s->n) "3") "6") - (check-equal? ((compose-6 n->s add1 add1 add1 add1 s->n) "3") "7") - (check-equal? ((compose-7 n->s add1 add1 add1 add1 add1 s->n) "3") "8") - (check-equal? - ((compose-8 n->s add1 add1 add1 add1 add1 add1 s->n) "3") "9") - (check-equal? - ((compose-9 n->s add1 add1 add1 add1 add1 add1 add1 s->n) "3") "10")) + (test-case "compose-3 to compose-9" + (define (s->n [s : String]) (cast (string->number s) Number)) + (define (n->s [n : Number]) (number->string n)) + (check-equal? ((compose-3 n->s add1 s->n) "3") "4") + (check-equal? ((compose-4 n->s add1 add1 s->n) "3") "5") + (check-equal? ((compose-5 n->s add1 add1 add1 s->n) "3") "6") + (check-equal? ((compose-6 n->s add1 add1 add1 add1 s->n) "3") "7") + (check-equal? ((compose-7 n->s add1 add1 add1 add1 add1 s->n) "3") "8") + (check-equal? + ((compose-8 n->s add1 add1 add1 add1 add1 add1 s->n) "3") "9") + (check-equal? + ((compose-9 n->s add1 add1 add1 add1 add1 add1 add1 s->n) "3") "10"))) (define-syntax (multi-compose stx) ;; Implementation by Sorawee Porncharoenwase. @@ -135,12 +137,13 @@ #'(compose f (multi-compose funcs ...))])) (module+ test - (check-equal? ((multi-compose add1 - (λ ([x : Number]) (* x 3)) - add1 - (λ ([x : Number]) (+ x 2))) - 3) - 19)) + (test-case "multi-compose" + (check-equal? ((multi-compose add1 + (λ ([x : Number]) (* x 3)) + add1 + (λ ([x : Number]) (+ x 2))) + 3) + 19))) (define-syntax (multi-chain stx) (syntax-parse stx