MDL-44981 quiz statistics report : Differentiating '0' and no response

in numeric questions.
This commit is contained in:
James Pratt
2014-04-11 13:36:15 +07:00
parent acbd69f7ee
commit 6569d675f1
3 changed files with 9 additions and 3 deletions
@@ -107,7 +107,7 @@ class analysis_for_class {
return true;
} else if (count($this->actualresponses) == 1) {
$onlyactualresponse = reset($this->actualresponses);
return !$onlyactualresponse->response_matches($this->modelresponse);
return (string)$onlyactualresponse != $this->modelresponse;
}
return false;
}
+1 -1
View File
@@ -249,7 +249,7 @@ class qtype_numerical_question extends question_graded_automatically {
}
public function classify_response(array $response) {
if (empty($response['answer'])) {
if (!$this->is_gradable_response($response)) {
return array($this->id => question_classified_response::no_response());
}
@@ -211,6 +211,9 @@ class qtype_numerical_question_test extends advanced_testcase {
$this->assertEquals(array(
new question_classified_response(17, '42', 0.0)),
$num->classify_response(array('answer' => '42')));
$this->assertEquals(array(
new question_classified_response(17, '0', 0.0)),
$num->classify_response(array('answer' => '0')));
$this->assertEquals(array(
new question_classified_response(13, '3.14', 1.0)),
$num->classify_response(array('answer' => '3.14')));
@@ -230,6 +233,9 @@ class qtype_numerical_question_test extends advanced_testcase {
$this->assertEquals(array(
new question_classified_response(0, '42', 0.0)),
$num->classify_response(array('answer' => '42')));
$this->assertEquals(array(
new question_classified_response(0, '0', 0.0)),
$num->classify_response(array('answer' => '0')));
$this->assertEquals(array(
question_classified_response::no_response()),
$num->classify_response(array('answer' => '')));
@@ -292,4 +298,4 @@ class qtype_numerical_question_test extends advanced_testcase {
new question_classified_response(13, '1 332', 0.8)),
$num->classify_response(array('answer' => '1 332')));
}
}
}