/* FilterFrequencyResponseCalculatorTest.java created 2010-12-02
*
*/
package org.signalml.math.iirdesigner;
import org.junit.Test;
import org.signalml.math.ArrayOperations;
import org.signalml.math.iirdesigner.FilterCoefficients;
import org.signalml.math.iirdesigner.FilterFrequencyResponse;
import org.signalml.math.iirdesigner.FilterFrequencyResponseCalculator;
import org.signalml.math.iirdesigner.FilterResponseCalculator;
import static org.signalml.math.iirdesigner.IIRDesignerAssert.*;
/**
* This method performs unit tests on {@link FilterResponseCalculator}.
*
* @author Piotr Szachewicz
*/
public class FilterFrequencyResponseCalculatorTest {
/**
* A test method for {@link FilterResponseCalculator#getGroupDelayResponse() }.
*/
@Test
public void testGetGroupDelayResponse() {
FilterCoefficients coeffs = new FilterCoefficients(
new double[] {0.0562, -0.0260, -0.0603, -0.0260, 0.0562},
new double[] {1.0000, -3.0870, 3.7266, -2.1103, 0.4806});
FilterFrequencyResponseCalculator calc = new FilterFrequencyResponseCalculator(512, 128, coeffs);
FilterFrequencyResponse groupDelay = calc.getGroupDelayResponse();
assertEquals(512, groupDelay.getValues().length);
double[] actual = ArrayOperations.trimArrayToSize(groupDelay.getValues(), 10);
assertArrayEquals(new double[] {6.2727, 6.2833, 6.3153, 6.3688, 6.4443, 6.5423, 6.6636, 6.8091, 6.9796, 7.1763}, actual, 0.001);
assertEquals(512, groupDelay.getFrequencies().length);
actual = ArrayOperations.trimArrayToSize(groupDelay.getFrequencies(), 10);
assertArrayEquals(new double[] {0, 0.1250, 0.2500, 0.3750, 0.5000, 0.6250, 0.7500, 0.8750, 1.0000, 1.1250}, actual, 0.001);
}
}