zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
U
®ý°d™ã@s®dZddlmZmZddlZddlZddlZddlmZddl    Z
ddl    m Z m Z m Z mZddlmZddlmZGdd„dƒZGd    d
„d
ƒZGd d „d ƒZd d„Zdd„ZdS)z+
Tests for scalar Timedelta arithmetic ops
é)ÚdatetimeÚ    timedeltaN)ÚOutOfBoundsTimedelta)ÚNaTÚ    TimedeltaÚ    TimestampÚoffsets)Úopsc @seZdZdZej dedddedde     
dd¡e     
dd¡e   d¡g¡d    d
„ƒZ ej d ed ƒed ƒeddde     
dd¡e     
dd¡e  ¡e   d¡g¡dd„ƒZej dejejg¡dd„ƒZdd„Zej dejejg¡dd„ƒZej dejejg¡dd„ƒZej dejejg¡dd„ƒZej dejejg¡dd„ƒZd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Z d.d/„Z!d0d1„Z"d2d3„Z#d4d5„Z$d6d7„Z%d8d9„Z&ej dejejg¡d:d;„ƒZ'ej dejejg¡d<d=„ƒZ(d>d?„Z)d@dA„Z*dBdC„Z+dDS)EÚ TestTimedeltaAdditionSubtractionz\
    Tests for Timedelta methods:
 
        __add__, __radd__,
        __sub__, __rsub__
    Ú ten_secondsé
Ús©Úunit©Úsecondsld(    ÚnscCsDtdƒ}tdƒ}tdƒ}||}||ks,t‚||}||ks@t‚dS)Nz20130101 09:01:12.123456z20130101 09:01:22.123456ú20130101 09:01:02.123456©rÚAssertionError)Úselfr ÚbaseÚ expected_addÚ expected_subÚresult©rúdd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/scalar/timedelta/test_arithmetic.pyÚtest_td_add_sub_ten_seconds"s  z<TestTimedeltaAdditionSubtraction.test_td_add_sub_ten_secondsÚone_day_ten_secsz1 day, 00:00:10z1 days, 00:00:10é©ÚdaysrÚDcCsDtdƒ}tdƒ}tdƒ}||}||ks,t‚||}||ks@t‚dS)Nz20130102 09:01:12.123456z20130103 09:01:22.123456rr)rrrrrrrrrÚ#test_td_add_sub_one_day_ten_seconds8s  zDTestTimedeltaAdditionSubtraction.test_td_add_sub_one_day_ten_secondsÚopcCs¾tddd}||tdddƒƒ}|tjkr6t|tƒs6t‚|tdddƒksJt‚||tdƒƒ}t|tƒsft‚|tdƒksvt‚||t d    ¡ƒ}t|tƒs”t‚|td
ƒks¤t‚||t    ƒ}|t    ksºt‚dS) Nr Údréàré z2018-01-12 18:09z2018-01-22 18:09z
2018-01-12ú
2018-01-22)
rrÚoperatorÚaddÚ
isinstancerrÚnpÚ
datetime64r©rr$ÚtdrrrrÚtest_td_add_datetimelike_scalarNs 
 
z@TestTimedeltaAdditionSubtraction.test_td_add_datetimelike_scalarc    Csltdƒ d¡}d}tjt|d|tdddW5QRXd}tjt|d|tdd    W5QRXdS)
Nz
1700-01-01rz3Cannot cast 259987 from D to 'ns' without overflow.©Úmatchi“÷r"rz>Cannot cast 259987 days 00:00:00 to unit='ns' without overflow©r!)rÚas_unitÚpytestÚraisesrrr)rÚtsÚmsgrrrÚtest_td_add_timestamp_overflowesz?TestTimedeltaAdditionSubtraction.test_td_add_timestamp_overflowcCs@tddd}||tddƒ}t|tƒs*t‚|tddks<t‚dS)Nr r%rr3é©rr+rr.rrrÚtest_td_add_tdos z/TestTimedeltaAdditionSubtraction.test_td_add_tdcCs@tddd}||tddƒ}t|tƒs*t‚|tddks<t‚dS)Nr r%ré    r3é©rrr+rr.rrrÚtest_td_add_pytimedeltaws z8TestTimedeltaAdditionSubtraction.test_td_add_pytimedeltacCsBtddd}||t dd¡ƒ}t|tƒs,t‚|tddks>t‚dS)Nr r%réüÿÿÿr"ér3©rr,Ú timedelta64r+rr.rrrÚtest_td_add_timedelta64~s z8TestTimedeltaAdditionSubtraction.test_td_add_timedelta64cCsBtddd}||t d¡ƒ}t|tƒs*t‚|tdddks>t‚dS)Nr r%rrB©r!Úhours©rrÚHourr+rr.rrrÚtest_td_add_offset…s z3TestTimedeltaAdditionSubtraction.test_td_add_offsetcCs>tddd}tddd}||}t|tƒs.t‚||ks:t‚dS©Nr r%rrrr;©rr/ÚexpectedrrrrÚtest_td_sub_tds
  z/TestTimedeltaAdditionSubtraction.test_td_sub_tdcCshtddd}tddd}|| ¡}t|tƒs2t‚||ks>t‚| ¡|}t|tƒsXt‚||ksdt‚dSrK)rÚto_pytimedeltar+rrLrrrÚtest_td_sub_pytimedelta”s     z8TestTimedeltaAdditionSubtraction.test_td_sub_pytimedeltacCshtddd}tddd}|| ¡}t|tƒs2t‚||ks>t‚| ¡|}t|tƒsXt‚||ksdt‚dSrK)rÚto_timedelta64r+rrLrrrÚtest_td_sub_timedelta64 s     z8TestTimedeltaAdditionSubtraction.test_td_sub_timedelta64cCs$tddd}|t}|tks t‚dS©Nr r%r©rrr©rr/rrrrÚtest_td_sub_nat¬s z0TestTimedeltaAdditionSubtraction.test_td_sub_natcCsBtddd}t d¡}||}|tks*t‚||}|tks>t‚dS©Nr r%rr©rr,rDrr)rr/Útd_natrrrrÚtest_td_sub_td64_nat²s  
 z5TestTimedeltaAdditionSubtraction.test_td_sub_td64_natcCs@tddd}|t d¡}t|tƒs(t‚|tdddks<t‚dS)Nr r%rréïÚhrHrUrrrÚtest_td_sub_offset¼s z3TestTimedeltaAdditionSubtraction.test_td_sub_offsetc
Csºtddd}d}ddt d¡t d¡fD]Œ}tjt|d||W5QRXtjt|d||W5QRXtjt|d||W5QRXtjt|d||W5QRXq(dS)Nr r%rúunsupported operand typeéç@r1)rr,Úint64Úfloat64r5r6Ú    TypeError)rr/r8ÚotherrrrÚtest_td_add_sub_numeric_raisesÂs z?TestTimedeltaAdditionSubtraction.test_td_add_sub_numeric_raisesc    CsÂtdƒ}t dg¡}d}tjt|d|t dg¡W5QRXd ddg¡}tjt|d||W5QRXd}tjt|d||W5QRXd    }tjt|d||W5QRXdS)
Nú1 dayrz;unsupported operand type\(s\) for \+: 'Timedelta' and 'int'r1ú|zEunsupported operand type\(s\) for \+: 'numpy.ndarray' and 'Timedelta'z;Concatenation operation is not implemented for NumPy arraysz:unsupported operand type\(s\) for -: 'Timedelta' and 'int'zDunsupported operand type\(s\) for -: 'numpy.ndarray' and 'Timedelta')rr,Úarrayr5r6rcÚjoin©rr/rdr8rrrÚtest_td_add_sub_int_ndarrayÏs$ ùÿ z<TestTimedeltaAdditionSubtraction.test_td_add_sub_int_ndarraycCs>tddd}t|}|tks t‚t d¡|}|tks:t‚dSrW)rrrr,r-rUrrrÚtest_td_rsub_natës
  z1TestTimedeltaAdditionSubtraction.test_td_rsub_natcCs<t d¡tddd}t|tƒs$t‚|tdddks8t‚dS)Nrr r%riÿÿÿr\)rrIrr+r©rrrrrÚtest_td_rsub_offsetósz4TestTimedeltaAdditionSubtraction.test_td_rsub_offsetcCsHt tdƒtdƒg¡}t tdƒtdƒg¡}|tdƒ}t ||¡dS)Nú 20130101 9:01ú 20121230 9:02z 20121231 9:01z 20121229 9:02Ú1D©r,rhrrÚtmÚassert_numpy_array_equal)rÚarrÚexpÚresrrrÚ,test_td_sub_timedeltalike_object_dtype_arrayøs zMTestTimedeltaAdditionSubtraction.test_td_sub_timedeltalike_object_dtype_arraycCsltdƒ}t |tdƒt dd¡g¡}t |tdƒtdƒt dd¡tdƒg¡}|tdƒ}t ||¡dS)Nú2021-11-09 09:54:00rqr_r\Z0D)rr,rhrrDrsrt)rÚnowrurvrwrrrÚ7test_td_sub_mixed_most_timedeltalike_object_dtype_arrayÿs
ýÿ zXTestTimedeltaAdditionSubtraction.test_td_sub_mixed_most_timedeltalike_object_dtype_arrayc    CsRtdƒ}t |tdƒt dd¡g¡}d}tjt|dtdƒ|W5QRXdS)Nryrqr_r\zAunsupported operand type\(s\) for \-: 'Timedelta' and 'Timestamp'r1)rr,rhrrDr5r6rc)rrzrur8rrrÚ8test_td_rsub_mixed_most_timedeltalike_object_dtype_array s
zYTestTimedeltaAdditionSubtraction.test_td_rsub_mixed_most_timedeltalike_object_dtype_arraycCsJt tdƒtdƒg¡}t tdƒtdƒg¡}||tdƒƒ}t ||¡dS)Nrorpz 20130102 9:01z 20121231 9:02rqrr)rr$rurvrwrrrÚ,test_td_add_timedeltalike_object_dtype_arrayszMTestTimedeltaAdditionSubtraction.test_td_add_timedeltalike_object_dtype_arraycCsRtdƒ}t |tdƒg¡}t |tdƒtdƒg¡}||tdƒƒ}t ||¡dS)NryrqZ2D)rr,rhrrsrt)rr$rzrurvrwrrrÚ2test_td_add_mixed_timedeltalike_object_dtype_arrays
zSTestTimedeltaAdditionSubtraction.test_td_add_mixed_timedeltalike_object_dtype_arraycCsˆtdƒ}t | ¡g¡}t tdƒ ¡g¡}||}t ||¡||}t ||¡||}t ||d¡||}t ||d¡dS)Nrfú2 Daysr©rr,rhrQrsrt©rr/rdrMrrrrÚtest_td_add_sub_td64_ndarray&s  z=TestTimedeltaAdditionSubtraction.test_td_add_sub_td64_ndarraycCsxtdƒ}t dg¡j}t dg¡j}t |||¡t |||¡t dg¡j}t | ||¡t |||¡dS)Nrfz
2000-01-01z
2000-01-02z
1999-12-31)rÚpdÚ to_datetimeÚvaluesrsrt)rr/rdrMrrrÚtest_td_add_sub_dt64_ndarray6sz=TestTimedeltaAdditionSubtraction.test_td_add_sub_dt64_ndarraycCs°tdƒ}t |j¡}||}t|tƒs*t‚|d|ks:t‚||}t|tƒsPt‚|d|ks`t‚||}t|tƒsvt‚|d|ks†t‚||}t|tƒsœt‚|d|ks¬t‚dS)Nrfr_r)rr,rhÚasm8r+r)rr/rdrrrrÚtest_td_add_sub_ndarray_0dBs z;TestTimedeltaAdditionSubtraction.test_td_add_sub_ndarray_0dN),Ú__name__Ú
__module__Ú __qualname__Ú__doc__r5ÚmarkÚ parametrizerrr,rDrZSecondrZDayr#r)r*r    Zraddr0r9r<r@rErJrNrPrRrVrZr]rerkrlrnrxr{r|r}r~r‚r†rˆrrrrr
sh
 
 
ûþ
 
 
ûþ
 
 
 
 
 
 
 
 
 
 
 r
c
@sŒeZdZdZej dee     dd¡e     d¡g¡ej de
j e j g¡dd„ƒƒZej deje d    ¡edƒg¡ej de
j e j g¡d
d „ƒƒZej de
j e j g¡d d „ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zej deje d    ¡edƒg¡dd„ƒZdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Z d(d)„Z!d*d+„Z"d,d-„Z#d.d/„Z$d0d1„Z%d2d3„Z&d4d5„Z'd6d7„Z(d8d9„Z)d:d;„Z*d<d=„Z+d>d?„Z,d@dA„Z-dBdC„Z.dDdE„Z/dFdG„Z0dHdI„Z1dJdK„Z2dLdM„Z3dNdO„Z4dPdQ„Z5dRdS„Z6dTdU„Z7dVdW„Z8dXdY„Z9dZd[„Z:d\d]„Z;d^d_„Z<d`da„Z=dbdc„Z>ddde„Z?ej de
j e j e
j@e jAe jBg¡ej dfe CeDdgƒeDdhƒg¡e CeDdiƒeEdjƒg¡g¡dkdl„ƒƒZFdmS)nÚ#TestTimedeltaMultiplicationDivisionzà
    Tests for Timedelta methods:
 
        __mul__, __rmul__,
        __div__, __rdiv__,
        __truediv__, __rtruediv__,
        __floordiv__, __rfloordiv__,
        __mod__, __rmod__,
        __divmod__, __rdivmod__
    rYrrr$c    Cs`tddd}d dddg¡}d d|›d    |›d
d g¡}tjt|d |||ƒW5QRXdS) Nr r%rrgznumpy.timedelta64ZNaTTyperz'unsupported operand type\(s\) for \*: 'z' and 'ú'z1ufunc '?multiply'? cannot use operands with typesr1)rrir5r6rc)rr$rYr/Ztypsr8rrrÚtest_td_mul_natfs þÿz3TestTimedeltaMultiplicationDivision.test_td_mul_natÚnanÚNaNcCs&tddd}|||ƒ}|tks"t‚dSrSrT)rr$r’r/rrrrÚtest_td_mul_nanws 
z3TestTimedeltaMultiplicationDivision.test_td_mul_nanc    Csätdd}||dƒ}|tddks&t‚||dƒ}|tdddksDt‚||tjƒtksXt‚|d    |ƒjd    |jksrt‚|d
|ƒjd
|jksŒt‚d }tjt|d ||t    d ddƒƒW5QRXtjt|d |||ƒW5QRXdS)Né©Úminutesr_rBgø?éé©r—réÿÿÿÿgð¿r^r1r&r)
rrr,r’rÚ_valuer5r6rcr)rr$r/rr8rrrÚtest_td_mul_scalars
 
 
z6TestTimedeltaMultiplicationDivision.test_td_mul_scalarcCsTtdƒ}t dg¡}t tdƒ ¡g¡}||}t ||¡||}t ||¡dS)Nrfr_rr€rrrrÚtest_td_mul_numeric_ndarray˜s  z?TestTimedeltaMultiplicationDivision.test_td_mul_numeric_ndarraycCsttdƒ}t d¡}|jdks t‚tdƒ}||}t|ƒtks@t‚||ksLt‚||}t|ƒtksdt‚||kspt‚dS)Nrfr_rú2 days)rr,rhÚndimrÚtype)rr/rdrMrwrrrÚtest_td_mul_numeric_ndarray_0d£s
 zBTestTimedeltaMultiplicationDivision.test_td_mul_numeric_ndarray_0dc    Csztdƒ}t tdƒ ¡g¡}dtj›dtj›d}tjt|d||W5QRXtjt|d||W5QRXdS)Nrfrz:ufunc '?multiply'? cannot use operands with types dtype\('zm8\[ns\]'\) and dtype\('z m8\[ns\]'\)r1)    rr,rhrQrsZENDIANr5r6rcrjrrrÚ test_td_mul_td64_ndarray_invalid±sÿzDTestTimedeltaMultiplicationDivision.test_td_mul_td64_ndarray_invalidcCsdtddd}|t d¡}|dks&t‚||dks6t‚|t dd¡dksNt‚t |t¡s`t‚dS)    Nr r%rréðé<r\r˜)rrrIrr,rDÚisnanrrUrrrÚ test_td_div_timedeltalike_scalarÁs   zDTestTimedeltaMultiplicationDivision.test_td_div_timedeltalike_scalarcCsÌtdƒ}|t dd¡}||jdks*t‚|t dd¡}||jdksLt‚|t dd¡}||jksjt‚tdƒ}|t dd¡}|dksŽt‚|t dd¡}|dksªt‚|t dd¡}||jksÈt‚dS)    Nz1 days 2 hours 3 nsrr"lž"R:r éʚ;ri m)rr,rDrœrrUrrrÚtest_td_div_td64_non_nanoÍs  z=TestTimedeltaMultiplicationDivision.test_td_div_td64_non_nanocCs`tddd}|d}t|tƒs"t‚|tddks4t‚|d}t|tƒsJt‚|tddks\t‚dS)Nr r%rr_ér3r;rUrrrÚtest_td_div_numeric_scalaràs z>TestTimedeltaMultiplicationDivision.test_td_div_numeric_scalarcCs8tddd}||}|tks t‚||}|tks4t‚dSrSrT)rr’r/rrrrÚtest_td_div_nanìs
 
 z3TestTimedeltaMultiplicationDivision.test_td_div_nancCsXtdƒ}t tdƒ ¡g¡}t dg¡}||}t ||¡||}t ||d¡dS)Nrfrgà?r˜r€rrrrÚtest_td_div_td64_ndarrayýs  z<TestTimedeltaMultiplicationDivision.test_td_div_td64_ndarraycCs8tdƒ}t d¡}||}t|tƒs(t‚||ks4t‚dS)Nrfr)rr,rhr+r)rr/rdrwrrrÚtest_td_div_ndarray_0d    s
 
z:TestTimedeltaMultiplicationDivision.test_td_div_ndarray_0dcCsBtddd}t d¡|}|dks&t‚t dd¡|dks>t‚dS)    Nr r%rrgq?r¥r\gÐ?)rrrIrr,rDrUrrrÚ!test_td_rdiv_timedeltalike_scalars  zETestTimedeltaMultiplicationDivision.test_td_rdiv_timedeltalike_scalarc    Cs¬tddd}t|}t |¡s"t‚d|}t |¡s8t‚t d¡|}t |¡sTt‚d}tjt|dt     d¡|W5QRXd}tjt|dtj
|W5QRXdS)Nr r%rrzGunsupported operand type\(s\) for /: 'numpy.datetime64' and 'Timedelta'r1ú<unsupported operand type\(s\) for /: 'float' and 'Timedelta') rrr,r¦rrDr5r6rcr-r’)rr/rr8rrrÚtest_td_rdiv_na_scalars z:TestTimedeltaMultiplicationDivision.test_td_rdiv_na_scalarc    Csætddd}tj|gtd}||}tjdgtjd}t ||¡t dg¡}||}t tjg¡}t ||¡tjtjgtd}d}tj    t
|d||W5QRXtjtjgtjd}d}tj    t
|d||W5QRXdS)    Nr r%r©Údtyperr°r1z$cannot use operands with types dtype) rr,rhÚobjectrbrsrtr’r5r6rc)rr/rurrMr8rrrÚtest_td_rdiv_ndarray1s"    z8TestTimedeltaMultiplicationDivision.test_td_rdiv_ndarraycCs,tddd}t |j¡}||dks(t‚dS)Nr r%rr)rr,rhr‡r)rr/rurrrÚtest_td_rdiv_ndarray_0dHs  z;TestTimedeltaMultiplicationDivision.test_td_rdiv_ndarray_0dcCsZtddd}tddd}||dks(t‚| | ¡dks>t‚d|| ¡dksVt‚dS)Nr•r˜©rGr—réþÿÿÿr_)rrrOrQ©rr/ÚscalarrrrÚ%test_td_floordiv_timedeltalike_scalarRs
  zITestTimedeltaMultiplicationDivision.test_td_floordiv_timedeltalike_scalarcCsLtddd}|tjtkst‚t |t¡s0t‚t |t d¡¡sHt‚dS)Nr•r˜r·r)rr,r’rrr¦rD©rr/rrrÚtest_td_floordiv_null_scalar[s z@TestTimedeltaMultiplicationDivision.test_td_floordiv_null_scalarcCs<tddd}|t d¡dks"t‚|t d¡dks8t‚dS)Nr•r˜r·rr_é\)rrrIrZMinuter¼rrrÚtest_td_floordiv_offsetscs z<TestTimedeltaMultiplicationDivision.test_td_floordiv_offsetsc    CsLtddd}d dddg¡}tjt|d|tjd    d
d W5QRXdS) Nr•r˜r·rgz.Invalid dtype datetime64\[D\] for __floordiv__z8'dtype' is an invalid keyword argument for this functionz5ufunc '?floor_divide'? cannot use operands with typesr1ú
2016-01-01zdatetime64[us]r²)rrir5r6rcr,r-©rr/r8rrrÚtest_td_floordiv_invalid_scalaris ýÿzCTestTimedeltaMultiplicationDivision.test_td_floordiv_invalid_scalarcCs~tddd}tddd}|d|ks(t‚|d|ks8t‚|t d¡|ksNt‚|t d¡|ksdt‚|t d¡|kszt‚dS)Nr•r˜r·ré r_r`)rrr,rbÚint32Úuint8)rr/rMrrrÚtest_td_floordiv_numeric_scalarws  zCTestTimedeltaMultiplicationDivision.test_td_floordiv_numeric_scalarcCs¨tddd}tddd}|t | ¡¡dks2t‚d|t | ¡g¡}tjdgtjd}t ||¡d|t | ¡t d¡g¡}t dtj    g¡}t ||¡dS)Nr•r˜r·rr²r r)
rr,rhrQrrarsrtrDr’)rr/rºrwrMrrrÚ$test_td_floordiv_timedeltalike_array‚s    zHTestTimedeltaMultiplicationDivision.test_td_floordiv_timedeltalike_arraycCs:tddd}tjdgtjd}||}|jjdks6t‚dS)Nr•r˜r·rr²Úm)rrƒÚSeriesr,rar³Úkindr)rr/ÚserrwrrrÚtest_td_floordiv_numeric_series’s zCTestTimedeltaMultiplicationDivision.test_td_floordiv_numeric_seriescCs`tddd}tddd}| |¡dks*t‚|  | ¡¡dksBt‚d| | ¡¡dks\t‚dS)Nr•r·r˜rr¸r_r)rÚ __rfloordiv__rrOrQr¹rrrÚ&test_td_rfloordiv_timedeltalike_scalarœs
  zJTestTimedeltaMultiplicationDivision.test_td_rfloordiv_timedeltalike_scalarcCs>tddd}t | t¡¡s t‚t | t d¡¡¡s:t‚dS)Nr•r·r)rr,r¦rÍrrrDr¼rrrÚtest_td_rfloordiv_null_scalar«s zATestTimedeltaMultiplicationDivision.test_td_rfloordiv_null_scalarcCs t d¡tdddkst‚dS)Nrér–r_)rrIrr©rrrrÚtest_td_rfloordiv_offsets²sz=TestTimedeltaMultiplicationDivision.test_td_rfloordiv_offsetsc    CsTtddd}t dd¡}| |¡tks*t‚d}tjt|d||W5QRXdS)Nr•r·rÀÚuszHunsupported operand type\(s\) for //: 'numpy.datetime64' and 'Timedelta'r1)    rr,r-rÍÚNotImplementedrr5r6rc)rr/Zdt64r8rrrÚ test_td_rfloordiv_invalid_scalar¶s  ÿzDTestTimedeltaMultiplicationDivision.test_td_rfloordiv_invalid_scalarc    Cs tddd}| tj¡tks t‚| d¡tks2t‚| d¡tksDt‚| t d¡¡tks\t‚| t d¡¡tkstt‚| t d¡¡tksŒt‚d}t    j
t |dt d¡|W5QRXt    j
t |dt d¡|W5QRXt    j
t |dt d¡|W5QRXdS)    Nr•r·g @r_r`r=z9unsupported operand type\(s\) for //: '.*' and 'Timedeltar1) rrÍr,r’rÔrrbrÅrÄr5r6rcrÁrrrÚ test_td_rfloordiv_numeric_scalarÄs zDTestTimedeltaMultiplicationDivision.test_td_rfloordiv_numeric_scalarcCs²tddd}tddd}| t | ¡¡¡dks4t‚| t d| ¡g¡¡}tjdgtjd}t ||¡t d| ¡t     d¡g¡}| |¡}t dtj
g¡}t ||¡dS)Nr•r·r˜rr²r r) rrÍr,rhrQrrarsrtrDr’)rr/rºrwrMrurrrÚ%test_td_rfloordiv_timedeltalike_arrayØs   
zITestTimedeltaMultiplicationDivision.test_td_rfloordiv_timedeltalike_arrayc    CsHt ddddg¡d}d}tjt|d|tdd    d
W5QRXdS) Ni€rPiisPi€ºtPi vPr¨ú Invalid dtyper1rr r)r,rhr5r6rcr)rÚintsr8rrrÚtest_td_rfloordiv_intarrayész>TestTimedeltaMultiplicationDivision.test_td_rfloordiv_intarrayc    Cs^tddd}tjdgtjd}| |¡}|tks4t‚d}tj    t
|d||W5QRXdS)Nr•r·rr²rØr1) rrƒrÉr,rarÍrÔrr5r6rc)rr/rËrwr8rrrÚ test_td_rfloordiv_numeric_seriesñs 
 zDTestTimedeltaMultiplicationDivision.test_td_rfloordiv_numeric_seriescCs|tdd}|tdd}t|tƒs&t‚|tddks8t‚|tdd}t|tƒsTt‚|tdƒksdt‚|t}|tksxt‚dS)Né%©rGrBrr¥r–r)rr+rrrrUrrrÚtest_mod_timedeltalikes
z:TestTimedeltaMultiplicationDivision.test_mod_timedeltalikecCs*tdd}|t dd¡}|tks&t‚dS)NrÜrÝrrrXrUrrrÚtest_mod_timedelta64_nats
z<TestTimedeltaMultiplicationDivision.test_mod_timedelta64_natcCs>tdd}|t dd¡}t|tƒs(t‚|tddks:t‚dS)NrÜrÝr_r\rrCrUrrrÚtest_mod_timedelta64s
z8TestTimedeltaMultiplicationDivision.test_mod_timedelta64cCs<tdd}|t d¡}t|tƒs&t‚|tddks8t‚dS)NrÜrÝrªr_rHrUrrrÚtest_mod_offsets
z3TestTimedeltaMultiplicationDivision.test_mod_offsetcCsŒtdd}|d}t|tƒs t‚|tdƒks0t‚|d}t|tƒsFt‚|tdddksZt‚|tdƒ}t|tƒstt‚|tdddksˆt‚dS)    NrÜrÝr_rg¢”mBr•r:rš)rr+rÚintrUrrrÚtest_mod_numeric's
 z4TestTimedeltaMultiplicationDivision.test_mod_numericc    CsZtdd}d}tjt|d|tdƒW5QRXtjt|d|gW5QRXdS)NrÜrÝr^r1r()rr5r6rcrrÁrrrÚtest_mod_invalid8s 
z4TestTimedeltaMultiplicationDivision.test_mod_invalidcCs<tdd}tdd|}t|tƒs&t‚|tddks8t‚dS)Nr•r–r˜rr?rUrrrÚtest_rmod_pytimedeltaBs
z9TestTimedeltaMultiplicationDivision.test_rmod_pytimedeltacCs>tdd}t dd¡|}t|tƒs(t‚|tddks:t‚dS)Nr•r–rªrÈr_rCrUrrrÚtest_rmod_timedelta64Js
z9TestTimedeltaMultiplicationDivision.test_rmod_timedelta64c    Cs¬tdd}d}tjt|dtdƒ|W5QRXtjt|dd|W5QRXtjt|dd|W5QRXd}tjt|dt d    d
g¡|W5QRXdS) Nr•r–zunsupported operandr1r(éç0@úInvalid dtype intéé)rr5r6rcrr,rhrÁrrrÚtest_rmod_invalidQs
z5TestTimedeltaMultiplicationDivision.test_rmod_invalidcCsŽtddd}t|dƒ}|dtdddks.t‚t|dtƒs@t‚|dtdd    ksVt‚|s^t‚t|tjƒ}|dtkszt‚|dtksŠt‚dS)
Nr_rBrFg$DZåBrrrrrÝ)rÚdivmodrr+r,r’rrUrrrÚtest_divmod_numericfs 
 z7TestTimedeltaMultiplicationDivision.test_divmod_numericcCsÊtddd}t|tddƒ}|ddks,t‚t|dtƒs>t‚|dtddksTt‚t|dƒ}|dtddkstt‚t|dtƒs†t‚|dtdƒksšt‚t|tƒ}t |d¡s¶t‚|dtksÆt‚dS)    Nr_rBrFrr3rrÝé6)rrírrr+rr,r¦rUrrrÚ test_divmodts 
 
z/TestTimedeltaMultiplicationDivision.test_divmodcCsXtddd}t|t d¡ƒ}|ddks,t‚t|dtƒs>t‚|dtdd    ksTt‚dS)
Nr_rBrFrAréòÿÿÿrr¸rÝ)rrírrIrr+rUrrrÚtest_divmod_offset†s
 z6TestTimedeltaMultiplicationDivision.test_divmod_offsetc    Cs<tddd}d}tjt|dt|tdƒƒW5QRXdS)Nr_rBrFzAunsupported operand type\(s\) for //: 'Timedelta' and 'Timestamp'r1r()rr5r6rcrírrÁrrrÚtest_divmod_invalids z7TestTimedeltaMultiplicationDivision.test_divmod_invalidcCsTttdddtddƒ}|ddks(t‚t|dtƒs:t‚|dtddksPt‚dS)Nr_rBrFrr3rrÝ)rírrrr+rmrrrÚtest_rdivmod_pytimedelta—sz<TestTimedeltaMultiplicationDivision.test_rdivmod_pytimedeltacCsRtt d¡tddƒ}|ddks&t‚t|dtƒs8t‚|dtddksNt‚dS)NrïrArÝrrñrr¸)rírrIrrr+rmrrrÚtest_rdivmod_offsetžsz7TestTimedeltaMultiplicationDivision.test_rdivmod_offsetc    Cs´tdd}d}tjt|dttdƒ|ƒW5QRXtjt|dtd|ƒW5QRXtjt|dtd|ƒW5QRXd}tjt|dtt d    d
g¡|ƒW5QRXdS) Nr•r–r^r1r(rçrèrérêrë)rr5r6rcrírr,rhrÁrrrÚtest_rdivmod_invalid¤s
z8TestTimedeltaMultiplicationDivision.test_rdivmod_invalidrurorpryrqc    Cs0d}tjt|d||tdƒƒW5QRXdS)Nz7unsupported operand type|cannot use operands with typesr1rq)r5r6rcr)rr$rur8rrrÚ(test_td_op_timedelta_timedeltalike_array¸s zLTestTimedeltaMultiplicationDivision.test_td_op_timedelta_timedeltalike_arrayN)Gr‰rŠr‹rŒr5rrŽrr,rDr)Úmulr    Zrmulr‘r’rbÚfloatr”rržr¢r£r§r©r«r¬r­r®r¯r±rµr¶r»r½r¿rÂrÆrÇrÌrÎrÏrÒrÕrÖr×rÚrÛrÞrßràrárãrärårærìrîrðròrórôrõröÚtruedivZrdivZrsubrhrrr÷rrrrrWs”ÿ  
   ýþ
      
     
 
    ÿþþrc@s^eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    e
j   dddg¡dd„ƒZ dS)ÚTestTimedeltaComparisoncCs¶dD]È}tj |¡j}tj |¡j}|tjks2t‚|tjks@t‚|tjkrNt‚|tjkr\t‚|tjksjt‚|tjkrxt‚|tjks†t‚|tjks”t‚|tjkr¢t‚|tjkr°t‚|tjks¾t‚|tjkrt‚qdD]Þ}tj |¡j}tj |¡j}|tjkst‚|tjkst‚|tjkr"t‚|tjkr2t‚|tjksBt‚|tjkrRt‚|tjksbt‚|tjksrt‚|tjkr‚t‚|tjkr’t‚|tjks¢t‚|tjkrÒt‚qÒdS)N)rrÓ)Úmsr )rÚmaxr4Úminrr)rrZtdmaxZtdminrrrÚtest_compare_pytimedelta_boundsÉs<z7TestTimedeltaComparison.test_compare_pytimedelta_boundscCsøtddd}t |jd¡t |jd¡}t|ƒ}|j|jks@t‚|j|jksPt‚||ks\t‚||krht‚||krtt‚||kr€t‚||ksŒt‚||ks˜t‚|tdd d¡}||ks¸t‚||krÄt‚||ksÐt‚||ksÜt‚||krèt‚||krôt‚dS)Niÿɚ;iQr r"r rr)rr,rDr!rrrr4)rZpytdZtd64r/Ztd2rrrÚ test_compare_pytimedelta_bounds2ñs$            z8TestTimedeltaComparison.test_compare_pytimedelta_bounds2cCsÌ|}|dƒ}|j}t|tƒs t‚||ks,t‚||kr8t‚||ksDt‚||ksPt‚||kr\t‚||krht‚|d|krxt‚|d|ksˆt‚|d|ks˜t‚|d|ks¨t‚|d|kr¸t‚|d|krÈt‚dS)Nr˜r_)Údeltar+rr)rZ tick_classesÚclsÚoffr/rrrÚtest_compare_tick    s       z)TestTimedeltaComparison.test_compare_tickcCs¬tdƒ}tdƒ}tj||gtd}||k}tjddgtd}||k ¡sLt‚tj||g||ggtd}||k}tjddgddggtd}|j|jks˜t‚||k ¡s¨t‚dS)NrŸz3 hoursr²FT)rr,rhr´ÚboolÚallrÚshape)rr/rdrurwrMrrrÚtest_comparison_object_arraysz4TestTimedeltaComparison.test_comparison_object_arraycCsDtdƒtdƒg}t |¡}|d|k}t ddg¡}t ||¡dS)Nz0 days 01:00:00rF)rr,rhrsrt)rZperiodsrurrMrrrÚtest_compare_timedelta_ndarray/s
 
 z6TestTimedeltaComparison.test_compare_timedelta_ndarraycCsŒt d¡ d¡}t|dƒ}tjdddddgtd}||k}t ||¡||k}t ||¡||k}t ||¡||k}t ||¡dS)Nrªztimedelta64[ns]rFTr²)r,ZarangeZastyperrhrrsrt)rrur/rMrrrrÚtest_compare_td64_ndarray7s   z1TestTimedeltaComparison.test_compare_td64_ndarraycCsˆGdd„dƒ}tdƒ}|dks"t‚|dks.t‚||ƒks<t‚||ddksNt‚||ddks`t‚||ddkrrt‚||ddks„t‚d    S)
        Make sure non supported operations on Timedelta returns NonImplemented
        and yields to other operand (GH#20829).
        c@s4eZdZd ddœdd„Zdd„Zdd„Zd    d
„ZdS) zGTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClassN)ÚreturncSs
||_dS©N©Ú
cmp_result)rrrrrÚ__init__QszPTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.__init__cSs|jdkrtS|jSdSr )rrÔrÑrrrÚgeneric_resultTs
zVTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.generic_resultcSs| ¡Sr ©r©rrdrrrÚ__eq__ZszNTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.__eq__cSs| ¡Sr rrrrrÚ__gt__]szNTestTimedeltaComparison.test_compare_custom_object.<locals>.CustomClass.__gt__)N)r‰rŠr‹rrrrrrrrÚ CustomClassPsrÚ1sÚstringrFr TN)rr)rrÚtrrrÚtest_compare_custom_objectJs  z2TestTimedeltaComparison.test_compare_custom_objectÚvalrrc    Cs˜tdƒ}d}tjt|d||kW5QRXtjt|d||kW5QRXtjt|d||kW5QRXtjt|d||kW5QRXdS)Nrz>not supported between instances of 'Timedelta' and '(int|str)'r1)rr5r6rc)rrrr8rrrÚtest_compare_unknown_typelsz1TestTimedeltaComparison.test_compare_unknown_typeN)r‰rŠr‹rÿrrrr    r
rr5rrŽrrrrrrûÈs("rûcCszGdd„dƒ}|ƒ}tdƒ}| |¡tks.t‚| |¡tks@t‚| |¡tksRt‚| |¡tksdt‚| |¡tksvt‚dS)Nc@s eZdZdS)z&test_ops_notimplemented.<locals>.OtherN)r‰rŠr‹rrrrÚOther|srrf)rÚ__add__rÔrÚ__sub__Ú __truediv__Ú__mul__Ú __floordiv__)rrdr/rrrÚtest_ops_notimplemented{sr"c
Cs–tdƒ}|dfd|ffD]x\}}d dddg¡}tjt|d||W5QRXd}tjt|d||kW5QRX||kr„t‚||kst‚qdS)    NrfÚargr^z3can only concatenate str \(not "Timedelta"\) to strzmust be str, not Timedeltar1z"not supported between instances of)rrir5r6rcr)r/ÚleftÚrightr8rrrÚtest_ops_error_str‰sýÿ r&)rŒrrr)Únumpyr,r5Z pandas.errorsrZpandasrƒrrrrZpandas._testingZ_testingrsZ pandas.corer    r
rrûr"r&rrrrÚ<module>s*   ?u4