DynamicRChecker (Jack2): Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
== Beschreibung == | == Beschreibung == | ||
Der DynamicRChecker dient dazu, den vom Studierenden erzeugten Output mit dem erwarteten Output zu vergleichen. Dazu wird innerhalb des Checkers ein Testfall definiert, in dem der Code | |||
== Die Tags der DynamicChecker-Datei == | == Die Tags der DynamicChecker-Datei == |
Version vom 5. September 2017, 12:22 Uhr
Beschreibung
Der DynamicRChecker dient dazu, den vom Studierenden erzeugten Output mit dem erwarteten Output zu vergleichen. Dazu wird innerhalb des Checkers ein Testfall definiert, in dem der Code
Die Tags der DynamicChecker-Datei
- metaInf:
- numberOfInputArgs:
- outputType:
- preCode:
- postCode:
- testcases: Hier können verschiedene Testfälle
- testcase: Innerhalb dieses Tags ist der entsprechende Testfall zu definieren.
- feedback:
- postprocessingFunction (optional): Wird eine postprocess-Funktion benötigt, so ist hier postprocess (= der Name der Funktion) einzutragen
- input:
- penalty: Die Anzahl an Punkten, die beim falschen Lösen der Aufgabe abgezogen werden sollen.
- expectedOutput: Hier sollte der R-Code hinterlegt werden, der genau den R-Output ausgibt, der vom Studierenden erwartet wird. Es können auch Zufallszahlen, die in der exercise-Datei definiert wurden, innerhalb dessen verwendet werden.
- errorFeedback: Hier kann ggf. Feedback angegeben werden, wenn die eingereichte Lösung des Studierenden als falsch evaluiert wird.
- ...
- testcase: Innerhalb dieses Tags ist der entsprechende Testfall zu definieren.
Beispiel
Im vorliegenden Beispiel wird exemplarisch eine postprocess-Funktion definiert. Diese wählt den ersten Eintrag des vom Studierenden übergebenden R-Objekts aus, wandelt es in die Klasse numeric um und rundet es auf den ganzzahligen Teil herunter.
XML-Datei
<?xml version="1.0" encoding="iso-8859-1"?>
<checkerconfiguration>
<metaInf>
<numberOfInputArgs>1</numberOfInputArgs>
<outputType>double</outputType>
<preCode>testFunc <- function(){</preCode>
<postCode>}
postprocess <- function(w){
round(as.numeric(w[1]))
}</postCode>
</metaInf>
<testcases>
<testcase>
<feedback></feedback>
<postprocessingFunction>postprocess</postprocessingFunction>
<input></input>
<penalty>100</penalty>
<expectedOutput>1</expectedOutput>
<errorFeedback>Leider nicht richtig!</errorFeedback>
</testcase>
</testcases>
</checkerconfiguration>