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