org.h2.test.synth.sql
Class RandomGen

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

public class RandomGen
extends java.lang.Object

A random data generator class.


Constructor Summary
RandomGen()
          Create a new random instance with a fixed seed value.
 
Method Summary
 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