You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2018/08/16 13:14:17 UTC

[3/3] commons-rng git commit: RNG-55: Forbid negative dimension.

RNG-55: Forbid negative dimension.


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

Branch: refs/heads/master
Commit: 74c2b58d321f1cd08e3a9b8f1911bada8008a319
Parents: 8539ccb
Author: Gilles <er...@apache.org>
Authored: Thu Aug 16 14:52:00 2018 +0200
Committer: Gilles <er...@apache.org>
Committed: Thu Aug 16 14:52:00 2018 +0200

----------------------------------------------------------------------
 .../java/org/apache/commons/rng/sampling/UnitSphereSampler.java | 4 ++++
 .../org/apache/commons/rng/sampling/UnitSphereSamplerTest.java  | 5 +++++
 src/changes/changes.xml                                         | 3 ++-
 3 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-rng/blob/74c2b58d/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java
----------------------------------------------------------------------
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java
index 46dd474..cbb3785 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java
@@ -40,6 +40,10 @@ public class UnitSphereSampler {
      */
     public UnitSphereSampler(int dimension,
                              UniformRandomProvider rng) {
+        if (dimension <= 0) {
+            throw new IllegalArgumentException("Dimension must be strictly positive");
+        }
+
         this.dimension = dimension;
         sampler = new ZigguratNormalizedGaussianSampler(rng);
     }

http://git-wip-us.apache.org/repos/asf/commons-rng/blob/74c2b58d/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/UnitSphereSamplerTest.java
----------------------------------------------------------------------
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/UnitSphereSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/UnitSphereSamplerTest.java
index 2b7ff47..fb4ac08 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/UnitSphereSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/UnitSphereSamplerTest.java
@@ -25,6 +25,11 @@ import org.apache.commons.rng.UniformRandomProvider;
  * Test for {@link UnitSphereSampler}.
  */
 public class UnitSphereSamplerTest {
+    @Test(expected = IllegalArgumentException.class)
+    public void testPrecondition() {
+        new UnitSphereSampler(0, null);
+    }
+
     /**
      * Test the distribution of points in two dimensions.
      */

http://git-wip-us.apache.org/repos/asf/commons-rng/blob/74c2b58d/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2bd1a44..bbb9893 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -68,7 +68,8 @@ It is however not part of the official API and no compatibility
 should be expected in subsequent releases.
 ">
       <action dev="erans" type="fix" issue="RNG-55" due-to="Alex D. Herbert">
-        "UnitSphereSampler": Prevent returning NaN components.
+        "UnitSphereSampler": Prevent returning NaN components and forbid
+        negative dimension.
       </action>
     </release>