org.h2.test.synth.sql

## Class RandomGen

- java.lang.Object
- - org.h2.test.synth.sql.RandomGen

    public class RandomGen
    extends java.lang.Object

A random data generator class.

### Constructor Summary

Constructors
Constructor and Description
`RandomGen()` Create a new random instance with a fixed seed value.

### Method Summary

Methods
`boolean` `getBoolean(int percent)` Get a boolean that is true with the given probability in percent.
`byte[]` `getByteArray()` Get a random byte array.
`void` `getBytes(byte[] data)` Get a number of random bytes.
`int` `getInt(int max)` Get the next integer that is smaller than max.
`int[]` `getIntArray()` Get a random integer array.
`int` `getLog(int max)` Get the next random value that is at most max but probably much lower.
`double` `getRandomDouble()` Get a random double.
`int` `getRandomInt()` Get a random integer.
`long` `getRandomLong()` Get a random long.
`java.lang.String` `modify(java.lang.String sql)` Randomly modify a SQL statement.
`boolean` `nextBoolean()` Get a random boolean.
`double` `nextGaussian()` Get the next gaussian value.
`java.sql.Date` `randomDate()` Get a random date value.
`java.lang.String` `randomString(int len)` Get a random string with the given length.
`java.sql.Time` `randomTime()` Get a random time value.
`java.sql.Timestamp` `randomTimestamp()` Get a random timestamp value.
`void` `setSeed(int seed)` Set the seed value.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### RandomGen

    public RandomGen()

Create a new random instance with a fixed seed value.

### Method Detail

#### getInt

    public int getInt(int max)

Get the next integer that is smaller than max.

Parameters:
  `max` - the upper limit (exclusive)
Returns:
  the random value

#### nextGaussian

    public double nextGaussian()

Get the next gaussian value.

Returns:
  the value

#### getLog

    public int getLog(int max)

Get the next random value that is at most max but probably much lower.

Parameters:
  `max` - the maximum value
Returns:
  the value

#### getBytes

    public void getBytes(byte[] data)

Get a number of random bytes.

Parameters:
  `data` - the target buffer

#### getBoolean

    public boolean getBoolean(int percent)

Get a boolean that is true with the given probability in percent.

Parameters:
  `percent` - the probability
Returns:
  the boolean value

#### randomString

    public java.lang.String randomString(int len)

Get a random string with the given length.

Parameters:
  `len` - the length
Returns:
  the string

#### getRandomInt

    public int getRandomInt()

Get a random integer. In 10% of the cases, Integer.MAX_VALUE is returned, in 10% of the cases Integer.MIN_VALUE. Also in the 10% of the cases, a random value between those extremes is returned. In 20% of the cases, this method returns 0. In 10% of the cases, a gaussian value in the range -200 and +1800 is returned. In all other cases, a gaussian value in the range -5 and +20 is returned.

Returns:
  the random value

#### getRandomLong

    public long getRandomLong()

Get a random long. The algorithm is similar to a random int.

Returns:
  the random value

#### getRandomDouble

    public double getRandomDouble()

Get a random double. The algorithm is similar to a random int.

Returns:
  the random value

#### nextBoolean

    public boolean nextBoolean()

Get a random boolean.

Returns:
  the random value

#### getIntArray

    public int[] getIntArray()

Get a random integer array. In 10% of the cases, null is returned.

Returns:
  the array

#### getByteArray

    public byte[] getByteArray()

Get a random byte array. In 10% of the cases, null is returned.

Returns:
  the array

#### randomTime

    public java.sql.Time randomTime()

Get a random time value. In 10% of the cases, null is returned.

Returns:
  the value

#### randomTimestamp

    public java.sql.Timestamp randomTimestamp()

Get a random timestamp value. In 10% of the cases, null is returned.

Returns:
  the value

#### randomDate

    public java.sql.Date randomDate()

Get a random date value. In 10% of the cases, null is returned.

Returns:
  the value

#### modify

    public java.lang.String modify(java.lang.String sql)

Randomly modify a SQL statement.

Parameters:
  `sql` - the original SQL statement
Returns:
  the modified statement

#### setSeed

    public void setSeed(int seed)

Set the seed value.

Parameters:
  `seed` - the new seed value