19 declare(strict_types=1);
34 $this->sourcePoolDefinitionList
36 $quantities_distribution->initialise();
39 foreach ($this->sourcePoolDefinitionList as $definition) {
40 $quantity_calculation = $quantities_distribution->calculateQuantities($definition);
41 if ($quantity_calculation->isRequiredAmountGuaranteedAvailable()) {
44 $is_buildable =
false;
45 $this->checkMessages[] = $quantity_calculation->getDistributionReport($this->
lng);
55 foreach ($this->sourcePoolDefinitionList as $definition) {
56 $required_question_amount = $definition->getQuestionAmount();
59 ->getRelativeComplementCollection($question_set);
61 if ($actual_question_stage->isGreaterThan($required_question_amount)) {
65 if ($actual_question_stage->isSmallerThan($required_question_amount)) {
66 if (!isset($translator)) {
68 $translator->loadLabels($this->sourcePoolDefinitionList);
70 $this->
logger->info(
"RANDOM TEST: missing questions for: " 71 . implode(
" - ", [$definition->getPoolTitle(), $translator->getTaxonomyFilterLabel($definition->getMappedTaxonomyFilter())]));
74 $questions = $actual_question_stage;
77 $question_set->mergeQuestionCollection($questions);
80 $required_question_amount = $this->sourcePoolDefinitionList->getQuestionAmount();
81 if ($question_set->isSmallerThan($required_question_amount)) {
82 $question_set->mergeQuestionCollection(
85 ->getRelativeComplementCollection($question_set),
86 $question_set->getMissingCount($required_question_amount)
getSrcPoolDefListRelatedQuestUniqueCollection(ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
storeQuestionSet(ilTestSession $test_session, ilTestRandomQuestionSetQuestionCollection $question_set)
fetchQuestionsFromStageRandomly(ilTestRandomQuestionSetQuestionCollection $questionStage, int $requiredQuestionAmount)
performBuild(ilTestSession $test_session)
getSrcPoolDefRelatedQuestCollection(ilTestRandomQuestionSetSourcePoolDefinition $definition)
handleQuestionOrdering(ilTestRandomQuestionSetQuestionCollection $question_set)