Skip to content
Snippets Groups Projects
Commit 561c1b31 authored by Christoph Thelen's avatar Christoph Thelen
Browse files

Fix for #16953: Reduce user count from calculation

parent 2176c312
Branches
Tags
No related merge requests found
...@@ -36,8 +36,8 @@ public class PointBasedLearningProgress extends VariantLearningProgress { ...@@ -36,8 +36,8 @@ public class PointBasedLearningProgress extends VariantLearningProgress {
lpv.setCourseProgress(coursePercentage()); lpv.setCourseProgress(coursePercentage());
lpv.setNumQuestions(courseScore.getQuestionCount()); lpv.setNumQuestions(courseScore.getQuestionCount());
lpv.setNumUsers(courseScore.getTotalUserCount()); lpv.setNumUsers(courseScore.getTotalUserCount());
lpv.setNumerator(courseScore.getTotalUserScore()); lpv.setNumerator(courseScore.getTotalUserScore()/courseScore.getTotalUserCount());
lpv.setDenominator(courseScore.getMaximumScore() * courseScore.getTotalUserCount()); lpv.setDenominator(courseScore.getMaximumScore());
return lpv; return lpv;
} }
......
...@@ -37,8 +37,8 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress { ...@@ -37,8 +37,8 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress {
lpv.setCourseProgress(calculateCourseProgress()); lpv.setCourseProgress(calculateCourseProgress());
lpv.setNumQuestions(courseScore.getQuestionCount()); lpv.setNumQuestions(courseScore.getQuestionCount());
lpv.setNumUsers(courseScore.getTotalUserCount()); lpv.setNumUsers(courseScore.getTotalUserCount());
lpv.setNumerator(countCorrectAnswers()); lpv.setNumerator(countCorrectAnswers()/courseScore.getTotalUserCount());
lpv.setDenominator(courseScore.getTotalUserCount() * courseScore.getQuestionCount()); lpv.setDenominator(courseScore.getQuestionCount());
return lpv; return lpv;
} }
...@@ -80,13 +80,15 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress { ...@@ -80,13 +80,15 @@ public class QuestionBasedLearningProgress extends VariantLearningProgress {
@Override @Override
protected LearningProgressValues createMyProgress(User user) { protected LearningProgressValues createMyProgress(User user) {
final int numerator = numQuestionsCorrectForUser(user);
final int denominator = courseScore.getQuestionCount();
LearningProgressValues lpv = new LearningProgressValues(); LearningProgressValues lpv = new LearningProgressValues();
lpv.setCourseProgress(calculateCourseProgress()); lpv.setCourseProgress(calculateCourseProgress());
lpv.setMyProgress(myPercentage(numQuestionsCorrectForUser(user), courseScore.getQuestionCount())); lpv.setMyProgress(myPercentage(numerator, denominator));
lpv.setNumQuestions(courseScore.getQuestionCount()); lpv.setNumQuestions(courseScore.getQuestionCount());
lpv.setNumUsers(courseScore.getTotalUserCount()); lpv.setNumUsers(courseScore.getTotalUserCount());
lpv.setNumerator(numQuestionsCorrectForUser(user)); lpv.setNumerator(numerator);
lpv.setDenominator(courseScore.getQuestionCount()); lpv.setDenominator(denominator);
return lpv; return lpv;
} }
......
...@@ -128,15 +128,21 @@ public class PointBasedLearningProgressTest { ...@@ -128,15 +128,21 @@ public class PointBasedLearningProgressTest {
} }
@Test @Test
public void shouldIncludeNominatorAndDenominatorOfResult() { public void shouldIncludeNominatorAndDenominatorOfResultExcludingStudentCount() {
// two questions // two questions
String q1 = this.addQuestion("lecture", 10); String q1 = this.addQuestion("lecture", 10);
String q2 = this.addQuestion("lecture", 10); String q2 = this.addQuestion("lecture", 10);
// one user // three users
User u1 = new TestUser("user1"); 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(q1, u1, 10);
this.addAnswer(q2, u1, 0); 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 numerator = lp.getCourseProgress(null).getNumerator();
int denominator = lp.getCourseProgress(null).getDenominator(); int denominator = lp.getCourseProgress(null).getDenominator();
......
...@@ -201,15 +201,21 @@ public class QuestionBasedLearningProgressTest { ...@@ -201,15 +201,21 @@ public class QuestionBasedLearningProgressTest {
} }
@Test @Test
public void shouldIncludeNominatorAndDenominatorOfResult() { public void shouldIncludeNominatorAndDenominatorOfResultExcludingStudentCount() {
// two questions // two questions
String q1 = this.addQuestion("lecture", 10); String q1 = this.addQuestion("lecture", 10);
String q2 = this.addQuestion("lecture", 10); String q2 = this.addQuestion("lecture", 10);
// one user // three users
User u1 = new TestUser("user1"); 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(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 numerator = lp.getCourseProgress(null).getNumerator();
int denominator = lp.getCourseProgress(null).getDenominator(); int denominator = lp.getCourseProgress(null).getDenominator();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment