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

[commons-numbers] 01/02: Remove ofReal(double) and ofImaginary(double)

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

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

commit 3e630014ff26c49e51ba061f312c8d95bf678cd5
Author: aherbert <ah...@apache.org>
AuthorDate: Thu Dec 12 15:31:11 2019 +0000

    Remove ofReal(double) and ofImaginary(double)
---
 .../apache/commons/numbers/complex/Complex.java    |  48 +++------
 .../commons/numbers/complex/ComplexTest.java       | 108 +++++++++++----------
 2 files changed, 71 insertions(+), 85 deletions(-)

diff --git a/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java b/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
index 2bd8b1d..a817e64 100644
--- a/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
+++ b/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
@@ -138,37 +138,17 @@ public final class Complex implements Serializable  {
     }
 
     /**
-    * Create a complex number given the real and imaginary parts.
-    *
-    * @param real Real part.
-    * @param imaginary Imaginary part.
-    * @return {@code Complex} object
-    */
+     * Create a complex number given the real and imaginary parts.
+     *
+     * @param real Real part.
+     * @param imaginary Imaginary part.
+     * @return {@code Complex} object
+     */
     public static Complex ofCartesian(double real, double imaginary) {
         return new Complex(real, imaginary);
     }
 
     /**
-    * Create a complex number given the real part.
-    *
-    * @param real Real part.
-    * @return {@code Complex} object
-    */
-    public static Complex ofReal(double real) {
-        return new Complex(real, 0);
-    }
-
-    /**
-    * Create a complex number given the imaginary part.
-    *
-    * @param imaginary Imaginary part.
-    * @return {@code Complex} object
-    */
-    public static Complex ofImaginary(double imaginary) {
-        return new Complex(0, imaginary);
-    }
-
-    /**
      * Creates a Complex from its polar representation.
      *
      * <p>If {@code r} is infinite and {@code theta} is finite, infinite or NaN
@@ -386,13 +366,13 @@ public final class Complex implements Serializable  {
      *
      * <p>Note: This method preserves the sign of the imaginary component {@code b} if it is {@code -0.0}.
      * The sign would be lost if adding {@code (c + i 0)} using
-     * {@link #add(Complex) add(Complex.ofReal(addend))} since
+     * {@link #add(Complex) add(Complex.ofCartesian(addend, 0))} since
      * {@code -0.0 + 0.0 = 0.0}.
      *
      * @param addend Value to be added to this {@code Complex}.
      * @return {@code this + addend}.
      * @see #add(Complex)
-     * @see #ofReal(double)
+     * @see #ofCartesian(double, double)
      */
     public Complex add(double addend) {
         return new Complex(real + addend, imaginary);
@@ -411,13 +391,13 @@ public final class Complex implements Serializable  {
      *
      * <p>Note: This method preserves the sign of the real component {@code a} if it is {@code -0.0}.
      * The sign would be lost if adding {@code (0 + i d)} using
-     * {@link #add(Complex) add(Complex.ofImaginary(addend))} since
+     * {@link #add(Complex) add(Complex.ofCartesian(0, addend))} since
      * {@code -0.0 + 0.0 = 0.0}.
      *
      * @param addend Value to be added to this {@code Complex}.
      * @return {@code this + addend}.
      * @see #add(Complex)
-     * @see #ofImaginary(double)
+     * @see #ofCartesian(double, double)
      */
     public Complex addImaginary(double addend) {
         return new Complex(real, imaginary + addend);
@@ -1056,13 +1036,13 @@ public final class Complex implements Serializable  {
      *
      * <p>Note: This method inverts the sign of the imaginary component {@code b} if it is {@code 0.0}.
      * The sign would not be inverted if subtracting from {@code (c + i 0)} using
-     * {@link #subtract(Complex) Complex.ofReal(minuend).subtract(this))} since
+     * {@link #subtract(Complex) Complex.ofCartesian(minuend, 0).subtract(this))} since
      * {@code 0.0 - 0.0 = 0.0}.
      *
      * @param  minuend value this {@code Complex} is to be subtracted from.
      * @return {@code minuend - this}.
      * @see #subtract(Complex)
-     * @see #ofReal(double)
+     * @see #ofCartesian(double, double)
      */
     public Complex subtractFrom(double minuend) {
         return new Complex(minuend - real, -imaginary);
@@ -1081,13 +1061,13 @@ public final class Complex implements Serializable  {
      *
      * <p>Note: This method inverts the sign of the real component {@code a} if it is {@code 0.0}.
      * The sign would not be inverted if subtracting from {@code (0 + i d)} using
-     * {@link #subtract(Complex) Complex.ofImaginary(minuend).subtract(this))} since
+     * {@link #subtract(Complex) Complex.ofCartesian(0, minuend).subtract(this))} since
      * {@code 0.0 - 0.0 = 0.0}.
      *
      * @param  minuend value this {@code Complex} is to be subtracted from.
      * @return {@code this - subtrahend}.
      * @see #subtract(Complex)
-     * @see #ofImaginary(double)
+     * @see #ofCartesian(double, double)
      */
     public Complex subtractFromImaginary(double minuend) {
         return new Complex(-real, minuend - imaginary);
diff --git a/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/ComplexTest.java b/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/ComplexTest.java
index df6c204..72efedd 100644
--- a/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/ComplexTest.java
+++ b/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/ComplexTest.java
@@ -67,25 +67,31 @@ public class ComplexTest {
         FINITE
     }
 
-    @Test
-    public void testCartesianConstructor() {
-        final Complex z = Complex.ofCartesian(3.0, 4.0);
-        Assertions.assertEquals(3.0, z.getReal());
-        Assertions.assertEquals(4.0, z.getImaginary());
+    /**
+    * Create a complex number given the real part.
+    *
+    * @param real Real part.
+    * @return {@code Complex} object
+    */
+    private static Complex ofReal(double real) {
+        return Complex.ofCartesian(real, 0);
     }
 
-    @Test
-    public void testRealConstructor() {
-        final Complex z = Complex.ofReal(3.0);
-        Assertions.assertEquals(3.0, z.getReal());
-        Assertions.assertEquals(0.0, z.getImaginary());
+    /**
+    * Create a complex number given the imaginary part.
+    *
+    * @param imaginary Imaginary part.
+    * @return {@code Complex} object
+    */
+    private static Complex ofImaginary(double imaginary) {
+        return Complex.ofCartesian(0, imaginary);
     }
 
     @Test
-    public void testImaginaryConstructor() {
-        final Complex z = Complex.ofImaginary(3.0);
-        Assertions.assertEquals(0.0, z.getReal());
-        Assertions.assertEquals(3.0, z.getImaginary());
+    public void testCartesianConstructor() {
+        final Complex z = Complex.ofCartesian(3.0, 4.0);
+        Assertions.assertEquals(3.0, z.getReal());
+        Assertions.assertEquals(4.0, z.getImaginary());
     }
 
     @Test
@@ -231,7 +237,7 @@ public class ComplexTest {
         Assertions.assertEquals(8.0, z.getReal());
         Assertions.assertEquals(4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.add(Complex.ofReal(y)));
+        Assertions.assertEquals(z, x.add(ofReal(y)));
     }
 
     @Test
@@ -242,7 +248,7 @@ public class ComplexTest {
         Assertions.assertEquals(nan, z.getReal());
         Assertions.assertEquals(4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.add(Complex.ofReal(y)));
+        Assertions.assertEquals(z, x.add(ofReal(y)));
     }
 
     @Test
@@ -253,7 +259,7 @@ public class ComplexTest {
         Assertions.assertEquals(inf, z.getReal());
         Assertions.assertEquals(4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.add(Complex.ofReal(y)));
+        Assertions.assertEquals(z, x.add(ofReal(y)));
     }
 
     @Test
@@ -264,7 +270,7 @@ public class ComplexTest {
         Assertions.assertEquals(8.0, z.getReal());
         Assertions.assertEquals(-0.0, z.getImaginary(), "Expected sign preservation");
         // Sign-preservation is a problem: -0.0 + 0.0 == 0.0
-        Assertions.assertNotEquals(z, x.add(Complex.ofReal(y)));
+        Assertions.assertNotEquals(z, x.add(ofReal(y)));
     }
 
     @Test
@@ -275,7 +281,7 @@ public class ComplexTest {
         Assertions.assertEquals(3.0, z.getReal());
         Assertions.assertEquals(9.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.add(Complex.ofImaginary(y)));
+        Assertions.assertEquals(z, x.add(ofImaginary(y)));
     }
 
     @Test
@@ -286,7 +292,7 @@ public class ComplexTest {
         Assertions.assertEquals(3.0, z.getReal());
         Assertions.assertEquals(nan, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.add(Complex.ofImaginary(y)));
+        Assertions.assertEquals(z, x.add(ofImaginary(y)));
     }
 
     @Test
@@ -297,7 +303,7 @@ public class ComplexTest {
         Assertions.assertEquals(3.0, z.getReal());
         Assertions.assertEquals(inf, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.add(Complex.ofImaginary(y)));
+        Assertions.assertEquals(z, x.add(ofImaginary(y)));
     }
 
     @Test
@@ -308,7 +314,7 @@ public class ComplexTest {
         Assertions.assertEquals(-0.0, z.getReal());
         Assertions.assertEquals(9.0, z.getImaginary(), "Expected sign preservation");
         // Sign-preservation is a problem: -0.0 + 0.0 == 0.0
-        Assertions.assertNotEquals(z, x.add(Complex.ofImaginary(y)));
+        Assertions.assertNotEquals(z, x.add(ofImaginary(y)));
     }
 
     @Test
@@ -397,7 +403,7 @@ public class ComplexTest {
     public void testScalarDivide() {
         final Complex x = Complex.ofCartesian(3.0, 4.0);
         final double yDouble = 2.0;
-        final Complex yComplex = Complex.ofReal(yDouble);
+        final Complex yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.divide(yComplex), x.divide(yDouble));
     }
 
@@ -405,7 +411,7 @@ public class ComplexTest {
     public void testScalarDivideNaN() {
         final Complex x = Complex.ofCartesian(3.0, 4.0);
         final double yDouble = Double.NaN;
-        final Complex yComplex = Complex.ofReal(yDouble);
+        final Complex yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.divide(yComplex), x.divide(yDouble));
     }
 
@@ -480,10 +486,10 @@ public class ComplexTest {
     public void testScalarMultiply() {
         final Complex x = Complex.ofCartesian(3.0, 4.0);
         final double yDouble = 2.0;
-        final Complex yComplex = Complex.ofReal(yDouble);
+        final Complex yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.multiply(yComplex), x.multiply(yDouble));
         final int zInt = -5;
-        final Complex zComplex = Complex.ofReal(zInt);
+        final Complex zComplex = ofReal(zInt);
         Assertions.assertEquals(x.multiply(zComplex), x.multiply(zInt));
     }
 
@@ -491,7 +497,7 @@ public class ComplexTest {
     public void testScalarMultiplyNaN() {
         final Complex x = Complex.ofCartesian(3.0, 4.0);
         final double yDouble = Double.NaN;
-        final Complex yComplex = Complex.ofReal(yDouble);
+        final Complex yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.multiply(yComplex), x.multiply(yDouble));
     }
 
@@ -499,11 +505,11 @@ public class ComplexTest {
     public void testScalarMultiplyInf() {
         final Complex x = Complex.ofCartesian(1, 1);
         double yDouble = Double.POSITIVE_INFINITY;
-        Complex yComplex = Complex.ofReal(yDouble);
+        Complex yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.multiply(yComplex), x.multiply(yDouble));
 
         yDouble = Double.NEGATIVE_INFINITY;
-        yComplex = Complex.ofReal(yDouble);
+        yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.multiply(yComplex), x.multiply(yDouble));
     }
 
@@ -551,7 +557,7 @@ public class ComplexTest {
         Assertions.assertEquals(-2.0, z.getReal());
         Assertions.assertEquals(4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.subtract(Complex.ofReal(y)));
+        Assertions.assertEquals(z, x.subtract(ofReal(y)));
     }
 
     @Test
@@ -562,7 +568,7 @@ public class ComplexTest {
         Assertions.assertEquals(nan, z.getReal());
         Assertions.assertEquals(4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.subtract(Complex.ofReal(y)));
+        Assertions.assertEquals(z, x.subtract(ofReal(y)));
     }
 
     @Test
@@ -573,7 +579,7 @@ public class ComplexTest {
         Assertions.assertEquals(-inf, z.getReal());
         Assertions.assertEquals(4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.subtract(Complex.ofReal(y)));
+        Assertions.assertEquals(z, x.subtract(ofReal(y)));
     }
 
     @Test
@@ -585,7 +591,7 @@ public class ComplexTest {
         Assertions.assertEquals(-0.0, z.getImaginary());
         // Equivalent
         // Sign-preservation is not a problem: -0.0 - 0.0 == -0.0
-        Assertions.assertEquals(z, x.subtract(Complex.ofReal(y)));
+        Assertions.assertEquals(z, x.subtract(ofReal(y)));
     }
 
     @Test
@@ -596,7 +602,7 @@ public class ComplexTest {
         Assertions.assertEquals(3.0, z.getReal());
         Assertions.assertEquals(-1.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.subtract(Complex.ofImaginary(y)));
+        Assertions.assertEquals(z, x.subtract(ofImaginary(y)));
     }
 
     @Test
@@ -607,7 +613,7 @@ public class ComplexTest {
         Assertions.assertEquals(3.0, z.getReal());
         Assertions.assertEquals(nan, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.subtract(Complex.ofImaginary(y)));
+        Assertions.assertEquals(z, x.subtract(ofImaginary(y)));
     }
 
     @Test
@@ -618,7 +624,7 @@ public class ComplexTest {
         Assertions.assertEquals(3.0, z.getReal());
         Assertions.assertEquals(-inf, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, x.subtract(Complex.ofImaginary(y)));
+        Assertions.assertEquals(z, x.subtract(ofImaginary(y)));
     }
 
     @Test
@@ -630,7 +636,7 @@ public class ComplexTest {
         Assertions.assertEquals(-1.0, z.getImaginary());
         // Equivalent
         // Sign-preservation is not a problem: -0.0 - 0.0 == -0.0
-        Assertions.assertEquals(z, x.subtract(Complex.ofImaginary(y)));
+        Assertions.assertEquals(z, x.subtract(ofImaginary(y)));
     }
 
     @Test
@@ -641,7 +647,7 @@ public class ComplexTest {
         Assertions.assertEquals(2.0, z.getReal());
         Assertions.assertEquals(-4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, Complex.ofReal(y).subtract(x));
+        Assertions.assertEquals(z, ofReal(y).subtract(x));
     }
 
     @Test
@@ -652,7 +658,7 @@ public class ComplexTest {
         Assertions.assertEquals(nan, z.getReal());
         Assertions.assertEquals(-4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, Complex.ofReal(y).subtract(x));
+        Assertions.assertEquals(z, ofReal(y).subtract(x));
     }
 
     @Test
@@ -663,7 +669,7 @@ public class ComplexTest {
         Assertions.assertEquals(inf, z.getReal());
         Assertions.assertEquals(-4.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, Complex.ofReal(y).subtract(x));
+        Assertions.assertEquals(z, ofReal(y).subtract(x));
     }
 
     @Test
@@ -674,7 +680,7 @@ public class ComplexTest {
         Assertions.assertEquals(2.0, z.getReal());
         Assertions.assertEquals(-0.0, z.getImaginary(), "Expected sign inversion");
         // Sign-inversion is a problem: 0.0 - 0.0 == 0.0
-        Assertions.assertNotEquals(z, Complex.ofReal(y).subtract(x));
+        Assertions.assertNotEquals(z, ofReal(y).subtract(x));
     }
 
     @Test
@@ -685,7 +691,7 @@ public class ComplexTest {
         Assertions.assertEquals(-3.0, z.getReal());
         Assertions.assertEquals(1.0, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, Complex.ofImaginary(y).subtract(x));
+        Assertions.assertEquals(z, ofImaginary(y).subtract(x));
     }
 
     @Test
@@ -696,7 +702,7 @@ public class ComplexTest {
         Assertions.assertEquals(-3.0, z.getReal());
         Assertions.assertEquals(nan, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, Complex.ofImaginary(y).subtract(x));
+        Assertions.assertEquals(z, ofImaginary(y).subtract(x));
     }
 
     @Test
@@ -707,7 +713,7 @@ public class ComplexTest {
         Assertions.assertEquals(-3.0, z.getReal());
         Assertions.assertEquals(inf, z.getImaginary());
         // Equivalent
-        Assertions.assertEquals(z, Complex.ofImaginary(y).subtract(x));
+        Assertions.assertEquals(z, ofImaginary(y).subtract(x));
     }
 
     @Test
@@ -718,7 +724,7 @@ public class ComplexTest {
         Assertions.assertEquals(-0.0, z.getReal(), "Expected sign inversion");
         Assertions.assertEquals(1.0, z.getImaginary());
         // Sign-inversion is a problem: 0.0 - 0.0 == 0.0
-        Assertions.assertNotEquals(z, Complex.ofImaginary(y).subtract(x));
+        Assertions.assertNotEquals(z, ofImaginary(y).subtract(x));
     }
 
     @Test
@@ -1083,7 +1089,7 @@ public class ComplexTest {
     public void testPow() {
         final Complex x = Complex.ofCartesian(3, 4);
         final double yDouble = 5.0;
-        final Complex yComplex = Complex.ofReal(yDouble);
+        final Complex yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.pow(yComplex), x.pow(yDouble));
     }
 
@@ -1139,7 +1145,7 @@ public class ComplexTest {
     public void testPowNanBase() {
         final Complex x = NAN;
         final double yDouble = 5.0;
-        final Complex yComplex = Complex.ofReal(yDouble);
+        final Complex yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.pow(yComplex), x.pow(yDouble));
     }
 
@@ -1147,7 +1153,7 @@ public class ComplexTest {
     public void testPowNanExponent() {
         final Complex x = Complex.ofCartesian(3, 4);
         final double yDouble = Double.NaN;
-        final Complex yComplex = Complex.ofReal(yDouble);
+        final Complex yComplex = ofReal(yDouble);
         Assertions.assertEquals(x.pow(yComplex), x.pow(yDouble));
     }
 
@@ -1352,7 +1358,7 @@ public class ComplexTest {
     @Test
     public void testNthRootNan() {
         final int n = 3;
-        final Complex z = Complex.ofReal(Double.NaN);
+        final Complex z = ofReal(Double.NaN);
         final List<Complex> r = z.nthRoot(n);
         Assertions.assertEquals(n, r.size());
         for (final Complex c : r) {
@@ -1363,7 +1369,7 @@ public class ComplexTest {
     @Test
     public void testNthRootInf() {
         final int n = 3;
-        final Complex z = Complex.ofReal(Double.NEGATIVE_INFINITY);
+        final Complex z = ofReal(Double.NEGATIVE_INFINITY);
         final List<Complex> r = z.nthRoot(n);
         Assertions.assertEquals(n, r.size());
     }
@@ -1438,7 +1444,7 @@ public class ComplexTest {
         Assertions.assertEquals(NAN, Complex.parse(NAN.toString()));
         Assertions.assertEquals(oneInf, Complex.parse(oneInf.toString()));
         Assertions.assertEquals(negInfZero, Complex.parse(negInfZero.toString()));
-        Assertions.assertEquals(Complex.ofReal(pi), Complex.parse(Complex.ofReal(pi).toString()));
+        Assertions.assertEquals(Complex.ofCartesian(0.0, pi), Complex.parse(Complex.ofCartesian(0.0, pi).toString()));
         Assertions.assertEquals(Complex.ofPolar(2, pi), Complex.parse(Complex.ofPolar(2, pi).toString()));
         Assertions.assertEquals(Complex.ofCis(pi), Complex.parse(Complex.ofCis(pi).toString()));
     }