1use strict;
2use warnings;
3use lib 't/lib';
4
5use Std;
6
7{
8  check_tests(
9    sub {
10      cmp_deeply([], arraylength(0), "0");
11      cmp_deeply([1..3], arraylength(3), "3");
12    },
13    [
14      {
15        name => "0",
16        actual_ok => 1,
17        diag => "",
18      },
19      {
20        name => "3",
21        actual_ok => 1,
22        diag => "",
23      }
24    ],
25    "len ok"
26  );
27  check_tests(
28    sub {
29      cmp_deeply({}, arraylength(2));
30    },
31    [
32      {
33        actual_ok => 0,
34        diag => <<EOM,
35Compared reftype(\$data)
36   got : 'HASH'
37expect : 'ARRAY'
38EOM
39      },
40    ],
41    "bad reftype"
42  );
43  check_tests(
44    sub {
45      cmp_deeply([1], arraylength(2));
46    },
47    [
48      {
49        actual_ok => 0,
50        diag => <<EOM,
51Compared array length of \$data
52   got : array with 1 element(s)
53expect : array with 2 element(s)
54EOM
55      },
56    ],
57    "bad length"
58  );
59  check_tests(
60    sub {
61      cmp_deeply("a", arraylength(0), "string");
62      cmp_deeply({}, arraylength(0), "hash");
63    },
64    [
65      {
66        name => "string",
67        actual_ok => 0,
68        diag => <<EOM,
69Compared reftype(\$data)
70   got : undef
71expect : 'ARRAY'
72EOM
73      },
74      {
75        name => "hash",
76        actual_ok => 0,
77        diag => <<EOM,
78Compared reftype(\$data)
79   got : 'HASH'
80expect : 'ARRAY'
81EOM
82      },
83    ],
84    "not array"
85  );
86
87  check_tests(
88    sub {
89      cmp_deeply([[1]], [arraylength(2)]);
90    },
91    [
92      {
93        actual_ok => 0,
94        diag => <<EOM,
95Compared array length of \$data->[0]
96   got : array with 1 element(s)
97expect : array with 2 element(s)
98EOM
99      },
100    ],
101    "deep bad length"
102  );
103}
104