X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FScalar-Vec-Util.git;a=blobdiff_plain;f=t%2F40-vshift.t;h=5fe1b69feded44e87c5d534b904bc2faba27cee9;hp=39e14d54e280c2f6ad046b41bd21ab14efb2a596;hb=c36fbc2566b9aeb0642e7a1b2fb8fc843faff3e9;hpb=01ef742d705c0bd6577139d1ee8a2808101336da diff --git a/t/40-vshift.t b/t/40-vshift.t index 39e14d5..5fe1b69 100644 --- a/t/40-vshift.t +++ b/t/40-vshift.t @@ -27,6 +27,22 @@ sub pat { } } +sub expect { + (undef, my $s, my $l, my $b, my $left, my $insert) = @_; + myfill($_[0], 0, $s, 0); + if ($b < $l) { + if ($left) { + myfill($_[0], $s, $b, defined $insert ? $insert : 1); + myfill($_[0], $s + $b, $l - $b, 1); + } else { + myfill($_[0], $s, $l - $b, 1); + myfill($_[0], $s + $l - $b, $b, defined $insert ? $insert : 1); + } + } else { + myfill($_[0], $s, $l, defined $insert ? $insert : 1); + } +} + my ($v, $v0, $c) = ('', '') x 2; sub try { @@ -35,22 +51,16 @@ sub try { for my $s (@s) { for my $l (0 .. $n - 1) { last if $s + $l > $n; + rst $v0; pat $v0, $s, $l, 0; my @b = (0); my $l2 = int($l/2); push @b, $l2 if $l2 != $l; - push @b, $l if $l; + push @b, $l + 1; for my $b (@b) { $v = $v0; - $c = ''; - myfill($c, 0, $s, 0); - if ($left) { - myfill($c, $s, $b, defined $insert ? $insert : 1); - myfill($c, $s + $b, $l - $b, 1); - } else { - myfill($c, $s, $l - $b, 1); - myfill($c, $s + $l - $b, $b, defined $insert ? $insert : 1); - } + rst $c; + expect $c, $s, $l, $b, $left, $insert; $b = -$b unless $left; vshift $v, $s, $l => $b, $insert; my $i = defined $insert ? $insert : 'undef';