SingleDigit now accepts [-9 .. 9] not [1 .. 9]
[gitmo/MooseX-Types-Common.git] / t / 02-numeric.t
index 4908d04..23bec41 100644 (file)
@@ -1,69 +1,61 @@
-#! /usr/bin/perl -w
-
 use strict;
-use warnings;
-use Test::More tests => 34;
-use Test::Exception;
-
-{
-  package FooTest;
-  use Moose;
-  use MooseX::Types::Common::Numeric (
-    qw(PositiveNum PositiveOrZeroNum
-       PositiveInt PositiveOrZeroInt
-       NegativeNum NegativeOrZeroNum
-       NegativeInt NegativeOrZeroInt
-       SingleDigit)
-  );
-
-  has digit => ( is => 'rw', isa => SingleDigit);
-  has posnum => ( is => 'rw', isa => PositiveNum);
-  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->posorzeroint(-100); } 'PositiveOrZeroInt (-100)';
-lives_ok { $ins->posorzeroint(0); } 'PositiveOrZeroInt (0)';
-dies_ok { $ins->posorzeroint(100.885); } 'PositiveOrZeroInt (100.885)';
-lives_ok { $ins->posorzeroint(100); } 'PositiveOrZeroInt (100)';
-lives_ok { $ins->posorzeronum(0); } 'PositiveOrZeroNum (0)';
-lives_ok { $ins->posorzeronum(100.885); } 'PositiveOrZeroNum (100.885)';
-dies_ok { $ins->posorzeronum(-100.885); } 'PositiveOrZeroNum (-100.885)';
-lives_ok { $ins->posorzeronum(0.0000000001); } 'PositiveOrZeroNum (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)';
-
-dies_ok { $ins->negorzeroint(100); } 'NegativeOrZeroInt (100)';
-dies_ok { $ins->negorzeroint(-100.885); } 'NegativeOrZeroInt (-100.885)';
-lives_ok { $ins->negorzeroint(-100); } 'NegativeOrZeroInt (-100)';
-lives_ok { $ins->negorzeroint(0); } 'NegativeOrZeroInt (0)';
-lives_ok { $ins->negorzeronum(-100.885); } 'NegativeOrZeroNum (-100.885)';
-dies_ok { $ins->negorzeronum(100.885); } 'NegativeOrZeroNum (100.885)';
-lives_ok { $ins->negorzeronum(0); } 'NegativeOrZeroNum (0)';
-lives_ok { $ins->negorzeronum(-0.0000000001); } 'NegativeOrZeroNum (-0.0000000001)';
+use warnings FATAL => 'all';
+
+use Test::More;
+use if $ENV{AUTHOR_TESTING}, 'Test::Warnings';
+
+use MooseX::Types::Common::Numeric qw(
+    PositiveNum PositiveOrZeroNum
+    PositiveInt PositiveOrZeroInt
+    NegativeNum NegativeOrZeroNum
+    NegativeInt NegativeOrZeroInt
+    SingleDigit
+);
+
+ok(!is_SingleDigit(100), 'SingleDigit 100');
+ok(!is_SingleDigit(10), 'SingleDigit 10');
+ok(is_SingleDigit(9), 'SingleDigit 9');
+ok(is_SingleDigit(1), 'SingleDigit 1');
+ok(is_SingleDigit(0), 'SingleDigit 0');
+ok(is_SingleDigit(-1), 'SingleDigit -1');
+ok(is_SingleDigit(-9), 'SingleDigit -9');
+ok(!is_SingleDigit(-10), 'SingleDigit -10');
+
+
+ok(!is_PositiveInt(-100), 'PositiveInt (-100)');
+ok(!is_PositiveInt(0), 'PositiveInt (0)');
+ok(!is_PositiveInt(100.885), 'PositiveInt (100.885)');
+ok(is_PositiveInt(100), 'PositiveInt (100)');
+ok(!is_PositiveNum(0), 'PositiveNum (0)');
+ok(is_PositiveNum(100.885), 'PositiveNum (100.885)');
+ok(!is_PositiveNum(-100.885), 'PositiveNum (-100.885)');
+ok(is_PositiveNum(0.0000000001), 'PositiveNum (0.0000000001)');
+
+ok(!is_PositiveOrZeroInt(-100), 'PositiveOrZeroInt (-100)');
+ok(is_PositiveOrZeroInt(0), 'PositiveOrZeroInt (0)');
+ok(!is_PositiveOrZeroInt(100.885), 'PositiveOrZeroInt (100.885)');
+ok(is_PositiveOrZeroInt(100), 'PositiveOrZeroInt (100)');
+ok(is_PositiveOrZeroNum(0), 'PositiveOrZeroNum (0)');
+ok(is_PositiveOrZeroNum(100.885), 'PositiveOrZeroNum (100.885)');
+ok(!is_PositiveOrZeroNum(-100.885), 'PositiveOrZeroNum (-100.885)');
+ok(is_PositiveOrZeroNum(0.0000000001), 'PositiveOrZeroNum (0.0000000001)');
+
+ok(!is_NegativeInt(100), 'NegativeInt (100)');
+ok(!is_NegativeInt(-100.885), 'NegativeInt (-100.885)');
+ok(is_NegativeInt(-100), 'NegativeInt (-100)');
+ok(!is_NegativeInt(0), 'NegativeInt (0)');
+ok(is_NegativeNum(-100.885), 'NegativeNum (-100.885)');
+ok(!is_NegativeNum(100.885), 'NegativeNum (100.885)');
+ok(!is_NegativeNum(0), 'NegativeNum (0)');
+ok(is_NegativeNum(-0.0000000001), 'NegativeNum (-0.0000000001)');
+
+ok(!is_NegativeOrZeroInt(100), 'NegativeOrZeroInt (100)');
+ok(!is_NegativeOrZeroInt(-100.885), 'NegativeOrZeroInt (-100.885)');
+ok(is_NegativeOrZeroInt(-100), 'NegativeOrZeroInt (-100)');
+ok(is_NegativeOrZeroInt(0), 'NegativeOrZeroInt (0)');
+ok(is_NegativeOrZeroNum(-100.885), 'NegativeOrZeroNum (-100.885)');
+ok(!is_NegativeOrZeroNum(100.885), 'NegativeOrZeroNum (100.885)');
+ok(is_NegativeOrZeroNum(0), 'NegativeOrZeroNum (0)');
+ok(is_NegativeOrZeroNum(-0.0000000001), 'NegativeOrZeroNum (-0.0000000001)');
+
+done_testing;