Changed syntax of check-member-of so that it will work in htdp-beginner
Updated docs to reflect this svn: r16065
This commit is contained in:
parent
e3c2721052
commit
f300ba967a
|
@ -344,7 +344,7 @@ 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-member-of expr expr expr ...)]
|
||||
@defform[(check-range expr expr expr)]
|
||||
)]{
|
||||
|
||||
|
|
|
@ -172,7 +172,7 @@ 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-member-of expr expr expr ...)]
|
||||
@defform[(check-range expr expr expr)]
|
||||
)]{
|
||||
|
||||
|
|
|
@ -243,10 +243,10 @@ 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)]{
|
||||
@defform[(check-member-of expr expr expr ...)]{
|
||||
|
||||
A test case to check that the first @scheme[expr] produces an element
|
||||
in the list of the second @scheme[expr].}
|
||||
that is equivalent to one of the following @scheme[expr]s.}
|
||||
|
||||
@defform[(check-range expr expr expr)]{
|
||||
|
||||
|
|
|
@ -178,7 +178,7 @@ 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-member-of expr expr expr ...)]
|
||||
@defform[(check-range expr expr expr)]
|
||||
)]{
|
||||
|
||||
|
|
|
@ -217,7 +217,7 @@ 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-member-of expr expr expr ...)]
|
||||
@defform[(check-range expr expr expr)]
|
||||
)]{
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
(define-for-syntax CHECK-WITHIN-STR
|
||||
"check-within requires three expressions. Try (check-within test expected range).")
|
||||
(define-for-syntax CHECK-MEMBER-OF-STR
|
||||
"check-member-of requires two expressions. Try (check-member-of test options).")
|
||||
"check-member-of requires at least two expressions. Try (check-member-of test option options ...).")
|
||||
(define-for-syntax CHECK-RANGE-STR
|
||||
"chech-range requires three expressions. Try (check-range test min max).")
|
||||
|
||||
|
@ -223,19 +223,18 @@
|
|||
(unless (check-context?)
|
||||
(raise-syntax-error 'check-member-of CHECK-EXPECT-DEFN-STR stx))
|
||||
(syntax-case stx ()
|
||||
[(_ test actuals)
|
||||
(check-expect-maker stx #'check-member-of-values-expected #`test (list #`actuals)
|
||||
[(_ test actual actuals ...)
|
||||
(check-expect-maker stx #'check-member-of-values-expected #`test (list #`actual #`(list actuals ...))
|
||||
'comes-from-check-member-of)]
|
||||
[_ (raise-syntax-error 'check-member-of CHECK-MEMBER-OF-STR stx)]))
|
||||
|
||||
;; check-member-of-values-expected: (-> scheme-val) scheme-val src test-object -> void
|
||||
(define (check-member-of-values-expected test actuals src test-info)
|
||||
(error-check (lambda (v) (list? v)) actuals LIST-FMT #t)
|
||||
(error-check (lambda (v) (not (procedure? v))) actuals CHECK-MEMBER-OF-FUNCTION-FMT #f)
|
||||
(define (check-member-of-values-expected test first-actual actuals src test-info)
|
||||
(error-check (lambda (v) (not (procedure? v))) first-actual CHECK-MEMBER-OF-FUNCTION-FMT #f)
|
||||
(send (send test-info get-info) add-check)
|
||||
(run-and-check (lambda (v2 v1 _) (memf (lambda (i) (beginner-equal? v1 i)) v2))
|
||||
(lambda (src format v1 v2 _) (make-not-mem src format v1 v2))
|
||||
test actuals #f src test-info 'check-member-of))
|
||||
test (cons first-actual actuals) #f src test-info 'check-member-of))
|
||||
|
||||
;;check-range
|
||||
(define-syntax (check-range stx)
|
||||
|
|
|
@ -258,9 +258,10 @@
|
|||
[(message-error? fail)
|
||||
(for-each print-formatted (message-error-strings fail))]
|
||||
[(not-mem? fail)
|
||||
(print "Actual value ~F differs from all given members in ~F."
|
||||
(formatter (not-mem-test fail))
|
||||
(formatter (not-mem-set fail)))]
|
||||
(print "Actual value ~F differs from all given members in "
|
||||
(formatter (not-mem-test fail)))
|
||||
(for-each (lambda (a) (print " ~F" (formatter a))) (not-mem-set fail))
|
||||
(print ".")]
|
||||
[(not-range? fail)
|
||||
(print "Actual value ~F is not between ~F and ~F, inclusive."
|
||||
(formatter (not-range-test fail))
|
||||
|
|
|
@ -46,11 +46,10 @@ 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)))]{
|
||||
@defform[(check-member-of (test any/c) (expected 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.
|
||||
Accepts at least two value-producing expressions. Structurally compares the first
|
||||
value to each value subsequent value specified.
|
||||
|
||||
It is an error to produce a function value.}
|
||||
|
||||
|
|
|
@ -43,9 +43,9 @@
|
|||
(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-member-of (make-ball 1 1 'blue) (make-ball 1 2 'blue) (make-ball 1 1 'blue) (make-ball 1 2 'red) 'red)
|
||||
(check-member-of 1 1 1 1 1)
|
||||
(check-member-of (make-ball 2 2 'blue) (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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user