@@ -209,6 +209,26 @@ def test_polynomial_degree_2_guess_params():
209209 sc .testing .assert_allclose (params ['a2' ], a2 , atol = sc .scalar (0.1 , unit = 'K/m^2' ))
210210
211211
212+ def test_polynomial_degree_2_guess_params_degenerate ():
213+ x = sc .linspace ('xx' , 0.8 , 4.3 , 10 , unit = 's' )
214+ y = sc .zeros (sizes = x .sizes , unit = 'cm' )
215+ data = sc .DataArray (y , coords = {'xx' : x })
216+
217+ m = model .PolynomialModel (degree = 2 , prefix = '' )
218+ params = m .guess (data )
219+ # Test that no params have been optimized away:
220+ assert params .keys () == {'a0' , 'a1' , 'a2' }
221+ sc .testing .assert_allclose (
222+ params ['a0' ], sc .scalar (0.0 , unit = 'cm' ), atol = sc .scalar (0.1 , unit = 'cm' )
223+ )
224+ sc .testing .assert_allclose (
225+ params ['a1' ], sc .scalar (0.0 , unit = 'cm/s' ), atol = sc .scalar (0.1 , unit = 'cm/s' )
226+ )
227+ sc .testing .assert_allclose (
228+ params ['a2' ], sc .scalar (0.0 , unit = 'cm/s^2' ), atol = sc .scalar (0.1 , unit = 'cm/s^2' )
229+ )
230+
231+
212232def test_gaussian_guess_params_linspace ():
213233 amplitude = sc .scalar (2.8 , unit = 'kg' )
214234 loc = sc .scalar (0.4 , unit = 'm' )
0 commit comments