random value generation

Colin J. Williams cjw at sympatico.ca
Wed Aug 13 07:46:58 EDT 2003


Brandon Michael Moore wrote:
> I'm trying to test a web application using a tool written in python. I
> would like to be able to generate random values to put in fields. I would
> like to be able to generate random dates (in a specified range), random
> strings (specifying allowed characters and a distribution of lengths), or
> choose randomly between several generators (for better control of the
> distribution of values).
> 
> Is there any library for this sort of thing in Python? I've started a
> library heavily based off the generators of Haskell's QuickCheck library,
> that represents generators as objects with a generate() method, with
> constructor parameters (maybe other generators) the control the resulting
> distribution.
> 
> I've got Choose that takes a list of generators and chooses between them
> (with random.choice), GMap that maps a function over the output of another
> generator, Choice that chooses an element from a list, Expo that wraps
> random's expovariate, and List that takes a number generator and an
> element generator and generates lists with lengths drawn from the first
> generator and elements drawn from the second, and String that's like List
> but joins the resulting list with ''.
> 
> I can use these classes like Choice(['red','blue','green']), or
> String(Expo(1.0/3),Choice(string.lower)).
> 
> Are there any existing libraries for this sort of thing? Or at least, can
> anyone suggest a cleaner way of doing this? (I don't like creating classes
> for things that should really be functions, but I need to call the random
> number generator each time I use the generator, not once when I define it)
> 
> Brandon
> 
> 
> 
numarray, the package which is being developed to replace Numeric
has random_array.  It permits one to generate random arrays or
single values, with a number of statistical distributions.

Colin W.





More information about the Python-list mailing list