1*5759b3d2Safresh1#!./perl 2*5759b3d2Safresh1 3*5759b3d2Safresh1use strict; 4*5759b3d2Safresh1use warnings; 5*5759b3d2Safresh1 6*5759b3d2Safresh1use List::Util qw(head tail); 7*5759b3d2Safresh1use Test::More; 8*5759b3d2Safresh1plan tests => 42; 9*5759b3d2Safresh1 10*5759b3d2Safresh1my @ary; 11*5759b3d2Safresh1 12*5759b3d2Safresh1ok(defined &head, 'defined'); 13*5759b3d2Safresh1ok(defined &tail, 'defined'); 14*5759b3d2Safresh1 15*5759b3d2Safresh1@ary = head 1, ( 4, 5, 6 ); 16*5759b3d2Safresh1is( scalar @ary, 1 ); 17*5759b3d2Safresh1is( $ary[0], 4 ); 18*5759b3d2Safresh1 19*5759b3d2Safresh1@ary = head 2, ( 4, 5, 6 ); 20*5759b3d2Safresh1is( scalar @ary, 2 ); 21*5759b3d2Safresh1is( $ary[0], 4 ); 22*5759b3d2Safresh1is( $ary[1], 5 ); 23*5759b3d2Safresh1 24*5759b3d2Safresh1@ary = head -1, ( 4, 5, 6 ); 25*5759b3d2Safresh1is( scalar @ary, 2 ); 26*5759b3d2Safresh1is( $ary[0], 4 ); 27*5759b3d2Safresh1is( $ary[1], 5 ); 28*5759b3d2Safresh1 29*5759b3d2Safresh1@ary = head -2, ( 4, 5, 6 ); 30*5759b3d2Safresh1is( scalar @ary, 1 ); 31*5759b3d2Safresh1is( $ary[0], 4 ); 32*5759b3d2Safresh1 33*5759b3d2Safresh1@ary = head 999, ( 4, 5, 6 ); 34*5759b3d2Safresh1is( scalar @ary, 3 ); 35*5759b3d2Safresh1is( $ary[0], 4 ); 36*5759b3d2Safresh1is( $ary[1], 5 ); 37*5759b3d2Safresh1is( $ary[2], 6 ); 38*5759b3d2Safresh1 39*5759b3d2Safresh1@ary = head 0, ( 4, 5, 6 ); 40*5759b3d2Safresh1is( scalar @ary, 0 ); 41*5759b3d2Safresh1 42*5759b3d2Safresh1@ary = head 0; 43*5759b3d2Safresh1is( scalar @ary, 0 ); 44*5759b3d2Safresh1 45*5759b3d2Safresh1@ary = head 5; 46*5759b3d2Safresh1is( scalar @ary, 0 ); 47*5759b3d2Safresh1 48*5759b3d2Safresh1@ary = head -3, ( 4, 5, 6 ); 49*5759b3d2Safresh1is( scalar @ary, 0 ); 50*5759b3d2Safresh1 51*5759b3d2Safresh1@ary = head -999, ( 4, 5, 6 ); 52*5759b3d2Safresh1is( scalar @ary, 0 ); 53*5759b3d2Safresh1 54*5759b3d2Safresh1eval '@ary = head'; 55*5759b3d2Safresh1like( $@, qr{^Not enough arguments for List::Util::head} ); 56*5759b3d2Safresh1 57*5759b3d2Safresh1@ary = head 4, ( 4, 5, 6 ); 58*5759b3d2Safresh1is( scalar @ary, 3 ); 59*5759b3d2Safresh1is( $ary[0], 4 ); 60*5759b3d2Safresh1is( $ary[1], 5 ); 61*5759b3d2Safresh1is( $ary[2], 6 ); 62*5759b3d2Safresh1 63*5759b3d2Safresh1@ary = tail 1, ( 4, 5, 6 ); 64*5759b3d2Safresh1is( scalar @ary, 1 ); 65*5759b3d2Safresh1is( $ary[0], 6 ); 66*5759b3d2Safresh1 67*5759b3d2Safresh1@ary = tail 2, ( 4, 5, 6 ); 68*5759b3d2Safresh1is( scalar @ary, 2 ); 69*5759b3d2Safresh1is( $ary[0], 5 ); 70*5759b3d2Safresh1is( $ary[1], 6 ); 71*5759b3d2Safresh1 72*5759b3d2Safresh1@ary = tail -1, ( 4, 5, 6 ); 73*5759b3d2Safresh1is( scalar @ary, 2 ); 74*5759b3d2Safresh1is( $ary[0], 5 ); 75*5759b3d2Safresh1is( $ary[1], 6 ); 76*5759b3d2Safresh1 77*5759b3d2Safresh1@ary = tail -2, ( 4, 5, 6 ); 78*5759b3d2Safresh1is( scalar @ary, 1 ); 79*5759b3d2Safresh1is( $ary[0], 6 ); 80*5759b3d2Safresh1 81*5759b3d2Safresh1@ary = tail 0, ( 4, 5, 6 ); 82*5759b3d2Safresh1is( scalar @ary, 0 ); 83*5759b3d2Safresh1 84*5759b3d2Safresh1@ary = tail 0; 85*5759b3d2Safresh1is( scalar @ary, 0 ); 86*5759b3d2Safresh1 87*5759b3d2Safresh1@ary = tail 5; 88*5759b3d2Safresh1is( scalar @ary, 0 ); 89*5759b3d2Safresh1 90*5759b3d2Safresh1@ary = tail -3; 91*5759b3d2Safresh1is( scalar @ary, 0 ); 92*5759b3d2Safresh1 93*5759b3d2Safresh1@ary = tail -999; 94*5759b3d2Safresh1is( scalar @ary, 0 ); 95*5759b3d2Safresh1 96*5759b3d2Safresh1eval '@ary = tail'; 97*5759b3d2Safresh1like( $@, qr{^Not enough arguments for List::Util::tail} ); 98