]> git.vpit.fr Git - perl/modules/Scalar-Vec-Util.git/blob - t/33-vcopy-long.t
Restyle tests
[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 BEGIN {
12  *myfill = *Scalar::Vec::Util::vfill_pp;
13  *myeq   = *Scalar::Vec::Util::veq_pp;
14 }
15
16 my $n = 2 ** 16;
17
18 my ($v, $c) = ('') x 2;
19
20 my $l = 1;
21 vec($v, 0, 1) = 1;
22 vec($c, 0, 1) = 1;
23 while ($l <= $n) {
24  my $desc = "vcopy $l";
25  myfill $c, $l, $l, 1;
26  vcopy  $v, 0,  $v, $l, $l;
27  $l *= 2;
28  is length $v, length $c,   "$desc: length";
29  ok myeq($v, 0, $c, 0, $l), "$desc: bits";
30 }
31
32 {
33  my $desc = 'vcopy with fill';
34  my ($w, $k) = ('') x 2;
35  $n = ($Config{alignbytes} - 1) * 8;
36  my $p = 4 + $n / 2;
37  vec($w, $_, 1)      = 1 for 0  .. $n - 1;
38  vec($k, $_, 1)      = 0 for 0  .. $n - 1;
39  vec($k, $_ - $p, 1) = 1 for $p .. $n - 1;
40  vcopy $w, $p, $w, 0, $n;
41  is length $w, length $k,   "$desc: length";
42  ok myeq($w, 0, $k, 0, $n), "$desc: bits";
43 }