]> git.vpit.fr Git - perl/modules/Scalar-Vec-Util.git/blob - t/33-vcopy-long.t
Switch to qw<>
[perl/modules/Scalar-Vec-Util.git] / t / 33-vcopy-long.t
1 #!perl -T
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 34 + 2;
7 use Config qw<%Config>;
8
9 use Scalar::Vec::Util qw<vcopy>;
10
11 my $n = 2 ** 16;
12
13 *myfill = *Scalar::Vec::Util::vfill_pp;
14 *myeq   = *Scalar::Vec::Util::veq_pp;
15
16 my ($v, $c) = ('') x 2;
17
18 my $l = 1;
19 vec($v, 0, 1) = 1;
20 vec($c, 0, 1) = 1;
21 while ($l <= $n) {
22  myfill($c, $l, $l, 1);
23  vcopy $v, 0, $v, $l, $l;
24  $l *= 2;
25  ok(myeq($v, 0, $c, 0, $l), "vcopy $l");
26  is(length $v, length $c, "length is ok");
27 }
28
29 my ($w, $k) = ('') x 2;
30 $n = ($Config{alignbytes} - 1) * 8;
31 my $p = 4 + $n / 2;
32 vec($w, $_, 1)      = 1 for 0 .. $n - 1;
33 vec($k, $_, 1)      = 0 for 0 .. $n - 1;
34 vec($k, $_ - $p, 1) = 1 for $p .. $n - 1;
35 vcopy $w, $p, $w, 0, $n;
36 ok(myeq($w, 0, $k, 0, $n), "vcopy with fill");
37 is(length $w, length $k, "length is ok");