status: failed duration: 4.612s Captured stdout call zpk(z=2π·[0.0, 0.0, 0.0], p=2π·[-10.0, -0.001 ± 10.0j], k=1) captured errors: args = (array([-1.95399252e-14, -2.04281037e-14, -2.22044605e-14, -2.30926389e-14, -2.30926389e-14, -2.39808173e-14, -...265e+00, 4.00056873e+00, 4.00052795e+00, 4.00049009e+00, 4.00045492e+00, 4.00042227e+00, 4.00039196e+00])) kwds = {'decimal': 7} @wraps(func) def inner(*args, **kwds): with self._recreate_cm(): > return func(*args, **kwds) /opt/conda/lib/python3.12/contextlib.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /opt/conda/lib/python3.12/contextlib.py:81: in inner return func(*args, **kwds) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (.compare at 0x7fc789e6c220>, array([-1.95399252e-14, -2.04281037e-14, -2....265e+00, 4.00056873e+00, 4.00052795e+00, 4.00049009e+00, 4.00045492e+00, 4.00042227e+00, 4.00039196e+00])) kwds = {'err_msg': '', 'header': 'Arrays are not almost equal to 7 decimals', 'precision': 7, 'verbose': True} @wraps(func) def inner(*args, **kwds): with self._recreate_cm(): > return func(*args, **kwds) E AssertionError: E Arrays are not almost equal to 7 decimals E E Mismatched elements: 570 / 1000 (57%) E Max absolute difference: 207.14894733 E Max relative difference: 4.88400456e+13 E x: array([-1.9539925e-14, -2.0428104e-14, -2.2204460e-14, -2.3092639e-14, E -2.3092639e-14, -2.3980817e-14, -2.4868996e-14, -2.5757174e-14, E -2.6645353e-14, -2.8421709e-14, -2.9309888e-14, -3.0198066e-14,... E y: array([-4.0008000e-28, -4.3070396e-28, -4.6367203e-28, -4.9916363e-28, E -5.3737192e-28, -5.7850484e-28, -6.2278627e-28, -6.7045720e-28, E -7.2177709e-28, -7.7702524e-28, -8.3650233e-28, -9.0053208e-28,... /opt/conda/lib/python3.12/contextlib.py:81: AssertionError During handling of the above exception, another exception occurred: def test_conversion(): """ Test the conversions to and from ZPK representation and statespace representation using a delay filter """ axB = mplfigB(Nrows=2, Ncols=2) F_Hz = logspaced(.000001, 100, 1000) F_p = [-0.001 - 10j, -0.001 + 10j, -10] F_z = [0, 0, 0] F_k = 1 filt = SISO.zpk((F_z, F_p, F_k), fiducial_rtol=1, angular=False) print(filt) xfer1 = filt.fresponse(f=F_Hz).tf axB.ax0.loglog(F_Hz, abs(xfer1), label="Direct ZPK") axB.ax1.semilogx(F_Hz, np.angle(xfer1, deg=True)) #xfer2 = (filt * filt).fresponse(f=F_Hz).tf #axB.ax0.loglog(F_Hz, abs(xfer2), label="ZPK self product") #axB.ax1.semilogx(F_Hz, np.angle(xfer2, deg=True)) filt_ss = filt.asSS * 4 filt_ssi = 1/filt_ss xfer3 = filt_ss.fresponse(f=F_Hz).tf xfer3b = filt_ssi.fresponse(f=F_Hz).tf axB.ax0.loglog(F_Hz, abs(xfer3) / 4, label="ZPK2SS") axB.ax1.semilogx(F_Hz, np.angle(xfer3, deg=True)) axB.ax0.loglog(F_Hz, abs(1/xfer3b) / 4, label="ZPK2SS inv") axB.ax1.semilogx(F_Hz, np.angle(1/xfer3b, deg=True)) axB.ax0_1.semilogx(F_Hz, abs(xfer3/xfer1) / 4, label="ZPK2SS") axB.ax1_1.semilogx(F_Hz, np.angle(xfer3/xfer1, deg=True)) axB.ax0_1.semilogx(F_Hz, abs(1/xfer3b/xfer1) / 4, label="ZPK2SS inv") axB.ax1_1.semilogx(F_Hz, np.angle(1/xfer3b/xfer1, deg=True)) filt_zpk = filt_ss.asZPK filt_zpki = filt_ssi.asZPK xfer4 = filt_zpk.fresponse(f=F_Hz).tf xfer4b = (1/filt_zpk).fresponse(f=F_Hz).tf xfer4c = (filt_zpki).fresponse(f=F_Hz).tf axB.ax0.loglog(F_Hz, abs(xfer4) / 4, label="SS2ZPK") axB.ax1.semilogx(F_Hz, np.angle(xfer3, deg=True)) axB.ax0.loglog(F_Hz, abs(1/xfer4b) / 4, label="SS2ZPK inv") axB.ax1.semilogx(F_Hz, np.angle(1/xfer4b, deg=True)) axB.ax0.loglog(F_Hz, abs(1/xfer4c) / 4, label="SS2ZPK ss inv") axB.ax1.semilogx(F_Hz, np.angle(1/xfer4c, deg=True)) axB.ax0_1.semilogx(F_Hz, abs(xfer4/xfer1) / 4, label="SS2ZPK") axB.ax1_1.semilogx(F_Hz, np.angle(xfer3/xfer1, deg=True)) axB.ax0_1.semilogx(F_Hz, abs(1/xfer4b/xfer1) / 4, label="SS2ZPK inv") axB.ax1_1.semilogx(F_Hz, np.angle(1/xfer4b/xfer1, deg=True)) axB.ax0_1.semilogx(F_Hz, abs(1/xfer4c/xfer1) / 4, label="SS2ZPK ss inv") axB.ax1_1.semilogx(F_Hz, np.angle(1/xfer4c/xfer1, deg=True)) axB.ax0.legend() axB.save(tjoin("test_ZPK")) > np.testing.assert_almost_equal(xfer3, 4 * xfer1) ../../src/wield/control/SISO/test/test_SISO_conversion.py:110: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (array([-1.95399252e-14-4.44089210e-16j, -2.04281037e-14-2.22044605e-16j, -2.22044605e-14-4.44089210e-16j, -2.3...88656e-01j, 4.00045492e+00+4.15158695e-01j, 4.00042227e+00+4.07570288e-01j, 4.00039196e+00+4.00120820e-01j])) kwds = {} @wraps(func) def inner(*args, **kwds): with self._recreate_cm(): > return func(*args, **kwds) E AssertionError: E Arrays are not almost equal to 7 decimals E ACTUAL: array([-1.95399252e-14-4.44089210e-16j, -2.04281037e-14-2.22044605e-16j, E -2.22044605e-14-4.44089210e-16j, -2.30926389e-14-2.22044605e-16j, E -2.30926389e-14-2.22044605e-16j, -2.39808173e-14+0.00000000e+00j,... E DESIRED: array([-4.00079996e-28-3.99999996e-21j, -4.30703964e-28-4.22750384e-21j, E -4.63672033e-28-4.46794723e-21j, -4.99163629e-28-4.72206607e-21j, E -5.37371916e-28-4.99063816e-21j, -5.78504841e-28-5.27448555e-21j,... /opt/conda/lib/python3.12/contextlib.py:81: AssertionError