X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F02-numeric.t;h=5aaf73075044df3d6791129003737b0dac98e8a0;hb=3d272255c992add8dec8be7efb1cda4c650d5b6e;hp=aed9aa7f3162d18e6ae58a2c9d54f52496dd5b89;hpb=0cedb3109f3beaec890d3a9dc2d32ab9e03f137f;p=gitmo%2FMooseX-Types-Common.git diff --git a/t/02-numeric.t b/t/02-numeric.t index aed9aa7..5aaf730 100644 --- a/t/02-numeric.t +++ b/t/02-numeric.t @@ -2,14 +2,18 @@ use strict; use warnings; -use Test::More tests => 18; -use Test::Exception; +use Test::More tests => 34; +use Test::Fatal; { package FooTest; use Moose; use MooseX::Types::Common::Numeric ( - qw(PositiveNum PositiveInt NegativeInt NegativeNum SingleDigit) + qw(PositiveNum PositiveOrZeroNum + PositiveInt PositiveOrZeroInt + NegativeNum NegativeOrZeroNum + NegativeInt NegativeOrZeroInt + SingleDigit) ); has digit => ( is => 'rw', isa => SingleDigit); @@ -17,27 +21,49 @@ use Test::Exception; has posint => ( is => 'rw', isa => PositiveInt); has negnum => ( is => 'rw', isa => NegativeNum); has negint => ( is => 'rw', isa => NegativeInt); + has posorzeronum => ( is => 'rw', isa => PositiveOrZeroNum); + has posorzeroint => ( is => 'rw', isa => PositiveOrZeroInt); + has negorzeronum => ( is => 'rw', isa => NegativeOrZeroNum); + has negorzeroint => ( is => 'rw', isa => NegativeOrZeroInt); } my $ins = FooTest->new; -dies_ok { $ins->digit(100); } 'SingleDigit'; -lives_ok { $ins->digit(1); } 'SingleDigit 2'; - -dies_ok { $ins->posint(-100); } 'PositiveInt (-100)'; -dies_ok { $ins->posint(0); } 'PositiveInt (0)'; -dies_ok { $ins->posint(100.885); } 'PositiveInt (100.885)'; -lives_ok { $ins->posint(100); } 'PositiveInt (100)'; -dies_ok { $ins->posnum(0); } 'PositiveNum (0)'; -lives_ok { $ins->posnum(100.885); } 'PositiveNum (100.885)'; -dies_ok { $ins->posnum(-100.885); } 'PositiveNum (-100.885)'; -lives_ok { $ins->posnum(0.0000000001); } 'PositiveNum (0.0000000001)'; - -dies_ok { $ins->negint(100); } 'NegativeInt (100)'; -dies_ok { $ins->negint(-100.885); } 'NegativeInt (-100.885)'; -lives_ok { $ins->negint(-100); } 'NegativeInt (-100)'; -dies_ok { $ins->negint(0); } 'NegativeInt (0)'; -lives_ok { $ins->negnum(-100.885); } 'NegativeNum (-100.885)'; -dies_ok { $ins->negnum(100.885); } 'NegativeNum (100.885)'; -dies_ok { $ins->negnum(0); } 'NegativeNum (0)'; -lives_ok { $ins->negnum(-0.0000000001); } 'NegativeNum (-0.0000000001)'; +isnt(exception { $ins->digit(100); }, undef, 'SingleDigit'); +is(exception { $ins->digit(1); }, undef, 'SingleDigit 2'); + +isnt(exception { $ins->posint(-100); }, undef, 'PositiveInt (-100)'); +isnt(exception { $ins->posint(0); }, undef, 'PositiveInt (0)'); +isnt(exception { $ins->posint(100.885); }, undef, 'PositiveInt (100.885)'); +is(exception { $ins->posint(100); }, undef, 'PositiveInt (100)'); +isnt(exception { $ins->posnum(0); }, undef, 'PositiveNum (0)'); +is(exception { $ins->posnum(100.885); }, undef, 'PositiveNum (100.885)'); +isnt(exception { $ins->posnum(-100.885); }, undef, 'PositiveNum (-100.885)'); +is(exception { $ins->posnum(0.0000000001); }, undef, 'PositiveNum (0.0000000001)'); + +isnt(exception { $ins->posorzeroint(-100); }, undef, 'PositiveOrZeroInt (-100)'); +is(exception { $ins->posorzeroint(0); }, undef, 'PositiveOrZeroInt (0)'); +isnt(exception { $ins->posorzeroint(100.885); }, undef, 'PositiveOrZeroInt (100.885)'); +is(exception { $ins->posorzeroint(100); }, undef, 'PositiveOrZeroInt (100)'); +is(exception { $ins->posorzeronum(0); }, undef, 'PositiveOrZeroNum (0)'); +is(exception { $ins->posorzeronum(100.885); }, undef, 'PositiveOrZeroNum (100.885)'); +isnt(exception { $ins->posorzeronum(-100.885); }, undef, 'PositiveOrZeroNum (-100.885)'); +is(exception { $ins->posorzeronum(0.0000000001); }, undef, 'PositiveOrZeroNum (0.0000000001)'); + +isnt(exception { $ins->negint(100); }, undef, 'NegativeInt (100)'); +isnt(exception { $ins->negint(-100.885); }, undef, 'NegativeInt (-100.885)'); +is(exception { $ins->negint(-100); }, undef, 'NegativeInt (-100)'); +isnt(exception { $ins->negint(0); }, undef, 'NegativeInt (0)'); +is(exception { $ins->negnum(-100.885); }, undef, 'NegativeNum (-100.885)'); +isnt(exception { $ins->negnum(100.885); }, undef, 'NegativeNum (100.885)'); +isnt(exception { $ins->negnum(0); }, undef, 'NegativeNum (0)'); +is(exception { $ins->negnum(-0.0000000001); }, undef, 'NegativeNum (-0.0000000001)'); + +isnt(exception { $ins->negorzeroint(100); }, undef, 'NegativeOrZeroInt (100)'); +isnt(exception { $ins->negorzeroint(-100.885); }, undef, 'NegativeOrZeroInt (-100.885)'); +is(exception { $ins->negorzeroint(-100); }, undef, 'NegativeOrZeroInt (-100)'); +is(exception { $ins->negorzeroint(0); }, undef, 'NegativeOrZeroInt (0)'); +is(exception { $ins->negorzeronum(-100.885); }, undef, 'NegativeOrZeroNum (-100.885)'); +isnt(exception { $ins->negorzeronum(100.885); }, undef, 'NegativeOrZeroNum (100.885)'); +is(exception { $ins->negorzeronum(0); }, undef, 'NegativeOrZeroNum (0)'); +is(exception { $ins->negorzeronum(-0.0000000001); }, undef, 'NegativeOrZeroNum (-0.0000000001)');