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 2022/08/20 00:48:32 UTC

[commons-math] 01/03: MATH-1647: Enforce precondition (index must be larger than 0).

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

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

commit 01ba89bf26da87e998cbc68262afc637ea4dd615
Author: rednikeeg <ma...@gmail.com>
AuthorDate: Fri Aug 19 21:27:11 2022 +0300

    MATH-1647: Enforce precondition (index must be larger than 0).
---
 .../commons/math4/legacy/random/HaltonSequenceGenerator.java   |  5 +++++
 .../math4/legacy/random/HaltonSequenceGeneratorTest.java       | 10 ++++++++++
 2 files changed, 15 insertions(+)

diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/random/HaltonSequenceGenerator.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/random/HaltonSequenceGenerator.java
index 8a175618b..3805be497 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/random/HaltonSequenceGenerator.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/random/HaltonSequenceGenerator.java
@@ -19,6 +19,7 @@ package org.apache.commons.math4.legacy.random;
 import java.util.function.Supplier;
 
 import org.apache.commons.math4.legacy.exception.DimensionMismatchException;
+import org.apache.commons.math4.legacy.exception.NotPositiveException;
 import org.apache.commons.math4.legacy.exception.NullArgumentException;
 import org.apache.commons.math4.legacy.exception.OutOfRangeException;
 
@@ -165,6 +166,10 @@ public class HaltonSequenceGenerator implements Supplier<double[]> {
      * @throws org.apache.commons.math4.legacy.exception.NotPositiveException NotPositiveException if index &lt; 0
      */
     public double[] skipTo(final int index) {
+        if (index < 0) {
+            throw new NotPositiveException(index);
+        }
+
         count = index;
         return get();
     }
diff --git a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/random/HaltonSequenceGeneratorTest.java b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/random/HaltonSequenceGeneratorTest.java
index 4dd800b41..c1931f517 100644
--- a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/random/HaltonSequenceGeneratorTest.java
+++ b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/random/HaltonSequenceGeneratorTest.java
@@ -18,6 +18,7 @@ package org.apache.commons.math4.legacy.random;
 
 import org.junit.Assert;
 import org.apache.commons.math4.legacy.exception.DimensionMismatchException;
+import org.apache.commons.math4.legacy.exception.NotPositiveException;
 import org.apache.commons.math4.legacy.exception.NullArgumentException;
 import org.apache.commons.math4.legacy.exception.OutOfRangeException;
 import org.junit.Before;
@@ -131,4 +132,13 @@ public class HaltonSequenceGeneratorTest {
         }
     }
 
+    @Test
+    public void testSkipToNegative() {
+        try {
+            generator.skipTo(-4584);
+            Assert.fail("an exception should have been thrown");
+        } catch (NotPositiveException e) {
+            // expected
+        }
+    }
 }