#lang racket #| File: test-helpers.rkt Author: Bill Turtle (wrturtle) Procedures to build test cases. |# (provide build-bombed-list/apply) (define (make-bombed-list-builder good-value bad-value bomb-pos) (lambda (n) (if (equal? n bomb-pos) bad-value good-value))) (define/contract (build-bombed-list/apply size good-value bad-value proc ret-value) (-> exact-positive-integer? any/c any/c (-> list? any) any/c any) (let/cc esc (let loop ([i 0]) (when (equal? i size) (esc ret-value)) (proc (build-list size (make-bombed-list-builder good-value bad-value i))) (loop (add1 i)))))