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

View file

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

View file

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