[
https://issues.apache.org/jira/browse/NUMBERS-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16872173#comment-16872173
]
Heinrich Bohne commented on NUMBERS-119:
----------------------------------------
About the code coverage decrease in the method {{reduce()}} caused by PR #56
(the coverage decrease in {{ArithmeticUtils}} is a myth invented by Coveralls,
my IDE even shows that the condition in line 112 is always false):
Since the local variable {{k}} had to be set inside the conditional tree that
depends on the value of the exponent rather than outside it as was previously
the case, I thought I would also make a special case for zero, because it
doesn't make sense for the denominator of a zero-fraction to be 2^1074^. It
didn't occur to me that this would have an effect on the code coverage.
However, with this change, the uncovered line in the method {{reduce()}}
becomes unreachable, because the zero fraction created from this double
constructor was the only case where the fraction was not already reduced to
lowest terms. This renders the {{reduce()}} method obsolete anyway, which could
be the target of a new JIRA ticket.
> BigFraction(double) constructor does not treat subnormal numbers correctly
> --------------------------------------------------------------------------
>
> Key: NUMBERS-119
> URL: https://issues.apache.org/jira/browse/NUMBERS-119
> Project: Commons Numbers
> Issue Type: Bug
> Components: fraction
> Affects Versions: 1.0
> Reporter: Heinrich Bohne
> Priority: Minor
> Time Spent: 1h
> Remaining Estimate: 0h
>
> The constructor {{BigFraction(double)}} does not take into account the fact
> that, when the biased exponent of a {{double}} value is {{0}} and the
> mantissa is not {{0}} (i.e. when the value represents a subnormal number),
> the actual exponent in effect is not {{-1023}} but {{-1022}} (or, in other
> words, the effective exponent bias is not {{1023}} but {{1022}}).
> The value of the created {{BigFraction}} is therefore not equal to the value
> of the passed {{double}} argument.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)