def test_lasso_signal_lagrange(setup_param_lasso, expected_beta):
    expected_beta_lasso_signal = expected_beta['values_signal']['lasso']
    calculated_beta_lagrange = fused_lasso_lagrange(
        **setup_param_lasso['data_lagrange'])
    assert_allclose(expected_beta_lasso_signal,
                    calculated_beta_lagrange,
                    atol=2e-2)
def test_lasso_general_lagrange(setup_param_lasso, expected_beta):
    setup_param_lasso['data_lagrange']['X'] = np.array([[1, 0.5], [0.5, 1]])
    expected_beta_lasso_general = expected_beta['values_general']['lasso']
    calculated_beta_lagrange = fused_lasso_lagrange(
        **setup_param_lasso['data_lagrange'])
    assert_allclose(expected_beta_lasso_general,
                    calculated_beta_lagrange,
                    atol=2e-2)
def test_fused_lasso_lagrange_wrong_dimensions(setup_param_lasso):
    setup_param_lasso['data_lagrange']['y'] = [1, 2, 3]
    with pytest.raises(TypeError):
        fused_lasso_lagrange(**setup_param_lasso['data_lagrange'])
def test_fused_lasso_lagrange_wrong_dimension_penalty(setup_param_lasso):
    setup_param_lasso['data_lagrange']['lambda1'] = [1, 2]
    with pytest.raises(TypeError):
        fused_lasso_lagrange(**setup_param_lasso['data_lagrange'])
def test_fused_lasso_lagrange_negative_penalty(setup_param_lasso):
    setup_param_lasso['data_lagrange']['lambda1'] = -1
    with pytest.raises(ValueError):
        fused_lasso_lagrange(**setup_param_lasso['data_lagrange'])