/* FilterZerosPolesGainTest.java created 2010-09-12 * */ package org.signalml.math.iirdesigner; import static org.signalml.math.iirdesigner.IIRDesignerAssert.*; import org.apache.commons.math.complex.Complex; import org.junit.Test; import org.signalml.math.iirdesigner.FilterCoefficients; import org.signalml.math.iirdesigner.FilterZerosPolesGain; /** * This class performs unit tests on {@link FilterZerosPolesGain} class. * * @author Piotr Szachewicz */ public class FilterZerosPolesGainTest { /** * Test method for {@link FilterZerosPolesGain#convertToBACoefficients() }. */ @Test public void testConvertToABCoefficients() { //test 1 Complex[] zeros = new Complex[0]; Complex[] poles = new Complex[] {new Complex(-0.08517040, 0.94648443), new Complex(-0.20561953, 0.39204669), new Complex(-0.20561953, -0.39204669), new Complex(-0.08517040, -0.94648443) }; double gain = 0.125297161626; FilterZerosPolesGain zpk1 = new FilterZerosPolesGain(zeros, poles, gain); double[] pythonB = new double[] {0.12529716}; double[] pythonA = new double[] {1.00000000, 0.58157986, 1.16911757, 0.40476795, 0.17698695}; FilterCoefficients pycoeffs = new FilterCoefficients(pythonB, pythonA); FilterCoefficients coeffs = zpk1.convertToBACoefficients(); assertEquals(pycoeffs, coeffs, 1e-6); } /** * Test method for {@link FilterZerosPolesGain#convertToBACoefficients() }. */ @Test public void testConvertToABCoefficients2() { //test 1 Complex[] zeros = new Complex[0]; Complex[] poles = new Complex[] {new Complex(0.4, 0.2), new Complex(0.5, 0.3)}; double gain = 1.0; FilterZerosPolesGain zpk1 = new FilterZerosPolesGain(zeros, poles, gain); double[] pythonB = new double[] {1.0}; double[] pythonA = new double[] {1, -0.9, 0.14}; FilterCoefficients pycoeffs = new FilterCoefficients(pythonB, pythonA); FilterCoefficients coeffs = zpk1.convertToBACoefficients(); assertEquals(pycoeffs, coeffs, 1e-6); } }