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/10/26 03:52:09 UTC

[commons-numbers] branch master updated (32b7098 -> add9f22)

This is an automated email from the ASF dual-hosted git repository.

erans pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git.


    from 32b7098  Badge.
     new 792fec8  Formatting nit.
     new e0b4295  Assertions with better reporting.
     new add9f22  Fixed methods "equals(Object)".

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../commons/numbers/fraction/BigFraction.java      | 16 +++++++++------
 .../apache/commons/numbers/fraction/Fraction.java  | 10 ++++++---
 .../commons/numbers/fraction/BigFractionTest.java  | 11 +++++++++-
 .../commons/numbers/fraction/FractionTest.java     | 24 ++++++++++++++--------
 4 files changed, 43 insertions(+), 18 deletions(-)


[commons-numbers] 02/03: Assertions with better reporting.

Posted by er...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit e0b4295dff2a3412dc9aa6aad0314f13a855b412
Author: Gilles Sadowski <gi...@harfang.homelinux.org>
AuthorDate: Sat Oct 26 05:04:09 2019 +0200

    Assertions with better reporting.
---
 .../org/apache/commons/numbers/fraction/FractionTest.java   | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
index 713dc79..12972d7 100644
--- a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
+++ b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
@@ -460,15 +460,18 @@ public class FractionTest {
     public void testEqualsAndHashCode() {
         Fraction zero = Fraction.of(0, 1);
         Fraction nullFraction = null;
-        Assertions.assertTrue(zero.equals(zero));
-        Assertions.assertFalse(zero.equals(nullFraction));
+        Assertions.assertEquals(zero, zero);
+        Assertions.assertNotEquals(zero, nullFraction);
         Assertions.assertFalse(zero.equals(Double.valueOf(0)));
         Fraction zero2 = Fraction.of(0, 2);
-        Assertions.assertTrue(zero.equals(zero2));
+        Assertions.assertEquals(zero, zero2);
         Assertions.assertEquals(zero.hashCode(), zero2.hashCode());
         Fraction one = Fraction.of(1, 1);
-        Assertions.assertFalse(zero.equals(one));
-        Assertions.assertFalse(one.equals(zero));
+        Assertions.assertNotEquals(zero, one);
+        Assertions.assertNotEquals(one, zero);
+        Fraction one2 = Fraction.of(-1, -1);
+        Assertions.assertEquals(one2, one);
+        Assertions.assertEquals(one, one2);
     }
     @Test
     public void testToString() {


[commons-numbers] 03/03: Fixed methods "equals(Object)".

Posted by er...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit add9f220fa2bec1328f44084f6ae43138ad1edab
Author: Gilles Sadowski <gi...@harfang.homelinux.org>
AuthorDate: Sat Oct 26 05:20:58 2019 +0200

    Fixed methods "equals(Object)".
    
    Implementations still assumed that only the numerator can be negative.
---
 .../org/apache/commons/numbers/fraction/BigFraction.java | 16 ++++++++++------
 .../org/apache/commons/numbers/fraction/Fraction.java    | 10 +++++++---
 .../apache/commons/numbers/fraction/BigFractionTest.java | 11 ++++++++++-
 .../apache/commons/numbers/fraction/FractionTest.java    |  5 +++++
 4 files changed, 32 insertions(+), 10 deletions(-)

diff --git a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
index d73d720..249d42a 100644
--- a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
+++ b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/BigFraction.java
@@ -853,16 +853,20 @@ public class BigFraction
      */
     @Override
     public boolean equals(final Object other) {
-        boolean ret = false;
-
         if (this == other) {
-            ret = true;
+            return true;
         } else if (other instanceof BigFraction) {
-            BigFraction rhs = (BigFraction) other;
-            ret = numerator.equals(rhs.numerator) && denominator.equals(rhs.denominator);
+            final BigFraction rhs = (BigFraction) other;
+
+            if (signum() == rhs.signum()) {
+                return numerator.abs().equals(rhs.numerator.abs()) &&
+                    denominator.abs().equals(rhs.denominator.abs());
+            } else {
+                return false;
+            }
         }
 
-        return ret;
+        return false;
     }
 
     /**
diff --git a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
index 920dc62..3644e37 100644
--- a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
+++ b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
@@ -321,9 +321,13 @@ public class Fraction
         if (other instanceof Fraction) {
             // Since fractions are always in lowest terms, numerators and
             // denominators can be compared directly for equality.
-            Fraction rhs = (Fraction) other;
-            return numerator == rhs.numerator &&
-                denominator == rhs.denominator;
+            final Fraction rhs = (Fraction) other;
+            if (signum() == rhs.signum()) {
+                return Math.abs(numerator) == Math.abs(rhs.numerator) &&
+                    Math.abs(denominator) == Math.abs(rhs.denominator);
+            } else {
+                return false;
+            }
         }
 
         return false;
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 705bdba..f44b123 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
@@ -579,8 +579,17 @@ public class BigFractionTest {
         Assertions.assertEquals(zero, zero2);
         Assertions.assertEquals(zero.hashCode(), zero2.hashCode());
         BigFraction one = BigFraction.of(1, 1);
-        Assertions.assertFalse((one.equals(zero) || zero.equals(one)));
+        Assertions.assertNotEquals(zero, one);
+        Assertions.assertNotEquals(one, zero);
         Assertions.assertEquals(BigFraction.ONE, one);
+        BigFraction one2 = BigFraction.of(-1, -1);
+        Assertions.assertEquals(one2, one);
+        Assertions.assertEquals(one, one2);
+
+        BigFraction minusOne = BigFraction.of(-1, 1);
+        BigFraction minusOne2 = BigFraction.of(1, -1);
+        Assertions.assertEquals(minusOne2, minusOne);
+        Assertions.assertEquals(minusOne, minusOne2);
     }
 
     @Test
diff --git a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
index 12972d7..e7390a6 100644
--- a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
+++ b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
@@ -472,6 +472,11 @@ public class FractionTest {
         Fraction one2 = Fraction.of(-1, -1);
         Assertions.assertEquals(one2, one);
         Assertions.assertEquals(one, one2);
+
+        Fraction minusOne = Fraction.of(-1, 1);
+        Fraction minusOne2 = Fraction.of(1, -1);
+        Assertions.assertEquals(minusOne2, minusOne);
+        Assertions.assertEquals(minusOne, minusOne2);
     }
     @Test
     public void testToString() {


[commons-numbers] 01/03: Formatting nit.

Posted by er...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit 792fec8a4c156bbcd48e215c3653147759541032
Author: Gilles Sadowski <gi...@harfang.homelinux.org>
AuthorDate: Sat Oct 26 04:55:31 2019 +0200

    Formatting nit.
---
 .../org/apache/commons/numbers/fraction/FractionTest.java    | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
index ddf1011..713dc79 100644
--- a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
+++ b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
@@ -458,18 +458,18 @@ public class FractionTest {
 
     @Test
     public void testEqualsAndHashCode() {
-        Fraction zero  = Fraction.of(0,1);
+        Fraction zero = Fraction.of(0, 1);
         Fraction nullFraction = null;
-        Assertions.assertTrue( zero.equals(zero));
+        Assertions.assertTrue(zero.equals(zero));
         Assertions.assertFalse(zero.equals(nullFraction));
         Assertions.assertFalse(zero.equals(Double.valueOf(0)));
-        Fraction zero2 = Fraction.of(0,2);
+        Fraction zero2 = Fraction.of(0, 2);
         Assertions.assertTrue(zero.equals(zero2));
         Assertions.assertEquals(zero.hashCode(), zero2.hashCode());
-        Fraction one = Fraction.of(1,1);
-        Assertions.assertFalse((one.equals(zero) ||zero.equals(one)));
+        Fraction one = Fraction.of(1, 1);
+        Assertions.assertFalse(zero.equals(one));
+        Assertions.assertFalse(one.equals(zero));
     }
-
     @Test
     public void testToString() {
         Assertions.assertEquals("0", Fraction.of(0, 3).toString());