Add check-member-of' and check-range' to the DeinProgramm/DMdA

languages.

svn: r16337
This commit is contained in:
Mike Sperber 2009-10-16 11:53:04 +00:00
parent c4e9f3d1aa
commit aa2e094311
8 changed files with 30 additions and 7 deletions

View File

@ -9,7 +9,7 @@
define-record-procedures define-record-procedures-2
define-record-procedures-parametric define-record-procedures-parametric-2
.. ... .... ..... ......
check-expect check-within check-error
check-expect check-within check-error check-member-of check-range
check-property for-all ==> expect expect-within
contract : define-contract -> mixed one-of predicate combined property
number real rational integer natural boolean true false string symbol empty-list unspecific

View File

@ -9,7 +9,7 @@
define-record-procedures define-record-procedures-2
define-record-procedures-parametric define-record-procedures-parametric-2
.. ... .... ..... ......
check-expect check-within check-error
check-expect check-within check-error check-member-of check-range
check-property for-all ==> expect expect-within
contract : define-contract -> mixed one-of predicate combined property
number real rational integer natural boolean true false string empty-list unspecific

View File

@ -5,7 +5,7 @@
define let let* letrec lambda cond if else begin and or
define-record-procedures define-record-procedures-parametric
.. ... .... ..... ......
check-expect check-within check-error
check-expect check-within check-error check-member-of check-range
check-property for-all ==> expect expect-within
contract : define-contract -> mixed one-of predicate combined property
number real rational integer natural boolean true false string empty-list

View File

@ -5,7 +5,7 @@
define let let* letrec lambda cond if else begin and or
define-record-procedures define-record-procedures-parametric
.. ... .... ..... ......
check-expect check-within check-error
check-expect check-within check-error check-member-of check-range
check-property for-all ==> expect expect-within
contract : define-contract -> mixed one-of predicate combined property
number real rational integer natural boolean true false string empty-list

View File

@ -1,7 +1,7 @@
#lang scheme/base
; DeinProgramm version of collects/test-engine/test-display.ss
; synched with SVN rev 11385
; synched with SVN rev 16065
(provide contract-test-display%)
@ -231,6 +231,16 @@
(expected-error-message fail))]
[(message-error? fail)
(for-each print-formatted (message-error-strings fail))]
[(not-mem? fail)
(print "Tatsächlicher Wert ~F ist keins der Elemente "
(formatter (not-mem-test fail)))
(for-each (lambda (a) (print " ~F" (formatter a))) (not-mem-set fail))
(print ".")]
[(not-range? fail)
(print "Tatsächlicher Wert ~F liegt nicht zwischen ~F und ~F (inklusive)."
(formatter (not-range-test fail))
(formatter (not-range-min fail))
(formatter (not-range-max fail)))]
[(property-fail? fail)
(print-string "Eigenschaft falsifizierbar mit")
(for-each (lambda (arguments)

View File

@ -228,7 +228,7 @@
((not (procedure? proc))
(contract-violation proc self #f #f))
((not (procedure-arity-includes? proc arg-count)) ; #### variable arity
(contract-violation proc self "wrong number of parameters" #f)))
(contract-violation proc self "falsche Anzahl von Parametern" #f)))
(attach-name
(object-name proc)
(procedure-reduce-arity
@ -238,7 +238,7 @@
(lambda (maybe)
(if (not (= (length args) arg-count))
(begin
(contract-violation proc self "wrong number of arguments" #f)
(contract-violation proc self "falsche Anzahl von Argumenten" #f)
(apply-contract return-contract (apply proc args)))
(let* ((old-violation-proc (contract-violation-proc))
(arg-violation? #f)

View File

@ -319,6 +319,17 @@ der als Wert eine Zahl @scheme[_delta] hat. Der Testfall überprüft, daß jede
des ersten @scheme[expr] maximal um @scheme[_delta]
von der entsprechenden Zahl im zweiten @scheme[expr] abweicht.}
@defform[(check-member-of expr expr ...)]{
Ähnlich wie @scheme[check-expect]: Der Testfall überprüft, daß das Resultat
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
zweiten und der dritten liegt (inklusive).}
@defform[(check-error expr expr)]{
Dieser Testfall überprüft, ob der erste @scheme[expr] einen Fehler produziert,

View File

@ -64,6 +64,8 @@
]
[test-case @#,scheme[(check-expect expr expr)]
@#,scheme[(check-within expr expr expr)]
@#,scheme[(check-member-of expr expr (... ...))]
@#,scheme[(check-range expr expr expr)]
@#,scheme[(check-error expr expr)]
@#,scheme[(check-property expr)]]
#;(...