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/09/30 10:40:01 UTC

[commons-rng] 01/02: RNG-76: Added primitive long constructor to SplitMix64

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 5ed9a195d19758e1291fadd8cca84828f12d1bc6
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Fri Mar 1 21:09:31 2019 +0000

    RNG-76: Added primitive long constructor to SplitMix64
---
 .../org/apache/commons/rng/core/source64/SplitMix64.java    | 13 ++++++++++++-
 .../apache/commons/rng/core/source64/SplitMix64Test.java    |  7 ++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/SplitMix64.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/SplitMix64.java
index 145c874..df243d2 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/SplitMix64.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/SplitMix64.java
@@ -37,7 +37,18 @@ public class SplitMix64 extends LongProvider {
      *
      * @param seed Initial seed.
      */
+    public SplitMix64(long seed) {
+        state = seed;
+    }
+
+    /**
+     * Creates a new instance.
+     *
+     * @param seed Initial seed.
+     */
     public SplitMix64(Long seed) {
+        // Support for Long to allow instantiation through the
+        // rng.simple.RandomSource factory methods.
         setSeedInternal(seed);
     }
 
@@ -47,7 +58,7 @@ public class SplitMix64 extends LongProvider {
      * @param seed Seed.
      */
     private void setSeedInternal(Long seed) {
-        state = seed;
+        state = seed.longValue();
     }
 
     /** {@inheritDoc} */
diff --git a/commons-rng-core/src/test/java/org/apache/commons/rng/core/source64/SplitMix64Test.java b/commons-rng-core/src/test/java/org/apache/commons/rng/core/source64/SplitMix64Test.java
index affa81f..5ec141c 100644
--- a/commons-rng-core/src/test/java/org/apache/commons/rng/core/source64/SplitMix64Test.java
+++ b/commons-rng-core/src/test/java/org/apache/commons/rng/core/source64/SplitMix64Test.java
@@ -35,6 +35,11 @@ public class SplitMix64Test {
             0x24b5d9d7a00a3140L, 0x79d983d781a34a3cL, 0x582e4a84d595f5ecL, 0x7316fe8b0f606d20L,
         };
 
-        RandomAssert.assertEquals(expectedSequence, new SplitMix64(0x1a2b3c4d5e6f7531L));
+        final long seed = 0x1a2b3c4d5e6f7531L;
+
+        RandomAssert.assertEquals(expectedSequence, new SplitMix64(seed));
+
+        // Test with Long
+        RandomAssert.assertEquals(expectedSequence, new SplitMix64(Long.valueOf(seed)));
     }
 }