$chosenanswer = null;
switch ($wrapped->qtype) {
case 'numerical':
- $testedstate = clone($state);
- $testedstate->responses[''] = $response;
- $raw_grade = 0;
- foreach ($answers as $answer) {
- if($QTYPES[$wrapped->qtype]
- ->test_response($wrapped, $testedstate, $answer)) {
- if (empty($raw_grade) || $raw_grade < $answer->fraction) {
- $chosenanswer = clone($answer);
- $raw_grade = $answer->fraction;
- }
- }
- }
- break;
case 'shortanswer':
$testedstate = clone($state);
$testedstate->responses[''] = $response;
- $teststate = clone($state);
- $raw_grade = 0;
foreach ($answers as $answer) {
- $teststate->responses[''] = trim($answer->answer);
if($QTYPES[$wrapped->qtype]
- ->compare_responses($wrapped, $testedstate, $teststate)) {
- if (empty($raw_grade) || $raw_grade < $answer->fraction) {
- $chosenanswer = clone($answer);
- $raw_grade = $answer->fraction;
- }
+ ->test_response($wrapped, $testedstate, $answer)) {
+ $chosenanswer = clone($answer);
+ break;
}
}
break;