NUMBERS-53: Fixes to test classes. Waiting on decision about TestComplex
class.
diff --git a/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/CStandardTest.java b/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/CStandardTest.java
index 861da5a..e7a595e 100644
--- a/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/CStandardTest.java
+++ b/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/CStandardTest.java
@@ -18,9 +18,7 @@
package org.apache.commons.numbers.complex;
import org.apache.commons.numbers.complex.Complex;
-import org.apache.commons.numbers.complex.ComplexUtils;
import org.junit.Assert;
-import org.junit.Ignore;
import org.junit.Test;
public class CStandardTest {
@@ -28,49 +26,44 @@
private static final double inf = Double.POSITIVE_INFINITY;
private static final double negInf = Double.NEGATIVE_INFINITY;
private static final double nan = Double.NaN;
- private static final double pi = Math.PI;
private static final double piOverFour = Math.PI / 4.0;
private static final double piOverTwo = Math.PI / 2.0;
private static final double threePiOverFour = 3.0*Math.PI/4.0;
- private static final Complex oneOne = new Complex(1, 1);
- private static final Complex oneZero = new Complex(1, 0);
- private static final Complex oneInf = new Complex(1, inf);
- private static final Complex oneNegInf = new Complex(1, negInf);
- private static final Complex oneNaN = new Complex(1, nan);
- private static final Complex zeroInf = new Complex(0, inf);
- private static final Complex zeroNegInf = new Complex(0,negInf);
- private static final Complex zeroNaN = new Complex(0, nan);
- private static final Complex zeroPiTwo = new Complex(0.0, piOverTwo);
- private static final Complex negZeroZero = new Complex(-0.0, 0);
- private static final Complex negZeroNan = new Complex(-0.0, nan);
- private static final Complex negI = new Complex(0.0, -1.0);
- private static final Complex infOne = new Complex(inf, 1);
- private static final Complex infZero = new Complex(inf, 0);
- private static final Complex infNaN = new Complex(inf, nan);
- private static final Complex infNegInf = new Complex(inf, negInf);
- private static final Complex infInf = new Complex(inf, inf);
- private static final Complex infPiTwo = new Complex(inf, piOverTwo);
- private static final Complex infPiFour = new Complex(inf, piOverFour);
- private static final Complex infPi = new Complex(inf, Math.PI);
- private static final Complex negInfInf = new Complex(negInf, inf);
- private static final Complex negInfZero = new Complex(negInf, 0);
- private static final Complex negInfOne = new Complex(negInf, 1);
- private static final Complex negInfNaN = new Complex(negInf, nan);
- private static final Complex negInfNegInf = new Complex(negInf, negInf);
- private static final Complex negInfPosInf = new Complex(negInf, inf);
- private static final Complex negInfPi = new Complex(negInf, Math.PI);
- private static final Complex nanInf = new Complex(nan, inf);
- private static final Complex nanNegInf = new Complex(nan, negInf);
- private static final Complex nanZero = new Complex(nan, 0);
- private static final Complex nanOne = new Complex(nan, 1);
- private static final Complex piTwoNaN = new Complex(piOverTwo, nan);
- private static final Complex piNegInf = new Complex(Math.PI, negInf);
- private static final Complex piTwoNegInf = new Complex(piOverTwo, negInf);
- private static final Complex piTwoNegZero = new Complex(piOverTwo, -0.0);
- private static final Complex threePiFourNegInf = new Complex(threePiOverFour,negInf);
- private static final Complex piFourNegInf = new Complex(piOverFour, negInf);
- private static final Complex NAN = new Complex(nan, nan);
-
+ private static final Complex oneOne = Complex.ofCartesian(1, 1);
+ private static final Complex oneZero = Complex.ofCartesian(1, 0);
+ private static final Complex oneInf = Complex.ofCartesian(1, inf);
+ private static final Complex oneNaN = Complex.ofCartesian(1, nan);
+ private static final Complex zeroInf = Complex.ofCartesian(0, inf);
+ private static final Complex zeroNegInf = Complex.ofCartesian(0,negInf);
+ private static final Complex zeroNaN = Complex.ofCartesian(0, nan);
+ private static final Complex zeroPiTwo = Complex.ofCartesian(0.0, piOverTwo);
+ private static final Complex negZeroZero = Complex.ofCartesian(-0.0, 0);
+ private static final Complex negI = Complex.ofCartesian(0.0, -1.0);
+ private static final Complex infOne = Complex.ofCartesian(inf, 1);
+ private static final Complex infZero = Complex.ofCartesian(inf, 0);
+ private static final Complex infNaN = Complex.ofCartesian(inf, nan);
+ private static final Complex infInf = Complex.ofCartesian(inf, inf);
+ private static final Complex infPiTwo = Complex.ofCartesian(inf, piOverTwo);
+ private static final Complex infPiFour = Complex.ofCartesian(inf, piOverFour);
+ private static final Complex infPi = Complex.ofCartesian(inf, Math.PI);
+ private static final Complex negInfInf = Complex.ofCartesian(negInf, inf);
+ private static final Complex negInfZero = Complex.ofCartesian(negInf, 0);
+ private static final Complex negInfOne = Complex.ofCartesian(negInf, 1);
+ private static final Complex negInfNaN = Complex.ofCartesian(negInf, nan);
+ private static final Complex negInfPosInf = Complex.ofCartesian(negInf, inf);
+ private static final Complex negInfPi = Complex.ofCartesian(negInf, Math.PI);
+ private static final Complex nanInf = Complex.ofCartesian(nan, inf);
+ private static final Complex nanNegInf = Complex.ofCartesian(nan, negInf);
+ private static final Complex nanZero = Complex.ofCartesian(nan, 0);
+ private static final Complex nanOne = Complex.ofCartesian(nan, 1);
+ private static final Complex piTwoNaN = Complex.ofCartesian(piOverTwo, nan);
+ private static final Complex piNegInf = Complex.ofCartesian(Math.PI, negInf);
+ private static final Complex piTwoNegInf = Complex.ofCartesian(piOverTwo, negInf);
+ private static final Complex piTwoNegZero = Complex.ofCartesian(piOverTwo, -0.0);
+ private static final Complex threePiFourNegInf = Complex.ofCartesian(threePiOverFour,negInf);
+ private static final Complex piFourNegInf = Complex.ofCartesian(piOverFour, negInf);
+ private static final Complex NAN = Complex.ofCartesian(nan, nan);
+
public void assertComplex(Complex c1, Complex c2, double realTol, double imagTol) {
Assert.assertEquals(c1.getReal(), c2.getReal(), realTol);
Assert.assertEquals(c1.getImaginary(), c2.getImaginary(), imagTol);
@@ -87,18 +80,18 @@
*/
@Test
public void testSqrt1() {
- Complex z1 = new Complex(-2.0, 0.0);
- Complex z2 = new Complex(0.0, Math.sqrt(2));
+ Complex z1 = Complex.ofCartesian(-2.0, 0.0);
+ Complex z2 = Complex.ofCartesian(0.0, Math.sqrt(2));
assertComplex(z1.sqrt(), z2);
- z1 = new Complex(-2.0, -0.0);
- z2 = new Complex(0.0, -Math.sqrt(2));
+ z1 = Complex.ofCartesian(-2.0, -0.0);
+ z2 = Complex.ofCartesian(0.0, -Math.sqrt(2));
assertComplex(z1.sqrt(), z2);
}
@Test
public void testImplicitTrig() {
- Complex z1 = new Complex(3.0);
- Complex z2 = new Complex(0.0, 3.0);
+ Complex z1 = Complex.ofCartesian(3.0);
+ Complex z2 = Complex.ofCartesian(0.0, 3.0);
assertComplex(z1.asin(), negI.multiply(z2.asinh()));
assertComplex(z1.atan(), negI.multiply(z2.atanh()), Math.ulp(1), Math.ulp(1));
assertComplex(z1.cos(), z2.cosh());
@@ -252,7 +245,7 @@
@Test
public void testLog() {
assertComplex(oneOne.log().conj(), oneOne.conj().log());
- assertComplex(negZeroZero.log(), negInfPi);
+ assertComplex(negZeroZero.log(), negInfPi);
assertComplex(Complex.ZERO.log(), negInfZero);
assertComplex(oneInf.log(), infPiTwo);
assertComplex(oneNaN.log(), NAN);
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 80b433d..e147fe0 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
@@ -34,62 +34,62 @@
private static final double neginf = Double.NEGATIVE_INFINITY;
private static final double nan = Double.NaN;
private static final double pi = Math.PI;
- private static final Complex oneInf = new Complex(1, inf);
- private static final Complex oneNegInf = new Complex(1, neginf);
- private static final Complex infOne = new Complex(inf, 1);
- private static final Complex infZero = new Complex(inf, 0);
- private static final Complex infNaN = new Complex(inf, nan);
- private static final Complex infNegInf = new Complex(inf, neginf);
- private static final Complex infInf = new Complex(inf, inf);
- private static final Complex negInfInf = new Complex(neginf, inf);
- private static final Complex negInfZero = new Complex(neginf, 0);
- private static final Complex negInfOne = new Complex(neginf, 1);
- private static final Complex negInfNaN = new Complex(neginf, nan);
- private static final Complex negInfNegInf = new Complex(neginf, neginf);
- private static final Complex oneNaN = new Complex(1, nan);
- private static final Complex zeroInf = new Complex(0, inf);
- private static final Complex zeroNaN = new Complex(0, nan);
- private static final Complex nanInf = new Complex(nan, inf);
- private static final Complex nanNegInf = new Complex(nan, neginf);
- private static final Complex nanZero = new Complex(nan, 0);
- private static final Complex NAN = new Complex(nan, nan);
+ private static final Complex oneInf = Complex.ofCartesian(1, inf);
+ private static final Complex oneNegInf = Complex.ofCartesian(1, neginf);
+ private static final Complex infOne = Complex.ofCartesian(inf, 1);
+ private static final Complex infZero = Complex.ofCartesian(inf, 0);
+ private static final Complex infNaN = Complex.ofCartesian(inf, nan);
+ private static final Complex infNegInf = Complex.ofCartesian(inf, neginf);
+ private static final Complex infInf = Complex.ofCartesian(inf, inf);
+ private static final Complex negInfInf = Complex.ofCartesian(neginf, inf);
+ private static final Complex negInfZero = Complex.ofCartesian(neginf, 0);
+ private static final Complex negInfOne = Complex.ofCartesian(neginf, 1);
+ private static final Complex negInfNaN = Complex.ofCartesian(neginf, nan);
+ private static final Complex negInfNegInf = Complex.ofCartesian(neginf, neginf);
+ private static final Complex oneNaN = Complex.ofCartesian(1, nan);
+ private static final Complex zeroInf = Complex.ofCartesian(0, inf);
+ private static final Complex zeroNaN = Complex.ofCartesian(0, nan);
+ private static final Complex nanInf = Complex.ofCartesian(nan, inf);
+ private static final Complex nanNegInf = Complex.ofCartesian(nan, neginf);
+ private static final Complex nanZero = Complex.ofCartesian(nan, 0);
+ private static final Complex NAN = Complex.ofCartesian(nan, nan);
@Test
public void testConstructor() {
- Complex z = new Complex(3.0, 4.0);
+ Complex z = Complex.ofCartesian(3.0, 4.0);
Assert.assertEquals(3.0, z.getReal(), 1.0e-5);
Assert.assertEquals(4.0, z.getImaginary(), 1.0e-5);
}
@Test
public void testConstructorNaN() {
- Complex z = new Complex(3.0, Double.NaN);
+ Complex z = Complex.ofCartesian(3.0, Double.NaN);
Assert.assertTrue(z.isNaN());
- z = new Complex(nan, 4.0);
+ z = Complex.ofCartesian(nan, 4.0);
Assert.assertTrue(z.isNaN());
- z = new Complex(3.0, 4.0);
+ z = Complex.ofCartesian(3.0, 4.0);
Assert.assertFalse(z.isNaN());
}
@Test
public void testAbs() {
- Complex z = new Complex(3.0, 4.0);
+ Complex z = Complex.ofCartesian(3.0, 4.0);
Assert.assertEquals(5.0, z.abs(), 1.0e-5);
}
@Test
public void testAbsNaN() {
Assert.assertTrue(Double.isNaN(NAN.abs()));
- Complex z = new Complex(inf, nan);
+ Complex z = Complex.ofCartesian(inf, nan);
Assert.assertTrue(Double.isNaN(z.abs()));
}
@Test
public void testAdd() {
- Complex x = new Complex(3.0, 4.0);
- Complex y = new Complex(5.0, 6.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
+ Complex y = Complex.ofCartesian(5.0, 6.0);
Complex z = x.add(y);
Assert.assertEquals(8.0, z.getReal(), 1.0e-5);
Assert.assertEquals(10.0, z.getImaginary(), 1.0e-5);
@@ -97,48 +97,48 @@
@Test
public void testAddInf() {
- Complex x = new Complex(1, 1);
- Complex z = new Complex(inf, 0);
+ Complex x = Complex.ofCartesian(1, 1);
+ Complex z = Complex.ofCartesian(inf, 0);
Complex w = x.add(z);
Assert.assertEquals(w.getImaginary(), 1, 0);
Assert.assertEquals(inf, w.getReal(), 0);
- x = new Complex(neginf, 0);
+ x = Complex.ofCartesian(neginf, 0);
Assert.assertTrue(Double.isNaN(x.add(z).getReal()));
}
@Test
public void testScalarAdd() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
double yDouble = 2.0;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.add(yComplex), x.add(yDouble));
}
@Test
public void testScalarAddNaN() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
double yDouble = Double.NaN;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.add(yComplex), x.add(yDouble));
}
@Test
public void testScalarAddInf() {
- Complex x = new Complex(1, 1);
+ Complex x = Complex.ofCartesian(1, 1);
double yDouble = Double.POSITIVE_INFINITY;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.add(yComplex), x.add(yDouble));
- x = new Complex(neginf, 0);
+ x = Complex.ofCartesian(neginf, 0);
Assert.assertEquals(x.add(yComplex), x.add(yDouble));
}
@Test
public void testConjugate() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
Complex z = x.conjugate();
Assert.assertEquals(3.0, z.getReal(), 1.0e-5);
Assert.assertEquals(-4.0, z.getImaginary(), 1.0e-5);
@@ -152,16 +152,16 @@
@Test
public void testConjugateInfiinite() {
- Complex z = new Complex(0, inf);
+ Complex z = Complex.ofCartesian(0, inf);
Assert.assertEquals(neginf, z.conjugate().getImaginary(), 0);
- z = new Complex(0, neginf);
+ z = Complex.ofCartesian(0, neginf);
Assert.assertEquals(inf, z.conjugate().getImaginary(), 0);
}
@Test
public void testDivide() {
- Complex x = new Complex(3.0, 4.0);
- Complex y = new Complex(5.0, 6.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
+ Complex y = Complex.ofCartesian(5.0, 6.0);
Complex z = x.divide(y);
Assert.assertEquals(39.0 / 61.0, z.getReal(), 1.0e-5);
Assert.assertEquals(2.0 / 61.0, z.getImaginary(), 1.0e-5);
@@ -169,22 +169,22 @@
@Test
public void testDivideReal() {
- Complex x = new Complex(2d, 3d);
- Complex y = new Complex(2d, 0d);
- Assert.assertEquals(new Complex(1d, 1.5), x.divide(y));
+ Complex x = Complex.ofCartesian(2d, 3d);
+ Complex y = Complex.ofCartesian(2d, 0d);
+ Assert.assertEquals(Complex.ofCartesian(1d, 1.5), x.divide(y));
}
@Test
public void testDivideImaginary() {
- Complex x = new Complex(2d, 3d);
- Complex y = new Complex(0d, 2d);
- Assert.assertEquals(new Complex(1.5d, -1d), x.divide(y));
+ Complex x = Complex.ofCartesian(2d, 3d);
+ Complex y = Complex.ofCartesian(0d, 2d);
+ Assert.assertEquals(Complex.ofCartesian(1.5d, -1d), x.divide(y));
}
@Test
public void testDivideZero() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
Complex z = x.divide(Complex.ZERO);
// Assert.assertEquals(z, Complex.INF); // See MATH-657
Assert.assertEquals(z, NAN);
@@ -192,14 +192,14 @@
@Test
public void testDivideZeroZero() {
- Complex x = new Complex(0.0, 0.0);
+ Complex x = Complex.ofCartesian(0.0, 0.0);
Complex z = x.divide(Complex.ZERO);
Assert.assertEquals(z, NAN);
}
@Test
public void testDivideNaN() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
Complex z = x.divide(NAN);
Assert.assertTrue(z.isNaN());
}
@@ -221,29 +221,29 @@
@Test
public void testScalarDivide() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
double yDouble = 2.0;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.divide(yComplex), x.divide(yDouble));
}
@Test
public void testScalarDivideNaN() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
double yDouble = Double.NaN;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.divide(yComplex), x.divide(yDouble));
}
@Test
public void testScalarDivideZero() {
- Complex x = new Complex(1,1);
+ Complex x = Complex.ofCartesian(1,1);
TestUtils.assertEquals(x.divide(Complex.ZERO), x.divide(0), 0);
}
@Test
public void testReciprocal() {
- Complex z = new Complex(5.0, 6.0);
+ Complex z = Complex.ofCartesian(5.0, 6.0);
Complex act = z.reciprocal();
double expRe = 5.0 / 61.0;
double expIm = -6.0 / 61.0;
@@ -253,7 +253,7 @@
@Test
public void testReciprocalReciprocal() {
- Complex z = new Complex(5.0, 6.0);
+ Complex z = Complex.ofCartesian(5.0, 6.0);
Complex zRR = z.reciprocal().reciprocal();
final double tol = 1e-14;
Assert.assertEquals(zRR.getReal(), z.getReal(), tol);
@@ -262,14 +262,14 @@
@Test
public void testReciprocalReal() {
- Complex z = new Complex(-2.0, 0.0);
- Assert.assertTrue(Complex.equals(new Complex(-0.5, 0.0), z.reciprocal()));
+ Complex z = Complex.ofCartesian(-2.0, 0.0);
+ Assert.assertTrue(Complex.equals(Complex.ofCartesian(-0.5, 0.0), z.reciprocal()));
}
@Test
public void testReciprocalImaginary() {
- Complex z = new Complex(0.0, -2.0);
- Assert.assertEquals(new Complex(0.0, 0.5), z.reciprocal());
+ Complex z = Complex.ofCartesian(0.0, -2.0);
+ Assert.assertEquals(Complex.ofCartesian(0.0, 0.5), z.reciprocal());
}
@Test
@@ -279,8 +279,8 @@
@Test
public void testMultiply() {
- Complex x = new Complex(3.0, 4.0);
- Complex y = new Complex(5.0, 6.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
+ Complex y = Complex.ofCartesian(5.0, 6.0);
Complex z = x.multiply(y);
Assert.assertEquals(-9.0, z.getReal(), 1.0e-5);
Assert.assertEquals(38.0, z.getImaginary(), 1.0e-5);
@@ -294,38 +294,38 @@
@Test
public void testScalarMultiply() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
double yDouble = 2.0;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.multiply(yComplex), x.multiply(yDouble));
int zInt = -5;
- Complex zComplex = new Complex(zInt);
+ Complex zComplex = Complex.ofCartesian(zInt);
Assert.assertEquals(x.multiply(zComplex), x.multiply(zInt));
}
@Test
public void testScalarMultiplyNaN() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
double yDouble = Double.NaN;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.multiply(yComplex), x.multiply(yDouble));
}
@Test
public void testScalarMultiplyInf() {
- Complex x = new Complex(1, 1);
+ Complex x = Complex.ofCartesian(1, 1);
double yDouble = Double.POSITIVE_INFINITY;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.multiply(yComplex), x.multiply(yDouble));
yDouble = Double.NEGATIVE_INFINITY;
- yComplex = new Complex(yDouble);
+ yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.multiply(yComplex), x.multiply(yDouble));
}
@Test
public void testNegate() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
Complex z = x.negate();
Assert.assertEquals(-3.0, z.getReal(), 1.0e-5);
Assert.assertEquals(-4.0, z.getImaginary(), 1.0e-5);
@@ -339,8 +339,8 @@
@Test
public void testSubtract() {
- Complex x = new Complex(3.0, 4.0);
- Complex y = new Complex(5.0, 6.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
+ Complex y = Complex.ofCartesian(5.0, 6.0);
Complex z = x.subtract(y);
Assert.assertEquals(-2.0, z.getReal(), 1.0e-5);
Assert.assertEquals(-2.0, z.getImaginary(), 1.0e-5);
@@ -348,68 +348,68 @@
@Test
public void testSubtractInf() {
- Complex x = new Complex(1, 1);
- Complex z = new Complex(neginf, 0);
+ Complex x = Complex.ofCartesian(1, 1);
+ Complex z = Complex.ofCartesian(neginf, 0);
Complex w = x.subtract(z);
Assert.assertEquals(w.getImaginary(), 1, 0);
Assert.assertEquals(inf, w.getReal(), 0);
- x = new Complex(neginf, 0);
+ x = Complex.ofCartesian(neginf, 0);
Assert.assertTrue(Double.isNaN(x.subtract(z).getReal()));
}
@Test
public void testScalarSubtract() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
double yDouble = 2.0;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.subtract(yComplex), x.subtract(yDouble));
}
@Test
public void testScalarSubtractNaN() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
double yDouble = Double.NaN;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.subtract(yComplex), x.subtract(yDouble));
}
@Test
public void testScalarSubtractInf() {
- Complex x = new Complex(1, 1);
+ Complex x = Complex.ofCartesian(1, 1);
double yDouble = Double.POSITIVE_INFINITY;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.subtract(yComplex), x.subtract(yDouble));
- x = new Complex(neginf, 0);
+ x = Complex.ofCartesian(neginf, 0);
Assert.assertEquals(x.subtract(yComplex), x.subtract(yDouble));
}
@Test
public void testEqualsNull() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
Assert.assertFalse(x.equals(null));
}
@Test(expected=NullPointerException.class)
public void testFloatingPointEqualsPrecondition1() {
- Complex.equals(new Complex(3.0, 4.0), null, 3);
+ Complex.equals(Complex.ofCartesian(3.0, 4.0), null, 3);
}
@Test(expected=NullPointerException.class)
public void testFloatingPointEqualsPrecondition2() {
- Complex.equals(null, new Complex(3.0, 4.0), 3);
+ Complex.equals(null, Complex.ofCartesian(3.0, 4.0), 3);
}
@Test
public void testEqualsClass() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
Assert.assertFalse(x.equals(this));
}
@Test
public void testEqualsSame() {
- Complex x = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
Assert.assertTrue(x.equals(x));
}
@@ -418,8 +418,8 @@
double re = -3.21;
double im = 456789e10;
- final Complex x = new Complex(re, im);
- Complex y = new Complex(re, im);
+ final Complex x = Complex.ofCartesian(re, im);
+ Complex y = Complex.ofCartesian(re, im);
Assert.assertTrue(x.equals(y));
Assert.assertTrue(Complex.equals(x, y));
@@ -429,21 +429,21 @@
re = Math.nextUp(re);
im = Math.nextUp(im);
}
- y = new Complex(re, im);
+ y = Complex.ofCartesian(re, im);
Assert.assertTrue(Complex.equals(x, y, maxUlps));
re = Math.nextUp(re);
im = Math.nextUp(im);
- y = new Complex(re, im);
+ y = Complex.ofCartesian(re, im);
Assert.assertFalse(Complex.equals(x, y, maxUlps));
}
@Test
public void testFloatingPointEqualsNaN() {
- Complex c = new Complex(Double.NaN, 1);
+ Complex c = Complex.ofCartesian(Double.NaN, 1);
Assert.assertFalse(Complex.equals(c, c));
- c = new Complex(1, Double.NaN);
+ c = Complex.ofCartesian(1, Double.NaN);
Assert.assertFalse(Complex.equals(c, c));
}
@@ -452,8 +452,8 @@
final double re = 153.0000;
final double im = 152.9375;
final double tol1 = 0.0625;
- final Complex x = new Complex(re, im);
- final Complex y = new Complex(re + tol1, im + tol1);
+ final Complex x = Complex.ofCartesian(re, im);
+ final Complex y = Complex.ofCartesian(re + tol1, im + tol1);
Assert.assertTrue(Complex.equals(x, y, tol1));
final double tol2 = 0.0624;
@@ -462,8 +462,8 @@
@Test
public void testFloatingPointEqualsWithAllowedDeltaNaN() {
- final Complex x = new Complex(0, Double.NaN);
- final Complex y = new Complex(Double.NaN, 0);
+ final Complex x = Complex.ofCartesian(0, Double.NaN);
+ final Complex y = Complex.ofCartesian(Double.NaN, 0);
Assert.assertFalse(Complex.equals(x, Complex.ZERO, 0.1));
Assert.assertFalse(Complex.equals(x, x, 0.1));
Assert.assertFalse(Complex.equals(x, y, 0.1));
@@ -476,15 +476,15 @@
final double im = 1e10;
final double f = 1 + tol;
- final Complex x = new Complex(re, im);
- final Complex y = new Complex(re * f, im * f);
+ final Complex x = Complex.ofCartesian(re, im);
+ final Complex y = Complex.ofCartesian(re * f, im * f);
Assert.assertTrue(Complex.equalsWithRelativeTolerance(x, y, tol));
}
@Test
public void testFloatingPointEqualsWithRelativeToleranceNaN() {
- final Complex x = new Complex(0, Double.NaN);
- final Complex y = new Complex(Double.NaN, 0);
+ final Complex x = Complex.ofCartesian(0, Double.NaN);
+ final Complex y = Complex.ofCartesian(Double.NaN, 0);
Assert.assertFalse(Complex.equalsWithRelativeTolerance(x, Complex.ZERO, 0.1));
Assert.assertFalse(Complex.equalsWithRelativeTolerance(x, x, 0.1));
Assert.assertFalse(Complex.equalsWithRelativeTolerance(x, y, 0.1));
@@ -492,34 +492,34 @@
@Test
public void testEqualsTrue() {
- Complex x = new Complex(3.0, 4.0);
- Complex y = new Complex(3.0, 4.0);
+ Complex x = Complex.ofCartesian(3.0, 4.0);
+ Complex y = Complex.ofCartesian(3.0, 4.0);
Assert.assertTrue(x.equals(y));
}
@Test
public void testEqualsRealDifference() {
- Complex x = new Complex(0.0, 0.0);
- Complex y = new Complex(0.0 + Double.MIN_VALUE, 0.0);
+ Complex x = Complex.ofCartesian(0.0, 0.0);
+ Complex y = Complex.ofCartesian(0.0 + Double.MIN_VALUE, 0.0);
Assert.assertFalse(x.equals(y));
}
@Test
public void testEqualsImaginaryDifference() {
- Complex x = new Complex(0.0, 0.0);
- Complex y = new Complex(0.0, 0.0 + Double.MIN_VALUE);
+ Complex x = Complex.ofCartesian(0.0, 0.0);
+ Complex y = Complex.ofCartesian(0.0, 0.0 + Double.MIN_VALUE);
Assert.assertFalse(x.equals(y));
}
@Test
public void testHashCode() {
- Complex x = new Complex(0.0, 0.0);
- Complex y = new Complex(0.0, 0.0 + Double.MIN_VALUE);
+ Complex x = Complex.ofCartesian(0.0, 0.0);
+ Complex y = Complex.ofCartesian(0.0, 0.0 + Double.MIN_VALUE);
Assert.assertFalse(x.hashCode()==y.hashCode());
- y = new Complex(0.0 + Double.MIN_VALUE, 0.0);
+ y = Complex.ofCartesian(0.0 + Double.MIN_VALUE, 0.0);
Assert.assertFalse(x.hashCode()==y.hashCode());
- Complex realNaN = new Complex(Double.NaN, 0.0);
- Complex imaginaryNaN = new Complex(0.0, Double.NaN);
+ Complex realNaN = Complex.ofCartesian(Double.NaN, 0.0);
+ Complex imaginaryNaN = Complex.ofCartesian(0.0, Double.NaN);
Assert.assertEquals(realNaN.hashCode(), imaginaryNaN.hashCode());
Assert.assertEquals(imaginaryNaN.hashCode(), NAN.hashCode());
@@ -528,13 +528,13 @@
// different hash codes, "equals" must return false.
final String msg = "'equals' not compatible with 'hashCode'";
- x = new Complex(0.0, 0.0);
- y = new Complex(0.0, -0.0);
+ x = Complex.ofCartesian(0.0, 0.0);
+ y = Complex.ofCartesian(0.0, -0.0);
Assert.assertTrue(x.hashCode() != y.hashCode());
Assert.assertFalse(msg, x.equals(y));
- x = new Complex(0.0, 0.0);
- y = new Complex(-0.0, 0.0);
+ x = Complex.ofCartesian(0.0, 0.0);
+ y = Complex.ofCartesian(-0.0, 0.0);
Assert.assertTrue(x.hashCode() != y.hashCode());
Assert.assertFalse(msg, x.equals(y));
}
@@ -570,9 +570,9 @@
@Test
public void testScalarPow() {
- Complex x = new Complex(3, 4);
+ Complex x = Complex.ofCartesian(3, 4);
double yDouble = 5.0;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.pow(yComplex), x.pow(yDouble));
}
@@ -580,15 +580,15 @@
public void testScalarPowNaNBase() {
Complex x = NAN;
double yDouble = 5.0;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.pow(yComplex), x.pow(yDouble));
}
@Test
public void testScalarPowNaNExponent() {
- Complex x = new Complex(3, 4);
+ Complex x = Complex.ofCartesian(3, 4);
double yDouble = Double.NaN;
- Complex yComplex = new Complex(yDouble);
+ Complex yComplex = Complex.ofCartesian(yDouble);
Assert.assertEquals(x.pow(yComplex), x.pow(yDouble));
}
@Test
@@ -609,8 +609,8 @@
@Test
public void testSqrt1z() {
- Complex z = new Complex(3, 4);
- Complex expected = new Complex(4.08033, -2.94094);
+ Complex z = Complex.ofCartesian(3, 4);
+ Complex expected = Complex.ofCartesian(4.08033, -2.94094);
TestUtils.assertEquals(expected, z.sqrt1z(), 1.0e-5);
}
@@ -633,7 +633,7 @@
@Test
public void testNthRoot_normal_thirdRoot() {
// The complex number we want to compute all third-roots for.
- Complex z = new Complex(-2,2);
+ Complex z = Complex.ofCartesian(-2,2);
// The List holding all third roots
Complex[] thirdRootsOfZ = z.nthRoot(3).toArray(new Complex[0]);
// Returned Collection must not be empty!
@@ -665,7 +665,7 @@
@Test
public void testNthRoot_normal_fourthRoot() {
// The complex number we want to compute all third-roots for.
- Complex z = new Complex(5,-2);
+ Complex z = Complex.ofCartesian(5,-2);
// The List holding all fourth roots
Complex[] fourthRootsOfZ = z.nthRoot(4).toArray(new Complex[0]);
// Returned Collection must not be empty!
@@ -699,7 +699,7 @@
public void testNthRoot_cornercase_thirdRoot_imaginaryPartEmpty() {
// The number 8 has three third roots. One we all already know is the number 2.
// But there are two more complex roots.
- Complex z = new Complex(8,0);
+ Complex z = Complex.ofCartesian(8,0);
// The List holding all third roots
Complex[] thirdRootsOfZ = z.nthRoot(3).toArray(new Complex[0]);
// Returned Collection must not be empty!
@@ -730,7 +730,7 @@
@Test
public void testNthRoot_cornercase_thirdRoot_realPartZero() {
// complex number with only imaginary part
- Complex z = new Complex(0,2);
+ Complex z = Complex.ofCartesian(0,2);
// The List holding all third roots
Complex[] thirdRootsOfZ = z.nthRoot(3).toArray(new Complex[0]);
// Returned Collection must not be empty!
@@ -751,28 +751,28 @@
*/
@Test
public void testGetArgument() {
- Complex z = new Complex(1, 0);
+ Complex z = Complex.ofCartesian(1, 0);
Assert.assertEquals(0.0, z.getArgument(), 1.0e-12);
- z = new Complex(1, 1);
+ z = Complex.ofCartesian(1, 1);
Assert.assertEquals(Math.PI/4, z.getArgument(), 1.0e-12);
- z = new Complex(0, 1);
+ z = Complex.ofCartesian(0, 1);
Assert.assertEquals(Math.PI/2, z.getArgument(), 1.0e-12);
- z = new Complex(-1, 1);
+ z = Complex.ofCartesian(-1, 1);
Assert.assertEquals(3 * Math.PI/4, z.getArgument(), 1.0e-12);
- z = new Complex(-1, 0);
+ z = Complex.ofCartesian(-1, 0);
Assert.assertEquals(Math.PI, z.getArgument(), 1.0e-12);
- z = new Complex(-1, -1);
+ z = Complex.ofCartesian(-1, -1);
Assert.assertEquals(-3 * Math.PI/4, z.getArgument(), 1.0e-12);
- z = new Complex(0, -1);
+ z = Complex.ofCartesian(0, -1);
Assert.assertEquals(-Math.PI/2, z.getArgument(), 1.0e-12);
- z = new Complex(1, -1);
+ z = Complex.ofCartesian(1, -1);
Assert.assertEquals(-Math.PI/4, z.getArgument(), 1.0e-12);
}
@@ -805,7 +805,7 @@
/*
@Test
public void testSerial() {
- Complex z = new Complex(3.0, 4.0);
+ Complex z = Complex.ofCartesian(3.0, 4.0);
Assert.assertEquals(z, TestUtils.serializeAndRecover(z));
Complex ncmplx = (Complex)TestUtils.serializeAndRecover(oneNaN); Assert.assertEquals(nanZero, ncmplx); Assert.assertTrue(ncmplx.isNaN());
Complex infcmplx = (Complex)TestUtils.serializeAndRecover(infInf);
@@ -840,10 +840,5 @@
this(other.getReal(), other.getImaginary());
}
- @Override
- protected TestComplex createComplex(double real, double imaginary){
- return new TestComplex(real, imaginary);
- }
-
}
}
diff --git a/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/ComplexUtilsTest.java b/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/ComplexUtilsTest.java
index 8ca143a..b57a6b1 100644
--- a/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/ComplexUtilsTest.java
+++ b/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/ComplexUtilsTest.java
@@ -31,12 +31,12 @@
private static final double nan = Double.NaN;
private static final double pi = Math.PI;
- private static final Complex negInfInf = new Complex(negInf, inf);
- private static final Complex infNegInf = new Complex(inf, negInf);
- private static final Complex infInf = new Complex(inf, inf);
- private static final Complex negInfNegInf = new Complex(negInf, negInf);
- private static final Complex infNaN = new Complex(inf, nan);
- private static final Complex NAN = new Complex(nan, nan);
+ private static final Complex negInfInf = Complex.ofCartesian(negInf, inf);
+ private static final Complex infNegInf = Complex.ofCartesian(inf, negInf);
+ private static final Complex infInf = Complex.ofCartesian(inf, inf);
+ private static final Complex negInfNegInf = Complex.ofCartesian(negInf, negInf);
+ private static final Complex infNaN = Complex.ofCartesian(inf, nan);
+ private static final Complex NAN = Complex.ofCartesian(nan, nan);
private static Complex c[]; // complex array with real values even and imag
// values odd
@@ -109,9 +109,9 @@
di[i + 1] = i + 1;
fi[i] = i;
fi[i + 1] = i + 1;
- c[i / 2] = new Complex(i, i + 1);
- cr[i / 2] = new Complex(i / 2);
- ci[i / 2] = new Complex(0, i / 2);
+ c[i / 2] = Complex.ofCartesian(i, i + 1);
+ cr[i / 2] = Complex.ofCartesian(i / 2);
+ ci[i / 2] = Complex.ofCartesian(0, i / 2);
sr[i / 2] = i;
si[i / 2] = i + 1;
sfr[i / 2] = i;
@@ -129,9 +129,9 @@
di2d[i][j + 1] = 10 * i + j + 1;
fi2d[i][j] = 10 * i + j;
fi2d[i][j + 1] = 10 * i + j + 1;
- c2d[i][j / 2] = new Complex(10 * i + j, 10 * i + j + 1);
- cr2d[i][j / 2] = new Complex(10 * i + j / 2);
- ci2d[i][j / 2] = new Complex(0, 10 * i + j / 2);
+ c2d[i][j / 2] = Complex.ofCartesian(10 * i + j, 10 * i + j + 1);
+ cr2d[i][j / 2] = Complex.ofCartesian(10 * i + j / 2);
+ ci2d[i][j / 2] = Complex.ofCartesian(0, 10 * i + j / 2);
}
}
for (int i = 0; i < 10; i++) {
@@ -147,20 +147,20 @@
di3d[i][j][k + 1] = 100 * i + 10 * j + k + 1;
fi3d[i][j][k] = 100 * i + 10 * j + k;
fi3d[i][j][k + 1] = 100 * i + 10 * j + k + 1;
- c3d[i][j][k / 2] = new Complex(100 * i + 10 * j + k, 100 * i + 10 * j + k + 1);
- cr3d[i][j][k / 2] = new Complex(100 * i + 10 * j + k / 2);
- ci3d[i][j][k / 2] = new Complex(0, 100 * i + 10 * j + k / 2);
+ c3d[i][j][k / 2] = Complex.ofCartesian(100 * i + 10 * j + k, 100 * i + 10 * j + k + 1);
+ cr3d[i][j][k / 2] = Complex.ofCartesian(100 * i + 10 * j + k / 2);
+ ci3d[i][j][k / 2] = Complex.ofCartesian(0, 100 * i + 10 * j + k / 2);
}
}
}
- ansArrayc1r = new Complex[] { new Complex(3), new Complex(4), new Complex(5), new Complex(6), new Complex(7) };
- ansArrayc2r = new Complex[] { new Complex(3), new Complex(5), new Complex(7) };
- ansArrayc1i = new Complex[] { new Complex(0, 3), new Complex(0, 4), new Complex(0, 5), new Complex(0, 6),
- new Complex(0, 7) };
- ansArrayc2i = new Complex[] { new Complex(0, 3), new Complex(0, 5), new Complex(0, 7) };
- ansArrayc3 = new Complex[] { new Complex(6, 7), new Complex(8, 9), new Complex(10, 11), new Complex(12, 13),
- new Complex(14, 15) };
- ansArrayc4 = new Complex[] { new Complex(6, 7), new Complex(10, 11), new Complex(14, 15) };
+ ansArrayc1r = new Complex[] { Complex.ofCartesian(3), Complex.ofCartesian(4), Complex.ofCartesian(5), Complex.ofCartesian(6), Complex.ofCartesian(7) };
+ ansArrayc2r = new Complex[] { Complex.ofCartesian(3), Complex.ofCartesian(5), Complex.ofCartesian(7) };
+ ansArrayc1i = new Complex[] { Complex.ofCartesian(0, 3), Complex.ofCartesian(0, 4), Complex.ofCartesian(0, 5), Complex.ofCartesian(0, 6),
+ Complex.ofCartesian(0, 7) };
+ ansArrayc2i = new Complex[] { Complex.ofCartesian(0, 3), Complex.ofCartesian(0, 5), Complex.ofCartesian(0, 7) };
+ ansArrayc3 = new Complex[] { Complex.ofCartesian(6, 7), Complex.ofCartesian(8, 9), Complex.ofCartesian(10, 11), Complex.ofCartesian(12, 13),
+ Complex.ofCartesian(14, 15) };
+ ansArrayc4 = new Complex[] { Complex.ofCartesian(6, 7), Complex.ofCartesian(10, 11), Complex.ofCartesian(14, 15) };
ansArrayd1r = new double[] { 6, 8, 10, 12, 14 };
ansArrayd1i = new double[] { 7, 9, 11, 13, 15 };
ansArrayd2r = new double[] { 6, 10, 14 };
@@ -200,7 +200,7 @@
}
protected Complex altPolar(double r, double theta) {
- return Complex.I.multiply(new Complex(theta, 0)).exp().multiply(new Complex(r, 0));
+ return Complex.I.multiply(Complex.ofCartesian(theta, 0)).exp().multiply(Complex.ofCartesian(r, 0));
}
@Test(expected = IllegalArgumentException.class)
@@ -244,17 +244,17 @@
public void testExtractionMethods() {
setArrays();
// Extract complex from real double array, index 3
- TestUtils.assertSame(new Complex(3), ComplexUtils.extractComplexFromRealArray(d, 3));
+ TestUtils.assertSame(Complex.ofCartesian(3), ComplexUtils.extractComplexFromRealArray(d, 3));
// Extract complex from real float array, index 3
- TestUtils.assertSame(new Complex(3), ComplexUtils.extractComplexFromRealArray(f, 3));
+ TestUtils.assertSame(Complex.ofCartesian(3), ComplexUtils.extractComplexFromRealArray(f, 3));
// Extract real double from complex array, index 3
TestUtils.assertSame(6, ComplexUtils.extractRealFromComplexArray(c, 3));
// Extract real float from complex array, index 3
TestUtils.assertSame(6, ComplexUtils.extractRealFloatFromComplexArray(c, 3));
// Extract complex from interleaved double array, index 3
- TestUtils.assertSame(new Complex(6, 7), ComplexUtils.extractComplexFromInterleavedArray(d, 3));
+ TestUtils.assertSame(Complex.ofCartesian(6, 7), ComplexUtils.extractComplexFromInterleavedArray(d, 3));
// Extract complex from interleaved float array, index 3
- TestUtils.assertSame(new Complex(6, 7), ComplexUtils.extractComplexFromInterleavedArray(f, 3));
+ TestUtils.assertSame(Complex.ofCartesian(6, 7), ComplexUtils.extractComplexFromInterleavedArray(f, 3));
// Extract interleaved double from complex array, index 3
TestUtils.assertEquals(msg, new double[] { 6, 7 }, ComplexUtils.extractInterleavedFromComplexArray(c, 3),
Math.ulp(1));
@@ -470,7 +470,7 @@
Complex[] c = new Complex[10];
ComplexUtils.initialize(c);
for (Complex cc : c) {
- TestUtils.assertEquals(new Complex(0, 0), cc, Math.ulp(0));
+ TestUtils.assertEquals(Complex.ofCartesian(0, 0), cc, Math.ulp(0));
}
}
}