Forgot to commit updated unit tests in rev 1211318 (MATH-677).
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1211319 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e967bbf8df
commit
c631e5980e
|
@ -37,7 +37,7 @@ public final class FastFourierTransformerTest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testAdHocData() {
|
public void testAdHocData() {
|
||||||
FastFourierTransformer transformer = new FastFourierTransformer();
|
FastFourierTransformer transformer = FastFourierTransformer.create();
|
||||||
Complex result[]; double tolerance = 1E-12;
|
Complex result[]; double tolerance = 1E-12;
|
||||||
|
|
||||||
double x[] = {1.3, 2.4, 1.7, 4.1, 2.9, 1.7, 5.1, 2.7};
|
double x[] = {1.3, 2.4, 1.7, 4.1, 2.9, 1.7, 5.1, 2.7};
|
||||||
|
@ -67,13 +67,14 @@ public final class FastFourierTransformerTest {
|
||||||
FastFourierTransformer.scaleArray(x2, 1.0 / FastMath.sqrt(x2.length));
|
FastFourierTransformer.scaleArray(x2, 1.0 / FastMath.sqrt(x2.length));
|
||||||
Complex y2[] = y;
|
Complex y2[] = y;
|
||||||
|
|
||||||
result = transformer.transform2(y2);
|
transformer = FastFourierTransformer.createUnitary();
|
||||||
|
result = transformer.transform(y2);
|
||||||
for (int i = 0; i < result.length; i++) {
|
for (int i = 0; i < result.length; i++) {
|
||||||
Assert.assertEquals(x2[i], result[i].getReal(), tolerance);
|
Assert.assertEquals(x2[i], result[i].getReal(), tolerance);
|
||||||
Assert.assertEquals(0.0, result[i].getImaginary(), tolerance);
|
Assert.assertEquals(0.0, result[i].getImaginary(), tolerance);
|
||||||
}
|
}
|
||||||
|
|
||||||
result = transformer.inverseTransform2(x2);
|
result = transformer.inverseTransform(x2);
|
||||||
for (int i = 0; i < result.length; i++) {
|
for (int i = 0; i < result.length; i++) {
|
||||||
Assert.assertEquals(y2[i].getReal(), result[i].getReal(), tolerance);
|
Assert.assertEquals(y2[i].getReal(), result[i].getReal(), tolerance);
|
||||||
Assert.assertEquals(y2[i].getImaginary(), result[i].getImaginary(), tolerance);
|
Assert.assertEquals(y2[i].getImaginary(), result[i].getImaginary(), tolerance);
|
||||||
|
@ -82,7 +83,46 @@ public final class FastFourierTransformerTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test2DData() {
|
public void test2DData() {
|
||||||
FastFourierTransformer transformer = new FastFourierTransformer();
|
FastFourierTransformer transformer = FastFourierTransformer.create();
|
||||||
|
double tolerance = 1E-12;
|
||||||
|
Complex[][] input = new Complex[][] {new Complex[] {new Complex(1, 0),
|
||||||
|
new Complex(2, 0)},
|
||||||
|
new Complex[] {new Complex(3, 1),
|
||||||
|
new Complex(4, 2)}};
|
||||||
|
Complex[][] goodOutput = new Complex[][] {new Complex[] {new Complex(5,
|
||||||
|
1.5), new Complex(-1, -.5)}, new Complex[] {new Complex(-2,
|
||||||
|
-1.5), new Complex(0, .5)}};
|
||||||
|
for (int i = 0; i < goodOutput.length; i++) {
|
||||||
|
FastFourierTransformer.scaleArray(
|
||||||
|
goodOutput[i],
|
||||||
|
FastMath.sqrt(goodOutput[i].length) *
|
||||||
|
FastMath.sqrt(goodOutput.length));
|
||||||
|
}
|
||||||
|
Complex[][] output = (Complex[][])transformer.mdfft(input, true);
|
||||||
|
Complex[][] output2 = (Complex[][])transformer.mdfft(output, false);
|
||||||
|
|
||||||
|
Assert.assertEquals(input.length, output.length);
|
||||||
|
Assert.assertEquals(input.length, output2.length);
|
||||||
|
Assert.assertEquals(input[0].length, output[0].length);
|
||||||
|
Assert.assertEquals(input[0].length, output2[0].length);
|
||||||
|
Assert.assertEquals(input[1].length, output[1].length);
|
||||||
|
Assert.assertEquals(input[1].length, output2[1].length);
|
||||||
|
|
||||||
|
for (int i = 0; i < input.length; i++) {
|
||||||
|
for (int j = 0; j < input[0].length; j++) {
|
||||||
|
Assert.assertEquals(input[i][j].getImaginary(), output2[i][j].getImaginary(),
|
||||||
|
tolerance);
|
||||||
|
Assert.assertEquals(input[i][j].getReal(), output2[i][j].getReal(), tolerance);
|
||||||
|
Assert.assertEquals(goodOutput[i][j].getImaginary(), output[i][j].getImaginary(),
|
||||||
|
tolerance);
|
||||||
|
Assert.assertEquals(goodOutput[i][j].getReal(), output[i][j].getReal(), tolerance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test2DDataUnitary() {
|
||||||
|
FastFourierTransformer transformer = FastFourierTransformer.createUnitary();
|
||||||
double tolerance = 1E-12;
|
double tolerance = 1E-12;
|
||||||
Complex[][] input = new Complex[][] {new Complex[] {new Complex(1, 0),
|
Complex[][] input = new Complex[][] {new Complex[] {new Complex(1, 0),
|
||||||
new Complex(2, 0)},
|
new Complex(2, 0)},
|
||||||
|
@ -119,7 +159,7 @@ public final class FastFourierTransformerTest {
|
||||||
@Test
|
@Test
|
||||||
public void testSinFunction() {
|
public void testSinFunction() {
|
||||||
UnivariateFunction f = new SinFunction();
|
UnivariateFunction f = new SinFunction();
|
||||||
FastFourierTransformer transformer = new FastFourierTransformer();
|
FastFourierTransformer transformer = FastFourierTransformer.create();
|
||||||
Complex result[]; int N = 1 << 8;
|
Complex result[]; int N = 1 << 8;
|
||||||
double min, max, tolerance = 1E-12;
|
double min, max, tolerance = 1E-12;
|
||||||
|
|
||||||
|
@ -152,7 +192,7 @@ public final class FastFourierTransformerTest {
|
||||||
@Test
|
@Test
|
||||||
public void testParameters() throws Exception {
|
public void testParameters() throws Exception {
|
||||||
UnivariateFunction f = new SinFunction();
|
UnivariateFunction f = new SinFunction();
|
||||||
FastFourierTransformer transformer = new FastFourierTransformer();
|
FastFourierTransformer transformer = FastFourierTransformer.create();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// bad interval
|
// bad interval
|
||||||
|
|
Loading…
Reference in New Issue