[
https://issues.apache.org/jira/browse/MATH-724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13168225#comment-13168225
]
Dennis Hendriks commented on MATH-724:
--------------------------------------
I just ran the unit tests with my patch applied, an the following test, in
RandomDataTest:
{code:java}
@Test
public void testNextIntExtremeValues() {
int x = randomData.nextInt(Integer.MIN_VALUE, Integer.MAX_VALUE);
int y = randomData.nextInt(Integer.MIN_VALUE, Integer.MAX_VALUE);
Assert.assertFalse(x == y);
}
{code}
fails, as does testNextLongExtremeValues. Both x and y become equal to
Integer.MIN_VALUE, making x == y to become true, causing the assertion to
fail...
> RandomDataImpl.nextInt does not distribute uniformly for negative lower bound
> -----------------------------------------------------------------------------
>
> Key: MATH-724
> URL: https://issues.apache.org/jira/browse/MATH-724
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: Nightly Builds
> Reporter: Dennis Hendriks
> Attachments: NextIntUniformTest.java, math-724.patch
>
>
> When using the RandomDataImpl.nextInt function to get a uniform sample in a
> [lower, upper] interval, when the lower value is less than zero, the output
> is not uniformly distributed, as the lowest value is practically never
> returned.
> See the attached NextIntUniformTest.java file. It uses a [-3, 5] interval.
> For several values between 0 and 1, testNextIntUniform1 prints the return
> value of RandomDataImpl.nextInt (as double and as int). We see that -2
> through 5 are returned several times. The -3 value however, is only returned
> for 0.0, and is thus under-respresented in the integer samples. The output of
> test method testNextIntUniform2 also clearly shows that value -3 is never
> sampled.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira