You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by br...@apache.org on 2007/04/05 17:19:59 UTC
svn commit: r525842 - in /jakarta/commons/proper/math/trunk: ./
src/java/org/apache/commons/math/random/RandomDataImpl.java
src/test/org/apache/commons/math/random/RandomDataTest.java xdocs/changes.xml
Author: brentworden
Date: Thu Apr 5 08:19:57 2007
New Revision: 525842
URL: http://svn.apache.org/viewvc?view=rev&rev=525842
Log:
MATH-153: Corrected nextInt and nextLong to handle wide value ranges.
Modified:
jakarta/commons/proper/math/trunk/ (props changed)
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/RandomDataImpl.java
jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/random/RandomDataTest.java
jakarta/commons/proper/math/trunk/xdocs/changes.xml
Propchange: jakarta/commons/proper/math/trunk/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Apr 5 08:19:57 2007
@@ -1,10 +1,11 @@
-build.properties
-target
-dist
-*.log
-*.project
-*.classpath
-*.checkstyle
-bin
-.clover
-junit*.properties
+build.properties
+target
+dist
+*.log
+*.project
+*.classpath
+*.checkstyle
+bin
+.clover
+junit*.properties
+.settings
Modified: jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/RandomDataImpl.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/RandomDataImpl.java?view=diff&rev=525842&r1=525841&r2=525842
==============================================================================
--- jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/RandomDataImpl.java (original)
+++ jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/random/RandomDataImpl.java Thu Apr 5 08:19:57 2007
@@ -167,7 +167,8 @@
("upper bound must be > lower bound");
}
RandomGenerator rand = getRan();
- return lower + (int) (rand.nextDouble() * (upper - lower + 1));
+ double r = rand.nextDouble();
+ return (int)((r * upper) + ((1.0 - r) * lower) + r);
}
/**
@@ -184,7 +185,8 @@
("upper bound must be > lower bound");
}
RandomGenerator rand = getRan();
- return lower + (long) (rand.nextDouble() * (upper - lower + 1));
+ double r = rand.nextDouble();
+ return (long)((r * upper) + ((1.0 - r) * lower) + r);
}
/**
Modified: jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/random/RandomDataTest.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/random/RandomDataTest.java?view=diff&rev=525842&r1=525841&r2=525842
==============================================================================
--- jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/random/RandomDataTest.java (original)
+++ jakarta/commons/proper/math/trunk/src/test/org/apache/commons/math/random/RandomDataTest.java Thu Apr 5 08:19:57 2007
@@ -58,6 +58,18 @@
return suite;
}
+ public void testNextIntExtremeValues() {
+ int x = randomData.nextInt(Integer.MIN_VALUE, Integer.MAX_VALUE);
+ int y = randomData.nextInt(Integer.MIN_VALUE, Integer.MAX_VALUE);
+ assertFalse(x == y);
+ }
+
+ public void testNextLongExtremeValues() {
+ long x = randomData.nextLong(Long.MIN_VALUE, Long.MAX_VALUE);
+ long y = randomData.nextLong(Long.MIN_VALUE, Long.MAX_VALUE);
+ assertFalse(x == y);
+ }
+
/** test dispersion and failure modes for nextInt() */
public void testNextInt() {
try {
Modified: jakarta/commons/proper/math/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/math/trunk/xdocs/changes.xml?view=diff&rev=525842&r1=525841&r2=525842
==============================================================================
--- jakarta/commons/proper/math/trunk/xdocs/changes.xml (original)
+++ jakarta/commons/proper/math/trunk/xdocs/changes.xml Thu Apr 5 08:19:57 2007
@@ -71,6 +71,9 @@
Modified getSumSquaredErrors method in SimpleRegression to always
return a non-negative result.
</action>
+ <action dev="brentworden" type="fix" issue="MATH-153" due-to="Remi Arntzen">
+ Corrected nextInt and nextLong to handle wide value ranges.
+ </action>
</release>
<release version="1.1" date="2005-12-17"
description="This is a maintenance release containing bug fixes and enhancements.
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org