This is an automated email from the ASF dual-hosted git repository. ericbarnhill pushed a commit to branch fraction-dev in repository https://gitbox.apache.org/repos/asf/commons-numbers.git
commit 346084171c7e4ef3a0706378c7c0fda5d684bdf8 Author: Eric Barnhill <[email protected]> AuthorDate: Fri May 17 15:54:19 2019 -0700 NUMBERS-97: Added test of parse method in BigFractionTest, and updated outdated use of RoundingMode --- .../commons/numbers/fraction/BigFractionTest.java | 30 ++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java index d15d78f..9069e2b 100644 --- a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java +++ b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java @@ -18,6 +18,8 @@ package org.apache.commons.numbers.fraction; import java.math.BigDecimal; import java.math.BigInteger; +import java.math.RoundingMode; + import org.apache.commons.numbers.core.TestUtils; import org.junit.Assert; @@ -580,8 +582,8 @@ public class BigFractionTest { public void testBigDecimalValue() { Assert.assertEquals(new BigDecimal(0.5), BigFraction.of(1, 2).bigDecimalValue()); Assert.assertEquals(new BigDecimal("0.0003"), BigFraction.of(3, 10000).bigDecimalValue()); - Assert.assertEquals(new BigDecimal("0"), BigFraction.of(1, 3).bigDecimalValue(BigDecimal.ROUND_DOWN)); - Assert.assertEquals(new BigDecimal("0.333"), BigFraction.of(1, 3).bigDecimalValue(3, BigDecimal.ROUND_DOWN)); + Assert.assertEquals(new BigDecimal("0"), BigFraction.of(1, 3).bigDecimalValue(RoundingMode.DOWN)); + Assert.assertEquals(new BigDecimal("0.333"), BigFraction.of(1, 3).bigDecimalValue(3, RoundingMode.DOWN)); } @Test @@ -648,4 +650,28 @@ public class BigFractionTest { Assert.assertEquals(fraction, TestUtils.serializeAndRecover(fraction)); } } + + + @Test + public void testParse() { + String[] validExpressions = new String[] { + "3", + "1 / 2", + "2147,483,647 / 2,147,483,648", //over largest int value + "9,223,372,036,854,775,807 / 9,223,372,036,854,775,808" //over largest long value + }; + BigFraction[] fractions = { + BigFraction.of(3), + BigFraction.of(1, 2), + BigFraction.of(2147483647, 2147483648L), + BigFraction.of(new BigInteger("9223372036854775807"), + new BigInteger("9223372036854775808")) + }; + int inc = 0; + for (BigFraction fraction: fractions) { + Assert.assertEquals(fraction, + BigFraction.parse(validExpressions[inc])); + inc++; + } + } }
