Skip to content

Commit b20f063

Browse files
committed
Fix
1 parent 53818c9 commit b20f063

File tree

1 file changed

+12
-56
lines changed

1 file changed

+12
-56
lines changed

src/test/java/com/thealgorithms/maths/ConvolutionFFTTest.java

Lines changed: 12 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import static org.junit.jupiter.api.Assertions.assertEquals;
44

55
import java.util.ArrayList;
6-
import org.junit.jupiter.api.Test;
6+
import java.util.stream.Stream;
7+
import org.junit.jupiter.params.ParameterizedTest;
8+
import org.junit.jupiter.params.provider.Arguments;
9+
import org.junit.jupiter.params.provider.MethodSource;
710

811
public class ConvolutionFFTTest {
912

@@ -31,68 +34,21 @@ private void assertComplexArrayEquals(ArrayList<FFT.Complex> expected, ArrayList
3134
}
3235
}
3336

34-
@Test
35-
public void testConvolutionFFTBasic() {
36-
double[] a = {1, 2, 3};
37-
double[] b = {4, 5, 6};
37+
@ParameterizedTest(name = "Test case {index}: {3}")
38+
@MethodSource("provideTestCases")
39+
public void testConvolutionFFT(double[] a, double[] b, double[] expectedOutput, String testDescription) {
3840
ArrayList<FFT.Complex> signalA = createComplexSignal(a);
3941
ArrayList<FFT.Complex> signalB = createComplexSignal(b);
4042

41-
ArrayList<FFT.Complex> expected = createComplexSignal(new double[] {4, 13, 28, 27, 18}); // Expected output
43+
ArrayList<FFT.Complex> expected = createComplexSignal(expectedOutput);
4244
ArrayList<FFT.Complex> result = ConvolutionFFT.convolutionFFT(signalA, signalB);
4345

4446
assertComplexArrayEquals(expected, result, 1e-9); // Allow small margin of error
4547
}
4648

47-
@Test
48-
public void testConvolutionFFTWithZeroElements() {
49-
double[] a = {0, 0, 0};
50-
double[] b = {1, 2, 3};
51-
ArrayList<FFT.Complex> signalA = createComplexSignal(a);
52-
ArrayList<FFT.Complex> signalB = createComplexSignal(b);
53-
54-
ArrayList<FFT.Complex> expected = createComplexSignal(new double[] {0, 0, 0, 0, 0}); // All values should be zero
55-
ArrayList<FFT.Complex> result = ConvolutionFFT.convolutionFFT(signalA, signalB);
56-
57-
assertComplexArrayEquals(expected, result, 1e-9);
58-
}
59-
60-
@Test
61-
public void testConvolutionFFTWithDifferentSizes() {
62-
double[] a = {1, 2};
63-
double[] b = {3, 4, 5};
64-
ArrayList<FFT.Complex> signalA = createComplexSignal(a);
65-
ArrayList<FFT.Complex> signalB = createComplexSignal(b);
66-
67-
ArrayList<FFT.Complex> expected = createComplexSignal(new double[] {3, 10, 13, 10});
68-
ArrayList<FFT.Complex> result = ConvolutionFFT.convolutionFFT(signalA, signalB);
69-
70-
assertComplexArrayEquals(expected, result, 1e-9);
71-
}
72-
73-
@Test
74-
public void testConvolutionFFTWithSingleElement() {
75-
double[] a = {5};
76-
double[] b = {2};
77-
ArrayList<FFT.Complex> signalA = createComplexSignal(a);
78-
ArrayList<FFT.Complex> signalB = createComplexSignal(b);
79-
80-
ArrayList<FFT.Complex> expected = createComplexSignal(new double[] {10});
81-
ArrayList<FFT.Complex> result = ConvolutionFFT.convolutionFFT(signalA, signalB);
82-
83-
assertComplexArrayEquals(expected, result, 1e-9);
84-
}
85-
86-
@Test
87-
public void testConvolutionFFTWithNegativeValues() {
88-
double[] a = {1, -2, 3};
89-
double[] b = {-1, 2, -3};
90-
ArrayList<FFT.Complex> signalA = createComplexSignal(a);
91-
ArrayList<FFT.Complex> signalB = createComplexSignal(b);
92-
93-
ArrayList<FFT.Complex> expected = createComplexSignal(new double[] {-1, 4, -10, 12, -9});
94-
ArrayList<FFT.Complex> result = ConvolutionFFT.convolutionFFT(signalA, signalB);
95-
96-
assertComplexArrayEquals(expected, result, 1e-9);
49+
private static Stream<Arguments> provideTestCases() {
50+
return Stream.of(Arguments.of(new double[] {1, 2, 3}, new double[] {4, 5, 6}, new double[] {4, 13, 28, 27, 18}, "Basic test"), Arguments.of(new double[] {0, 0, 0}, new double[] {1, 2, 3}, new double[] {0, 0, 0, 0, 0}, "Test with zero elements"),
51+
Arguments.of(new double[] {1, 2}, new double[] {3, 4, 5}, new double[] {3, 10, 13, 10}, "Test with different sizes"), Arguments.of(new double[] {5}, new double[] {2}, new double[] {10}, "Test with single element"),
52+
Arguments.of(new double[] {1, -2, 3}, new double[] {-1, 2, -3}, new double[] {-1, 4, -10, 12, -9}, "Test with negative values"));
9753
}
9854
}

0 commit comments

Comments
 (0)