def test_period_units(data): t, y, dy, params = data t_unit = u.day y_unit = u.mag model = BoxLeastSquares(t * t_unit, y * y_unit, dy) p = model.autoperiod(params["duration"]) assert p.unit == t_unit p = model.autoperiod(params["duration"] * 24 * u.hour) assert p.unit == t_unit with pytest.raises(u.UnitConversionError): model.autoperiod(params["duration"] * u.mag) p = model.autoperiod(params["duration"], minimum_period=0.5) assert p.unit == t_unit with pytest.raises(u.UnitConversionError): p = model.autoperiod(params["duration"], minimum_period=0.5*u.mag) p = model.autoperiod(params["duration"], maximum_period=0.5) assert p.unit == t_unit with pytest.raises(u.UnitConversionError): p = model.autoperiod(params["duration"], maximum_period=0.5*u.mag) p = model.autoperiod(params["duration"], minimum_period=0.5, maximum_period=1.5) p2 = model.autoperiod(params["duration"], maximum_period=0.5, minimum_period=1.5) assert_quantity_allclose(p, p2)
def test_autopower(data): t, y, dy, params = data duration = params["duration"] + np.linspace(-0.1, 0.1, 3) model = BoxLeastSquares(t, y, dy) period = model.autoperiod(duration) results1 = model.power(period, duration) results2 = model.autopower(duration) assert_allclose_blsresults(results1, results2)