[Bioperl-l] evalues/floating point tests
Chris Fields
cjfields at illinois.edu
Sun Jan 18 02:24:41 UTC 2009
On Jan 17, 2009, at 5:45 PM, Sendu Bala wrote:
> 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.
I thought the same thing at first, but (at least to me) is_float
sounds more like a boolean test on whether the scalar value passed is
a float rather than a comparison checking whether two floats are equal.
I'll go ahead and commit this, but it would be very easy to switch the
method name over.
chris
More information about the Bioperl-l
mailing list