Skip to content

Commit b5ebe12

Browse files
author
Laurent Mutricy
committed
Adding tests for pandas-dev#821
1 parent 0cf1cb9 commit b5ebe12

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

tests/test_series.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from typing_extensions import (
3333
Self,
3434
TypeAlias,
35+
assert_never,
3536
assert_type,
3637
)
3738
import xarray as xr
@@ -3069,3 +3070,48 @@ def first_arg_not_series(argument_1: int, ser: pd.Series) -> pd.Series:
30693070
),
30703071
1,
30713072
)
3073+
3074+
3075+
def test_diff() -> None:
3076+
s = pd.Series([1, 1, 2, 3, 5, 8])
3077+
# int -> float
3078+
check(assert_type(s.diff(), "pd.Series[float]"), pd.Series, float)
3079+
# unint -> float
3080+
check(assert_type(s.astype(np.uint32).diff(), "pd.Series[float]"), pd.Series, float)
3081+
# float -> float
3082+
check(assert_type(s.astype(float).diff(), "pd.Series[float]"), pd.Series, float)
3083+
# timestamp -> timedelta
3084+
times = pd.Series([pd.Timestamp(0), pd.Timestamp(1)])
3085+
check(assert_type(times.diff(), "TimedeltaSeries"), pd.Series, pd.Timedelta)
3086+
# timedelta -> timedelta64
3087+
check(
3088+
assert_type(
3089+
pd.Series([pd.Timedelta(0), pd.Timedelta(1)]).diff(), "TimedeltaSeries"
3090+
),
3091+
pd.Series,
3092+
pd.Timedelta,
3093+
)
3094+
# period -> object
3095+
check(
3096+
assert_type(
3097+
pd.Series(
3098+
[pd.Period("2012", freq="D"), pd.Period("2012-1-1", freq="D")]
3099+
).diff(),
3100+
"pd.Series[object]",
3101+
),
3102+
pd.Series,
3103+
object,
3104+
)
3105+
# bool -> object
3106+
check(
3107+
assert_type(
3108+
pd.Series([True, True, False, False, True]).diff(), "pd.Series[object]"
3109+
),
3110+
pd.Series,
3111+
object,
3112+
)
3113+
# object -> object
3114+
check(assert_type(s.astype(object).diff(), "pd.Series[object]"), pd.Series, object)
3115+
# interval -> TypeError: IntervalArray has no 'diff' method. Convert to a suitable dtype prior to calling 'diff'.
3116+
if TYPE_CHECKING_INVALID_USAGE:
3117+
assert_never(pd.Series([pd.Interval(0, 2), pd.Interval(1, 4)]).diff())

0 commit comments

Comments
 (0)