1#!perl -Tw
2
3use warnings;
4use strict;
5
6use Test::More tests => 10;
7
8use Carp::Assert::More;
9
10use constant PASS => 1;
11use constant FAIL => 2;
12
13my @cases = (
14    [ undef,    FAIL ],
15    [ '',       FAIL ],
16    [ [],       FAIL ],
17    [ {},       FAIL ],
18    [ 5,        PASS ],
19    [ 0,        PASS ],
20    [ 0.4,      FAIL ],
21    [ -10,      FAIL ],
22    [ "dog",    FAIL ],
23    [ "14.",    FAIL ],
24);
25
26for my $case ( @cases ) {
27    my ($val,$status) = @$case;
28
29    my $desc = 'Checking ' . ($val // 'undef');
30    eval { assert_nonnegative_integer( $val ) };
31
32    if ( $status eq FAIL ) {
33        like( $@, qr/Assertion.+failed/, $desc );
34    }
35    else {
36        is( $@, '', $desc );
37    }
38}
39
40exit 0;
41