Add expect-member-of' and
expect-range' to DeinProgramm / DMdA languages.
svn: r16750
This commit is contained in:
parent
bd15e86680
commit
01058dfd26
|
@ -10,7 +10,7 @@
|
|||
define-record-procedures-parametric define-record-procedures-parametric-2
|
||||
.. ... .... ..... ......
|
||||
check-expect check-within check-error check-member-of check-range
|
||||
check-property for-all ==> expect expect-within
|
||||
check-property for-all ==> expect expect-within expect-member-of expect-range
|
||||
contract : define-contract -> mixed one-of predicate combined property
|
||||
number real rational integer natural boolean true false string symbol empty-list unspecific
|
||||
chocolate-cookie)
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
define-record-procedures-parametric define-record-procedures-parametric-2
|
||||
.. ... .... ..... ......
|
||||
check-expect check-within check-error check-member-of check-range
|
||||
check-property for-all ==> expect expect-within
|
||||
check-property for-all ==> expect expect-within expect-member-of expect-range
|
||||
contract : define-contract -> mixed one-of predicate combined property
|
||||
number real rational integer natural boolean true false string empty-list unspecific
|
||||
chocolate-cookie)
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
define-record-procedures define-record-procedures-parametric
|
||||
.. ... .... ..... ......
|
||||
check-expect check-within check-error check-member-of check-range
|
||||
check-property for-all ==> expect expect-within
|
||||
check-property for-all ==> expect expect-within expect-member-of expect-range
|
||||
contract : define-contract -> mixed one-of predicate combined property
|
||||
number real rational integer natural boolean true false string empty-list
|
||||
chocolate-cookie)
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
define-record-procedures define-record-procedures-parametric
|
||||
.. ... .... ..... ......
|
||||
check-expect check-within check-error check-member-of check-range
|
||||
check-property for-all ==> expect expect-within
|
||||
check-property for-all ==> expect expect-within expect-member-of expect-range
|
||||
contract : define-contract -> mixed one-of predicate combined property
|
||||
number real rational integer natural boolean true false string empty-list
|
||||
chocolate-cookie)
|
||||
|
|
|
@ -72,8 +72,7 @@
|
|||
|
||||
(provide for-all ==>
|
||||
check-property
|
||||
expect
|
||||
expect-within)
|
||||
expect expect-within expect-member-of expect-range)
|
||||
|
||||
(provide quote)
|
||||
|
||||
|
@ -1042,5 +1041,30 @@
|
|||
(define (expect v1 v2)
|
||||
(quickcheck:property () (beginner-equal? v1 v2)))
|
||||
|
||||
(define (ensure-real who n val)
|
||||
(unless (real? val)
|
||||
(raise
|
||||
(make-exn:fail:contract
|
||||
(string->immutable-string
|
||||
(format "~a Argument ~e zu `~a' keine reelle Zahl." n val who))
|
||||
(current-continuation-marks)))))
|
||||
|
||||
(define (expect-within v1 v2 epsilon)
|
||||
(ensure-real 'expect-within "Drittes" epsilon)
|
||||
(quickcheck:property () (beginner-equal~? v1 v2 epsilon)))
|
||||
|
||||
(define (expect-range val min max)
|
||||
(ensure-real 'expect-range "Erstes" val)
|
||||
(ensure-real 'expect-range "Zweites" min)
|
||||
(ensure-real 'expect-range "Drittes" max)
|
||||
(quickcheck:property ()
|
||||
(and (<= min val)
|
||||
(<= val max))))
|
||||
|
||||
(define (expect-member-of val . candidates)
|
||||
(quickcheck:property ()
|
||||
(ormap (lambda (cand)
|
||||
(beginner-equal? val cand))
|
||||
candidates)))
|
||||
|
||||
|
|
@ -326,8 +326,8 @@ des ersten Operanden gleich dem Wert eines der folgenden Operanden ist.}
|
|||
|
||||
@defform[(check-range expr expr expr)]{
|
||||
|
||||
Ähnlich wie @scheme[check-expect]: Alle drei Operanden müssen ein
|
||||
Zahlen. Der Testfall überprüft, ob die erste Zahl zwischen der
|
||||
Ähnlich wie @scheme[check-expect]: Alle drei Operanden müssen
|
||||
Zahlen sein. Der Testfall überprüft, ob die erste Zahl zwischen der
|
||||
zweiten und der dritten liegt (inklusive).}
|
||||
|
||||
@defform[(check-error expr expr)]{
|
||||
|
@ -465,6 +465,20 @@ resultierende Eigenschaft gilt, wenn jede Zahl im Resultat des ersten
|
|||
@scheme[expr] maximal um @scheme[_delta] von der entsprechenden Zahl
|
||||
im zweiten @scheme[expr] abweicht.}
|
||||
|
||||
@defform[(expect-member-of expr expr ...)]{
|
||||
|
||||
Wie @scheme[expect], aber entsprechend @scheme[check-member-of] mit
|
||||
weiteren Ausdrücken, die mit dem ersten verglichen werden. Die
|
||||
resultierende Eigenschaft gilt, wenn das erste Argument gleich
|
||||
einem der anderen Argumente ist.}
|
||||
|
||||
@defform[(expect-range expr expr expr)]{
|
||||
|
||||
Wie @scheme[expect], aber entsprechend @scheme[check-range]: Die
|
||||
Argumente müssen Zahlen sein. Die Eigenschaft gilt, wenn die erste Zahl
|
||||
zwischen der zweiten und dritten Zahl liegt (inklusive).}
|
||||
|
||||
|
||||
@defform[(==> expr expr)]{
|
||||
Der erste Operand ist ein boolescher Ausdruck, der zweite Operand eine
|
||||
Eigenschaft: @scheme[(==> c p)] legt fest, daß die Eigenschaft
|
||||
|
|
Loading…
Reference in New Issue
Block a user