MDL-44981 quiz statistics report : Differentiating '0' and no response
in numeric questions.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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')));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user