NAME
Test::Numeric  Testing utilities for numbers.
SYNOPSIS
use Test::Numeric tests => 8;
# The following functions are all exported by Test::Numeric
is_number '12.34e56', "valid number";
is_number '12.34E56', "valid number";
isnt_number 'test', "not a number";
is_even 2, "an even number";
is_odd 3, "an odd number";
is_integer '123', 'an integer';
isnt_integer '123.45', 'not an integer';
is_formatted '1.2', '123.45';
isnt_formatted '1.2', '123.4';
DESCRIPTION
This is a simple testing module that lets you do several tests on numbers. You can check that it is a number, check that it is an integer, check if they are odd or even and finally check if they are of a certain form.
 is_number

is_number $number, $name;
is_number
tests whether$number
is a number. The number can be positive or negative, it can have a formatted point and an exponent. These are all valid numbers: 1, 23, 0.34, .34, 12.34e56  isnt_number

The opposite of
is_number
.  is_integer

is_integer $number, $name;
is_integer
tests if$number
is an integer, ie a whole number. Fails if the number is not a number r not a number at all.  isnt_integer

The opposite of
is_integer
. Note thatisnt_integer
will fail if the number is not a number. So 'abc' may not be an integer butisnt_integer
will still fail.  is_even

is_even $number, $name;
is_even
tests if the number given is even. Fails for nonintegers. Zero is even.  is_odd

As
is_even
, but for odd numbers.  is_formatted

is_formatted $format, $number, $name;
is_formatted
allows you to test that the number complies with a certain format.$format
tells the function what to check for and is of the formpre.suf
wherepre
andsuf
are the number of digits before and after the decimal point. They are either just a number ( eg. '3.2' for something like 123.12 ) or a range ( eg. '3.12' ) for either 123.1 or 123.12 ).The range can be openended, for example '0.2' will match any number of digits before the decimal place, and exactly two after.
If the format is incorrect then the test will fail and a warning printed.
This test is intended for things such as id numbers where the number must be something like
000123
.  isnt_formatted

The same as is_formatted but negated.
 is_money

is_money $number, $name;
This is a conveniance function to test if the value looks like money, ie has a format of
0.2
 which is tw decimal points. Internally it just calls is_formatted with the correct format.  isnt_money

The opposite of
is_money
.
TODO
Create appropriate test names if none is given.
Add tests to see if a number looks like hex, octal, binary etc.
AUTHOR
Edmund von der Burg <evdb@ecclestoad.co.uk>
Bug reports, patches, suggestions etc are all welcomed.
COPYRIGHT
Copyright 2004 by Edmund von der Burg <evdb@ecclestoad.co.uk>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
SEE ALSO
Test::Tutorial for testing basics, Test::Builder for the module on which this one is built.