public static String getRandString(Random r) { return getRandString(r, null, r.nextInt(10)); }
public static Timestamp getRandTimestamp(Random r) { return getRandTimestamp(r, MIN_YEAR, MAX_YEAR); }
public static long randomMillis(Random rand) { return randomMillis(MIN_FOUR_DIGIT_YEAR_MILLIS, MAX_FOUR_DIGIT_YEAR_MILLIS, rand); }
public static int randomNanos(Random rand) { return randomNanos(rand, 9); } }
public static int randomNanos(Random rand) { return randomNanos(rand, 9); } }
public static HiveDecimal getRandHiveDecimal(Random r) { int precision; int scale; while (true) { StringBuilder sb = new StringBuilder(); precision = 1 + r.nextInt(18); scale = 0 + r.nextInt(precision + 1); int integerDigits = precision - scale; if (r.nextBoolean()) { sb.append("-"); } if (integerDigits == 0) { sb.append("0"); } else { sb.append(getRandString(r, DECIMAL_CHARS, integerDigits)); } if (scale != 0) { sb.append("."); sb.append(getRandString(r, DECIMAL_CHARS, scale)); } return HiveDecimal.create(sb.toString()); } }
public static Timestamp getRandTimestamp(Random r) { return getRandTimestamp(r, MIN_YEAR, MAX_YEAR); }
public static long randomMillis(Random rand) { return randomMillis(MIN_FOUR_DIGIT_YEAR_MILLIS, MAX_FOUR_DIGIT_YEAR_MILLIS, rand); }
public BigInteger randHiveBigInteger(Random r, String digitAlphabet) { String digits = RandomTypeUtil.getRandString(r, digitAlphabet, 1 + r.nextInt(38)); BigInteger bigInteger = new BigInteger(digits); boolean negated = false; if (r.nextBoolean()) { bigInteger = bigInteger.negate(); negated = true; } return bigInteger; }
public BigDecimal randHiveBigDecimalNormalRange(Random r, String digitAlphabet) { String digits = RandomTypeUtil.getRandString(r, digitAlphabet, 1 + r.nextInt(38)); BigInteger bigInteger = new BigInteger(digits); boolean negated = false; if (r.nextBoolean()) { bigInteger = bigInteger.negate(); negated = true; } int scale = 0 + r.nextInt(38 + 1); return new BigDecimal(bigInteger, scale); }
public BigDecimal randHiveBigDecimalFractionsOnly(Random r, String digitAlphabet) { int scale = 1 + r.nextInt(38 + 1); String digits = RandomTypeUtil.getRandString(r, digitAlphabet, 1 + r.nextInt(scale)); BigInteger bigInteger = new BigInteger(digits); boolean negated = false; if (r.nextBoolean()) { bigInteger = bigInteger.negate(); negated = true; } return new BigDecimal(bigInteger, scale); }
public BigDecimal randHiveBigDecimalLongTail(Random r, String digitAlphabet) { int scale = 0 + r.nextInt(38 + 20); final int maxDigits = 38 + (scale == 0 ? 0 : 20); String digits = RandomTypeUtil.getRandString(r, digitAlphabet, 1 + r.nextInt(maxDigits)); BigInteger bigInteger = new BigInteger(digits); boolean negated = false; if (r.nextBoolean()) { bigInteger = bigInteger.negate(); negated = true; } return new BigDecimal(bigInteger, scale); }
public BigDecimal randHiveBigDecimalNegativeScale(Random r, String digitAlphabet) { String digits = RandomTypeUtil.getRandString(r, digitAlphabet, 1 + r.nextInt(38)); BigInteger bigInteger = new BigInteger(digits); boolean negated = false; if (r.nextBoolean()) { bigInteger = bigInteger.negate(); negated = true; } int scale = 0 + (r.nextBoolean() ? 0 : r.nextInt(38 + 1)); if (r.nextBoolean()) { scale = -scale; } return new BigDecimal(bigInteger, scale); }
public static String getRandString(Random r) { return getRandString(r, null, r.nextInt(10)); }
public static HiveDecimal getRandHiveDecimal(Random r) { int precision; int scale; while (true) { StringBuilder sb = new StringBuilder(); precision = 1 + r.nextInt(18); scale = 0 + r.nextInt(precision + 1); int integerDigits = precision - scale; if (r.nextBoolean()) { sb.append("-"); } if (integerDigits == 0) { sb.append("0"); } else { sb.append(getRandString(r, DECIMAL_CHARS, integerDigits)); } if (scale != 0) { sb.append("."); sb.append(getRandString(r, DECIMAL_CHARS, scale)); } return HiveDecimal.create(sb.toString()); } }