Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 11
Línea 33... Línea 33...
33
 * @copyright  2015 The Open University
33
 * @copyright  2015 The Open University
34
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
34
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
35
 */
35
 */
36
class least_used_variant_strategy_test extends \advanced_testcase {
36
class least_used_variant_strategy_test extends \advanced_testcase {
Línea 37... Línea 37...
37
 
37
 
38
    public function test_question_with_one_variant_always_picks_that() {
38
    public function test_question_with_one_variant_always_picks_that(): void {
39
        $question = \test_question_maker::make_question('shortanswer');
39
        $question = \test_question_maker::make_question('shortanswer');
40
        $quba = question_engine::make_questions_usage_by_activity('test', \context_system::instance());
40
        $quba = question_engine::make_questions_usage_by_activity('test', \context_system::instance());
41
        $quba->set_preferred_behaviour('deferredfeedback');
41
        $quba->set_preferred_behaviour('deferredfeedback');
42
        $slot = $quba->add_question($question);
42
        $slot = $quba->add_question($question);
43
        $quba->start_all_questions(new least_used_strategy(
43
        $quba->start_all_questions(new least_used_strategy(
44
                $quba, new qubaid_list([])));
44
                $quba, new qubaid_list([])));
45
        $this->assertEquals(1, $quba->get_variant($slot));
45
        $this->assertEquals(1, $quba->get_variant($slot));
Línea 46... Línea 46...
46
    }
46
    }
47
 
47
 
48
    public function test_synchronised_question_should_use_the_same_dataset() {
48
    public function test_synchronised_question_should_use_the_same_dataset(): void {
49
        // Actually, we cheat here. We use the same question twice, not two different synchronised questions.
49
        // Actually, we cheat here. We use the same question twice, not two different synchronised questions.
50
        $question = \test_question_maker::make_question('calculated');
50
        $question = \test_question_maker::make_question('calculated');
51
        $quba = question_engine::make_questions_usage_by_activity('test', \context_system::instance());
51
        $quba = question_engine::make_questions_usage_by_activity('test', \context_system::instance());
Línea 55... Línea 55...
55
        $quba->start_all_questions(new least_used_strategy(
55
        $quba->start_all_questions(new least_used_strategy(
56
                $quba, new qubaid_list([])));
56
                $quba, new qubaid_list([])));
57
        $this->assertEquals($quba->get_variant($slot1), $quba->get_variant($slot2));
57
        $this->assertEquals($quba->get_variant($slot1), $quba->get_variant($slot2));
58
    }
58
    }
Línea 59... Línea 59...
59
 
59
 
60
    public function test_second_attempt_uses_other_dataset() {
60
    public function test_second_attempt_uses_other_dataset(): void {
61
        global $DB;
61
        global $DB;
62
        $this->resetAfterTest();
62
        $this->resetAfterTest();
Línea 63... Línea 63...
63
        $generator = $this->getDataGenerator()->get_plugin_generator('core_question');
63
        $generator = $this->getDataGenerator()->get_plugin_generator('core_question');