#!perl

use Test::More tests => 49;
use autobox::Core;

#is( 12.34->ceil,       13);
#is( 12.34->round_up,   13);
#is( 12.34->floor,      12);
#is( 12.34->round_down, 12);
is( 12.34->int, 12);

#is( 2.5->round, 3 );
#is( 2->round, 2 );
#is( 0->round, 0 );
#is( 2.51->round, 3 );
#is( -3.51->round, -4 );

ok( 12->is_number );
ok(!'FF'->is_number );

ok( 12->is_positive );
ok( "+12"->is_positive );
ok( 12.34->is_positive );
ok( !"foo"->is_positive );
ok( !"-12.2"->is_positive );

ok( !12->is_negative );
ok( "-12"->is_negative );
ok( (-12.34)->is_negative );
ok( !"foo"->is_negative );
ok( "-12.2"->is_negative );

ok !0->is_negative,     "zero is not negative";
ok !0->is_positive,     "zero is not positive";

ok( 12->is_integer );
ok( -12->is_integer );
ok( "+12"->is_integer );
ok(!12.34->is_integer );

ok( 12->is_int );
ok(!12.34->is_int );

ok( 12.34->is_decimal );
ok( ".34"->is_decimal );
ok( !12->is_decimal );
ok(!'abc'->is_decimal );

is( '123'->reverse, '321' );

TODO: {
   local $TODO = q{ hex is weird };

   is( 255->hex, 'FF');
   is( 'FF'->dec, 255);
   is( 0xFF->dec, 255);

};

TODO: {
    todo_skip "Make number methods work on non-scalar refs", 20;

    for my $ref ([ 'foo' ], { bar => 1 }, \'baz', sub { 'gorch' }) {
        for my $method (qw(is_decimal is_integer is_int is_negative is_positive)) {
            ok(!$ref->$method);
        }
    }
}
