public static int between(int min, int max) { return RandomNumbers.randomIntBetween(RandomizedContext.current().getRandom(), min, max); }
@Override public String ofCodePointsLength(Random r, int minCodePoints, int maxCodePoints) { int length = RandomNumbers.randomIntBetween(r, minCodePoints, maxCodePoints); int [] chars = new int [length]; for (int i = 0; i < chars.length; i++) { int v = RandomNumbers.randomIntBetween(r, 0, CODEPOINT_RANGE); if (v >= Character.MIN_SURROGATE) v += SURROGATE_RANGE; chars[i] = v; } return new String(chars, 0, chars.length); }
@Override public String ofCodePointsLength(Random r, int minCodePoints, int maxCodePoints) { int length = RandomNumbers.randomIntBetween(r, minCodePoints, maxCodePoints); int [] chars = new int [length]; for (int i = 0; i < chars.length; i++) { int v = RandomNumbers.randomIntBetween(r, 0, CODEPOINT_RANGE); if (v >= Character.MIN_SURROGATE) v += SURROGATE_RANGE; chars[i] = v; } return new String(chars, 0, chars.length); }
@Override public String ofCodePointsLength(Random r, int minCodePoints, int maxCodePoints) { int length = RandomNumbers.randomIntBetween(r, minCodePoints, maxCodePoints); int [] codepoints = new int [length]; while (length > 0) { codepoints[--length] = all[r.nextInt(all.length)]; } return new String(codepoints, 0, codepoints.length); }
@Override public String ofCodePointsLength(Random r, int minCodePoints, int maxCodePoints) { final int length = RandomNumbers.randomIntBetween(r, minCodePoints, maxCodePoints); final int block = r.nextInt(blockStarts.length); final StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) sb.appendCodePoint(RandomNumbers.randomIntBetween(r, blockStarts[block], blockEnds[block])); return sb.toString(); } }
@Override public String ofCodePointsLength(Random r, int minCodePoints, int maxCodePoints) { int length = RandomNumbers.randomIntBetween(r, minCodePoints, maxCodePoints); int [] codepoints = new int [length]; while (length > 0) { codepoints[--length] = all[r.nextInt(all.length)]; } return new String(codepoints, 0, codepoints.length); }
@Override public String ofCodePointsLength(Random r, int minCodePoints, int maxCodePoints) { final int length = RandomNumbers.randomIntBetween(r, minCodePoints, maxCodePoints); final int block = r.nextInt(blockStarts.length); final StringBuilder sb = new StringBuilder(); for (int i = 0; i < length; i++) sb.appendCodePoint(RandomNumbers.randomIntBetween(r, blockStarts[block], blockEnds[block])); return sb.toString(); } }
/** * A random integer from 0..max (inclusive). */ @Deprecated public static int randomInt(int max) { return RandomNumbers.randomIntBetween(getRandom(), 0, max); }
/** * A random integer from <code>min</code> to <code>max</code> (inclusive). * * @see #scaledRandomIntBetween(int, int) */ public static int randomIntBetween(int min, int max) { return RandomNumbers.randomIntBetween(random(), min, max); }
/** * Fuzzify the input value by decreasing it by a few ulps, but never past min. */ public static double fuzzDown(Random r, double v, double min) { assert v >= min; for (int steps = RandomNumbers.randomIntBetween(r, 1, 10); steps > 0 && v > min; steps--) { v = Math.nextAfter(v, Double.NEGATIVE_INFINITY); } return v; }
/** * Fuzzify the input value by increasing it by a few ulps, but never past max. */ public static double fuzzUp(Random r, double v, double max) { assert v <= max; for (int steps = RandomNumbers.randomIntBetween(r, 1, 10); steps > 0 && v < max; steps--) { v = Math.nextUp(v); } return v; }
/** * Fuzzify the input value by increasing it by a few ulps, but never past max. */ public static double fuzzUp(Random r, double v, double max) { assert v <= max; for (int steps = RandomNumbers.randomIntBetween(r, 1, 10); steps > 0 && v < max; steps--) { v = Math.nextUp(v); } return v; }
/** * A random integer from <code>min</code> to <code>max</code> (inclusive). * * @see #scaledRandomIntBetween(int, int) */ public static int randomIntBetween(int min, int max) { return RandomNumbers.randomIntBetween(getRandom(), min, max); }
/** * Fuzzify the input value by decreasing it by a few ulps, but never past min. */ public static float fuzzDown(Random r, float v, float min) { assert v >= min; for (int steps = RandomNumbers.randomIntBetween(r, 1, 10); steps > 0 && v > min; steps--) { v = Math.nextAfter(v, Double.NEGATIVE_INFINITY); } return v; }
/** * Fuzzify the input value by increasing it by a few ulps, but never past max. */ public static float fuzzUp(Random r, float v, float max) { assert v <= max; for (int steps = RandomNumbers.randomIntBetween(r, 1, 10); steps > 0 && v < max; steps--) { v = Math.nextUp(v); } return v; }
/** * Fuzzify the input value by decreasing it by a few ulps, but never past min. */ public static float fuzzDown(Random r, float v, float min) { assert v >= min; for (int steps = RandomNumbers.randomIntBetween(r, 1, 10); steps > 0 && v > min; steps--) { v = Math.nextAfter(v, Double.NEGATIVE_INFINITY); } return v; }
/** * A random integer from 0..max (inclusive). */ @Deprecated public static int randomInt(int max) { return RandomNumbers.randomIntBetween(getRandom(), 0, max); }
/** * Fuzzify the input value by increasing it by a few ulps, but never past max. */ public static float fuzzUp(Random r, float v, float max) { assert v <= max; for (int steps = RandomNumbers.randomIntBetween(r, 1, 10); steps > 0 && v < max; steps--) { v = Math.nextUp(v); } return v; }
/** * A random integer from <code>min</code> to <code>max</code> (inclusive). * * @see #scaledRandomIntBetween(int, int) */ public static int randomIntBetween(int min, int max) { return RandomNumbers.randomIntBetween(getRandom(), min, max); }
private static void addRandomFields(Random random, Map<String, Object> parentNode, int currentDepth) { if (currentDepth > 5) { return; } int numFields = RandomNumbers.randomIntBetween(random, 1, 10); for (int i = 0; i < numFields; i++) { String fieldName = randomLeafFieldName(random); Object fieldValue = randomFieldValue(random, currentDepth); parentNode.put(fieldName, fieldValue); } } }