From ebb8de5d379445671ee33e9c2ef9f782d99e267d Mon Sep 17 00:00:00 2001 From: James Pratt Date: Tue, 11 Mar 2014 16:19:59 +0700 Subject: [PATCH] MDL-44535 quiz_statistics : response analysis - limit tries counted --- .../tests/fixtures/responsecounts02.csv | 9 ++++++--- .../report/statistics/tests/fixtures/steps02.csv | 15 ++++++++++++++- .../classes/statistics/responses/analyser.php | 6 ++++++ .../responses/analysis_for_actual_response.php | 3 +++ 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/mod/quiz/report/statistics/tests/fixtures/responsecounts02.csv b/mod/quiz/report/statistics/tests/fixtures/responsecounts02.csv index c766a6e5baa..f0c4fe9da0e 100644 --- a/mod/quiz/report/statistics/tests/fixtures/responsecounts02.csv +++ b/mod/quiz/report/statistics/tests/fixtures/responsecounts02.csv @@ -1,6 +1,9 @@ slot,subpart,modelresponse,actualresponse,totalcount,count1,count2,count3,count4,count5 -1,1,frog: insect,insect,2,2,0,0,0,0 +1,1,frog: insect,insect,3,3,0,0,0,0 1,1,"frog: mammal",mammal,1,0,0,1,0,0 -1,2,"cat: insect",insect,2,1,1,0,0,0 +1,1,"frog: amphibian",amphibian,1,0,0,0,0,1 +1,2,"cat: insect",insect,3,2,1,0,0,0 1,2,cat: amphibian,amphibian,1,1,0,0,0,0 -1,3,newt: insect,insect,2,2,0,0,0,0 +1,2,cat: mammal,mammal,2,0,0,0,0,2 +1,3,newt: insect,insect,3,3,0,0,0,0 +1,3,newt: amphibian,amphibian,2,0,0,0,0,2 diff --git a/mod/quiz/report/statistics/tests/fixtures/steps02.csv b/mod/quiz/report/statistics/tests/fixtures/steps02.csv index 89535d7fecd..9857c793cb7 100644 --- a/mod/quiz/report/statistics/tests/fixtures/steps02.csv +++ b/mod/quiz/report/statistics/tests/fixtures/steps02.csv @@ -16,4 +16,17 @@ quizattempt,firstname,lastname,responses.1.0,responses.1.1,responses.1.2,respons 2,Mark,Jones,mammal,insect,insect,0,1,0 2,Mark,Jones,mammal,insect,insect,1,0,0 2,Mark,Jones,mammal,insect,insect,0,1,0 -2,Mark,Jones,mammal,insect,insect,1,0,1 +2,Mark,Jones,mammal,mammal,insect,1,0,0 +2,Mark,Jones,mammal,mammal,insect,0,1,0 +2,Mark,Jones,mammal,mammal,amphibian,1,0,1 +3,Michael,Jackson,insect,insect,insect,1,0,0 +3,Michael,Jackson,insect,insect,insect,0,1,0 +3,Michael,Jackson,insect,insect,insect,1,0,0 +3,Michael,Jackson,insect,insect,insect,0,1,0 +3,Michael,Jackson,insect,insect,insect,1,0,0 +3,Michael,Jackson,insect,insect,insect,0,1,0 +3,Michael,Jackson,insect,insect,insect,1,0,0 +3,Michael,Jackson,insect,insect,insect,0,1,0 +3,Michael,Jackson,insect,insect,insect,1,0,0 +3,Michael,Jackson,insect,insect,insect,0,1,0 +3,Michael,Jackson,amphibian,mammal,amphibian,1,0,1 diff --git a/question/classes/statistics/responses/analyser.php b/question/classes/statistics/responses/analyser.php index 594ce6fe464..3203a0f1558 100644 --- a/question/classes/statistics/responses/analyser.php +++ b/question/classes/statistics/responses/analyser.php @@ -35,6 +35,12 @@ defined('MOODLE_INTERNAL') || die(); * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class analyser { + /** + * @var int When analysing responses and breaking down the count of responses per try, how many columns should we break down + * tries into? This is set to 5 columns, any response in a try more than try 5 will be counted in the fifth column. + */ + const MAX_TRY_COUNTED = 5; + /** @var int Time after which responses are automatically reanalysed. */ const TIME_TO_CACHE = 900; // 15 minutes. diff --git a/question/classes/statistics/responses/analysis_for_actual_response.php b/question/classes/statistics/responses/analysis_for_actual_response.php index 56ca962ed4d..8f4bc41c78b 100644 --- a/question/classes/statistics/responses/analysis_for_actual_response.php +++ b/question/classes/statistics/responses/analysis_for_actual_response.php @@ -80,6 +80,9 @@ class analysis_for_actual_response { public function increment_count($try = 0) { $this->totalcount++; if ($try != 0) { + if ($try > analyser::MAX_TRY_COUNTED) { + $try = analyser::MAX_TRY_COUNTED; + } if (!isset($this->trycount[$try])) { $this->trycount[$try] = 0; }