Files
2026-06-22 22:59:01 +02:00

33 lines
972 B
TypeScript

const highStandardItems = [1, 4, 5, 10, 13];
const searchItems = [2, 3, 6, 8, 9, 12];
const difficultyItems = [7, 11];
function average(scores: number[]) {
return scores.reduce((sum, score) => sum + score, 0) / scores.length;
}
function scoreItems(answers: string[], items: number[]) {
return average(items.map((item) => Number(answers[item - 1] || 1)));
}
export function calculateMaximizerResults(answers: string[]) {
const itemScores = answers.slice(0, 13).map((answer) => Number(answer || 1));
const averageScore = average(itemScores);
let level: 'satisficer' | 'balanced' | 'maximizer' = 'balanced';
if (averageScore < 3.25) {
level = 'satisficer';
} else if (averageScore >= 4.75) {
level = 'maximizer';
}
return {
itemScores,
average: averageScore,
highStandards: scoreItems(answers, highStandardItems),
search: scoreItems(answers, searchItems),
difficulty: scoreItems(answers, difficultyItems),
level,
};
}