def test_no_error_when_null_values_in_variable():

    math_combinator_mean = MathematicalCombination(
        variables_to_combine=['fixed acidity', 'volatile acidity'],
        math_operations=['mean'],
        new_variables_names=['avg_acidity'],
        missing_values="ignore"
    )

    ref = pd.DataFrame.from_dict({
        "fixed acidity": None,
        "volatile acidity": 0.7
    })
    math_combinator_mean.fit(ref)
    math_combinator_mean.transform(ref)
def test_error_when_null_values_in_variable(df_vartypes):

    df_na = df_vartypes.copy()
    df_na.loc[1, "Age"] = np.nan

    with pytest.raises(ValueError):
        math_combinator = MathematicalCombination(
            variables_to_combine=["Age", "Marks"],
            math_operations=["sum", "mean"],
            missing_values="raise",
        )
        math_combinator.fit(df_na)

    with pytest.raises(ValueError):

        math_combinator = MathematicalCombination(
            variables_to_combine=["Age", "Marks"],
            math_operations=["sum", "mean"],
            missing_values="raise",
        )
        math_combinator.fit(df_vartypes)
        math_combinator.transform(df_na)