/** * @return question_finder a question finder. */ public static function get_instance() { if (is_null(self::$questionfinder)) { self::$questionfinder = new question_finder(); } return self::$questionfinder; }
/** * @param $responsecounts * @param $qubaids * @param $questions * @param $whichtries */ protected function check_response_counts($responsecounts, $qubaids, $questions, $whichtries) { for ($rowno = 0; $rowno < $responsecounts->getRowCount(); $rowno++) { $expected = $responsecounts->getRow($rowno); $defaultsforexpected = array('randq' => '', 'variant' => '1', 'subpart' => '1'); foreach ($defaultsforexpected as $key => $expecteddefault) { if (!isset($expected[$key])) { $expected[$key] = $expecteddefault; } } if ($expected['randq'] == '') { $question = $questions[$expected['slot']]; } else { $qid = $this->randqids[$expected['slot']][$expected['randq']]; $question = question_finder::get_instance()->load_question_data($qid); } $this->assert_response_count_equals($question, $qubaids, $expected, $whichtries); } }