[Bioperl-l] evalues/floating point tests
bix at sendu.me.uk
Sat Jan 17 23:45:21 UTC 2009
Chris Fields wrote:
> I've noticed an odd issue when testing BioPerl on WinXP yesterday which
> doesn't appear to be popping up anywhere else. When comparing floating
> point numbers, several tests fail like the following:
> # Failed test at t\SearchIO\blast_pull.t line 40.
> # got: '1e-23'
> # expected: '1e-023'
> # Failed test at t\SearchIO\blast_pull.t line 67.
> # got: '6e-59'
> # expected: '6e-059'
> These are generally in lines like (for the example above)
> is $result->get_parameter('expect'), 1e-23;
> I'm adding a method to Bio::Root::Test for comparing two floating point
> numbers based on equality:
> float_eq $float1, $float2, $message;
> This basically wraps is() but runs both values through 'sprintf("%g",
> $foo)' prior to the comparison; it has a prototype requiring two values
> to be passed and an optional message. Any objections to the method name
> or adding this in?
is_float() seems more consistent? Other than that, great idea.
More information about the Bioperl-l