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