Skip to content

Commit 96ec420

Browse files
author
Laurent Mutricy
committed
adding tests for select_dtypes
1 parent 0342d90 commit 96ec420

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

tests/test_frame.py

+52
Original file line numberDiff line numberDiff line change
@@ -3154,6 +3154,58 @@ def test_convert_dtypes_dtype_backend() -> None:
31543154
check(assert_type(dfn, pd.DataFrame), pd.DataFrame)
31553155

31563156

3157+
def test_select_dtypes() -> None:
3158+
df = pd.DataFrame({"a": [1, 2] * 3, "b": [True, False] * 3, "c": [1.0, 2.0] * 3})
3159+
check(assert_type(df.select_dtypes("number"), pd.DataFrame), pd.DataFrame)
3160+
check(assert_type(df.select_dtypes(np.number), pd.DataFrame), pd.DataFrame)
3161+
check(assert_type(df.select_dtypes(object), pd.DataFrame), pd.DataFrame)
3162+
check(assert_type(df.select_dtypes(include="bool"), pd.DataFrame), pd.DataFrame)
3163+
check(
3164+
assert_type(df.select_dtypes(include=["float64"], exclude=None), pd.DataFrame),
3165+
pd.DataFrame,
3166+
)
3167+
check(
3168+
assert_type(df.select_dtypes(exclude=["int64"], include=None), pd.DataFrame),
3169+
pd.DataFrame,
3170+
)
3171+
check(
3172+
assert_type(df.select_dtypes(exclude=["int64", object]), pd.DataFrame),
3173+
pd.DataFrame,
3174+
)
3175+
check(
3176+
assert_type(
3177+
df.select_dtypes(
3178+
exclude=[
3179+
np.datetime64,
3180+
"datetime64",
3181+
"datetime",
3182+
np.timedelta64,
3183+
"timedelta",
3184+
"timedelta64",
3185+
"category",
3186+
"datetimetz",
3187+
"datetime64[ns]",
3188+
]
3189+
),
3190+
pd.DataFrame,
3191+
),
3192+
pd.DataFrame,
3193+
)
3194+
if TYPE_CHECKING_INVALID_USAGE:
3195+
# not able to check with typing that inputs lists are empty
3196+
# check(
3197+
# assert_type(df.select_dtypes([], []), pd.DataFrame), pd.DataFrame
3198+
# ) # ValueError
3199+
3200+
# ValueError :
3201+
check(assert_type(df.select_dtypes(), pd.DataFrame), pd.DataFrame) # type: ignore[assert-type, call-overload] # pyright: ignore[reportAssertTypeFailure, reportCallIssue]
3202+
3203+
# any kind of string dtype is not allowed but strings dtypes are included in AstypeArg...
3204+
# check(
3205+
# assert_type(df.select_dtypes(str), pd.DataFrame), pd.DataFrame
3206+
# ) # TypeError
3207+
3208+
31573209
def test_to_json_mode() -> None:
31583210
df = pd.DataFrame(
31593211
[["a", "b"], ["c", "d"]],

0 commit comments

Comments
 (0)