### Question:
IIRDesigner { public static FilterCoefficients designDigitalFilter(ApproximationFunctionType approximationFunctionType, FilterType type, double[] passbandEdgeFrequencies, double[] stopbandEdgeFrequencies, double passbandRipple, double stopbandAttenuation, double samplingFrequency) throws BadFilterParametersException { if (approximationFunctionType.isButterworth()) { ButterworthIIRDesigner iirdesigner = new ButterworthIIRDesigner(); iirdesigner.enableDebugger(enableLogger); return iirdesigner.designDigitalFilter(samplingFrequency, type, passbandEdgeFrequencies, stopbandEdgeFrequencies, passbandRipple, stopbandAttenuation); } else if (approximationFunctionType.isChebyshev1()) { Chebyshev1IIRDesigner iirdesigner = new Chebyshev1IIRDesigner(); iirdesigner.enableDebugger(enableLogger); return iirdesigner.designDigitalFilter(samplingFrequency, type, passbandEdgeFrequencies, stopbandEdgeFrequencies, passbandRipple, stopbandAttenuation); } else if (approximationFunctionType.isChebyshev2()) { Chebyshev2IIRDesigner iirdesigner = new Chebyshev2IIRDesigner(); iirdesigner.enableDebugger(enableLogger); return iirdesigner.designDigitalFilter(samplingFrequency, type, passbandEdgeFrequencies, stopbandEdgeFrequencies, passbandRipple, stopbandAttenuation); } else if (approximationFunctionType.isElliptic()) { EllipticIIRDesigner iirdesigner = new EllipticIIRDesigner(); iirdesigner.enableDebugger(enableLogger); return iirdesigner.designDigitalFilter(samplingFrequency, type, passbandEdgeFrequencies, stopbandEdgeFrequencies, passbandRipple, stopbandAttenuation); } else throw new BadFilterParametersException("This approximation function type is not supported by the IIRFilterDesigner."); }  static FilterCoefficients designDigitalFilter(ApproximationFunctionType approximationFunctionType, FilterType type, double[] passbandEdgeFrequencies, double[] stopbandEdgeFrequencies, double passbandRipple, double stopbandAttenuation, double samplingFrequency); static FilterCoefficients designDigitalFilter(TimeDomainSampleFilter filterDefinition);  }### Answer:
@Test public void testDesignDigitalFilter() throws BadFilterParametersException { double[] pythonB; double[] pythonA; FilterCoefficients coeffs; pythonB = new double[] {0.50611529, -3.542807 , 10.62842101, -17.71403501, 17.71403501, -10.62842101, 3.542807 , -0.50611529 }; pythonA = new double[] {1. , -5.64538 , 13.76796824, -18.78803539, 15.48341232, -7.70174965, 2.14005833, -0.25615268 }; coeffs = IIRDesigner.designDigitalFilter(ApproximationFunctionType.BUTTERWORTH, FilterType.HIGHPASS, new double[] {10, 0.0}, new double[] {5, 0.0}, 3.0, 40.0, 200.0); assertEquals(new FilterCoefficients(pythonB, pythonA), coeffs, 1e-8); }