diff --git a/src/main/java/org/olat/modules/forms/manager/RubricStatisticCalculator.java b/src/main/java/org/olat/modules/forms/manager/RubricStatisticCalculator.java index 18021e82c3ea54ce1136a652d424d6a3c8b8821d..57543d01ea64349c15d388548990cea7f449c754 100644 --- a/src/main/java/org/olat/modules/forms/manager/RubricStatisticCalculator.java +++ b/src/main/java/org/olat/modules/forms/manager/RubricStatisticCalculator.java @@ -203,7 +203,7 @@ class RubricStatisticCalculator { size++; } } - return size > 2? varianceDividend/(size - 1): null; + return size > 1? varianceDividend/(size - 1): null; } Double getStdDev(Double variance) { diff --git a/src/test/java/org/olat/modules/forms/manager/RubricStatisticCalculatorTest.java b/src/test/java/org/olat/modules/forms/manager/RubricStatisticCalculatorTest.java index 007d1181eefc16cd8643f3d3e46e54be730e53f2..fba4312069f2806fdf9bafe6ea3f3dd19e3261e6 100644 --- a/src/test/java/org/olat/modules/forms/manager/RubricStatisticCalculatorTest.java +++ b/src/test/java/org/olat/modules/forms/manager/RubricStatisticCalculatorTest.java @@ -201,6 +201,35 @@ public class RubricStatisticCalculatorTest { assertThat(variance).isEqualTo(1.5); } + @Test + public void shouldCalculateSliderVarianceOfTwoResponses() { + ScaleType scaleType = ScaleType.oneToMax; + StepCountsBuilder stepCountsBuilder = StepCountsBuilder.builder(4); + stepCountsBuilder.withCount(1, Long.valueOf(1)); + stepCountsBuilder.withCount(2, Long.valueOf(1)); + stepCountsBuilder.withCount(3, Long.valueOf(0)); + stepCountsBuilder.withCount(4, Long.valueOf(0)); + SumMean sumMean = sut.getSumMean(stepCountsBuilder.build(), scaleType); + + Double variance = sut.getVariance(stepCountsBuilder.build(), scaleType, sumMean.getMean()); + + assertThat(variance).isEqualTo(0.5); + } + @Test + public void shouldCalculateSliderVarianceOfOneResponse() { + ScaleType scaleType = ScaleType.oneToMax; + StepCountsBuilder stepCountsBuilder = StepCountsBuilder.builder(4); + stepCountsBuilder.withCount(1, Long.valueOf(1)); + stepCountsBuilder.withCount(2, Long.valueOf(0)); + stepCountsBuilder.withCount(3, Long.valueOf(0)); + stepCountsBuilder.withCount(4, Long.valueOf(0)); + SumMean sumMean = sut.getSumMean(stepCountsBuilder.build(), scaleType); + + Double variance = sut.getVariance(stepCountsBuilder.build(), scaleType, sumMean.getMean()); + + assertThat(variance).isNull(); + } + @Test public void shouldCalculateSliderVarianceScaled() { ScaleType scaleType = ScaleType.zeroBallanced;