. /** * This interface defines the methods required for pluggable statistics that may be added to the question analysis. * * @copyright 2013 Middlebury College {@link http://www.middlebury.edu/} * @copyright 2022 onwards Vitaly Potenko * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_adaptivequiz\local\questionanalysis\statistics; use mod_adaptivequiz\local\questionanalysis\question_analyser; class percent_correct_statistic implements question_statistic { /** * Answer a display-name for this statistic. * * @return string */ public function get_display_name () { return get_string('percent_correct_display_name', 'adaptivequiz'); } /** * Calculate this statistic for a question's results * * @param question_analyser $analyser * @return question_statistic_result */ public function calculate (question_analyser $analyser) { $correct = 0; $total = 0; foreach ($analyser->get_results() as $result) { $total++; if ($result->correct) { $correct++; } } if ($total) { return new percent_correct_statistic_result ($correct / $total); } else { return new percent_correct_statistic_result (0); } } }