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>