Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

# Test::Number::Delta 1.03

Date Added: March 16, 2010  |  Visits: 771

Test::Number::Delta is a Perl module to compare the difference between numbers against a given tolerance. SYNOPSIS # Import test functions use Test::Number::Delta; # Equality test with default tolerance delta_ok( 1e-5, 2e-5, values within 1e-6); # Inequality test with default tolerance delta_not_ok( 1e-5, 2e-5, values not within 1e-6); # Provide specific tolerance delta_within( 1e-3, 2e-3, 1e-4, values within 1e-4); delta_not_within( 1e-3, 2e-3, 1e-4, values not within 1e-4); # Compare arrays or matrices @a = ( 3.14, 1.41 ); @b = ( 3.15, 1.41 ); delta_ok( @a, @b, compare @a and @b ); # Set a different default tolerance use Test::Number::Delta within => 1e-5; delta_ok( 1.1e-5, 2e-5, values within 1e-5); # ok # Set a relative tolerance use Test::Number::Delta relative => 1e-3; delta_ok( 1.01, 1.0099, values within 1.01e-3); At some point or another, most programmers find they need to compare floating-point numbers for equality. The typical idiom is to test if the absolute value of the difference of the numbers is within a desired tolerance, usually called epsilon. This module provides such a function for use with Test::Harness. Usage is similar to other test functions described in Test::More. Semantically, the delta_within function replaces this kind of construct: ok ( abs(\$p - \$q) < \$epsilon, \$p is equal to \$q ) or diag "\$p is not equal to \$q to within \$epsilon"; While theres nothing wrong with that construct, its painful to type it repeatedly in a test script. This module does the same thing with a single function call. The delta_ok function is similar, but either uses a global default value for epsilon or else calculates a relative epsilon on the fly so that epsilon is scaled automatically to the size of the arguments to delta_ok. Both functions are exported automatically. Because checking floating-point equality is not always reliable, it is not possible to check the equal to boundary of less than or equal to epsilon. Therefore, Test::Number::Delta only compares if the absolute value of the difference is less than epsilon (for equality tests) or greater than epsilon (for inequality tests)..

 Requirements: No special requirements Platforms: Linux Keyword: Compare,  Delta,  Epsilon,  Equal To,  Libraries,  Numbers,  Perl Module,  Programming,  Test,  Testnumberdelta,  Tolerance Users rating: 0/10

USER REVIEWS
 More Reviews or Write Review
TEST::NUMBER::DELTA RELATED