From 5b993f6ba4b873c70e11af1a92cf4bbb39e32519 Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Wed, 29 Jul 2015 12:43:34 +0200 Subject: [PATCH] Attempt to get more accurate numerator values --- .../domain/QuestionBasedLearningProgress.java | 20 ++++++------------- .../QuestionBasedLearningProgressTest.java | 8 ++++---- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java index b4090a32..200df8fc 100644 --- a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java +++ b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java @@ -33,12 +33,15 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress { @Override protected LearningProgressValues createCourseProgress() { + final int courseProgress = calculateCourseProgress(); + final int numerator = courseScore.getQuestionCount()*courseProgress/100; + final int denominator = courseScore.getQuestionCount(); LearningProgressValues lpv = new LearningProgressValues(); - lpv.setCourseProgress(calculateCourseProgress()); + lpv.setCourseProgress(courseProgress); lpv.setNumQuestions(courseScore.getQuestionCount()); lpv.setNumUsers(courseScore.getTotalUserCount()); - lpv.setNumerator(countCorrectAnswers()/courseScore.getTotalUserCount()); - lpv.setDenominator(courseScore.getQuestionCount()); + lpv.setNumerator(numerator); + lpv.setDenominator(denominator); return lpv; } @@ -67,17 +70,6 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress { return numAnswersCorrect; } - private int countCorrectAnswers() { - int answers = 0; - for (QuestionScore questionScore : courseScore) { - if (!questionScore.hasScores()) { - continue; - } - answers += countCorrectAnswers(questionScore); - } - return answers; - } - @Override protected LearningProgressValues createMyProgress(User user) { final int numerator = numQuestionsCorrectForUser(user); diff --git a/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java b/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java index 736c40a0..1efbde1c 100644 --- a/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java +++ b/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java @@ -212,17 +212,17 @@ public class QuestionBasedLearningProgressTest { // six answers this.addAnswer(q1, u1, 10); this.addAnswer(q2, u1, -100); - this.addAnswer(q1, u2, 10); + this.addAnswer(q1, u2, -100); this.addAnswer(q2, u2, -100); - this.addAnswer(q1, u3, 10); + this.addAnswer(q1, u3, -100); this.addAnswer(q2, u3, -100); int numerator = lp.getCourseProgress(null).getNumerator(); int denominator = lp.getCourseProgress(null).getDenominator(); // If the percentage is wrong, then we need to adapt this test case! - assertEquals("Precondition failed -- The underlying calculation has changed", 50, lp.getCourseProgress(null).getCourseProgress()); - assertEquals(1, numerator); + assertEquals("Precondition failed -- The underlying calculation has changed", 17, lp.getCourseProgress(null).getCourseProgress()); + assertEquals(0, numerator); assertEquals(2, denominator); } -- GitLab