status: skipped duration: 306.070s Captured stdout call {'F_Hz': array([0.0000000e+00, 7.8125000e-03, 1.5625000e-02, ..., 4.9984375e+01, 4.9992188e+01, 5.0000000e+01]), 'data': array([-4.8860516e-03+0.0000000e+00j, -4.5855157e-03+8.9761830e-05j, -4.3419674e-03+2.4111182e-04j, ..., 1.5403209e-09+2.9354810e-08j, 1.2409613e-08+4.0623608e-08j, 2.2163795e-09+3.6025902e-08j]), 'F_nyquist_Hz': None, 'delay_s': 0, 'hints': [{'fitter_update_validate': .sign_validate_plot at 0x7f92427ea020>, 'fitter_check_validate': .sign_validate_plot at 0x7f92427ea020>, 'rational_fitter_validate': }]} TEE_LOGFILE None A [] B [] ------------:SNR Fix Test: ------------:rational fitting: 4P 0.02 chebychev rational fit RELDEG: 0 0 0 3P 0.30 Initial Order: (Z=20, P=20, Z-P=0) 3P 0.36 Fastdrop Order: (Z=16, P=16, Z-P=0) 4P 0.38 mag fitting and phase patching --------------:rational fitting:sample variance (from magnitude): 3A 1.03 Weight Scaling determined: 28.727737811076437 3A 1.03 Weight Scaling Used 5.359826285531691 --------------:rational fitting:Phase patching: ------------:Q-ranked order reduction: 4P 23.61 order reduced annealing 5P 59.22 zero flipping, maxzp 27, residuals=5.29e+01, 5.29e+01, reldeg=-9 5P 94.11 zero flipped, maxzp 27, residuals=5.12e+01, reldeg=-9 5P 159.44 zero flipped, maxzp 27, residuals=4.97e+01, reldeg=-9 5P 207.18 zero flipped, maxzp 27, residuals=4.73e+01, reldeg=-9 5P 249.45 zero flipped, maxzp 27, residuals=4.72e+01, reldeg=-9 5P 295.37 zero flipped, maxzp 27, residuals=4.56e+01, reldeg=-9 None rB(-80.16738089288114, -79.88051482031545, -2.3743776420202884, -0.008390248896272275, 0.3445053197470788±0.10916184388653634j, 0.6334971855642022±4.0714123810219975j, 81.17427052834026±45.60794196443892j, -79.9228464310736±46.62591954008791j, -86.90969757132956±51.37351811766385j, 91.49593794826549±56.45600619571937j, 108.72073928686964±73.17543680576108j) rB() Captured stderr call 3W 0.00 Estimating SNR from sample variance with nearby points (SNR_est_width=10 > 0). This technique works semi-OK, but could probably be much better.. use the resulting fit to estimate the sample variance and generate improved SNR estimates, iterate. 3W 0.00 6015 SNR<1 element(s) dropped (of 6401). Too many low SNR elements confuses the rational nonparametric fitter. 3W 0.01 The number of effective data points N=(ΣW^2)^2/(ΣW^4)=3.79e-01*len(W) [where W=SNR] is below the configured 'SNR_regularize_scale'=10, given the maximum SNR=49.74241939769682. Now Finding an SNR ceiling that balances the ratio with max SNR. 3W 0.01 Using SNR<20.64128132953338 ceiling. 3W 0.35 Fitter_checkpoint improvement succeed, None 1W 1.10 Phase patching did not remove all unstable roots in a single pass. It is not programmed to accommodate this failure mode. Unstable zeros (or poles) may be wrong. 1W 1.15 Phase patching did not remove all unstable roots in a single pass. It is not programmed to accommodate this failure mode. Unstable zeros (or poles) may be wrong. 1W 1.24 Phase patching did not remove all unstable roots in a single pass. It is not programmed to accommodate this failure mode. Unstable zeros (or poles) may be wrong. 1W 1.33 Phase patching did not remove all unstable roots in a single pass. It is not programmed to accommodate this failure mode. Unstable zeros (or poles) may be wrong. 1W 1.61 Phase patching did not remove all unstable roots in a single pass. It is not programmed to accommodate this failure mode. Unstable zeros (or poles) may be wrong. 3W 1.61 High Confidence that an unstable pole exists at 2.6073791152266104+2.6754669663107586i Hz! Adding it to the filter. Prevent this with 'never_unstable_poles' 3W 1.61 High Confidence that an unstable pole exists at 0.7041661326225369+0.7565356015498867i Hz! Adding it to the filter. Prevent this with 'never_unstable_poles' 5W 1.61 High Confidence that an unstable zero exists at 6.060215386981508+7.539410694180567e+18i Hz Adding it to the filter. Prevent this with 'never_unstable_zeros' 5W 1.61 High Confidence that an unstable zero exists at 2.49289506692862+0.25338418881597985i Hz Adding it to the filter. Prevent this with 'never_unstable_zeros' 3W 1.61 High Confidence that an unstable pole exists at 0.0004425258451575154+1.062577937635966i Hz! Adding it to the filter. Prevent this with 'never_unstable_poles' 3W 1.62 High Confidence that an unstable pole exists at 2.5777117713492295e-06+0.1962881126089361i Hz! Adding it to the filter. Prevent this with 'never_unstable_poles' 5W 1.62 High Confidence that an unstable zero exists at 1.2443441055813007+0.07798366116554925i Hz Adding it to the filter. Prevent this with 'never_unstable_zeros' 3W 22.92 Fitter_checkpoint improvement succeed, None 3W 23.59 Fitter_checkpoint improvement succeed, None 3W 59.20 Fitter_checkpoint improvement succeed, None captured errors: @pytest.mark.xfail(True, reason="Triggering some overflow to look into") @skipdeco def test_oplev_iy(): from wield.utilities.file_io import load_any fname = matlab_test_data.matfiles["OplevPlant.mat"] fdict = load_any(fname=fname, ftype="mat") > out = v2.data2filter( F_Hz=fdict["ap"]["iy"]["ff"], data=fdict["ap"]["iy"]["plant"], F_nyquist_Hz=None, delay_s=0, hints=[sign_validate_and_plot_hint(tjoin('error'))], ) ../../src/wield/control/fitting/SISO/test/v2/test_oplev.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../src/wield/control/fitting/SISO/v2/data2filter.py:423: in data2filter baseline_order = fit_full(aid, emphasis) ../../src/wield/control/fitting/SISO/v2/data2filter.py:489: in fit_full return _reduce(aid) ../../src/wield/control/fitting/SISO/v2/data2filter.py:1135: in _reduce order_reduce_flip.order_reduce_flip( ../../src/wield/control/fitting/SISO/v2/algorithms/order_reduce_flip.py:136: in order_reduce_flip ret = ranking_delay_flip( ../../src/wield/control/fitting/SISO/v2/algorithms/order_reduce_flip.py:94: in ranking_delay_flip did_reduce = aid.fitter_check( ../../src/wield/control/fitting/SISO/v2/fit_aid.py:371: in fitter_check val_func(self, fitter_new) ../../src/wield/control/fitting/SISO/testing/utilities.py:219: in sign_validate_plot sign_validate(aid, fitter) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ aid = fitter = def sign_validate(aid, fitter): """ To be added as a hint to data2filter """ rep = fitter.ZPKrep xfer = rep.xfer_fit data = rep.data rat = data / xfer rat_ang = np.exp(1j * np.angle(rat)) ang_avg_rep = np.sum(rat_ang * rep.W ** 2) / np.sum(rep.W ** 2) xfer = fitter.xfer_fit data = fitter.data rat = data / xfer rat_ang = np.exp(1j * np.angle(rat)) ang_avg_fit = np.sum(rat_ang * fitter.W ** 2) / np.sum(fitter.W ** 2) # print("SGN: ", ang_avg_rep, ang_avg_fit) # axB = plots.plots.plot_fit( # fitter, # fname = 'test1.png', # ) # axB = plots.plots.plot_fitter_flag( # fitter, # fname = 'test3.png', # ) # axB = plots.plots.plot_fit( # fitter.ZPKrep, # fname = 'test2.png', # ) if isinstance(fitter, fitters_ZPK.MultiReprFilterBase): for coding in list(fitter.num_codings) + list(fitter.den_codings): rB = representations.RootBunch( u=coding.roots(), constraint=representations.root_constraints.no_constraint, ) h1 = coding.transfer() h, lnG = rB.val_lnG(fitter.Xex_grid) h = h * np.exp(lnG) assert_almost_equal(h / h1, 1, 4) > assert ang_avg_fit.real > 0 and ang_avg_rep.real > 0 E AssertionError ../../src/wield/control/fitting/SISO/testing/utilities.py:191: AssertionError