Test::Number::Delta

Test::Number::Delta is a Perl module to compare the difference between numbers against a given tolerance.
Download

Test::Number::Delta Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • David A. Golden
  • Publisher web site:
  • http://search.cpan.org/~dagolden/CPAN-Reporter-Smoker-0.15/lib/CPAN/Reporter/Smoker.pod

Test::Number::Delta Tags


Test::Number::Delta Description

Test::Number::Delta is a Perl module to compare the difference between numbers against a given tolerance. 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 there's nothing wrong with that construct, it's 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: · Perl


Test::Number::Delta Related Software