8281183: RandomGenerator:NextDouble() default behavior partially fixed by JDK-8280950

Reviewed-by: jlaskey
This commit is contained in:
Joe Darcy 2022-02-06 02:19:32 +00:00
parent 42e272e181
commit 77b0240d44
2 changed files with 7 additions and 4 deletions
src/java.base/share/classes/jdk/internal/util/random
test/jdk/java/util/Random

@ -677,7 +677,7 @@ public class RandomSupport {
double r = rng.nextDouble();
r = r * bound;
if (r >= bound) // may need to correct a rounding problem
r = Math.nextDown(r);
r = Math.nextDown(bound);
return r;
}

@ -24,7 +24,7 @@
/*
* @test
* @summary Verify nextDouble stays within range
* @bug 8280550 8280950
* @bug 8280550 8280950 8281183
*/
import java.util.SplittableRandom;
@ -79,8 +79,11 @@ public class RandomNextDoubleBoundary {
};
double value = rg.nextDouble(origin, bound);
assertTrue(value >= origin);
assertTrue(value < bound);
if (bound > 0) {
value = rg.nextDouble(bound); // Equivalent to nextDouble(0.0, bound)
assertTrue(value >= 0.0);
assertTrue(value < bound);
}
}
public static void assertTrue(boolean condition) {