[Bioperl-l] evalues/floating point tests

Sendu Bala 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 mailing list