[
https://issues.apache.org/jira/browse/LANG-663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12968480#action_12968480
]
Christian Semrau commented on LANG-663:
---------------------------------------
Even if both arguments are reduced, if the divisor has numerator
Integer.MIN_VALUE, divideBy may fail despite the quotient being representable
with positive denominator.
{code:title=FractionTest.java|borderStyle=solid}
public void testDivide() {
// ...
f1 = Fraction.getFraction(2, 3);
f2 = Fraction.getFraction(Integer.MIN_VALUE, 3);
f = f1.divideBy(f2);
assertEquals(-1, f.getNumerator());
assertEquals(-Integer.MIN_VALUE / 2, f.getDenominator());
{code}
> org.apache.commons.lang3.math.Fraction does not always succeed in multiplyBy
> and divideBy
> -----------------------------------------------------------------------------------------
>
> Key: LANG-663
> URL: https://issues.apache.org/jira/browse/LANG-663
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.math.*
> Affects Versions: 3.0
> Reporter: Christian Semrau
> Priority: Minor
>
> The Fraction.multiplyBy and divideBy methods fail sometimes when the
> arguments are not reduced.
> {code:title=FunctionTest.java|borderStyle=solid}
> public void testMultiply() {
> // ...
> f1 = Fraction.getFraction(Integer.MAX_VALUE, Integer.MAX_VALUE);
> f2 = Fraction.getFraction(42, 1);
> f = f1.multiplyBy(f2);
> assertEquals(42, f.getNumerator());
> assertEquals(1, f.getDenominator());
> public void testDivide() {
> // ...
> f1 = Fraction.getFraction(Integer.MAX_VALUE, Integer.MAX_VALUE);
> f2 = Fraction.getFraction(42, 1);
> f = f1.divideBy(f2);
> assertEquals(1, f.getNumerator());
> assertEquals(42, f.getDenominator());
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.