Class RandomGen


  • public class RandomGen
    extends java.lang.Object
    A random data generator class.
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      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.
      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