Commit | Line | Data |
ac73ab52 |
1 | #! /usr/bin/perl -w |
2 | |
3 | use strict; |
4 | use warnings; |
d52d9696 |
5 | use Test::More tests => 34; |
ac73ab52 |
6 | use Test::Exception; |
7 | |
8 | { |
9 | package FooTest; |
10 | use Moose; |
5b561c82 |
11 | use MooseX::Types::Common::Numeric ( |
d52d9696 |
12 | qw(PositiveNum PositiveOrZeroNum |
13 | PositiveInt PositiveOrZeroInt |
14 | NegativeNum NegativeOrZeroNum |
15 | NegativeInt NegativeOrZeroInt |
16 | SingleDigit) |
ac73ab52 |
17 | ); |
18 | |
19 | has digit => ( is => 'rw', isa => SingleDigit); |
20 | has posnum => ( is => 'rw', isa => PositiveNum); |
21 | has posint => ( is => 'rw', isa => PositiveInt); |
22 | has negnum => ( is => 'rw', isa => NegativeNum); |
23 | has negint => ( is => 'rw', isa => NegativeInt); |
d52d9696 |
24 | has posorzeronum => ( is => 'rw', isa => PositiveOrZeroNum); |
25 | has posorzeroint => ( is => 'rw', isa => PositiveOrZeroInt); |
26 | has negorzeronum => ( is => 'rw', isa => NegativeOrZeroNum); |
27 | has negorzeroint => ( is => 'rw', isa => NegativeOrZeroInt); |
ac73ab52 |
28 | } |
29 | |
30 | my $ins = FooTest->new; |
31 | |
32 | dies_ok { $ins->digit(100); } 'SingleDigit'; |
33 | lives_ok { $ins->digit(1); } 'SingleDigit 2'; |
34 | |
0cedb310 |
35 | dies_ok { $ins->posint(-100); } 'PositiveInt (-100)'; |
36 | dies_ok { $ins->posint(0); } 'PositiveInt (0)'; |
37 | dies_ok { $ins->posint(100.885); } 'PositiveInt (100.885)'; |
38 | lives_ok { $ins->posint(100); } 'PositiveInt (100)'; |
39 | dies_ok { $ins->posnum(0); } 'PositiveNum (0)'; |
40 | lives_ok { $ins->posnum(100.885); } 'PositiveNum (100.885)'; |
41 | dies_ok { $ins->posnum(-100.885); } 'PositiveNum (-100.885)'; |
42 | lives_ok { $ins->posnum(0.0000000001); } 'PositiveNum (0.0000000001)'; |
ac73ab52 |
43 | |
d52d9696 |
44 | dies_ok { $ins->posorzeroint(-100); } 'PositiveOrZeroInt (-100)'; |
45 | lives_ok { $ins->posorzeroint(0); } 'PositiveOrZeroInt (0)'; |
46 | dies_ok { $ins->posorzeroint(100.885); } 'PositiveOrZeroInt (100.885)'; |
47 | lives_ok { $ins->posorzeroint(100); } 'PositiveOrZeroInt (100)'; |
48 | lives_ok { $ins->posorzeronum(0); } 'PositiveOrZeroNum (0)'; |
49 | lives_ok { $ins->posorzeronum(100.885); } 'PositiveOrZeroNum (100.885)'; |
50 | dies_ok { $ins->posorzeronum(-100.885); } 'PositiveOrZeroNum (-100.885)'; |
51 | lives_ok { $ins->posorzeronum(0.0000000001); } 'PositiveOrZeroNum (0.0000000001)'; |
52 | |
0cedb310 |
53 | dies_ok { $ins->negint(100); } 'NegativeInt (100)'; |
54 | dies_ok { $ins->negint(-100.885); } 'NegativeInt (-100.885)'; |
55 | lives_ok { $ins->negint(-100); } 'NegativeInt (-100)'; |
56 | dies_ok { $ins->negint(0); } 'NegativeInt (0)'; |
57 | lives_ok { $ins->negnum(-100.885); } 'NegativeNum (-100.885)'; |
58 | dies_ok { $ins->negnum(100.885); } 'NegativeNum (100.885)'; |
59 | dies_ok { $ins->negnum(0); } 'NegativeNum (0)'; |
60 | lives_ok { $ins->negnum(-0.0000000001); } 'NegativeNum (-0.0000000001)'; |
d52d9696 |
61 | |
62 | dies_ok { $ins->negorzeroint(100); } 'NegativeOrZeroInt (100)'; |
63 | dies_ok { $ins->negorzeroint(-100.885); } 'NegativeOrZeroInt (-100.885)'; |
64 | lives_ok { $ins->negorzeroint(-100); } 'NegativeOrZeroInt (-100)'; |
65 | lives_ok { $ins->negorzeroint(0); } 'NegativeOrZeroInt (0)'; |
66 | lives_ok { $ins->negorzeronum(-100.885); } 'NegativeOrZeroNum (-100.885)'; |
67 | dies_ok { $ins->negorzeronum(100.885); } 'NegativeOrZeroNum (100.885)'; |
68 | lives_ok { $ins->negorzeronum(0); } 'NegativeOrZeroNum (0)'; |
69 | lives_ok { $ins->negorzeronum(-0.0000000001); } 'NegativeOrZeroNum (-0.0000000001)'; |