def test_get_params_np(include, exclude):
    transformer = PandasTypeSelector(include=include, exclude=exclude)

    assert transformer.get_params() == {
        'include': include,
        'exclude': exclude
    }
Example #2
0
def test_value_error_empty(random_xy_dataset_regr):
    transformer = PandasTypeSelector(exclude=["number"])
    X, y = random_xy_dataset_regr
    X = pd.DataFrame(X)

    with pytest.raises(ValueError):
        transformer.fit(X, y)
Example #3
0
def test_value_error_differrent_dtyes():
    fit_df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
    transform_df = pd.DataFrame({"a": [4, 5, 6], "b": ["4", "5", "6"]})
    transformer = PandasTypeSelector(exclude=["category"]).fit(fit_df)

    with pytest.raises(ValueError):
        transformer.transform(transform_df)
Example #4
0
def test_value_error_differrent_dtyes():
    fit_df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
    transform_df = pd.DataFrame({'a': [4, 5, 6], 'b': ['4', '5', '6']})
    transformer = PandasTypeSelector(exclude=['category']).fit(fit_df)

    with pytest.raises(ValueError):
        transformer.transform(transform_df)
Example #5
0
def test_get_feature_names():
    df = pd.DataFrame({"a": [4, 5, 6], "b": ["4", "5", "6"]})
    transformer_number = PandasTypeSelector(include="number").fit(df)
    assert transformer_number.get_feature_names() == ["a"]

    transformer_number = PandasTypeSelector(include="object").fit(df)
    assert transformer_number.get_feature_names() == ["b"]
Example #6
0
def test_get_feature_names():
    df = pd.DataFrame({'a': [4, 5, 6], 'b': ['4', '5', '6']})
    transformer_number = PandasTypeSelector(include='number').fit(df)
    assert transformer_number.get_feature_names() == ['a']

    transformer_number = PandasTypeSelector(include='object').fit(df)
    assert transformer_number.get_feature_names() == ['b']
Example #7
0
def test_value_error_inequal(random_xy_dataset_regr):
    transformer = PandasTypeSelector(include=["number"])
    X, y = random_xy_dataset_regr
    X = pd.DataFrame(X)
    if X.shape[0] > 0:
        with pytest.raises(ValueError):
            transformer.fit(X)
            # Remove column to create error
            transformer.transform(X.iloc[:, :-1])
Example #8
0
def test_get_params_str(include, exclude):
    transformer = PandasTypeSelector(include=include, exclude=exclude)

    assert transformer.get_params() == {"include": include, "exclude": exclude}
Example #9
0
import pytest
import pandas as pd
import itertools as it
import numpy as np
from sklego.preprocessing import PandasTypeSelector
from tests.conftest import id_func


@pytest.mark.parametrize("transformer",
                         [PandasTypeSelector(include=["number"])],
                         ids=id_func)
def test_len_regression(transformer, random_xy_dataset_regr):
    X, y = random_xy_dataset_regr
    X = pd.DataFrame(X)
    assert transformer.fit(X, y).transform(X).shape[0] == X.shape[0]


@pytest.mark.parametrize("transformer",
                         [PandasTypeSelector(include=["number"])],
                         ids=id_func)
def test_len_classification(transformer, random_xy_dataset_clf):
    X, y = random_xy_dataset_clf
    X = pd.DataFrame(X)
    assert transformer.fit(X, y).transform(X).shape[0] == X.shape[0]


@pytest.mark.parametrize(
    "include,exclude",
    [
        _ for _ in it.combinations([
            "number", "datetime", "timedelta", "category", "datetimetz", None
import pytest
import pandas as pd
import itertools as it
import numpy as np
from sklego.preprocessing import PandasTypeSelector
from tests.conftest import id_func


@pytest.mark.parametrize("transformer", [
    PandasTypeSelector(include=['number']),
], ids=id_func)
def test_len_regression(transformer, random_xy_dataset_regr):
    X, y = random_xy_dataset_regr
    X = pd.DataFrame(X)
    assert transformer.fit(X, y).transform(X).shape[0] == X.shape[0]


@pytest.mark.parametrize("transformer", [
    PandasTypeSelector(include=['number']),
], ids=id_func)
def test_len_classification(transformer, random_xy_dataset_clf):
    X, y = random_xy_dataset_clf
    X = pd.DataFrame(X)
    assert transformer.fit(X, y).transform(X).shape[0] == X.shape[0]


@pytest.mark.parametrize('include,exclude', [_ for _ in it.combinations(['number', 'datetime', 'timedelta',
                                                                         'category', 'datetimetz', None], 2)])
def test_get_params_str(include, exclude):
    transformer = PandasTypeSelector(include=include, exclude=exclude)