Alex D Herbert created RNG-115:
----------------------------------

             Summary: JDKRandom to allow restore state when saved from a 
different instance
                 Key: RNG-115
                 URL: https://issues.apache.org/jira/browse/RNG-115
             Project: Commons RNG
          Issue Type: Bug
          Components: core
    Affects Versions: 1.2
            Reporter: Alex D Herbert
            Assignee: Alex D Herbert


Currently the size of the serialized state of the java.util.Random used by 
JDKRandom is saved to the instance when the state is saved. Thus the state 
cannot be used to restore a different instance of the same class. This breaks 
the contract of the RestorableUniformRandomProvider as the state should be 
applicable to a different instance of the same class.

Fix this test to work:

{code:java}
@Test
public void testRestoreToNewInstance()  {
    final long seed = 8796746234L;
    final JDKRandom rng1 = new JDKRandom(seed);
    final JDKRandom rng2 = new JDKRandom(seed + 1);

    final RandomProviderState state = rng1.saveState();
    rng2.restoreState(state);

    final int numRepeats = 1000;
    for (int r = 0; r < numRepeats; r++) {
        Assert.assertEquals(r + " nextInt", rng1.nextInt(), rng2.nextInt());
    }
}
{code}




--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to