Types for the other `check-expect'-style forms.

svn: r17657
This commit is contained in:
Sam Tobin-Hochstadt 2010-01-14 21:24:47 +00:00
parent e90853cccd
commit 104adf9c62
2 changed files with 60 additions and 7 deletions

View File

@ -0,0 +1,17 @@
#lang typed-scheme
(require scheme/math typed/test-engine/scheme-tests)
(define-struct: circle ({radius : Number}))
(: circle-area (circle -> Number))
(check-within (+ 1 2.14) pi .1)
(check-range 2 1 3)
(check-member-of 'a 'b 'c 'd 'a 'z)
(check-error (error "fail") "fail")
(define (circle-area c)
(* pi (circle-radius c) (circle-radius c)))
(test)

View File

@ -25,7 +25,15 @@
(when _
(insert-test _ (lambda () (check-values-expected _ _ _ _))))))
#'insert-test])
(Univ (-> Univ) . -> . -Void)]
(Univ (-> Univ) . -> . -Void)]
;; builder
[(syntax-parse (local-expand #'(ce:check-expect 1 1) 'module #f)
#:literals (let when define-values)
[(define-values _
(let ((_ (nvv _ _ builder _)))
_))
#'builder])
(-> Univ)]
;; check-values-expected
[(syntax-parse (local-expand #'(ce:check-expect 1 1) 'module #f)
#:literals (let when define-values)
@ -35,13 +43,41 @@
(insert-test _ (lambda () (check-values-expected _ _ _ _))))))
#'check-values-expected])
((-> Univ) Univ Univ Univ . -> . -Void)]
;; builder
[(syntax-parse (local-expand #'(ce:check-expect 1 1) 'module #f)
;; check-values-within
[(syntax-parse (local-expand #'(ce:check-within 1 1 1) 'module #f)
#:literals (let when define-values)
[(define-values _
(let ((_ (nvv _ _ builder _)))
_))
#'builder])
(-> Univ)]))
(let ((_ _))
(when _
(insert-test _ (lambda () (check-values-within _ _ _ _ _))))))
#'check-values-within])
((-> Univ) Univ -Real Univ Univ . -> . -Void)]
;; check-values-error
[(syntax-parse (local-expand #'(ce:check-error 1 "foo") 'module #f)
#:literals (let when define-values)
[(define-values _
(let ((_ _))
(when _
(insert-test _ (lambda () (check-values-error _ _ _ _))))))
#'check-values-error])
((-> Univ) -String Univ Univ . -> . -Void)]
;; check-range-values-expected
[(syntax-parse (local-expand #'(ce:check-range 1 1 1) 'module #f)
#:literals (let when define-values)
[(define-values _
(let ((_ _))
(when _
(insert-test _ (lambda () (check-range-values-expected _ _ _ _ _))))))
#'check-range-values-expected])
((-> -Real) -Real -Real Univ Univ . -> . -Void)]
;; check-member-of-values-expected
[(syntax-parse (local-expand #'(ce:check-member-of 1 1) 'module #f)
#:literals (let when define-values)
[(define-values _
(let ((_ _))
(when _
(insert-test _ (lambda () (check-member-of-values-expected _ _ _ _ _))))))
#'check-member-of-values-expected])
((-> Univ) Univ (-lst Univ) Univ Univ . -> . -Void)]))
(begin-for-syntax (initialize-type-env ce-env))