diff --git a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java index b4090a327380c422a69016254436075fc2133178..200df8fc9c51b6a08bbee808fdba6641a653e628 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 736c40a007b2c7fde6d2e52ff496f67e97c87283..1efbde1cd05473aae781560ebd73ce954dcb6798 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); }