]> git.vpit.fr Git - perl/modules/Scalar-Vec-Util.git/blobdiff - t/50-vrot.t
Improve argument checking
[perl/modules/Scalar-Vec-Util.git] / t / 50-vrot.t
index 9222ae3b6785c63eefa4f7144f410ac8d87850fa..6ce0c410000457eaacb895bfa7c6e7e5bfe815cd 100644 (file)
@@ -7,6 +7,13 @@ use Test::More 'no_plan';
 
 use Scalar::Vec::Util qw/vrot vcopy SVU_SIZE/;
 
+for ([ 1, 'offset', -1 ], [ 2, 'length', '-1' ]) {
+ my @args  = ('1') x 4;
+ $args[$_->[0]] = $_->[2];
+ eval { &vrot(@args) }; my $line = __LINE__;
+ like $@, qr/^Invalid\s+negative\s+$_->[1]\s+at\s+\Q$0\E\s+line\s+$line/;
+}
+
 my $p = SVU_SIZE;
 $p = 8 if $p < 8;
 my $n = 3 * $p;
@@ -28,6 +35,11 @@ sub pat {
 
 sub expected {
  (undef, my $s, my $l, my $b, my $left) = @_;
+ unless ($l) {
+  myfill($_[0], 0,  $s,      0);
+  myfill($_[0], $s, $n - $s, 1);
+  return;
+ }
  my $lx = int($l / 2);
  my $ly = $l - $lx;
  $b %= $l;
@@ -71,7 +83,7 @@ sub try {
  my ($left) = @_;
  my @s = ($p - $q) .. ($p + $q);
  for my $s (@s) {
-  for my $l (1 .. $n - 1) {
+  for my $l (0 .. $n - 1) {
    last if $s + $l > $n;
    my $l2 = int($l/2);
    rst $v0;