Blame t/Math/BigInt/Lib/TestUtil.pm
|
Packit |
dcde0c |
#!perl
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
package Math::BigInt::Lib::TestUtil;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
use strict;
|
|
Packit |
dcde0c |
use warnings;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
use Exporter;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
our @ISA = qw< Exporter >;
|
|
Packit |
dcde0c |
our @EXPORT_OK = qw< randstr >;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
# randstr NUM, BASE
|
|
Packit |
dcde0c |
#
|
|
Packit |
dcde0c |
# Generate a string representing a NUM digit number in base BASE.
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
sub randstr {
|
|
Packit |
dcde0c |
die "randstr: wrong number of input arguments\n"
|
|
Packit |
dcde0c |
unless @_ == 2;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
my $n = shift;
|
|
Packit |
dcde0c |
my $b = shift;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
die "randstr: first input argument must be >= 0"
|
|
Packit |
dcde0c |
unless $n >= 0;
|
|
Packit |
dcde0c |
die "randstr: second input argument must be in the range 2 .. 36\n"
|
|
Packit |
dcde0c |
unless 2 <= $b && $b <= 36;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
return '' if $n == 0;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
my @dig = (0 .. 9, 'a' .. 'z');
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
my $str = $dig[ 1 + int rand ($b - 1) ];
|
|
Packit |
dcde0c |
$str .= $dig[ int rand $b ] for 2 .. $n;
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
return $str;
|
|
Packit |
dcde0c |
}
|
|
Packit |
dcde0c |
|
|
Packit |
dcde0c |
1;
|