def test_encode_nan_dd_copy(get_indicator_dd_setup):
    obj, X = get_indicator_dd_setup
    new_col = "b_nan"
    col = "b"

    res = indicators.encode_nans(X, col, new_col=new_col,
                                 copy_data=True).compute()
    assert new_col not in X.columns
    assert new_col in res.columns

    res = indicators.encode_nans(X, col, new_col=new_col,
                                 copy_data=False).compute()
    assert new_col in X.columns
    assert new_col in res.columns
def test_encode_nan_copy_dd(get_indicator_dd_setup, copy_it):
    obj, X = get_indicator_dd_setup
    col = "c"
    exp = np.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0])
    res = indicators.encode_nans(X, col, new_col="c_nan",
                                 copy_data=copy_it).compute()
    np.testing.assert_array_equal(res["c_nan"].values, exp)
def test_encode_nan_dd(col, exp, get_indicator_dd_setup):
    obj, X = get_indicator_dd_setup
    new_col = f"{col}_nan"

    res = indicators.encode_nans(X, col, new_col=new_col).compute()
    np.testing.assert_array_equal(res[new_col].values, np.array(exp))
def test_encode_nan_pd_fails_on_dupe_column_name(get_indicator_pd_setup):
    obj, X = get_indicator_pd_setup
    col = "c"
    X["c_nan"] = np.ones(10)
    with pytest.raises(AssertionError):
        _ = indicators.encode_nans(X, col, new_col="c_nan")