"date",
    "time",
    "empty",
    "empty_bool",
    "empty_float",
    "empty_object",
    "empty_int64",
    "ip",
    "ip_missing",
    "ip_mixed_v4andv6",
    "email_address_missing",
    "email_address",
}


@pytest.mark.parametrize(**get_contains_cases(series, contains_map, typeset))
def test_contains(series, type, member):
    """Test the generated combinations for "series in type"

    Args:
        series: the series to test
        type: the type to test against
        member: the result
    """
    config["vars"]["num"]["low_categorical_threshold"].set(0)
    result, message = contains(series, type, member)
    assert result, message


inference_map = {
    "int_series": Numeric,
    },
    Boolean: {
        "bool_tf",
        "bool_tf_with_nan",
        "booleans_type",
        "booleans_type_nan",
    },
    DateTime: {
        "somedate",
    },
    Unsupported: {"empty", "list", "mixed", "dict", "tuple"},
}


@pytest.mark.parametrize(**patch_arg(
    get_contains_cases(series, contains_map, my_typeset), "contains_type"))
def test_contains(name, series, contains_type, member):
    """Test the generated combinations for "series in type"

    Args:
        series: the series to test
        contains_type: the type to test against
        member: the result
    """
    result, message = contains(name, series, contains_type, member)
    assert result, message


inference_map = {
    "x": Numeric,
    "y": Numeric,
# Empty series
contains_map[Generic] = {
    "empty",
    "empty_bool",
    "empty_float",
    "empty_int64",
    "empty_object",
    "all_null_none",
    "all_null_nan",
    "all_null_nat",
    "nan_series",
    "nan_series_2",
}


@pytest.mark.parametrize(**get_contains_cases(array, contains_map, typeset))
def test_contains(name, series, contains_type, member):
    """Test the generated combinations for "array in type"

    Args:
        series: the series to test
        contains_type: the type to test against
        member: the result
    """
    result, message = contains(name, series, contains_type, member)
    assert result, message


inference_map = {
    "int_series": Integer,
    "categorical_int_series": Integer,
    "empty_float",
    "empty_object",
    "empty_int64",
    "ip",
    "ip_missing",
    "ip_mixed_v4andv6",
    "email_address_missing",
    "email_address",
    "all_null_none",
    "all_null_nan",
    "all_null_nat",
}


@pytest.mark.parametrize(**patch_arg(
    get_contains_cases(series, contains_map, my_typeset_default),
    "contains_type"))
def test_contains(name, series, contains_type, member):
    """Test the generated combinations for "series in type"

    Args:
        series: the series to test
        contains_type: the type to test against
        member: the result
    """
    result, message = contains(name, series, contains_type, member)
    assert result, message


inference_map = {
    "int_series": Numeric,