public void TestSosToTf() { var sos = new TransferFunction[4] { new TransferFunction(new[] { 1, -0.4, 0.85 }, new[] { 1, -0.1, 0 }), new TransferFunction(new[] { 1, -1, 0.29 }, new[] { 1, -0.7, 0.1 }), new TransferFunction(new[] { 1, 0.3, 0 }, new[] { 1, 1.8, 0.85 }), new TransferFunction(new[] { 1, -1, 0.0 }, new[] { 1, -1.6, 0.6 }) }; var tf = DesignFilter.SosToTf(sos); Assert.Multiple(() => { Assert.That(tf.Numerator, Is.EqualTo(new[] { 1, -2.1, 2.22, -1.624, 0.4607, 0.11725, -0.07395, 0, 0 }).Within(1e-10)); Assert.That(tf.Denominator, Is.EqualTo(new[] { 1, -0.6, -1.42, 0.888, 0.4889, -0.4413, 0.0895, -0.0051, 0 }).Within(1e-10)); }); }