diff --git a/services/quizzes/src/grading/assessment/choose-n.ts b/services/quizzes/src/grading/assessment/choose-n.ts index 2671ee17b928..7a6031d900b9 100644 --- a/services/quizzes/src/grading/assessment/choose-n.ts +++ b/services/quizzes/src/grading/assessment/choose-n.ts @@ -8,13 +8,20 @@ const assessChooseN = ( if (!quizItemAnswer.selectedOptionIds) { throw new Error("No options selected") } - + const totalCorrectOptions = quizItem.options.filter((item) => item.correct).length + let correctOptions = 0 + quizItemAnswer.selectedOptionIds.forEach((selectedOption) => { + const option = quizItem.options.filter((item) => item.id === selectedOption)[0] + if (option && option.correct) { + correctOptions++ + } + }) const correct = quizItemAnswer.selectedOptionIds.length == quizItem.n return { quizItemId: quizItem.id, correct, - correctnessCoefficient: correct ? 1 : 0, + correctnessCoefficient: correctOptions / totalCorrectOptions, } }