1*256a93a4Safresh1# -*- mode: perl; -*- 25759b3d2Safresh1 35759b3d2Safresh1package Math::BigInt::Lib::TestUtil; 45759b3d2Safresh1 55759b3d2Safresh1use strict; 65759b3d2Safresh1use warnings; 75759b3d2Safresh1 85759b3d2Safresh1use Exporter; 95759b3d2Safresh1 105759b3d2Safresh1our @ISA = qw< Exporter >; 115759b3d2Safresh1our @EXPORT_OK = qw< randstr >; 125759b3d2Safresh1 135759b3d2Safresh1# randstr NUM, BASE 145759b3d2Safresh1# 155759b3d2Safresh1# Generate a string representing a NUM digit number in base BASE. 165759b3d2Safresh1 175759b3d2Safresh1sub randstr { 185759b3d2Safresh1 die "randstr: wrong number of input arguments\n" 195759b3d2Safresh1 unless @_ == 2; 205759b3d2Safresh1 215759b3d2Safresh1 my $n = shift; 225759b3d2Safresh1 my $b = shift; 235759b3d2Safresh1 245759b3d2Safresh1 die "randstr: first input argument must be >= 0" 255759b3d2Safresh1 unless $n >= 0; 265759b3d2Safresh1 die "randstr: second input argument must be in the range 2 .. 36\n" 275759b3d2Safresh1 unless 2 <= $b && $b <= 36; 285759b3d2Safresh1 295759b3d2Safresh1 return '' if $n == 0; 305759b3d2Safresh1 315759b3d2Safresh1 my @dig = (0 .. 9, 'a' .. 'z'); 325759b3d2Safresh1 335759b3d2Safresh1 my $str = $dig[ 1 + int rand ($b - 1) ]; 345759b3d2Safresh1 $str .= $dig[ int rand $b ] for 2 .. $n; 355759b3d2Safresh1 365759b3d2Safresh1 return $str; 375759b3d2Safresh1} 385759b3d2Safresh1 395759b3d2Safresh11; 40