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()));
}