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.