Adding check-member-of and check-range to the htdp languages and updating the docs.

svn: r16064
This commit is contained in:
Kathy Gray 2009-09-18 12:37:18 +00:00
parent 8cf13c8c0e
commit e3c2721052
12 changed files with 57 additions and 1 deletions

View File

@ -55,6 +55,8 @@
check-expect
check-within
check-error
check-member-of
check-range
#%datum
#%top-interaction
empty true false)

View File

@ -39,6 +39,8 @@
check-expect
check-within
check-error
check-member-of
check-range
#%datum
#%top-interaction
empty true false)

View File

@ -40,6 +40,8 @@
check-expect
check-within
check-error
check-member-of
check-range
#%datum
#%top-interaction
empty true false)

View File

@ -43,6 +43,8 @@
check-expect
check-within
check-error
check-member-of
check-range
#%datum
#%top-interaction
empty true false)

View File

@ -43,6 +43,8 @@
check-expect
check-within
check-error
check-member-of
check-range
#%datum
#%top-interaction
empty true false)

View File

@ -344,6 +344,8 @@ The same as Intermediate's @|intm-time|.}
@defform[(check-expect expr expr)]
@defform[(check-within expr expr expr)]
@defform[(check-error expr expr)]
@defform[(check-member-of expr expr)]
@defform[(check-range expr expr expr)]
)]{
The same as Beginning's @|beg-check-expect|, etc.}

View File

@ -172,6 +172,8 @@ The same as Beginning's @|beg-and| and @|beg-or|.}
@defform[(check-expect expr expr)]
@defform[(check-within expr expr expr)]
@defform[(check-error expr expr)]
@defform[(check-member-of expr expr)]
@defform[(check-range expr expr expr)]
)]{
The same as Beginning's @|beg-check-expect|, etc.}

View File

@ -243,6 +243,18 @@ A test case to check that the first @scheme[expr] signals an error,
where the error messages matches the string produced by the second
@scheme[expr].}
@defform[(check-member-of expr expr)]{
A test case to check that the first @scheme[expr] produces an element
in the list of the second @scheme[expr].}
@defform[(check-range expr expr expr)]{
A test case to check that the first @scheme[expr] produces a number
inbetween the numbers produced by the second and third @scheme[expr]s,
inclusive.}
@; ----------------------------------------------------------------------
@section{@scheme[empty]}

View File

@ -178,6 +178,8 @@ The same as Intermediate's @|intm-time|.}
@defform[(check-expect expr expr)]
@defform[(check-within expr expr expr)]
@defform[(check-error expr expr)]
@defform[(check-member-of expr expr)]
@defform[(check-range expr expr expr)]
)]{
The same as Beginning's @|beg-check-expect|, etc.}

View File

@ -217,6 +217,8 @@ The same as Beginning's @|beg-and| and @|beg-or|.}
@defform[(check-expect expr expr)]
@defform[(check-within expr expr expr)]
@defform[(check-error expr expr)]
@defform[(check-member-of expr expr)]
@defform[(check-range expr expr expr)]
)]{
The same as Beginning's @|beg-check-expect|, etc.}

View File

@ -46,6 +46,19 @@ It is an error to produce a function value.}
Checks that evaluating the first expression signals an error, where
the error message matches the string.}
@defform[(check-member-of (test any/c) (expecteds (listof any/c)))]{
Accepts two value-producing expressions, where the second expression
must evaluate to a list of values. Structurally compares the first
value to each value in the list.
It is an error to produce a function value.}
@defform[(check-range (test number/c) (min number/c) (max number/c))]{
Accepts three number-producing expressions. Performs the following comparison:
min <= test <= max.}
@defproc[(test) void?]{
Runs all of the tests specified by check forms in the current module

View File

@ -1,7 +1,7 @@
;; The first three lines of this file were inserted by DrScheme. They record metadata
;; about the language level of this file in a form that our tools can easily process.
#reader(lib "htdp-beginner-reader.ss" "lang")((modname TestEngineTest) (read-case-sensitive #t) (teachpacks ()) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ())))
;;Expect 29 checks, 17 failures
;;Expect 37 checks, 17 failures
(define (count f)
(cond
@ -42,3 +42,16 @@
(check-error (/ 1 0) "/: division by zero")
(check-error 3 "some message") ;fails
(check-error (first empty) "another message") ;fails
(check-member-of (make-ball 1 1 'blue) (list (make-ball 1 2 'blue) (make-ball 1 1 'blue) (make-ball 1 2 'red) 'red))
(check-member-of 1 (list 1 1 1 1))
(check-member-of (make-ball 2 2 'blue) (list (make-ball 1 2 'blue) (make-ball 1 1 'blue) (make-ball 1 2 'red) 'red)) ;fails
(check-range 5 0 10)
(check-range 0 0 10)
(check-range 10 0 10)
(check-range 11 0 10) ;fails
(check-range 5.01 0 10.5)
(check-range 0.0 0 10.5)
(check-range 10.5 0 10.5)
(check-range 10.5001 0 10.5) ;fails