Repository: commons-rng
Updated Branches:
  refs/heads/master 8c927dc65 -> 0fdcd9007


RNG-60: Use random seeds (unit test).

By using random seeds, it is expected that the unit tests will fail
with some probability; Junit is thus configured to rerun such a test,
marking it as "flaky" when it succeeds within the allotted number of
retries), and letting the build pass.


Project: http://git-wip-us.apache.org/repos/asf/commons-rng/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rng/commit/0fdcd900
Tree: http://git-wip-us.apache.org/repos/asf/commons-rng/tree/0fdcd900
Diff: http://git-wip-us.apache.org/repos/asf/commons-rng/diff/0fdcd900

Branch: refs/heads/master
Commit: 0fdcd9007c708aa48f1989cb2211ea56c1fcd702
Parents: 8c927dc
Author: Gilles <er...@apache.org>
Authored: Fri Nov 16 03:17:59 2018 +0100
Committer: Gilles <er...@apache.org>
Committed: Fri Nov 16 03:17:59 2018 +0100

----------------------------------------------------------------------
 commons-rng-core/pom.xml                        | 12 +++++++
 .../apache/commons/rng/core/ProvidersList.java  | 36 +++++++++++---------
 src/changes/changes.xml                         | 10 ++++++
 3 files changed, 42 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rng/blob/0fdcd900/commons-rng-core/pom.xml
----------------------------------------------------------------------
diff --git a/commons-rng-core/pom.xml b/commons-rng-core/pom.xml
index 6fe5243..9cf54a5 100644
--- a/commons-rng-core/pom.xml
+++ b/commons-rng-core/pom.xml
@@ -55,4 +55,16 @@
     </dependency>
   </dependencies>
 
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.22.0</version>
+        <configuration>
+          <rerunFailingTestsCount>2</rerunFailingTestsCount>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>

http://git-wip-us.apache.org/repos/asf/commons-rng/blob/0fdcd900/commons-rng-core/src/test/java/org/apache/commons/rng/core/ProvidersList.java
----------------------------------------------------------------------
diff --git 
a/commons-rng-core/src/test/java/org/apache/commons/rng/core/ProvidersList.java 
b/commons-rng-core/src/test/java/org/apache/commons/rng/core/ProvidersList.java
index 7831940..767074a 100644
--- 
a/commons-rng-core/src/test/java/org/apache/commons/rng/core/ProvidersList.java
+++ 
b/commons-rng-core/src/test/java/org/apache/commons/rng/core/ProvidersList.java
@@ -20,6 +20,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.security.SecureRandom;
 
 import org.apache.commons.rng.core.source32.JDKRandom;
 import org.apache.commons.rng.core.source32.Well512a;
@@ -59,27 +60,30 @@ public class ProvidersList {
         new ArrayList<RestorableUniformRandomProvider[]>();
 
     static {
+        // External generator for creating a random seed.
+        final SecureRandom g = new SecureRandom();
+
         try {
             // "int"-based RNGs.
-            add(LIST32, new JDKRandom(-122333444455555L));
-            add(LIST32, new MersenneTwister(new int[] { -123, -234, -345 }));
-            add(LIST32, new Well512a(new int[] { -23, -34, -45 }));
-            add(LIST32, new Well1024a(new int[] { -1234, -2345, -3456 }));
-            add(LIST32, new Well19937a(new int[] { -2123, -3234, -4345 }));
-            add(LIST32, new Well19937c(new int[] { -123, -234, -345, -456 }));
-            add(LIST32, new Well44497a(new int[] { -12345, -23456, -34567 }));
-            add(LIST32, new Well44497b(new int[] { 123, 234, 345 }));
-            add(LIST32, new ISAACRandom(new int[] { 123, -234, 345, -456 }));
-            add(LIST32, new MultiplyWithCarry256(new int[] { 12, -1234, -3456, 
45679 }));
-            add(LIST32, new KISSRandom(new int[] { 12, 1234, 23456, 345678 }));
+            add(LIST32, new JDKRandom(g.nextLong()));
+            add(LIST32, new MersenneTwister(new int[] { g.nextInt(), 
g.nextInt(), g.nextInt() }));
+            add(LIST32, new Well512a(new int[] { g.nextInt(), g.nextInt(), 
g.nextInt() }));
+            add(LIST32, new Well1024a(new int[] { g.nextInt(), g.nextInt(), 
g.nextInt() }));
+            add(LIST32, new Well19937a(new int[] { g.nextInt(), g.nextInt(), 
g.nextInt() }));
+            add(LIST32, new Well19937c(new int[] { g.nextInt(), g.nextInt(), 
g.nextInt() }));
+            add(LIST32, new Well44497a(new int[] { g.nextInt(), g.nextInt(), 
g.nextInt() }));
+            add(LIST32, new Well44497b(new int[] { g.nextInt(), g.nextInt(), 
g.nextInt() }));
+            add(LIST32, new ISAACRandom(new int[] { g.nextInt(), g.nextInt(), 
g.nextInt() }));
+            add(LIST32, new MultiplyWithCarry256(new int[] { g.nextInt(), 
g.nextInt(), g.nextInt() }));
+            add(LIST32, new KISSRandom(new int[] { g.nextInt(), g.nextInt(), 
g.nextInt() }));
             // ... add more here.
 
             // "long"-based RNGs.
-            add(LIST64, new SplitMix64(-98877766544333L));
-            add(LIST64, new XorShift1024Star(new long[] { 123456L, 234567L, 
-345678L }));
-            add(LIST64, new TwoCmres(55443322));
-            add(LIST64, new TwoCmres(-987654321, 5, 8));
-            add(LIST64, new MersenneTwister64(new long[] { 1234567L, 2345678L, 
-3456789L }));
+            add(LIST64, new SplitMix64(g.nextLong()));
+            add(LIST64, new XorShift1024Star(new long[] { g.nextLong(), 
g.nextLong(), g.nextLong(), g.nextLong() }));
+            add(LIST64, new TwoCmres(g.nextInt()));
+            add(LIST64, new TwoCmres(g.nextInt(), 5, 8));
+            add(LIST64, new MersenneTwister64(new long[] { g.nextLong(), 
g.nextLong(), g.nextLong(), g.nextLong() }));
             // ... add more here.
 
             // Do not modify the remaining statements.

http://git-wip-us.apache.org/repos/asf/commons-rng/blob/0fdcd900/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9e249c5..c2fc2ec 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -66,7 +66,17 @@ Additional code is provided in the following module:
   commons-rng-examples (requires Java 9)
 It is however not part of the official API and no compatibility
 should be expected in subsequent releases.
+
+It must be noted that, due to the nature of random number
+generation, some of unit tests are bound to fail with some
+probability.  The 'maven-surefire-plugin' is configured to
+re-run tests that fail, and pass the build if they succeed
+within the allotted number of reruns (the test will be marked
+as 'flaky' in the report).
 ">
+      <action dev="erans" type="update" issue="RNG-60">
+        Use random seeds for unit testing.
+      </action>
       <action dev="erans" type="update" issue="RNG-52">
         Set conservative upper bound in "LargePoissonSampler" to avoid 
truncation.
       </action>

Reply via email to