www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

check-asserts.rkt (990B)


      1 #lang racket/base
      2 
      3 (provide check-equal?/asserts)
      4 
      5 (require rackunit
      6          racket/set
      7          syntax/srcloc
      8          syntax/location
      9          (only-in rosette with-asserts)
     10          (for-syntax racket/base
     11                      syntax/parse
     12                      ))
     13 
     14 (define-binary-check (check-set=? actual expected)
     15   (set=? actual expected))
     16 
     17 (define-syntax check-equal?/asserts
     18   (lambda (stx)
     19     (syntax-parse stx
     20       [(check-equal?/asserts actual-expr expected-expr expected-asserts-expr)
     21        #`(with-check-info*
     22           (list (make-check-name 'check-equal?/asserts)
     23                 (make-check-location (build-source-location-list
     24                                       (quote-srcloc #,stx)))
     25                 (make-check-expression '#,stx))
     26           (λ ()
     27             (test-begin
     28              (let-values ([(actual asserts) (with-asserts actual-expr)])
     29                (check-equal? actual expected-expr)
     30                (check-set=? asserts expected-asserts-expr)))))])))
     31