Ejemplo n.º 1
0
def test_plot_does_nothing_before_fit(fit_func, fit_data):
    model = Model(fit_func)

    plt.figure()
    model.plot()

    assert (len(plt.gca().lines) == 0)
Ejemplo n.º 2
0
def test_param_errors_is_dict_with_errors_after_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)
    err = np.array([model.param_errors[n] for n in model._param_names])

    expected_err = np.sqrt(np.diag(model.covariance))
    assert (np.array_equal(err, expected_err))
Ejemplo n.º 3
0
def test_plot_plots_fitted_func(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)

    plt.figure()
    model.plot()

    assert (len(plt.gca().lines) > 0)
Ejemplo n.º 4
0
def test_plot_uses_dx_point_spacing(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)

    plt.figure()
    model.plot(dx=0.1)

    line = plt.gca().lines[0]
    xdata = line.get_xdata()

    assert (len(xdata) == 60 or len(xdata) == 61)
Ejemplo n.º 5
0
def test_plot_uses_plot_style(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)

    plt.figure()
    model.plot(style='--')

    line = plt.gca().lines[0]
    style = line.get_linestyle()

    assert (style == '--')
Ejemplo n.º 6
0
def test_plot_uses_n_points(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)

    plt.figure()
    model.plot(n=1000)

    line = plt.gca().lines[0]
    xdata = line.get_xdata()

    assert (len(xdata) == 1000)
Ejemplo n.º 7
0
def test_ydata_is_private_ydata_after_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)
    assert (np.array_equal(model.ydata, model._ydata))
Ejemplo n.º 8
0
def test_ydata_is_none_before_fit(fit_func):
    model = Model(fit_func)
    assert (model.ydata is None)
Ejemplo n.º 9
0
def test_getattr_returns_fit_param_after_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)
    assert (isinstance(model.A, float))
Ejemplo n.º 10
0
def test_fit_does_fit_with_guess_from_generator(fit_func, fit_data):
    model = Model(fit_func, guess_gen={'A': lambda x, y: 10})
    model.fit(*fit_data)
    assert (model._guess == [10, 1, 1])
Ejemplo n.º 11
0
def test_repr_html_is_html_table_after_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)
    assert ('<table>' in model._repr_html_())
Ejemplo n.º 12
0
def test_getitem_raises_key_error_before_fit(fit_func):
    model = Model(fit_func)

    with pytest.raises(KeyError):
        model['A']
Ejemplo n.º 13
0
def test_init_accepts_guess_gen_list(fit_func):
    model = Model(fit_func, guess_gen=[10, 10, 10])
    assert (model._guess_gen == [10, 10, 10])
Ejemplo n.º 14
0
def test_params_is_dict_with_optimal_parameters_after_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)
    assert (sorted(model.params.keys()) == ['A', 'c', 'x0'])
Ejemplo n.º 15
0
def test_param_errors_is_none_before_fit(fit_func):
    model = Model(fit_func)
    assert (model.param_errors is None)
Ejemplo n.º 16
0
def test_fitted_func_is_function_after_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)
    assert (callable(model.fitted_func))
Ejemplo n.º 17
0
def test_fitted_func_is_none_before_fit(fit_func):
    model = Model(fit_func)
    assert (model.fitted_func is None)
Ejemplo n.º 18
0
def test_func_is_model_function(fit_func):
    model = Model(fit_func)
    assert (model.func == fit_func)
Ejemplo n.º 19
0
def test_init_accepts_custom_param_names(fit_func):
    model = Model(fit_func, params=['a', 'b', 'C'])
    assert (model._param_names == ['a', 'b', 'C'])
Ejemplo n.º 20
0
def test_residuals_are_none_before_fit(fit_func):
    model = Model(fit_func)
    assert (model.residuals is None)
Ejemplo n.º 21
0
def test_init_accepts_guess_gen_dict(fit_func):
    model = Model(fit_func, guess_gen={'A': 10})
    assert (model._guess_gen == [10, 1, 1])
Ejemplo n.º 22
0
def test_resiuduals_is_array_with_residuals_after_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)

    expected_residuals = fit_data[1] - model.fitted_func(fit_data[0])
    assert (np.array_equal(model.residuals, expected_residuals))
Ejemplo n.º 23
0
def test_fit_does_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)
    assert (model._has_fitted)
Ejemplo n.º 24
0
def test_does_not_raise_outside_of_jupyter_notebook(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)

    model.display_html()
Ejemplo n.º 25
0
def test_fit_converts_data_to_numpy_array(fit_func):
    model = Model(fit_func)
    model.fit([-3, -2, 0, 2, 3], [5, 4, 0, 4, 5])

    assert (type(model._xdata) == np.ndarray)
    assert (type(model._ydata) == np.ndarray)
Ejemplo n.º 26
0
def test_covariance_is_internal_cov_after_fit(fit_func, fit_data):
    model = Model(fit_func)
    model.fit(*fit_data)
    assert (np.array_equal(model.covariance, model._cov))
Ejemplo n.º 27
0
def test_repr_html_is_repr_before_fit(fit_func):
    model = Model(fit_func)
    assert (model._repr_html_() == model.__repr__())
Ejemplo n.º 28
0
def test_init_guesses_param_names(fit_func):
    model = Model(fit_func)
    assert (model._param_names == ['A', 'x0', 'c'])
Ejemplo n.º 29
0
def test_covariance_is_none_before_fit(fit_func):
    model = Model(fit_func)
    assert (model.covariance is None)
Ejemplo n.º 30
0
def test_getattr_raises_attribute_error_before_fit(fit_func):
    model = Model(fit_func)

    with pytest.raises(AttributeError):
        model.A