Skip to content

Commit 9c6b963

Browse files
committed
TST: Add tests for timedelta
1 parent e62cc10 commit 9c6b963

File tree

2 files changed

+322
-18
lines changed

2 files changed

+322
-18
lines changed

pandas-stubs/_libs/tslibs/timedeltas.pyi

+18-18
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ from datetime import timedelta
22
from typing import (
33
ClassVar,
44
Literal,
5+
NamedTuple,
56
TypeVar,
67
Union,
78
overload,
@@ -11,11 +12,21 @@ import numpy as np
1112
from typing_extensions import TypeAlias
1213

1314
from pandas._libs.tslibs import (
15+
BaseOffset,
1416
NaTType,
1517
Tick,
1618
)
1719
from pandas._typing import npt
1820

21+
class Components(NamedTuple):
22+
days: int
23+
hours: int
24+
minutes: int
25+
seconds: int
26+
milliseconds: int
27+
microseconds: int
28+
nanoseconds: int
29+
1930
# This should be kept consistent with the keys in the dict timedelta_abbrevs
2031
# in pandas/_libs/tslibs/timedeltas.pyx
2132
TimeDeltaUnitChoices: TypeAlias = Literal[
@@ -70,18 +81,6 @@ UnitChoices: TypeAlias = Union[
7081

7182
_S = TypeVar("_S", bound=timedelta)
7283

73-
def ints_to_pytimedelta(
74-
arr: npt.NDArray[np.int64], # const int64_t[:]
75-
box: bool = ...,
76-
) -> npt.NDArray[np.object_]: ...
77-
def array_to_timedelta64(
78-
values: npt.NDArray[np.object_],
79-
unit: str | None = ...,
80-
errors: str = ...,
81-
) -> np.ndarray: ... # np.ndarray[m8ns]
82-
def parse_timedelta_unit(unit: str | None) -> UnitChoices: ...
83-
def delta_to_nanoseconds(delta: np.timedelta64 | timedelta | Tick) -> int: ...
84-
8584
class Timedelta(timedelta):
8685
min: ClassVar[Timedelta]
8786
max: ClassVar[Timedelta]
@@ -106,6 +105,8 @@ class Timedelta(timedelta):
106105
@property
107106
def days(self) -> int: ...
108107
@property
108+
def nanoseconds(self) -> int: ...
109+
@property
109110
def seconds(self) -> int: ...
110111
@property
111112
def microseconds(self) -> int: ...
@@ -115,9 +116,9 @@ class Timedelta(timedelta):
115116
@property
116117
def asm8(self) -> np.timedelta64: ...
117118
# TODO: round/floor/ceil could return NaT?
118-
def round(self: _S, freq: str) -> _S: ...
119-
def floor(self: _S, freq: str) -> _S: ...
120-
def ceil(self: _S, freq: str) -> _S: ...
119+
def round(self: _S, freq: str | BaseOffset) -> _S: ...
120+
def floor(self: _S, freq: str | BaseOffset) -> _S: ...
121+
def ceil(self: _S, freq: str | BaseOffset) -> _S: ...
121122
@property
122123
def resolution_string(self) -> str: ...
123124
def __add__(self, other: timedelta) -> Timedelta: ...
@@ -162,6 +163,5 @@ class Timedelta(timedelta):
162163
def isoformat(self) -> str: ...
163164
def to_numpy(self) -> np.timedelta64: ...
164165
@property
165-
def freq(self) -> None: ...
166-
@property
167-
def is_populated(self) -> bool: ...
166+
def components(self) -> Components: ...
167+
def view(self, dtype: npt.DTypeLike = ...) -> object: ...

tests/test_timefuncs.py

+304
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
from pandas._libs import NaTType
2020
from pandas._libs.tslibs import BaseOffset
21+
from pandas._libs.tslibs.timedeltas import Components
2122

2223
from pandas.tseries.offsets import (
2324
BusinessDay,
@@ -1155,3 +1156,306 @@ def test_period() -> None:
11551156

11561157
check(assert_type(p.strftime("%Y-%m-%d"), str), str)
11571158
check(assert_type(hash(p), int), int)
1159+
1160+
1161+
def test_timedelta() -> None:
1162+
check(assert_type(pd.Timedelta(1, "W"), pd.Timedelta), pd.Timedelta)
1163+
check(assert_type(pd.Timedelta(1, "w"), pd.Timedelta), pd.Timedelta)
1164+
check(assert_type(pd.Timedelta(1, "D"), pd.Timedelta), pd.Timedelta)
1165+
check(assert_type(pd.Timedelta(1, "d"), pd.Timedelta), pd.Timedelta)
1166+
check(assert_type(pd.Timedelta(1, "days"), pd.Timedelta), pd.Timedelta)
1167+
check(assert_type(pd.Timedelta(1, "day"), pd.Timedelta), pd.Timedelta)
1168+
check(assert_type(pd.Timedelta(1, "hours"), pd.Timedelta), pd.Timedelta)
1169+
check(assert_type(pd.Timedelta(1, "hour"), pd.Timedelta), pd.Timedelta)
1170+
check(assert_type(pd.Timedelta(1, "hr"), pd.Timedelta), pd.Timedelta)
1171+
check(assert_type(pd.Timedelta(1, "h"), pd.Timedelta), pd.Timedelta)
1172+
check(assert_type(pd.Timedelta(1, "m"), pd.Timedelta), pd.Timedelta)
1173+
check(assert_type(pd.Timedelta(1, "minute"), pd.Timedelta), pd.Timedelta)
1174+
check(assert_type(pd.Timedelta(1, "min"), pd.Timedelta), pd.Timedelta)
1175+
check(assert_type(pd.Timedelta(1, "minutes"), pd.Timedelta), pd.Timedelta)
1176+
check(assert_type(pd.Timedelta(1, "t"), pd.Timedelta), pd.Timedelta)
1177+
check(assert_type(pd.Timedelta(1, "s"), pd.Timedelta), pd.Timedelta)
1178+
check(assert_type(pd.Timedelta(1, "seconds"), pd.Timedelta), pd.Timedelta)
1179+
check(assert_type(pd.Timedelta(1, "sec"), pd.Timedelta), pd.Timedelta)
1180+
check(assert_type(pd.Timedelta(1, "second"), pd.Timedelta), pd.Timedelta)
1181+
check(assert_type(pd.Timedelta(1, "ms"), pd.Timedelta), pd.Timedelta)
1182+
check(assert_type(pd.Timedelta(1, "milliseconds"), pd.Timedelta), pd.Timedelta)
1183+
check(assert_type(pd.Timedelta(1, "millisecond"), pd.Timedelta), pd.Timedelta)
1184+
check(assert_type(pd.Timedelta(1, "milli"), pd.Timedelta), pd.Timedelta)
1185+
check(assert_type(pd.Timedelta(1, "millis"), pd.Timedelta), pd.Timedelta)
1186+
check(assert_type(pd.Timedelta(1, "l"), pd.Timedelta), pd.Timedelta)
1187+
check(assert_type(pd.Timedelta(1, "us"), pd.Timedelta), pd.Timedelta)
1188+
check(assert_type(pd.Timedelta(1, "microseconds"), pd.Timedelta), pd.Timedelta)
1189+
check(assert_type(pd.Timedelta(1, "microsecond"), pd.Timedelta), pd.Timedelta)
1190+
check(assert_type(pd.Timedelta(1, "µs"), pd.Timedelta), pd.Timedelta)
1191+
check(assert_type(pd.Timedelta(1, "micro"), pd.Timedelta), pd.Timedelta)
1192+
check(assert_type(pd.Timedelta(1, "micros"), pd.Timedelta), pd.Timedelta)
1193+
check(assert_type(pd.Timedelta(1, "u"), pd.Timedelta), pd.Timedelta)
1194+
check(assert_type(pd.Timedelta(1, "ns"), pd.Timedelta), pd.Timedelta)
1195+
check(assert_type(pd.Timedelta(1, "nanoseconds"), pd.Timedelta), pd.Timedelta)
1196+
check(assert_type(pd.Timedelta(1, "nano"), pd.Timedelta), pd.Timedelta)
1197+
check(assert_type(pd.Timedelta(1, "nanos"), pd.Timedelta), pd.Timedelta)
1198+
check(assert_type(pd.Timedelta(1, "nanosecond"), pd.Timedelta), pd.Timedelta)
1199+
check(assert_type(pd.Timedelta(1, "n"), pd.Timedelta), pd.Timedelta)
1200+
1201+
check(assert_type(pd.Timedelta("1 W"), pd.Timedelta), pd.Timedelta)
1202+
check(assert_type(pd.Timedelta("1 w"), pd.Timedelta), pd.Timedelta)
1203+
check(assert_type(pd.Timedelta("1 D"), pd.Timedelta), pd.Timedelta)
1204+
check(assert_type(pd.Timedelta("1 d"), pd.Timedelta), pd.Timedelta)
1205+
check(assert_type(pd.Timedelta("1 days"), pd.Timedelta), pd.Timedelta)
1206+
check(assert_type(pd.Timedelta("1 day"), pd.Timedelta), pd.Timedelta)
1207+
check(assert_type(pd.Timedelta("1 hours"), pd.Timedelta), pd.Timedelta)
1208+
check(assert_type(pd.Timedelta("1 hour"), pd.Timedelta), pd.Timedelta)
1209+
check(assert_type(pd.Timedelta("1 hr"), pd.Timedelta), pd.Timedelta)
1210+
check(assert_type(pd.Timedelta("1 h"), pd.Timedelta), pd.Timedelta)
1211+
check(assert_type(pd.Timedelta("1 m"), pd.Timedelta), pd.Timedelta)
1212+
check(assert_type(pd.Timedelta("1 minute"), pd.Timedelta), pd.Timedelta)
1213+
check(assert_type(pd.Timedelta("1 min"), pd.Timedelta), pd.Timedelta)
1214+
check(assert_type(pd.Timedelta("1 minutes"), pd.Timedelta), pd.Timedelta)
1215+
check(assert_type(pd.Timedelta("1 t"), pd.Timedelta), pd.Timedelta)
1216+
check(assert_type(pd.Timedelta("1 s"), pd.Timedelta), pd.Timedelta)
1217+
check(assert_type(pd.Timedelta("1 seconds"), pd.Timedelta), pd.Timedelta)
1218+
check(assert_type(pd.Timedelta("1 sec"), pd.Timedelta), pd.Timedelta)
1219+
check(assert_type(pd.Timedelta("1 second"), pd.Timedelta), pd.Timedelta)
1220+
check(assert_type(pd.Timedelta("1 ms"), pd.Timedelta), pd.Timedelta)
1221+
check(assert_type(pd.Timedelta("1 milliseconds"), pd.Timedelta), pd.Timedelta)
1222+
check(assert_type(pd.Timedelta("1 millisecond"), pd.Timedelta), pd.Timedelta)
1223+
check(assert_type(pd.Timedelta("1 milli"), pd.Timedelta), pd.Timedelta)
1224+
check(assert_type(pd.Timedelta("1 millis"), pd.Timedelta), pd.Timedelta)
1225+
check(assert_type(pd.Timedelta("1 l"), pd.Timedelta), pd.Timedelta)
1226+
check(assert_type(pd.Timedelta("1 us"), pd.Timedelta), pd.Timedelta)
1227+
check(assert_type(pd.Timedelta("1 microseconds"), pd.Timedelta), pd.Timedelta)
1228+
check(assert_type(pd.Timedelta("1 microsecond"), pd.Timedelta), pd.Timedelta)
1229+
check(assert_type(pd.Timedelta("1 µs"), pd.Timedelta), pd.Timedelta)
1230+
check(assert_type(pd.Timedelta("1 micro"), pd.Timedelta), pd.Timedelta)
1231+
check(assert_type(pd.Timedelta("1 micros"), pd.Timedelta), pd.Timedelta)
1232+
check(assert_type(pd.Timedelta("1 u"), pd.Timedelta), pd.Timedelta)
1233+
check(assert_type(pd.Timedelta("1 ns"), pd.Timedelta), pd.Timedelta)
1234+
check(assert_type(pd.Timedelta("1 nanoseconds"), pd.Timedelta), pd.Timedelta)
1235+
check(assert_type(pd.Timedelta("1 nano"), pd.Timedelta), pd.Timedelta)
1236+
check(assert_type(pd.Timedelta("1 nanos"), pd.Timedelta), pd.Timedelta)
1237+
check(assert_type(pd.Timedelta("1 nanosecond"), pd.Timedelta), pd.Timedelta)
1238+
check(assert_type(pd.Timedelta("1 n"), pd.Timedelta), pd.Timedelta)
1239+
check(assert_type(pd.Timedelta(days=1), pd.Timedelta), pd.Timedelta)
1240+
check(assert_type(pd.Timedelta(seconds=1), pd.Timedelta), pd.Timedelta)
1241+
check(assert_type(pd.Timedelta(microseconds=1), pd.Timedelta), pd.Timedelta)
1242+
check(assert_type(pd.Timedelta(minutes=1), pd.Timedelta), pd.Timedelta)
1243+
check(assert_type(pd.Timedelta(hours=1), pd.Timedelta), pd.Timedelta)
1244+
check(assert_type(pd.Timedelta(weeks=1), pd.Timedelta), pd.Timedelta)
1245+
check(assert_type(pd.Timedelta(milliseconds=1), pd.Timedelta), pd.Timedelta)
1246+
1247+
td = pd.Timedelta("1 day")
1248+
check(assert_type(td.value, int), int)
1249+
check(assert_type(td.asm8, np.timedelta64), np.timedelta64)
1250+
1251+
check(assert_type(td.days, int), int)
1252+
check(assert_type(td.microseconds, int), int)
1253+
check(assert_type(td.nanoseconds, int), int)
1254+
check(assert_type(td.seconds, int), int)
1255+
check(assert_type(td.value, int), int)
1256+
check(assert_type(td.resolution_string, str), str)
1257+
check(assert_type(td.components, Components), Components)
1258+
1259+
check(assert_type(td.ceil("D"), pd.Timedelta), pd.Timedelta)
1260+
check(assert_type(td.floor(Day()), pd.Timedelta), pd.Timedelta)
1261+
check(assert_type(td.isoformat(), str), str)
1262+
check(assert_type(td.round("s"), pd.Timedelta), pd.Timedelta)
1263+
check(assert_type(td.to_numpy(), np.timedelta64), np.timedelta64)
1264+
check(assert_type(td.to_pytimedelta(), dt.timedelta), dt.timedelta)
1265+
check(assert_type(td.to_timedelta64(), np.timedelta64), np.timedelta64)
1266+
check(assert_type(td.total_seconds(), float), float)
1267+
check(assert_type(td.view(np.int64), object), np.int64)
1268+
check(assert_type(td.view("i8"), object), np.int64)
1269+
1270+
check(assert_type(td + pd.Period("2012-01-01", freq="D"), pd.Period), pd.Period)
1271+
check(assert_type(td + pd.Timestamp("2012-01-01"), pd.Timestamp), pd.Timestamp)
1272+
check(assert_type(td + dt.datetime(2012, 1, 1), pd.Timestamp), pd.Timestamp)
1273+
check(assert_type(td + dt.date(2012, 1, 1), dt.date), dt.date)
1274+
check(assert_type(td + np.datetime64(1, "ns"), pd.Timestamp), pd.Timestamp)
1275+
check(assert_type(td + dt.timedelta(days=1), pd.Timedelta), pd.Timedelta)
1276+
check(assert_type(td + np.timedelta64(1, "D"), pd.Timedelta), pd.Timedelta)
1277+
check(
1278+
assert_type(
1279+
td + pd.period_range("2012-01-01", periods=3, freq="D"), pd.PeriodIndex
1280+
),
1281+
pd.PeriodIndex,
1282+
)
1283+
check(
1284+
assert_type(td + pd.date_range("2012-01-01", periods=3), pd.DatetimeIndex),
1285+
pd.DatetimeIndex,
1286+
)
1287+
check(
1288+
assert_type(td + np.array([1, 2, 3], dtype="timedelta64[D]"), np.ndarray),
1289+
np.ndarray,
1290+
)
1291+
check(
1292+
assert_type(td + np.array([1, 2, 3], dtype="datetime64[ns]"), np.ndarray),
1293+
np.ndarray,
1294+
)
1295+
1296+
check(assert_type(td - td, pd.Timedelta), pd.Timedelta)
1297+
check(assert_type(td - dt.timedelta(days=1), pd.Timedelta), pd.Timedelta)
1298+
check(assert_type(td - np.timedelta64(1, "D"), pd.Timedelta), pd.Timedelta)
1299+
check(
1300+
assert_type(td - np.array([1, 2, 3], dtype="timedelta64[D]"), np.ndarray),
1301+
np.ndarray,
1302+
)
1303+
1304+
check(assert_type(pd.Period("2012-01-01", freq="D") - td, pd.Period), pd.Period)
1305+
check(assert_type(pd.Timestamp("2012-01-01") - td, pd.Timestamp), pd.Timestamp)
1306+
check(assert_type(dt.datetime(2012, 1, 1) - td, dt.datetime), dt.datetime)
1307+
check(assert_type(dt.date(2012, 1, 1) - td, dt.date), dt.date)
1308+
check(assert_type(np.datetime64(1, "ns") - td, pd.Timestamp), pd.Timestamp)
1309+
check(assert_type(dt.timedelta(days=1) - td, pd.Timedelta), pd.Timedelta)
1310+
check(assert_type(np.timedelta64(1, "D") - td, pd.Timedelta), pd.Timedelta)
1311+
check(
1312+
assert_type(
1313+
pd.period_range("2012-01-01", periods=3, freq="D") - td, pd.PeriodIndex
1314+
),
1315+
pd.PeriodIndex,
1316+
)
1317+
check(
1318+
assert_type(pd.date_range("2012-01-01", periods=3) - td, pd.DatetimeIndex),
1319+
pd.DatetimeIndex,
1320+
)
1321+
check(
1322+
assert_type(np.array([1, 2, 3], dtype="timedelta64[D]") - td, np.ndarray),
1323+
np.ndarray,
1324+
)
1325+
check(
1326+
assert_type(np.array([1, 2, 3], dtype="datetime64[ns]") - td, np.ndarray),
1327+
np.ndarray,
1328+
)
1329+
1330+
check(assert_type(td * 3, pd.Timedelta), pd.Timedelta)
1331+
check(assert_type(td * 3.5, pd.Timedelta), pd.Timedelta)
1332+
check(assert_type(td * np.array([1, 2, 3]), np.ndarray), np.ndarray)
1333+
check(assert_type(td * np.array([1.2, 2.2, 3.4]), np.ndarray), np.ndarray)
1334+
check(assert_type(td * pd.Series([1, 2, 3]), pd.Series), pd.Series)
1335+
check(assert_type(td * pd.Series([1.2, 2.2, 3.4]), pd.Series), pd.Series)
1336+
check(assert_type(td * pd.Index([1, 2, 3]), pd.TimedeltaIndex), pd.TimedeltaIndex)
1337+
check(
1338+
assert_type(td * pd.Index([1.2, 2.2, 3.4]), pd.TimedeltaIndex),
1339+
pd.TimedeltaIndex,
1340+
)
1341+
1342+
check(assert_type(td // td, int), int)
1343+
check(assert_type(td // 3, pd.Timedelta), pd.Timedelta)
1344+
check(assert_type(td // 3.5, pd.Timedelta), pd.Timedelta)
1345+
check(assert_type(td // np.array([1, 2, 3]), np.ndarray), np.ndarray)
1346+
check(assert_type(td // np.array([1.2, 2.2, 3.4]), np.ndarray), np.ndarray)
1347+
check(assert_type(td // pd.Series([1, 2, 3]), pd.Series), pd.Series)
1348+
check(assert_type(td // pd.Series([1.2, 2.2, 3.4]), pd.Series), pd.Series)
1349+
check(assert_type(td // pd.Index([1, 2, 3]), pd.TimedeltaIndex), pd.TimedeltaIndex)
1350+
check(
1351+
assert_type(td // pd.Index([1.2, 2.2, 3.4]), pd.TimedeltaIndex),
1352+
pd.TimedeltaIndex,
1353+
)
1354+
1355+
check(assert_type(td / td, float), float)
1356+
check(assert_type(td / 3, pd.Timedelta), pd.Timedelta)
1357+
check(assert_type(td / 3.5, pd.Timedelta), pd.Timedelta)
1358+
check(assert_type(td / np.array([1, 2, 3]), np.ndarray), np.ndarray)
1359+
check(assert_type(td / np.array([1.2, 2.2, 3.4]), np.ndarray), np.ndarray)
1360+
check(assert_type(td / pd.Series([1, 2, 3]), pd.Series), pd.Series)
1361+
check(assert_type(td / pd.Series([1.2, 2.2, 3.4]), pd.Series), pd.Series)
1362+
check(assert_type(td / pd.Index([1, 2, 3]), pd.TimedeltaIndex), pd.TimedeltaIndex)
1363+
check(
1364+
assert_type(td / pd.Index([1.2, 2.2, 3.4]), pd.TimedeltaIndex),
1365+
pd.TimedeltaIndex,
1366+
)
1367+
1368+
check(assert_type(td % 3, pd.Timedelta), pd.Timedelta)
1369+
check(assert_type(td % 3.5, pd.Timedelta), pd.Timedelta)
1370+
check(assert_type(td % td, pd.Timedelta), pd.Timedelta)
1371+
check(assert_type(td % np.array([1, 2, 3]), np.ndarray), np.ndarray)
1372+
check(assert_type(td % np.array([1.2, 2.2, 3.4]), np.ndarray), np.ndarray)
1373+
check(assert_type(td % pd.Series([1, 2, 3]), pd.Series), pd.Series)
1374+
check(assert_type(td % pd.Series([1.2, 2.2, 3.4]), pd.Series), pd.Series)
1375+
check(assert_type(td % pd.Index([1, 2, 3]), pd.TimedeltaIndex), pd.TimedeltaIndex)
1376+
check(
1377+
assert_type(td % pd.Index([1.2, 2.2, 3.4]), pd.TimedeltaIndex),
1378+
pd.TimedeltaIndex,
1379+
)
1380+
1381+
check(assert_type(abs(td), pd.Timedelta), pd.Timedelta)
1382+
check(assert_type(-td, pd.Timedelta), pd.Timedelta)
1383+
check(assert_type(+td, pd.Timedelta), pd.Timedelta)
1384+
1385+
check(assert_type(td < td, bool), bool)
1386+
check(assert_type(td < dt.timedelta(days=1), bool), bool)
1387+
check(assert_type(td < np.timedelta64(1, "D"), bool), bool)
1388+
check(
1389+
assert_type(td < np.array([1, 2, 3], dtype="timedelta64[D]"), np.ndarray),
1390+
np.ndarray,
1391+
)
1392+
check(
1393+
assert_type(td < pd.TimedeltaIndex([1, 2, 3], unit="D"), np.ndarray), np.ndarray
1394+
)
1395+
1396+
check(assert_type(td > td, bool), bool)
1397+
check(assert_type(td > dt.timedelta(days=1), bool), bool)
1398+
check(assert_type(td > np.timedelta64(1, "D"), bool), bool)
1399+
check(
1400+
assert_type(td > np.array([1, 2, 3], dtype="timedelta64[D]"), np.ndarray),
1401+
np.ndarray,
1402+
)
1403+
check(
1404+
assert_type(td > pd.TimedeltaIndex([1, 2, 3], unit="D"), np.ndarray), np.ndarray
1405+
)
1406+
1407+
check(assert_type(td <= td, bool), bool)
1408+
check(assert_type(td <= dt.timedelta(days=1), bool), bool)
1409+
check(assert_type(td <= np.timedelta64(1, "D"), bool), bool)
1410+
check(
1411+
assert_type(td <= np.array([1, 2, 3], dtype="timedelta64[D]"), np.ndarray),
1412+
np.ndarray,
1413+
)
1414+
check(
1415+
assert_type(td <= pd.TimedeltaIndex([1, 2, 3], unit="D"), np.ndarray),
1416+
np.ndarray,
1417+
)
1418+
1419+
check(assert_type(td >= td, bool), bool)
1420+
check(assert_type(td >= dt.timedelta(days=1), bool), bool)
1421+
check(assert_type(td >= np.timedelta64(1, "D"), bool), bool)
1422+
check(
1423+
assert_type(td >= np.array([1, 2, 3], dtype="timedelta64[D]"), np.ndarray),
1424+
np.ndarray,
1425+
)
1426+
check(
1427+
assert_type(td >= pd.TimedeltaIndex([1, 2, 3], unit="D"), np.ndarray),
1428+
np.ndarray,
1429+
)
1430+
1431+
check(assert_type(td == td, bool), bool)
1432+
check(assert_type(td == dt.timedelta(days=1), bool), bool)
1433+
check(assert_type(td == np.timedelta64(1, "D"), bool), bool)
1434+
check(
1435+
assert_type(td == np.array([1, 2, 3], dtype="timedelta64[D]"), np.ndarray),
1436+
np.ndarray,
1437+
)
1438+
check(
1439+
assert_type(td == pd.TimedeltaIndex([1, 2, 3], unit="D"), np.ndarray),
1440+
np.ndarray,
1441+
)
1442+
check(assert_type(td == pd.Series([1, 2, 3]), pd.Series), pd.Series)
1443+
check(assert_type(td == pd.Timestamp("2016-01-01"), bool), bool)
1444+
check(assert_type(td == 1, bool), bool)
1445+
check(assert_type(td == (3 + 2j), bool), bool)
1446+
1447+
check(assert_type(td != td, bool), bool)
1448+
check(assert_type(td != dt.timedelta(days=1), bool), bool)
1449+
check(assert_type(td != np.timedelta64(1, "D"), bool), bool)
1450+
check(
1451+
assert_type(td != np.array([1, 2, 3], dtype="timedelta64[D]"), np.ndarray),
1452+
np.ndarray,
1453+
)
1454+
check(
1455+
assert_type(td != pd.TimedeltaIndex([1, 2, 3], unit="D"), np.ndarray),
1456+
np.ndarray,
1457+
)
1458+
check(assert_type(td != pd.Series([1, 2, 3]), pd.Series), pd.Series)
1459+
check(assert_type(td != pd.Timestamp("2016-01-01"), bool), bool)
1460+
check(assert_type(td != 1, bool), bool)
1461+
check(assert_type(td != (3 + 2j), bool), bool)

0 commit comments

Comments
 (0)