Package org.h2.test.synth.sql

# Class RandomGen

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

public class RandomGen extends Object
A random data generator class.

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`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.
`String`
`modify(String sql)`
Randomly modify a SQL statement.
`boolean`
`nextBoolean()`
Get a random boolean.
`double`
`nextGaussian()`
Get the next gaussian value.
`Date`
`randomDate()`
Get a random date value.
`String`
`randomString(int len)`
Get a random string with the given length.
`Time`
`randomTime()`
Get a random time value.
`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 Details

### RandomGen

public RandomGen()
Create a new random instance with a fixed seed value.

## Method Details

### 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 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 Time randomTime()
Get a random time value. In 10% of the cases, null is returned.

Returns:
  the value

### randomTimestamp

public Timestamp randomTimestamp()
Get a random timestamp value. In 10% of the cases, null is returned.

Returns:
  the value

### randomDate

public Date randomDate()
Get a random date value. In 10% of the cases, null is returned.

Returns:
  the value

### modify

public String modify(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