Arithmetic/Rational/Java: Difference between revisions
Content added Content deleted
No edit summary |
(Looks for common denominator when adding/subtracting) |
||
Line 259: | Line 259: | ||
first = first.abs(); |
first = first.abs(); |
||
second = second.abs(); |
second = second.abs(); |
||
BigInteger numerator = |
BigInteger numerator = null; |
||
BigInteger denominator = |
BigInteger denominator = null; |
||
if (first.denominator.equals(second.denominator)) |
|||
{ |
|||
numerator = first.numerator.add(second.numerator); |
|||
denominator = first.denominator; |
|||
} |
|||
else |
|||
{ |
|||
⚫ | |||
denominator = first.denominator.multiply(second.denominator); |
|||
} |
|||
return new BigRational(numerator, denominator, true, resultIsNegative); |
return new BigRational(numerator, denominator, true, resultIsNegative); |
||
} |
} |
||
Line 268: | Line 278: | ||
first = first.abs(); |
first = first.abs(); |
||
second = second.abs(); |
second = second.abs(); |
||
BigInteger numerator = null; |
|||
⚫ | |||
BigInteger denominator = null; |
|||
if (first.denominator.equals(second.denominator)) |
|||
{ |
|||
numerator = first.numerator.subtract(second.numerator); |
|||
denominator = first.denominator; |
|||
} |
|||
else |
|||
{ |
|||
numerator = first.numerator.multiply(second.denominator).subtract(second.numerator.multiply(first.denominator)); |
|||
denominator = first.denominator.multiply(second.denominator); |
|||
} |
|||
return new BigRational(numerator, denominator); |
|||
} |
} |
||
Line 377: | Line 399: | ||
passedAll &= testEquals("Addition-3", BigRational.valueOf("-2/5").add(BigRational.valueOf("3/7")), "1/35"); |
passedAll &= testEquals("Addition-3", BigRational.valueOf("-2/5").add(BigRational.valueOf("3/7")), "1/35"); |
||
passedAll &= testEquals("Addition-4", BigRational.valueOf("-2/5").add(BigRational.valueOf("-3/7")), "-29/35"); |
passedAll &= testEquals("Addition-4", BigRational.valueOf("-2/5").add(BigRational.valueOf("-3/7")), "-29/35"); |
||
passedAll &= testEquals("Addition-5", BigRational.valueOf("2/5").add(BigRational.valueOf("4/5")), "6/5"); |
|||
passedAll &= testEquals("Subtraction-1", BigRational.valueOf("2/5").subtract(BigRational.valueOf("3/7")), "-1/35"); |
passedAll &= testEquals("Subtraction-1", BigRational.valueOf("2/5").subtract(BigRational.valueOf("3/7")), "-1/35"); |
||
passedAll &= testEquals("Subtraction-2", BigRational.valueOf("2/5").subtract(BigRational.valueOf("-3/7")), "29/35"); |
passedAll &= testEquals("Subtraction-2", BigRational.valueOf("2/5").subtract(BigRational.valueOf("-3/7")), "29/35"); |
||
passedAll &= testEquals("Subtraction-3", BigRational.valueOf("-2/5").subtract(BigRational.valueOf("3/7")), "-29/35"); |
passedAll &= testEquals("Subtraction-3", BigRational.valueOf("-2/5").subtract(BigRational.valueOf("3/7")), "-29/35"); |
||
passedAll &= testEquals("Subtraction-4", BigRational.valueOf("-2/5").subtract(BigRational.valueOf("-3/7")), "1/35"); |
passedAll &= testEquals("Subtraction-4", BigRational.valueOf("-2/5").subtract(BigRational.valueOf("-3/7")), "1/35"); |
||
passedAll &= testEquals("Subtraction-5", BigRational.valueOf("2/7").subtract(BigRational.valueOf("3/7")), "-1/7"); |
|||
passedAll &= testTrue("Comparison-1", BigRational.valueOf("2/5").compareTo(BigRational.valueOf("-2/5")) > 0); |
passedAll &= testTrue("Comparison-1", BigRational.valueOf("2/5").compareTo(BigRational.valueOf("-2/5")) > 0); |
||
passedAll &= testTrue("Comparison-2", BigRational.valueOf("-2/5").compareTo(BigRational.valueOf("2/5")) < 0); |
passedAll &= testTrue("Comparison-2", BigRational.valueOf("-2/5").compareTo(BigRational.valueOf("2/5")) < 0); |