aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/lib.pm
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/lib.pm')
-rw-r--r--src/tests/lib.pm19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/tests/lib.pm b/src/tests/lib.pm
new file mode 100644
index 0000000..bc37ae5
--- /dev/null
+++ b/src/tests/lib.pm
@@ -0,0 +1,19 @@
+use strict;
+use warnings;
+
+use tests::random;
+
+sub shuffle {
+ my ($in, $cnt, $sz) = @_;
+ $cnt * $sz == length $in or die;
+ my (@a) = 0...$cnt - 1;
+ for my $i (0...$cnt - 1) {
+ my ($j) = $i + random_ulong () % ($cnt - $i);
+ @a[$i, $j] = @a[$j, $i];
+ }
+ my ($out) = "";
+ $out .= substr ($in, $_ * $sz, $sz) foreach @a;
+ return $out;
+}
+
+1;