You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2019/05/22 19:23:12 UTC

[commons-numbers] 03/04: NUMBERS-97: Added test of parse method in BigFractionTest, and updated outdated use of RoundingMode

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 <eb...@irhythmtech.com>
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++;
+        }
+    }
 }