diff --git a/question/type/multianswer/question.php b/question/type/multianswer/question.php index a52eec83b05..dd0145f96bd 100644 --- a/question/type/multianswer/question.php +++ b/question/type/multianswer/question.php @@ -365,6 +365,9 @@ class qtype_multianswer_question extends question_graded_automatically_with_coun $fractionsum += $subq->defaultmark * max(0, $subfraction - $lastchange * $this->penalty); } + if (empty($fractionsum)) { + return null; + } return $fractionsum / $fractionmax; } diff --git a/question/type/multianswer/tests/question_test.php b/question/type/multianswer/tests/question_test.php index 5d0beed7a8f..c386ed88fe9 100644 --- a/question/type/multianswer/tests/question_test.php +++ b/question/type/multianswer/tests/question_test.php @@ -367,6 +367,8 @@ class question_test extends \advanced_testcase { $this->assertEquals(1, $question->get_max_fraction()); $this->assertEquals(0, $question->get_min_fraction()); + $this->assertNull($question->compute_final_grade([['sub1_answer' => 'Something']], 1)); + $this->assertNull($question->grade_response([['sub1_answer' => 'Something']])[0]); } }