summaryrefslogtreecommitdiffstats
path: root/tests/lib.pm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib.pm')
-rw-r--r--tests/lib.pm19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/lib.pm b/tests/lib.pm
new file mode 100644
index 0000000..bc37ae5
--- /dev/null
+++ b/tests/lib.pm
@@ -0,0 +1,19 @@
1use strict;
2use warnings;
3
4use tests::random;
5
6sub shuffle {
7 my ($in, $cnt, $sz) = @_;
8 $cnt * $sz == length $in or die;
9 my (@a) = 0...$cnt - 1;
10 for my $i (0...$cnt - 1) {
11 my ($j) = $i + random_ulong () % ($cnt - $i);
12 @a[$i, $j] = @a[$j, $i];
13 }
14 my ($out) = "";
15 $out .= substr ($in, $_ * $sz, $sz) foreach @a;
16 return $out;
17}
18
191;