From 561c1b31985383b633484a81f9ffc9fbef7936dd Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Wed, 29 Jul 2015 11:54:29 +0200 Subject: [PATCH] Fix for #16953: Reduce user count from calculation --- .../arsnova/domain/PointBasedLearningProgress.java | 4 ++-- .../domain/QuestionBasedLearningProgress.java | 12 +++++++----- .../domain/PointBasedLearningProgressTest.java | 12 +++++++++--- .../domain/QuestionBasedLearningProgressTest.java | 14 ++++++++++---- 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java index b1131ab4..dfef1d34 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 66f7ea2e..b4090a32 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 1ba9be1c..557ce198 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 d4652e8d..736c40a0 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(); -- GitLab