X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/mLib/blobdiff_plain/236f657b6dab66f31f4902cecfc03b4673f5bb98..7cf5c72a6d353ed5a7e340562c11e54c21c85e5e:/struct/da-gtest diff --git a/struct/da-gtest b/struct/da-gtest deleted file mode 100755 index 0348833..0000000 --- a/struct/da-gtest +++ /dev/null @@ -1,74 +0,0 @@ -#! /usr/bin/perl -# -# Generate a random test file for dynamic array testing. -# -# Syntax reference: -# -# push n, pop, shift, unshift n -- normal stack ops (pop and shift print) -# insert x y z ... -- insert items at beginning -# append x y z ... -- append items at end -# delete n -- remove n items from beginning -# reduce n -- remove n items from end -# set i n -- assign item at index i to be n -# get i -- display item at index i -# first, last -- show first or last item -# show -- write entire array to stdout, space separated on one line - -sub random ($) { - my $lim = shift; - return int(rand($lim)); -} - -$lines = shift || 100; -$max = 0; # Estimate of size of array -$serial = 1; -while ($lines) { - $what = random(21); - if ($what < 8) { - my $op = (qw(push pop shift unshift))[$what % 4]; - if ($op eq "push" || $op eq "unshift") { - my $n = $serial++; - $max++; - print "$op $n\n"; - } elsif ($max > 0) { - $max--; - print "$op\n"; - } - } elsif ($what < 10) { - my @n = ($serial++); - my $op = (qw(insert append))[$what % 2]; - push(@n, $serial++) while random(4) < 3; - print "$op ", join(" ", @n), "\n"; - $max += @n; - } elsif ($what < 12) { - if ($max < 10000) { next; } - my $n = 1; - my $op = (qw(delete reduce))[$what % 2]; - $n++ while random(4) < 3; - print "$op $n\n"; - $max -= $n; - if ($max < 0) { - $max = 0; - } - } elsif ($what < 16) { - my $i = random($max); - $i++ while random(4) < 2; - if ($what % 2 == 0) { - my $n = $serial++; - print "set $i $n\n"; - if ($i >= $max) { - $max = $i + 1; - } - } else { - print "get $i\n"; - } - } elsif ($what < 20) { - my $op = (qw(first last))[$what % 2]; - print "$op\n" if $max; - } elsif (random(10) == 0) { - print "show\n"; - } else { next; } - $lines--; -} - -print "show\n";