diff --git a/collects/deinprogramm/DMdA-advanced.ss b/collects/deinprogramm/DMdA-advanced.ss index 1d5c0a207a..ef222683d9 100644 --- a/collects/deinprogramm/DMdA-advanced.ss +++ b/collects/deinprogramm/DMdA-advanced.ss @@ -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 diff --git a/collects/deinprogramm/DMdA-assignments.ss b/collects/deinprogramm/DMdA-assignments.ss index e31bf58767..945eca53c8 100644 --- a/collects/deinprogramm/DMdA-assignments.ss +++ b/collects/deinprogramm/DMdA-assignments.ss @@ -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 diff --git a/collects/deinprogramm/DMdA-beginner.ss b/collects/deinprogramm/DMdA-beginner.ss index e6ccb8976a..5037d90f29 100644 --- a/collects/deinprogramm/DMdA-beginner.ss +++ b/collects/deinprogramm/DMdA-beginner.ss @@ -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 diff --git a/collects/deinprogramm/DMdA-vanilla.ss b/collects/deinprogramm/DMdA-vanilla.ss index 121424ec8e..21bf020921 100644 --- a/collects/deinprogramm/DMdA-vanilla.ss +++ b/collects/deinprogramm/DMdA-vanilla.ss @@ -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 diff --git a/collects/deinprogramm/contract/contract-test-display.ss b/collects/deinprogramm/contract/contract-test-display.ss index 0ef283fcfa..906b4bccae 100644 --- a/collects/deinprogramm/contract/contract-test-display.ss +++ b/collects/deinprogramm/contract/contract-test-display.ss @@ -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) diff --git a/collects/deinprogramm/contract/contract.ss b/collects/deinprogramm/contract/contract.ss index fc217285ee..5eb1183acc 100644 --- a/collects/deinprogramm/contract/contract.ss +++ b/collects/deinprogramm/contract/contract.ss @@ -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) diff --git a/collects/deinprogramm/scribblings/DMdA-beginner.scrbl b/collects/deinprogramm/scribblings/DMdA-beginner.scrbl index 76b3d8c085..8ddbef9669 100644 --- a/collects/deinprogramm/scribblings/DMdA-beginner.scrbl +++ b/collects/deinprogramm/scribblings/DMdA-beginner.scrbl @@ -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, diff --git a/collects/deinprogramm/scribblings/std-grammar.ss b/collects/deinprogramm/scribblings/std-grammar.ss index 2171464b70..0eeb164948 100644 --- a/collects/deinprogramm/scribblings/std-grammar.ss +++ b/collects/deinprogramm/scribblings/std-grammar.ss @@ -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)]] #;(...