14
14
import numpy as np
15
15
import pytest
16
16
17
- from pandas ._libs .tslibs import OutOfBoundsTimedelta
17
+ from pandas ._libs .tslibs import (
18
+ NaTType ,
19
+ OutOfBoundsTimedelta ,
20
+ )
18
21
19
22
import pandas as pd
20
23
from pandas import (
@@ -33,6 +36,7 @@ def fixture_tdlike_cls(request) -> type:
33
36
return request .param
34
37
35
38
39
+ # Tick, too?
36
40
@pytest .fixture (
37
41
name = "tdlike_or_offset_cls" ,
38
42
params = (Timedelta , timedelta , np .timedelta64 , offsets .Nano ),
@@ -437,9 +441,9 @@ def test_numeric(self, ten_days, mul_op, factor, expected, box_with_array):
437
441
@pytest .mark .parametrize ("factor" , (1.01 , 2 ), ids = ("int" , "float" ))
438
442
def test_returns_nat_if_result_overflows (self , mul_op , factor , box_with_array ):
439
443
numeric_box = tm .box_expected ((1 , factor ), box_with_array , transpose = False )
440
- result = mul_op (pd . Timedelta .max , numeric_box )
444
+ result = mul_op (Timedelta .max , numeric_box )
441
445
expected = tm .box_expected (
442
- (pd . Timedelta .max , NaT ),
446
+ (Timedelta .max , NaT ),
443
447
box_with_array ,
444
448
transpose = False ,
445
449
)
@@ -574,22 +578,25 @@ def test_offset(self, ten_days: Timedelta, div_op, expected):
574
578
assert result == expected
575
579
576
580
def test_na (self , request , ten_days : Timedelta , truediv_op , na_value ):
577
- expected = NaT
578
- if na_value is NA or (
581
+ expected : NaTType | float = NaT
582
+
583
+ if na_value is None or na_value is NaT :
584
+ expected = np .nan
585
+ elif na_value is NA or (
579
586
truediv_op is ops .rtruediv and isinstance (na_value , float )
580
587
):
581
588
request .applymarker (xfail_type_error )
582
- elif na_value is None or na_value is NaT :
583
- expected = np .nan
589
+
584
590
result = truediv_op (ten_days , na_value )
585
591
assert result is expected
586
592
587
593
def test_floordiv_na (self , request , ten_days : Timedelta , na_value ):
588
- expected = NaT
589
- if na_value is NA :
590
- request .applymarker (xfail_type_error )
591
- elif na_value is None or na_value is NaT :
594
+ expected : NaTType | float = NaT
595
+
596
+ if na_value is None or na_value is NaT :
592
597
expected = np .nan
598
+ elif na_value is NA :
599
+ request .applymarker (xfail_type_error )
593
600
594
601
result = ten_days // na_value
595
602
assert result is expected
@@ -618,7 +625,8 @@ def test_rmod_na(self, request, ten_days: Timedelta, na_value):
618
625
assert result is NaT
619
626
620
627
def test_divmod_na (self , request , ten_days : Timedelta , na_value ):
621
- expected = (NaT , NaT )
628
+ expected : tuple [NaTType | float , NaTType ] = (NaT , NaT )
629
+
622
630
if na_value is None or na_value is NA :
623
631
request .applymarker (xfail_type_error )
624
632
elif na_value is NaT :
0 commit comments