You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2019/02/14 13:59:30 UTC

[commons-rng] 07/17: Formatted code and javadoc

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-rng.git

commit 2b24bf79a3bb119cb0389771971b32e2a5a796e4
Author: aherbert <ah...@apache.org>
AuthorDate: Thu Feb 14 12:26:03 2019 +0000

    Formatted code and javadoc
---
 .../distribution/GeometricSamplersPerformance.java |  5 ++--
 .../sampling/distribution/GeometricSampler.java    | 14 +++++----
 .../distribution/GeometricSamplerTest.java         | 33 ++++++++++++----------
 3 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/GeometricSamplersPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/GeometricSamplersPerformance.java
index 60e86ad..bf3cdf9 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/GeometricSamplersPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/GeometricSamplersPerformance.java
@@ -134,8 +134,9 @@ public class GeometricSamplersPerformance {
             // ---
             // Note: if cumulativeProbability == 0 then log1p(-0) is zero and the result
             // after the range check is 0.
-            // Note: if cumulativeProbability == 1 then log1p(-1) is negative infinity, the result of
-            // the divide is positive infinity and the result after the range check is Integer.MAX_VALUE.
+            // Note: if cumulativeProbability == 1 then log1p(-1) is negative infinity, the result
+            // of the divide is positive infinity and the result after the range check is
+            // Integer.MAX_VALUE.
             return Math.max(0, (int) Math.ceil(Math.log1p(-cumulativeProbability) / log1mProbabilityOfSuccess - 1));
         }
     }
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java
index ba62ac4..2197d4c 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java
@@ -78,7 +78,8 @@ public class GeometricSampler implements DiscreteSampler {
 
         /**
          * @param rng Generator of uniformly distributed random numbers
-         * @param probabilityOfSuccess The probability of success (must be {@code 0<p<1})
+         * @param probabilityOfSuccess The probability of success (must be in the range
+         * {@code [0 < probabilityOfSuccess < 1]})
          */
         GeometricExponentialSampler(UniformRandomProvider rng, double probabilityOfSuccess) {
             this.rng = rng;
@@ -116,13 +117,14 @@ public class GeometricSampler implements DiscreteSampler {
      *
      * @param rng Generator of uniformly distributed random numbers
      * @param probabilityOfSuccess The probability of success
-     * @throws IllegalArgumentException if {@code probabilityOfSuccess} is not in the range [0 <
-     * probabilityOfSuccess <= 1]
+     * @throws IllegalArgumentException if {@code probabilityOfSuccess} is not in the range
+     * {@code [0 < probabilityOfSuccess <= 1]})
      */
     public GeometricSampler(UniformRandomProvider rng, double probabilityOfSuccess) {
         if (probabilityOfSuccess <= 0 || probabilityOfSuccess > 1) {
             throw new IllegalArgumentException(
-                "Probability of success must be in the range [0 < p <= 1]: " + probabilityOfSuccess);
+                "Probability of success (p) must be in the range [0 < p <= 1]: "
+                    + probabilityOfSuccess);
         }
         delegate = probabilityOfSuccess == 1 ?
             GeometricP1Sampler.INSTANCE :
@@ -132,8 +134,8 @@ public class GeometricSampler implements DiscreteSampler {
     /**
      * Create a sample from a geometric distribution.
      *
-     * <p>The sample will take the values in the set {@code [0, 1, 2, ...]}, equivalent to the number of
-     * failures before the first success.
+     * <p>The sample will take the values in the set {@code [0, 1, 2, ...]}, equivalent to the
+     * number of failures before the first success.
      */
     @Override
     public int sample() {
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
index 00f1000..c3267bf 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
@@ -17,6 +17,7 @@
 package org.apache.commons.rng.sampling.distribution;
 
 import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.core.source64.SplitMix64;
 import org.apache.commons.rng.simple.RandomSource;
 import org.junit.Assert;
 import org.junit.Test;
@@ -26,8 +27,8 @@ import org.junit.Test;
  */
 public class GeometricSamplerTest {
     /**
-     * Test the edge case where the probability of success is 1. This is a valid geometric distribution
-     * where the sample should always be 0.
+     * Test the edge case where the probability of success is 1. This is a valid geometric
+     * distribution where the sample should always be 0.
      */
     @Test
     public void testProbabilityOfSuccessIsOneGeneratesZeroForSamples() {
@@ -45,18 +46,20 @@ public class GeometricSamplerTest {
      */
     @Test
     public void testProbabilityOfSuccessIsOneSamplerToString() {
-        final UniformRandomProvider rng = RandomSource.create(RandomSource.SPLIT_MIX_64);
-        final GeometricSampler sampler = new GeometricSampler(rng, 1);
-        Assert.assertTrue("Missing 'Geometric' from toString", sampler.toString().contains("Geometric"));
+        final UniformRandomProvider unusedRng = new SplitMix64(0L);
+        final GeometricSampler sampler = new GeometricSampler(unusedRng, 1);
+        Assert.assertTrue("Missing 'Geometric' from toString",
+            sampler.toString().contains("Geometric"));
     }
 
     /**
      * Test the edge case where the probability of success is nearly 0. This is a valid geometric
-     * distribution but the sample is clipped to max integer value because the underlying exponential
-     * has a mean of positive infinity (effectively the sample is from a truncated distribution).
+     * distribution but the sample is clipped to max integer value because the underlying
+     * exponential has a mean of positive infinity (effectively the sample is from a truncated
+     * distribution).
      *
-     * <p>This test can be changed in future if a lower bound limit for the probability of success is
-     * introduced.
+     * <p>This test can be changed in future if a lower bound limit for the probability of success
+     * is introduced.
      */
     @Test
     public void testProbabilityOfSuccessIsAlmostZeroGeneratesMaxValueForSamples() {
@@ -64,8 +67,8 @@ public class GeometricSamplerTest {
         final GeometricSampler sampler = new GeometricSampler(rng, Double.MIN_VALUE);
         // All samples should be max value
         for (int i = 0; i < 10; i++) {
-            Assert.assertEquals("p=(almost 0) should have Integer.MAX_VALUE for all samples", Integer.MAX_VALUE,
-                sampler.sample());
+            Assert.assertEquals("p=(almost 0) should have Integer.MAX_VALUE for all samples",
+                Integer.MAX_VALUE, sampler.sample());
         }
     }
 
@@ -75,8 +78,8 @@ public class GeometricSamplerTest {
     @SuppressWarnings("unused")
     @Test(expected = IllegalArgumentException.class)
     public void testProbabilityOfSuccessAboveOneThrows() {
-        final UniformRandomProvider rng = RandomSource.create(RandomSource.SPLIT_MIX_64, Long.valueOf(0));
-        new GeometricSampler(rng, Math.nextUp(1.0));
+        final UniformRandomProvider unusedRng = new SplitMix64(0L);
+        new GeometricSampler(unusedRng, Math.nextUp(1.0));
     }
 
     /**
@@ -85,7 +88,7 @@ public class GeometricSamplerTest {
     @SuppressWarnings("unused")
     @Test(expected = IllegalArgumentException.class)
     public void testProbabilityOfSuccessIsZeroThrows() {
-        final UniformRandomProvider rng = RandomSource.create(RandomSource.SPLIT_MIX_64, Long.valueOf(0));
-        new GeometricSampler(rng, 0);
+        final UniformRandomProvider unusedRng = new SplitMix64(0L);
+        new GeometricSampler(unusedRng, 0);
     }
 }