### Question:
FourierTransform { public double[] inverseFFT(Complex[] fft) { FastFourierTransformer transformer = new FastFourierTransformer(); Complex[] complexSignal = transformer.inversetransform(fft); double[] signal = new double[complexSignal.length]; for (int i = 0; i < complexSignal.length; i++) { signal[i] = complexSignal[i].getReal(); } return signal; } FourierTransform(WindowType windowType, double parameter);  FourierTransform(WindowType windowType);  FourierTransform(); Complex[] forwardFFT(double[] signal); double[] inverseFFT(Complex[] fft); static int getPowerOfTwoSize(int initialSize); static double[] padWithZeroIfNecessary(double[] signal); static double[] getFrequencies(double[] signal, double samplingFrequency); double[] calculatePowerSpectrum(double[] samples);  }### Answer:
@Test public void testInverseFFT() { FourierTransform transform = new FourierTransform(); double[] signal = new double[] {1,4,2,-1,7,4,5,2}; Complex[] actualFFT = transform.forwardFFT(signal); double[] signalAfterInverseFFT = transform.inverseFFT(actualFFT); assertArrayEquals(signal, signalAfterInverseFFT, 1e-5); }