#################################################
# is_array_ref
sub is_array_ref
{
	$arr = shift ;

	defined $arr || return 0;
	return $arr =~ m/ARRAY/;
}
#################################################

# returns a randomized array of the given size
sub random_reordered_progression
{

	my $size = shift ;
	(defined $size && $size > 0) || die "Assertion failed" ;
	my @array = ();
	for ($i = 0; $i < $size; $i++)
	{ 
		$array[$i] = $i;
	} 
	
	for ($i = 0; $i < $size; $i++)
	{
		my $n = rand() * ($size - $i) + $i; 
		$n = sprintf ("%d", $n) ;
		($n >= 0 && $n < $size ) || die "Assertion failed";
		my $old = $array[$i]; 
		$array[$i] = $array[$n]; 
		$array[$n] = $old; 
	} 
	
	\@array ;
}
1 ;

