diff --git a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java index b1131ab44ae66a96376242584d05401222befc2e..dfef1d348cb3a3f7b346a0979f02bd355b0b0356 100644 --- a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java +++ b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java @@ -36,8 +36,8 @@ public class PointBasedLearningProgress extends VariantLearningProgress { lpv.setCourseProgress(coursePercentage()); lpv.setNumQuestions(courseScore.getQuestionCount()); lpv.setNumUsers(courseScore.getTotalUserCount()); - lpv.setNumerator(courseScore.getTotalUserScore()); - lpv.setDenominator(courseScore.getMaximumScore() * courseScore.getTotalUserCount()); + lpv.setNumerator(courseScore.getTotalUserScore()/courseScore.getTotalUserCount()); + lpv.setDenominator(courseScore.getMaximumScore()); return lpv; } diff --git a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java index 66f7ea2e746ec056ffc9d9d3392c887a8db724b2..b4090a327380c422a69016254436075fc2133178 100644 --- a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java +++ b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java @@ -37,8 +37,8 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress { lpv.setCourseProgress(calculateCourseProgress()); lpv.setNumQuestions(courseScore.getQuestionCount()); lpv.setNumUsers(courseScore.getTotalUserCount()); - lpv.setNumerator(countCorrectAnswers()); - lpv.setDenominator(courseScore.getTotalUserCount() * courseScore.getQuestionCount()); + lpv.setNumerator(countCorrectAnswers()/courseScore.getTotalUserCount()); + lpv.setDenominator(courseScore.getQuestionCount()); return lpv; } @@ -80,13 +80,15 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress { @Override protected LearningProgressValues createMyProgress(User user) { + final int numerator = numQuestionsCorrectForUser(user); + final int denominator = courseScore.getQuestionCount(); LearningProgressValues lpv = new LearningProgressValues(); lpv.setCourseProgress(calculateCourseProgress()); - lpv.setMyProgress(myPercentage(numQuestionsCorrectForUser(user), courseScore.getQuestionCount())); + lpv.setMyProgress(myPercentage(numerator, denominator)); lpv.setNumQuestions(courseScore.getQuestionCount()); lpv.setNumUsers(courseScore.getTotalUserCount()); - lpv.setNumerator(numQuestionsCorrectForUser(user)); - lpv.setDenominator(courseScore.getQuestionCount()); + lpv.setNumerator(numerator); + lpv.setDenominator(denominator); return lpv; } diff --git a/src/test/java/de/thm/arsnova/domain/PointBasedLearningProgressTest.java b/src/test/java/de/thm/arsnova/domain/PointBasedLearningProgressTest.java index 1ba9be1c647cb2dc3e990988afb5f6d2eec822f6..557ce198bd5898b13a2c7bb95bdd43760d21fc3b 100644 --- a/src/test/java/de/thm/arsnova/domain/PointBasedLearningProgressTest.java +++ b/src/test/java/de/thm/arsnova/domain/PointBasedLearningProgressTest.java @@ -128,15 +128,21 @@ public class PointBasedLearningProgressTest { } @Test - public void shouldIncludeNominatorAndDenominatorOfResult() { + public void shouldIncludeNominatorAndDenominatorOfResultExcludingStudentCount() { // two questions String q1 = this.addQuestion("lecture", 10); String q2 = this.addQuestion("lecture", 10); - // one user + // three users User u1 = new TestUser("user1"); - // two answers, last one is wrong + User u2 = new TestUser("user2"); + User u3 = new TestUser("user3"); + // six answers this.addAnswer(q1, u1, 10); this.addAnswer(q2, u1, 0); + this.addAnswer(q1, u2, 10); + this.addAnswer(q2, u2, 0); + this.addAnswer(q1, u3, 10); + this.addAnswer(q2, u3, 0); int numerator = lp.getCourseProgress(null).getNumerator(); int denominator = lp.getCourseProgress(null).getDenominator(); diff --git a/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java b/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java index d4652e8d7cb8a6566afb7553ed9be182135ee015..736c40a007b2c7fde6d2e52ff496f67e97c87283 100644 --- a/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java +++ b/src/test/java/de/thm/arsnova/domain/QuestionBasedLearningProgressTest.java @@ -201,15 +201,21 @@ public class QuestionBasedLearningProgressTest { } @Test - public void shouldIncludeNominatorAndDenominatorOfResult() { + public void shouldIncludeNominatorAndDenominatorOfResultExcludingStudentCount() { // two questions String q1 = this.addQuestion("lecture", 10); String q2 = this.addQuestion("lecture", 10); - // one user + // three users User u1 = new TestUser("user1"); - // two answers, last one is wrong + User u2 = new TestUser("user2"); + User u3 = new TestUser("user3"); + // six answers this.addAnswer(q1, u1, 10); - this.addAnswer(q2, u1, 0); + this.addAnswer(q2, u1, -100); + this.addAnswer(q1, u2, 10); + this.addAnswer(q2, u2, -100); + this.addAnswer(q1, u3, 10); + this.addAnswer(q2, u3, -100); int numerator = lp.getCourseProgress(null).getNumerator(); int denominator = lp.getCourseProgress(null).getDenominator();