MATH-1335

Use new RNG API.

Unit tests rewritten to avoid unnecessary usage of "RandomDataGenerator" (cf. 
MATH-1341).


Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/0484bdb3
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/0484bdb3
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/0484bdb3

Branch: refs/heads/develop
Commit: 0484bdb3f61d309ff62da4df4be92cf139d19f6b
Parents: 11a7e62
Author: Gilles <er...@apache.org>
Authored: Wed May 11 17:26:37 2016 +0200
Committer: Gilles <er...@apache.org>
Committed: Tue May 17 15:30:23 2016 +0200

----------------------------------------------------------------------
 .../commons/math4/util/ArithmeticUtilsTest.java   | 18 ++++++------------
 .../apache/commons/math4/util/MathUtilsTest.java  | 15 ++++++++-------
 2 files changed, 14 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/0484bdb3/src/test/java/org/apache/commons/math4/util/ArithmeticUtilsTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/commons/math4/util/ArithmeticUtilsTest.java 
b/src/test/java/org/apache/commons/math4/util/ArithmeticUtilsTest.java
index fece225..2de8ee1 100644
--- a/src/test/java/org/apache/commons/math4/util/ArithmeticUtilsTest.java
+++ b/src/test/java/org/apache/commons/math4/util/ArithmeticUtilsTest.java
@@ -22,8 +22,6 @@ import java.math.BigInteger;
 
 import org.apache.commons.math4.exception.MathArithmeticException;
 import org.apache.commons.math4.exception.MathIllegalArgumentException;
-import org.apache.commons.math4.random.RandomDataGenerator;
-import org.apache.commons.math4.util.ArithmeticUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -125,17 +123,13 @@ public class ArithmeticUtilsTest {
     @Test
     public void testGcdConsistency() {
         int[] primeList = {19, 23, 53, 67, 73, 79, 101, 103, 111, 131};
-        ArrayList<Integer> primes = new ArrayList<Integer>();
-        for (int i = 0; i < primeList.length; i++) {
-            primes.add(Integer.valueOf(primeList[i]));
-        }
-        RandomDataGenerator randomData = new RandomDataGenerator();
+
         for (int i = 0; i < 20; i++) {
-            Object[] sample = randomData.nextSample(primes, 4);
-            int p1 = ((Integer) sample[0]).intValue();
-            int p2 = ((Integer) sample[1]).intValue();
-            int p3 = ((Integer) sample[2]).intValue();
-            int p4 = ((Integer) sample[3]).intValue();
+            MathArrays.shuffle(primeList);
+            int p1 = primeList[0];
+            int p2 = primeList[1];
+            int p3 = primeList[2];
+            int p4 = primeList[3];
             int i1 = p1 * p2 * p3;
             int i2 = p1 * p2 * p4;
             int gcd = p1 * p2;

http://git-wip-us.apache.org/repos/asf/commons-math/blob/0484bdb3/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java 
b/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java
index 8ce9a2d..f83476f 100644
--- a/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java
+++ b/src/test/java/org/apache/commons/math4/util/MathUtilsTest.java
@@ -19,10 +19,8 @@ import 
org.apache.commons.math4.exception.MathArithmeticException;
 import org.apache.commons.math4.exception.NotFiniteNumberException;
 import org.apache.commons.math4.exception.NullArgumentException;
 import org.apache.commons.math4.exception.util.LocalizedFormats;
-import org.apache.commons.math4.random.RandomDataGenerator;
+import org.apache.commons.math4.rng.UniformRandomProvider;
 import org.apache.commons.math4.rng.RandomSource;
-import org.apache.commons.math4.util.FastMath;
-import org.apache.commons.math4.util.MathUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -97,23 +95,26 @@ public final class MathUtilsTest {
     public void testPermutedArrayHash() {
         double[] original = new double[10];
         double[] permuted = new double[10];
-        RandomDataGenerator random = new RandomDataGenerator();
+
+        final UniformRandomProvider random = 
RandomSource.create(RandomSource.WELL_512_A,
+                                                                 64925784252L);
 
         // Generate 10 distinct random values
         for (int i = 0; i < 10; i++) {
             final RealDistribution.Sampler u
-                = new UniformRealDistribution(i + 0.5, i + 
0.75).createSampler(RandomSource.create(RandomSource.WELL_512_A,
-                                                                               
                    64925784252L));
+                = new UniformRealDistribution(i + 0.5, i + 
0.75).createSampler(random);
             original[i] = u.sample();
         }
 
         // Generate a random permutation, making sure it is not the identity
         boolean isIdentity = true;
         do {
-            int[] permutation = random.nextPermutation(10, 10);
+            int[] permutation = MathArrays.natural(10);
+            MathArrays.shuffle(permutation, random);
             for (int i = 0; i < 10; i++) {
                 if (i != permutation[i]) {
                     isIdentity = false;
+                    break;
                 }
                 permuted[i] = original[permutation[i]];
             }

Reply via email to