NAME
   Data::Random::Structure - Generate random data structures

VERSION
   version 0.01

SYNOPSIS
     use Test::More;
     use Data::Random::Structure;
     use JSON::PP;

     my $g = Data::Random::Structure->new(
           max_depth => 2,
           max_elements => 5,
     );

     my $ref = $g->generate();

     diag explain $ref;

     my $json = JSON::PP->new;

     print $json->pretty->encode($ref);

     ok(1);

     done_testing();

OVERVIEW
   This is a library to create random Perl data structures, mostly as a
   means to create input for benchmarking and testing various serialization
   libraries.

   It uses grotty 'classic' Perl 5 OO mostly because I think having Moo as
   a dependency for a testing module is pretty gross. On the other hand,
   original flavor Perl OO is pretty gross.

ATTRIBUTES
 max_depth
   The maximum depth to embed data structures

 max_elements
   The maximum number of elements (array items or hash key/value pairs) per
   data structure.

METHODS
 new
   Constructor. May optionally pass:

   *   max_depth

   *   max_elements

   If not set, these default to 3 and 6 respectively. Throws an exception
   if the argument list is not a multiple of 2.

 generate
   Recursively generate a data structure using hashes and arrays. The data
   structure will not contain more than "max_depth" nested data structures.

 generate_scalar
   Randomly generates one of the following scalar values:

   *   float

   *   integer (between 0 and 999_999)

   *   string (see Data::Random "rand_chars")

   *   bool (value based 50/50 coin toss)

 generate_array
   Generate an arrayref and populate it with no more than "max_element"
   items. May be empty.

 generate_hash
   Generate a hashref and populate it with no more than "max_element"
   key/value pairs. May be empty.

AUTHOR
   Mark Allen <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2014 by Mark Allen.

   This is free software; you can redistribute it and/or modify it under
   the same terms as the Perl 5 programming language system itself.