Zero is not negative or positive
[gitmo/MooseX-Types-Common.git] / t / 02-numeric.t
CommitLineData
ac73ab52 1#! /usr/bin/perl -w
2
3use strict;
4use warnings;
0cedb310 5use Test::More tests => 18;
ac73ab52 6use Test::Exception;
7
8{
9 package FooTest;
10 use Moose;
5b561c82 11 use MooseX::Types::Common::Numeric (
ac73ab52 12 qw(PositiveNum PositiveInt NegativeInt NegativeNum SingleDigit)
13 );
14
15 has digit => ( is => 'rw', isa => SingleDigit);
16 has posnum => ( is => 'rw', isa => PositiveNum);
17 has posint => ( is => 'rw', isa => PositiveInt);
18 has negnum => ( is => 'rw', isa => NegativeNum);
19 has negint => ( is => 'rw', isa => NegativeInt);
20}
21
22my $ins = FooTest->new;
23
24dies_ok { $ins->digit(100); } 'SingleDigit';
25lives_ok { $ins->digit(1); } 'SingleDigit 2';
26
0cedb310 27dies_ok { $ins->posint(-100); } 'PositiveInt (-100)';
28dies_ok { $ins->posint(0); } 'PositiveInt (0)';
29dies_ok { $ins->posint(100.885); } 'PositiveInt (100.885)';
30lives_ok { $ins->posint(100); } 'PositiveInt (100)';
31dies_ok { $ins->posnum(0); } 'PositiveNum (0)';
32lives_ok { $ins->posnum(100.885); } 'PositiveNum (100.885)';
33dies_ok { $ins->posnum(-100.885); } 'PositiveNum (-100.885)';
34lives_ok { $ins->posnum(0.0000000001); } 'PositiveNum (0.0000000001)';
ac73ab52 35
0cedb310 36dies_ok { $ins->negint(100); } 'NegativeInt (100)';
37dies_ok { $ins->negint(-100.885); } 'NegativeInt (-100.885)';
38lives_ok { $ins->negint(-100); } 'NegativeInt (-100)';
39dies_ok { $ins->negint(0); } 'NegativeInt (0)';
40lives_ok { $ins->negnum(-100.885); } 'NegativeNum (-100.885)';
41dies_ok { $ins->negnum(100.885); } 'NegativeNum (100.885)';
42dies_ok { $ins->negnum(0); } 'NegativeNum (0)';
43lives_ok { $ins->negnum(-0.0000000001); } 'NegativeNum (-0.0000000001)';