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 2021/06/03 23:38:01 UTC

[commons-numbers] branch master updated (a71294a -> 0db495b)

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 a71294a  Let angle normalization operate directly on "double".
     new ca82274  Avoid intermediate object creation.
     new 0db495b  NUMBERS-161: Additional unit tests.

The 2 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:
 .../org/apache/commons/numbers/angle/Angle.java    |  4 +-
 .../apache/commons/numbers/angle/AngleTest.java    | 57 ++++++++++++----------
 2 files changed, 32 insertions(+), 29 deletions(-)

[commons-numbers] 02/02: NUMBERS-161: Additional unit tests.

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 0db495b21337d3f30961375dedba2dd469f91200
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Fri Jun 4 01:37:00 2021 +0200

    NUMBERS-161: Additional unit tests.
---
 .../apache/commons/numbers/angle/AngleTest.java    | 57 ++++++++++++----------
 1 file changed, 30 insertions(+), 27 deletions(-)

diff --git a/commons-numbers-angle/src/test/java/org/apache/commons/numbers/angle/AngleTest.java b/commons-numbers-angle/src/test/java/org/apache/commons/numbers/angle/AngleTest.java
index f333f02..f253c71 100644
--- a/commons-numbers-angle/src/test/java/org/apache/commons/numbers/angle/AngleTest.java
+++ b/commons-numbers-angle/src/test/java/org/apache/commons/numbers/angle/AngleTest.java
@@ -37,26 +37,40 @@ class AngleTest {
     }
 
     @Test
-    void testConversionTurns() {
-        final double value = 12.3456;
-        final Angle a = Angle.Turn.of(value);
-        Assertions.assertEquals(value, a.getAsDouble());
+    void testConversions() {
+        final double a = 12.3456;
+        final double tol = 1e-14;
+        Assertions.assertEquals(a, Angle.Turn.of(a).toRad().toDeg().toTurn().getAsDouble(), tol);
+        Assertions.assertEquals(a, Angle.Rad.of(a).toTurn().toDeg().toRad().getAsDouble(), tol);
+        Assertions.assertEquals(a, Angle.Deg.of(a).toTurn().toRad().toDeg().getAsDouble(), tol);
     }
 
     @Test
-    void testConversionRadians() {
-        final double one = 2 * Math.PI;
-        final double value = 12.3456 * one;
-        final Angle a = Angle.Rad.of(value);
-        Assertions.assertEquals(value, a.toRad().getAsDouble());
-    }
+    void testEquals() {
+        final double value = -12.3456789;
+        final double nextValue = Math.nextUp(value);
 
-    @Test
-    void testConversionDegrees() {
-        final double one = 360;
-        final double value = 12.3456 * one;
-        final Angle a = Angle.Deg.of(value);
-        Assertions.assertEquals(value, a.toDeg().getAsDouble());
+        final Angle.Turn asTurn = Angle.Turn.of(value);
+        Assertions.assertEquals(Angle.Turn.of(value), asTurn);
+        Assertions.assertEquals(asTurn, asTurn);
+        Assertions.assertNotEquals(asTurn, Angle.Turn.of(nextValue));
+        Assertions.assertFalse(asTurn.equals(null));
+
+        final Angle.Rad asRad = Angle.Rad.of(value);
+        Assertions.assertEquals(Angle.Rad.of(value), asRad);
+        Assertions.assertEquals(asRad, asRad);
+        Assertions.assertNotEquals(asRad, Angle.Rad.of(nextValue));
+        Assertions.assertFalse(asRad.equals(null));
+
+        final Angle.Deg asDeg = Angle.Deg.of(value);
+        Assertions.assertEquals(Angle.Deg.of(value), asDeg);
+        Assertions.assertEquals(asDeg, asDeg);
+        Assertions.assertNotEquals(asDeg, Angle.Deg.of(nextValue));
+        Assertions.assertFalse(asDeg.equals(null));
+
+        Assertions.assertNotEquals(asDeg, asTurn);
+        Assertions.assertNotEquals(asTurn, asRad);
+        Assertions.assertNotEquals(asRad, asDeg);
     }
 
     @Test
@@ -140,17 +154,6 @@ class AngleTest {
     }
 
     @Test
-    void testEquals() {
-        final double value = 12345.6789;
-        final Angle a = Angle.Rad.of(value);
-        Assertions.assertTrue(a.equals(a));
-        Assertions.assertTrue(a.equals(Angle.Rad.of(value)));
-        Assertions.assertFalse(a.equals(Angle.Rad.of(Math.nextUp(value))));
-        Assertions.assertFalse(a.equals(new Object()));
-        Assertions.assertFalse(a.equals(null));
-    }
-
-    @Test
     void testZero() {
         Assertions.assertEquals(0, Angle.Rad.ZERO.getAsDouble());
     }

[commons-numbers] 01/02: Avoid intermediate object creation.

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 ca82274718ba58cfeb945d95a10ee274f26b2b61
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Fri Jun 4 01:35:57 2021 +0200

    Avoid intermediate object creation.
---
 .../src/main/java/org/apache/commons/numbers/angle/Angle.java         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/commons-numbers-angle/src/main/java/org/apache/commons/numbers/angle/Angle.java b/commons-numbers-angle/src/main/java/org/apache/commons/numbers/angle/Angle.java
index f4afc36..6cd648b 100644
--- a/commons-numbers-angle/src/main/java/org/apache/commons/numbers/angle/Angle.java
+++ b/commons-numbers-angle/src/main/java/org/apache/commons/numbers/angle/Angle.java
@@ -216,7 +216,7 @@ public abstract class Angle implements DoubleSupplier {
         /** {@inheritDoc} */
         @Override
         public Deg toDeg() {
-            return Deg.of(toTurn().getAsDouble() * TURN_TO_DEG);
+            return Deg.of (value / Angle.TWO_PI * TURN_TO_DEG);
         }
 
         /**
@@ -282,7 +282,7 @@ public abstract class Angle implements DoubleSupplier {
         /** {@inheritDoc} */
         @Override
         public Rad toRad() {
-            return Rad.of(toTurn().getAsDouble() * Angle.TWO_PI);
+            return Rad.of(value / TURN_TO_DEG * Angle.TWO_PI);
         }
 
         /** {@inheritDoc} */