From commits-return-70246-archive-asf-public=cust-asf.ponee.io@commons.apache.org Sat Nov 2 23:11:15 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 83910180661 for ; Sun, 3 Nov 2019 00:11:15 +0100 (CET) Received: (qmail 90597 invoked by uid 500); 2 Nov 2019 23:11:14 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 90586 invoked by uid 99); 2 Nov 2019 23:11:14 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 02 Nov 2019 23:11:14 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 82BBC805E6; Sat, 2 Nov 2019 23:11:14 +0000 (UTC) Date: Sat, 02 Nov 2019 23:11:14 +0000 To: "commits@commons.apache.org" Subject: [commons-numbers] branch master updated: Fixed method "compareTo(BigFraction)". MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <157273627447.17596.1458439226485316603@gitbox.apache.org> From: erans@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: commons-numbers X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 1544a1dbb32a5c161d2fbc08d7135f71eff11683 X-Git-Newrev: bfa6fcc4fa63bc0fb1726bb1aaf851e7894900be X-Git-Rev: bfa6fcc4fa63bc0fb1726bb1aaf851e7894900be X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated 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 The following commit(s) were added to refs/heads/master by this push: new bfa6fcc Fixed method "compareTo(BigFraction)". bfa6fcc is described below commit bfa6fcc4fa63bc0fb1726bb1aaf851e7894900be Author: Gilles Sadowski AuthorDate: Sun Nov 3 00:07:59 2019 +0100 Fixed method "compareTo(BigFraction)". Implementation still assumed that only the numerator can be negative. --- .../commons/numbers/fraction/BigFraction.java | 18 +++++++-------- .../commons/numbers/fraction/BigFractionTest.java | 27 ++++++++++++++-------- 2 files changed, 26 insertions(+), 19 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 89a7e3d..fd1ff52 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 @@ -535,16 +535,16 @@ public class BigFraction * Compares this object to another based on size. *

* - * @param object - * the object to compare to, must not be null. + * @param other Object to compare to, must not be {@code null}. * @return -1 if this is less than {@code object}, +1 if this is greater - * than {@code object}, 0 if they are equal. - * @see java.lang.Comparable#compareTo(java.lang.Object) + * than {@code object}, 0 if they are equal. + * + * @see Comparable#compareTo(Object) */ @Override - public int compareTo(final BigFraction object) { - int lhsSigNum = numerator.signum(); - int rhsSigNum = object.numerator.signum(); + public int compareTo(final BigFraction other) { + final int lhsSigNum = signum(); + final int rhsSigNum = other.signum(); if (lhsSigNum != rhsSigNum) { return (lhsSigNum > rhsSigNum) ? 1 : -1; @@ -553,8 +553,8 @@ public class BigFraction return 0; } - BigInteger nOd = numerator.multiply(object.denominator); - BigInteger dOn = denominator.multiply(object.numerator); + final BigInteger nOd = numerator.multiply(other.denominator); + final BigInteger dOn = denominator.multiply(other.numerator); return nOd.compareTo(dOn); } 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 24f3f46..c6a5eaf 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 @@ -158,14 +158,21 @@ public class BigFractionTest { @Test public void testCompareTo() { - BigFraction first = BigFraction.of(1, 2); - BigFraction second = BigFraction.of(1, 3); - BigFraction third = BigFraction.of(1, 2); - - Assertions.assertEquals(0, first.compareTo(first)); - Assertions.assertEquals(0, first.compareTo(third)); - Assertions.assertEquals(1, first.compareTo(second)); - Assertions.assertEquals(-1, second.compareTo(first)); + BigFraction a = BigFraction.of(1, 2); + BigFraction b = BigFraction.of(1, 3); + BigFraction c = BigFraction.of(1, 2); + BigFraction d = BigFraction.of(-1, 2); + BigFraction e = BigFraction.of(1, -2); + + Assertions.assertEquals(0, a.compareTo(a)); + Assertions.assertEquals(0, a.compareTo(c)); + Assertions.assertEquals(1, a.compareTo(b)); + Assertions.assertEquals(-1, b.compareTo(a)); + Assertions.assertEquals(-1, d.compareTo(a)); + Assertions.assertEquals(1, a.compareTo(d)); + Assertions.assertEquals(-1, e.compareTo(a)); + Assertions.assertEquals(1, a.compareTo(e)); + Assertions.assertEquals(0, d.compareTo(e)); // these two values are different approximations of PI // the first one is approximately PI - 3.07e-18 @@ -173,9 +180,8 @@ public class BigFractionTest { BigFraction pi1 = BigFraction.of(1068966896, 340262731); BigFraction pi2 = BigFraction.of( 411557987, 131002976); Assertions.assertEquals(-1, pi1.compareTo(pi2)); - Assertions.assertEquals( 1, pi2.compareTo(pi1)); + Assertions.assertEquals(1, pi2.compareTo(pi1)); Assertions.assertEquals(0.0, pi1.doubleValue() - pi2.doubleValue(), 1.0e-20); - } @Test @@ -517,6 +523,7 @@ public class BigFractionTest { Assertions.assertEquals(-Integer.MAX_VALUE, f.getDenominatorAsInt()); Assertions.assertEquals(-1, f.getNumeratorAsInt()); + Assertions.assertEquals(BigFraction.ZERO, BigFraction.of(0, 3).divide(BigInteger.valueOf(11))); } @Test