You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/07/17 02:24:21 UTC
[james-project] 07/31: JAMES−2290 Fix unstable test: DiscreteDistributionTest.partitionShouldSupportDuplicatedDistributionEntry
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit add3e9a24abdfef3e25df1f615ca3d5e09cd0f44
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Jul 15 13:56:10 2020 +0700
JAMES−2290 Fix unstable test: DiscreteDistributionTest.partitionShouldSupportDuplicatedDistributionEntry
We encountered the following failure:
```
[ERROR] DiscreteDistributionTest.partitionShouldSupportDuplicatedDistributionEntry:112
Expecting:
<668532L>
to be close to:
<662936L>
by less than <5000L> but difference was <5596L>.
(a difference of exactly <5000L> being considered valid)
```
A difference of 10.000 seems reasonable too and more unlikely to break.
---
.../main/java/org/apache/james/utils/DiscreteDistribution.java | 3 ++-
.../java/org/apache/james/utils/DiscreteDistributionTest.java | 10 +++++++---
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/server/testing/src/main/java/org/apache/james/utils/DiscreteDistribution.java b/server/testing/src/main/java/org/apache/james/utils/DiscreteDistribution.java
index eaeaaf5..f3fbdbc 100644
--- a/server/testing/src/main/java/org/apache/james/utils/DiscreteDistribution.java
+++ b/server/testing/src/main/java/org/apache/james/utils/DiscreteDistribution.java
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.stream.Stream;
import org.apache.commons.math3.distribution.EnumeratedDistribution;
+import org.apache.commons.math3.random.MersenneTwister;
import org.apache.commons.math3.util.Pair;
import com.github.steveash.guavate.Guavate;
@@ -66,7 +67,7 @@ public class DiscreteDistribution<T> {
private final EnumeratedDistribution<T> enumeratedDistribution;
private DiscreteDistribution(List<DistributionEntry<T>> distribution) {
- enumeratedDistribution = new EnumeratedDistribution<>(distribution.stream()
+ enumeratedDistribution = new EnumeratedDistribution<>(new MersenneTwister(), distribution.stream()
.map(DistributionEntry::toPair)
.collect(Guavate.toImmutableList()));
}
diff --git a/server/testing/src/test/java/org/apache/james/utils/DiscreteDistributionTest.java b/server/testing/src/test/java/org/apache/james/utils/DiscreteDistributionTest.java
index 4aaf150..864fbd7 100644
--- a/server/testing/src/test/java/org/apache/james/utils/DiscreteDistributionTest.java
+++ b/server/testing/src/test/java/org/apache/james/utils/DiscreteDistributionTest.java
@@ -33,6 +33,7 @@ import org.junit.jupiter.api.Test;
import com.google.common.collect.ImmutableList;
class DiscreteDistributionTest {
+ public static final Offset<Long> OFFSET = Offset.offset(10_000L);
@Test
void createShouldNotSupportNegativeDistribution() {
@@ -84,7 +85,8 @@ class DiscreteDistributionTest {
Map<String, Long> experimentOutcome = testee.generateRandomStream().limit(1_000_000)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
- assertThat(experimentOutcome.get("a")).isCloseTo(experimentOutcome.get("b"), Offset.offset(5_000L));
+ assertThat(experimentOutcome.get("a"))
+ .isCloseTo(experimentOutcome.get("b"), OFFSET);
}
@Test
@@ -96,7 +98,8 @@ class DiscreteDistributionTest {
Map<String, Long> experimentOutcome = testee.generateRandomStream().limit(1_000_000)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
- assertThat(experimentOutcome.get("a")).isCloseTo(experimentOutcome.get("b") * 2, Offset.offset(5_000L));
+ assertThat(experimentOutcome.get("a"))
+ .isCloseTo(experimentOutcome.get("b") * 2, OFFSET);
}
@Test
@@ -109,7 +112,8 @@ class DiscreteDistributionTest {
Map<String, Long> experimentOutcome = testee.generateRandomStream().limit(1_000_000)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
- assertThat(experimentOutcome.get("a")).isCloseTo(experimentOutcome.get("b") * 2, Offset.offset(5_000L));
+ assertThat(experimentOutcome.get("a"))
+ .isCloseTo(experimentOutcome.get("b") * 2, OFFSET);
}
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org