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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
U
®ý°d¦Ôã@sddlmZmZmZddlZddlZddlmZmZ    ddl
m Z m Z ddl mZddlmZddlmZmZddlZddlmZmZmZmZmZddlmZGd    d
„d
ƒZGd d „d ƒZGd d„dƒZ Gdd„dƒZ!Gdd„dƒZ"Gdd„dƒZ#dd„Z$dd„Z%dd„Z&dd„Z'dS)é)ÚdateÚdatetimeÚ    timedeltaN)ÚiNaTÚperiod)ÚDAYSÚMONTHS)ÚOutOfBoundsDatetime)ÚDateParseError)ÚINVALID_FREQ_ERR_MSGÚIncompatibleFrequency)ÚNaTÚPeriodÚ    TimedeltaÚ    TimestampÚoffsetsc @sjeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z ej de¡dd„ƒZej de¡dd„ƒZej de¡ej deddƒ¡d d!„ƒƒZd"d#„Zd$d%„Zej d&d'd(d)d*g¡d+d,„ƒZd-d.„Zd/d0„Zd1d2„Zej dd3d4d5g¡ej d6d7d8d9d:g¡ej d;d<d=d>d?d@dAdBdCg¡dDdE„ƒƒƒZej d6edFƒ¡dGdH„ƒZdIS)JÚTestPeriodConstructionc    CsZt d¡}d}tjt|dt|ƒW5QRXtjt|dt|ddW5QRXdS)Nzm8[ns]ú2Value must be Period, string, integer, or datetime©ÚmatchÚD©Úfreq)r Zto_numpyÚpytestÚraisesÚ
ValueErrorr)ÚselfÚtdÚmsg©rú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/scalar/period/test_period.pyÚtest_from_td64nat_raises%s 
z/TestPeriodConstruction.test_from_td64nat_raisesc    Csˆtddd}tdƒ}||ks t‚tddd}tdƒ}tddd}||ksLt‚||ksXt‚tddd}tddd}||ks|t‚||ksˆt‚t d    ¡}tt ¡d    d}t d
¡}||ks¸t‚||ksÄt‚t d ¡}tt ¡d d}t t ¡¡}||ksøt‚||kst‚td d d}td dd}||ks,t‚tdddd d}tdd d}||ksVt‚tddddd}||kstt‚tdƒ}ttdddddddƒdd}||ks¦t‚tddd}||ksÀt‚tdƒ}ttdddddddƒdd}||ksòt‚tddd}||ks t‚d}tjt|dtd d!W5QRXd"}tjt|dtd#d$dW5QRXtjt    d%dtd d&dW5QRXdS)'Nú1/1/2005ÚMrzJan 2005Ú2005ÚAÚaÚmÚQÚqrÚ1982ÚminZMINéÕéé©ÚyearÚmonthÚdayrz3/1/2005Údú2007-01-01 09:00:00.001é×é    réèÚLú2007-01-01 09:00:00.00101éòÚUz"Must supply freq for ordinal valueréý)ÚordinalzInvalid frequency: Xz2007-1-1ÚXzpass as a string instead)ÚMinr.)
rÚAssertionErrorÚnowrrÚDayrrrÚ    TypeError)rÚi1Úi2Úi3Úi4Úi5Úexpectedrrrr Útest_construction0s`          
 
 
      z(TestPeriodConstruction.test_constructioncCsTtdƒ}t|dd}| ¡}||ks(t‚|j}t|dd}| ¡}|j|ksPt‚dS)Nz2022-04-20 09:23:24.123456789Únsr)rrÚ to_timestampr@Zasm8)rÚtsÚperÚrtZdt64Úper2Zrt2rrr Ú&test_construction_from_timestamp_nanosvs   z=TestPeriodConstruction.test_construction_from_timestamp_nanoscCsªtddd}tddd}|| d¡ks*t‚tddd}|| d¡ksHt‚tddd}|| d¡ksft‚tddd}||ks~t‚tdd    d
dd }tddd}||ks¦t‚dS) Nú3/10/12ÚBrrz3/11/12z3/12/12ÚbéÜr-é
r/)rÚasfreqr@)rrDrErFrrr Útest_construction_bday…s       z-TestPeriodConstruction.test_construction_bdaycCs,tdddd}tddd}||ks&t‚tdddd}tddd}||ksLt‚td    ƒ}tdddd}td
ƒ}||ksvt‚||ks‚t‚td ƒ}||ks–t‚td ƒ}||ksªt‚td ƒ}||ks¾t‚tdƒ}||ksÒt‚tdƒ}||ksæt‚tdƒ}||ksút‚tdƒ}|jdkst‚tdƒ}||ks(t‚dS)Nr,r.r(©r0Úquarterrr"rr-z9/1/2005Z2005Q1Z2005q1Z05Q1Z05q1Z1Q2005Z1q2005Z1Q05Z1q05Z4Q1984iÀZ4q1984)rr@r0)rrDrErFÚlowerrrr Útest_construction_quarter–s6            z0TestPeriodConstruction.test_construction_quartercCs&tddd}tddd}||ks$t‚tddd}||ks<t‚tddd}||ksTt‚tddd}|jdksnt‚ttdd    d    ƒdd}tddd}||ksšt‚ttdd    d    ƒdd}ttdd    d    ƒdd}tt d
¡dd}td dd}td dd}||ksøt‚||kst‚||kst‚||ks"t‚dS) Nú2007-01r#rÚ200701r<©r=réIr5r.ú
2007-01-01ú2007-01-01 00:00:00ú2007-01-01 00:00:00.000)rr@r0rrÚnpÚ
datetime64©rrIrDrErFrGrHrrr Útest_construction_month¹s*             z.TestPeriodConstruction.test_construction_monthc    Csvtdt ¡dtdddks t‚tdt ¡dtdddks@t‚tdt ¡dtdddks`t‚tdt ¡dtdddks€t‚tdt ¡dtdddks t‚td    d
tjd d d td    d
dd ksÈt‚td    dtjd d d td    ddd ksðt‚td    dd
t ¡dtd    dd
ddkst‚tdddt ¡dtdddddksDt‚tddd}td    dd
t d¡d|kspt‚td    dd
dd|ksŠt‚tdddt d¡dtdddddks¶t‚tdt ¡dtdddksØt‚tdt ¡d}tddd}||kst‚|j    dkst‚|j    dks"t‚tt
dd
d
ƒdd}tddd}||ksPt‚tt dd
d
ƒdd}tt
dd
d
ƒdd}tt   d¡dd}tddd}tddd}||ks°t‚||ks¾t‚||ksÌt‚||ksÚt‚tdƒ}tt
dd
d
d d!d!d"ƒd#d}||ks t‚tdd#d}||ks&t‚td$ƒ}tt
dd
d
d d!d!d%ƒd&d}||ksXt‚td$d&d}||ksrt‚dS)'Nr"rr#r$r%rRrSrr,r.é )Ú startingMonthrYr(ér-r/rUrVz
2005-03-01Ú3DZ3Br<r_r`r5r^rarbrcr4r6rr7r8r9r:r;)rrÚMonthEndr@ÚYearEndZ BusinessDayrBÚ
QuarterEndZBDayr0rrrdrerfrrr Útest_period_constructor_offsetsÕs”ÿ   ÿ  
ÿ þ
ÿ þÿÿ  ÿ"      z6TestPeriodConstruction.test_period_constructor_offsetsc    Csxd}tjt|dtt ¡ƒW5QRXtjt|dtt ¡ ¡ƒW5QRXd}tjt|dtdddW5QRXd}tjt|dtdddW5QRXd    }tjt|dtd
d dd W5QRXd }tjt|dtd dW5QRXd}tjt|dtddƒW5QRXd}tjt|dtddƒW5QRXd}tjt|dtddƒW5QRXdS)Nz#Must supply freq for datetime valuerrgš™™™™™ù?rrzOrdinal must be an integerr_z?Only value or ordinal but not both should be given but not bothrjr.)r=Úvaluerz%If value is None, freq cannot be None)r1z1^Given date string "-2000" not likely a datetime$z-2000r%zday is out of range for monthÚ0z/Unknown datetime string format, unable to parsez    1/1/-2000)rrrrrrArr
©rrrrr Útest_invalid_argumentss4z-TestPeriodConstruction.test_invalid_argumentscCsftddd}tdddd|ks"t‚tdƒtks2t‚tddd}t|d    d}td
d    d}||ksbt‚dS) Nr]Ú2Mrr5r.)r0r1rrarr%Ú2007)rr@r )rrIÚpÚresultÚexprrr Útest_constructor_corner9s    z.TestPeriodConstruction.test_constructor_cornercCsžtdƒ}|jdkst‚tdƒ}|jdks,t‚tdƒ}|jdksBt‚tdƒ}|jdksXt‚td    ƒ}|jd
ksnt‚td ƒ}|jd ks„t‚td ƒ}|jd ksšt‚dS)Nrarz 2007-01-01 07ÚHz2007-01-01 07:10ÚTz2007-01-01 07:10:15ÚSz2007-01-01 07:10:15.123r8z2007-01-01 07:10:15.123000r;z2007-01-01 07:10:15.123400)rrr@©rrvrrr Útest_constructor_infer_freqEsz2TestPeriodConstruction.test_constructor_infer_freqcCsÎtddd}tddd}|j|jks(t‚|jdks6t‚|jdksDt‚|jt d¡ksXt‚|jt ¡ksjt‚|dj|jdks‚t‚d|j|jdksšt‚|dj|jdks²t‚d    |j|jdksÊt‚dS)
NÚ1989Ú2Arr%z2A-DECzA-DECrjr.éÿÿÿÿ)rr=r@Úfreqstrrrrm)rZresult1Zresult2rrr Útest_multiples]s  z%TestPeriodConstruction.test_multiplesr1cCsvd|›}td|d}dt|ƒks&t‚|jddd}t||d}||ksLt‚|jddd}t||d}||ksrt‚dS)NzQ-Z1989Q3rrÚend©Úhowrk)rÚstrr@rL©rr1rrxZstamprvrrr Útest_period_cons_quarterlyks
    z1TestPeriodConstruction.test_period_cons_quarterlycCs\d|›}td|d}|jdddtdd}t||d}||d    ksJt‚t|tƒsXt‚dS)
NzA-rrrr„r…é)Údaysr.)rrLrr@Ú
isinstancerˆrrr Útest_period_cons_annualys 
  z.TestPeriodConstruction.test_period_cons_annualr2ÚnumrVécCsPd|›}d|›}t||d}t|dd |¡}||ks>t‚t|tƒsLt‚dS)Nz2011-02-zW-rr)rrWr@rŒ)rrŽr2ZdaystrrrwrIrrr Útest_period_cons_weekly„s 
 
  z.TestPeriodConstruction.test_period_cons_weeklyc    CsZtdƒ}|jjdkst‚tdƒ}|jjdks0t‚d}tjt|dtdƒW5QRXdS)Nz2017-01-23/2017-01-29úW-SUNz2017-01-24/2017-01-30zW-MONz%Could not parse as weekly-freq Periodrz2016-01-23/2017-01-29)rrr‚r@rrr)rrNrrrr Útest_parse_week_str_roundstripsz5TestPeriodConstruction.test_parse_week_str_roundstripcCs:tddd}tj|jdd}||ks(t‚t|tƒs6t‚dS©Nú2011-01r#r)rZ _from_ordinalr=r@rŒ©rrvÚresrrr Útest_period_from_ordinalœs  z/TestPeriodConstruction.test_period_from_ordinalrr%r#rrzcCsTtd|d}|tkst‚tdd|d}|tks4t‚tdd|d}|tksPt‚dS)Nr rÚ2Ú3©rr r@©rrrNrrr Ú'test_construct_from_nat_string_and_freq¢s    z>TestPeriodConstruction.test_construct_from_nat_string_and_freqcCsŒtddd}|tkst‚ttdd}|tks0t‚ttdd}|tksHt‚ttdd}|tks`t‚tdƒ}|tkstt‚ttƒ}|tksˆt‚dS)NÚnatr‘rrrkÚ1D1Hr )rr r@rr}rrr Útest_period_cons_nat­s         z+TestPeriodConstruction.test_period_cons_natc    Cs6tddd}tddd}|j|jks(t‚|jt d¡ks<t‚|jdksJt‚|jt ¡ks\t‚|jdksjt‚|d}|j|djks†t‚|j|jks–t‚|jdks¤t‚|d}|j|djksÀt‚|j|jksÐt‚|jdksÞt‚d}tjt    |dtdd    dW5QRXd
}tjt    |dtdd dW5QRXdS) Nr”Ú3Mrr#r-r.z;Frequency must be positive, because it represents span: -3Mrz-3Mz:Frequency must be positive, because it represents span: 0MZ0M)
rr=r@rrrlr‚rrr)rÚp1Úp2rwrrrr Útest_period_cons_multÀs*  z,TestPeriodConstruction.test_period_cons_multc    Cstdddtdddtdddftdddtdddtdddfg}|D]Š\}}}|j|jksdt‚|j|jkstt‚|jt d¡ksˆt‚|jd    ks–t‚|jt d¡ksªt‚|jd    ks¸t‚|jt ¡ksÊt‚|jdksØt‚|d}|j|djksôt‚|j|jkst‚|jd    kst‚|d}|j|djks4t‚|j|jksFt‚|jd    ksVt‚|d}|j|djkstt‚|j|jks†t‚|jd    ks–t‚|d}|j|djks´t‚|j|jksÆt‚|jd    ksHt‚qHd
}tjt    |d tdd dW5QRXtjt    |d tdd dW5QRXtjt    |d tdd dW5QRXtjt    |d tdd dW5QRXd}tjt    |d tdddW5QRXtjt    |d tdddW5QRXd}tjt    |d tdddW5QRXd}tjt    |d tdddW5QRXdS)Nr”ržrÚ1H1Drzr.r_éZ25Hz<Frequency must be positive, because it represents span: -25Hrz-1D1Hz-1H1Dz:Frequency must be positive, because it represents span: 0DZ0D0HzInvalid frequency: 1W1DZ1W1DzInvalid frequency: 1D1WZ1D1W)
rr=r@rrÚHourr‚rrr)rrvr¡r¢Zp3rwrrrr Útest_period_cons_combinedÞsl
 
 
ý
 
 
ýú z0TestPeriodConstruction.test_period_cons_combinedz 1970/01/01 z 2020-12-31 z 1981/09/13 Úhourz00:00:00z00:00:01z23:59:59z12:00:59zsec_float, expected)z
.000000001r.)z
.000000999éç)z
.123456789i)z
.999999999r©)z
.999999000r)z .999999001123r.)z.999999001123456r.)z.999999001123456789r.cCs t|||ƒjj|kst‚dS©N)rÚ
start_timeÚ
nanosecondr@)rr2r¨Z    sec_floatrIrrr Ú"test_period_constructor_nanosecond%sz9TestPeriodConstruction.test_period_constructor_nanosecondécCs"td|dd}|j|kst‚dS)Ni'Z1Hr_)rr¨r@)rr¨rvrrr Útest_period_large_ordinal:sz0TestPeriodConstruction.test_period_large_ordinalN)Ú__name__Ú
__module__Ú __qualname__r!rJrQrXr\rgrorsryr~rƒrÚmarkÚ parametrizerr‰rrÚrangerr’r—rœrŸr£r§r­r¯rrrr r$sT F#E  
 
 
      
 
G÷þrc @s˜eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zej     
d d d dddddddg    ¡ej     
ddddg¡dd„ƒƒZ dd„Z dd„Z dd „Zd!d"„Zd#d$„ZdS)%ÚTestPeriodMethodscCs"tdƒ}t |¡}||kst‚dS)NZ2000Q1)rÚtmZround_trip_pickler@)rrvZnew_prrr Útest_round_tripCs
z!TestPeriodMethods.test_round_tripcCs”ttdddƒttdddƒks$t‚ttdddƒttdddƒksHt‚ttdddƒttdddƒkslt‚ttdddƒttdddƒkst‚dS)    Nr”r#rú
2011-01-01rr rtú2011-02)Úhashrr@)rrrr Ú    test_hashHs$$$zTestPeriodMethods.test_hashcCs˜tddd}|jddtdƒks$t‚tdƒtdd    ƒ}|jd
d|ksJt‚tdd d}|jddtdƒksnt‚td ƒtdd    ƒ}|jd
d|ks”t‚dS) Nr”r#rr|r…r¹z
2011-02-01r.rKÚEr ú
2011-04-01)rrLrr@r)rrvrIrrr Útest_to_timestamp_multTs  z(TestPeriodMethods.test_to_timestamp_multc     Cstddd}|jdd}dddg}|D]0}||jd    |dks@t‚||jd
|dks&t‚q&|jd d}d d dg}|D]0}||jd    |dksŒt‚||jd
|dksrt‚qrdddddd    dddg    }dd„}|D]T}td|d}| ¡ |¡}    |    |ksðt‚|j|jddkst‚|j||ƒksÆt‚qÆtddd}|jdd d}    tdddƒtddƒ}
|    |
ksZt‚|jdd d}    |    |
ksvt‚|jdd d}    tdddƒtddƒ}
|    |
ks¨t‚|jdd d}    |    |
ksÄt‚|jd d}    tdddƒtddƒ}
|    |
ksôt‚tdddƒ}
|jddd}    |    |
kst‚|jddd}    |    |
ks8t‚|jddd}    |    |
ksTt‚|jddd}    |    |
kspt‚|jd dd}    |    |
ksŒt‚dS)!Nr*r%rr|r…ÚsZStarTZBEGInrrkr½Úer„ZFINIsHr(r#ÚWrSrzr?cSs2|jdkr|jtdddSt||jjjdƒS)NrSr.r)r‹Ú nanoseconds)rr«rrÚ_value)rvrrr Ú_exps
z0TestPeriodMethods.test_to_timestamp.<locals>._exZ1985iÂr.rKÚ3Hr{Z2TiÁÚstartZ5S)    rrLr@Z    to_periodr«Úend_timerrr) rrvÚstart_tsÚaliasesr&Zend_tsZfrom_lstrÅZfcoderwrIrrr Útest_to_timestamp_sX  
 
     z#TestPeriodMethods.test_to_timestampcCs:tddƒ}|jddd}tdƒtdd}||ks6t‚dS)Nú
1990-01-05rSr½r…ú
1990-01-06r.©rÃ)rrLrrr@©rrNrwrIrrr Útest_to_timestamp_business_endžs
z0TestPeriodMethods.test_to_timestamp_business_endz ts, expected)z1970-01-01 00:00:00r)z1970-01-01 00:00:00.000001r.)z1970-01-01 00:00:00.00001rV)z1970-01-01 00:00:00.499i8)z1999-12-31 23:59:59.999iX>)z1999-12-31 23:59:59.999999i?B)z2050-12-31 23:59:59.5i ¡)z2050-12-31 23:59:59.500001i!¡)z2050-12-31 23:59:59.123456i@ârNÚusrKcCs"t|ƒj|dj}||kst‚dS)Nr)rrLÚ microsecondr@)rrMrIrrwrrr Útest_to_timestamp_microsecond¥sz/TestPeriodMethods.test_to_timestamp_microsecondcCs4tdƒ}dt|ƒkst‚tdƒ}dt|ƒks0t‚dS)NzJan-2000ú2000-01z
2000-12-15©rÚreprr@r}rrr Ú    test_repr¼szTestPeriodMethods.test_reprcCs$tddd}ttƒt|ƒks t‚dS)Nrr#r)rrÖr r@r}rrr Ú test_repr_natÃs zTestPeriodMethods.test_repr_natcCstdƒ}t|ƒdkst‚dS)Nz2000-01-01 12:15:02.123z&Period('2000-01-01 12:15:02.123', 'L')rÕr}rrr Útest_millisecond_reprÇsz'TestPeriodMethods.test_millisecond_reprcCstdƒ}t|ƒdkst‚dS)Nz2000-01-01 12:15:02.123567z)Period('2000-01-01 12:15:02.123567', 'U')rÕr}rrr Útest_microsecond_reprÌsz'TestPeriodMethods.test_microsecond_reprcCs4tddd}| d¡}|dks"t‚t|tƒs0t‚dS)Nz2000-1-1 12:34:12r|rz%Y-%m-%d %H:%M:%Sz2000-01-01 12:34:12)rÚstrftimer@rŒr‡r•rrr Ú test_strftimeÑs 
 zTestPeriodMethods.test_strftime)r°r±r²r¸r¼r¿rËrÐrr³r´rÓr×rØrÙrÚrÜrrrr r¶Bs2  ?÷þ r¶c@s*eZdZdZej dddddg¡dd„ƒZd    d
„Zd d „Z    d d„Z
e dd„ƒZ ej de jdfe jdfg¡ej dddg¡dd„ƒƒZej de jdfe jdfg¡ej dddg¡dd„ƒƒZdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5S)6ÚTestPeriodPropertiesz5Test properties such as year, month, weekday, etc....rr%r#rrzcCsltd|d}|jst‚t|jtƒs&t‚td|d}|jr<t‚td|d}|jsRt‚td|d}|jrht‚dS)Nz2000-01-01 00:00:00rz1999-01-01 00:00:00z2004-01-01 00:00:00z2100-01-01 00:00:00)rZ is_leap_yearr@rŒÚbool)rrrvrrr Útest_is_leap_yearÜs 
 
 
 z&TestPeriodProperties.test_is_leap_yearcCs¦tddd}|jdkst‚|jdks(t‚t|tƒs6t‚tddd}|jdksPt‚|jdks^t‚t|tƒslt‚tddd}|jdks†t‚|jd    ks”t‚t|tƒs¢t‚dS)
NrúQ-DECr_é±ééþÿÿÿr-r#é )rr0r@rZrŒr1r}rrr Ú test_quarterly_negative_ordinalsìs   z5TestPeriodProperties.test_quarterly_negative_ordinalscCs0tddd}|jt ¡kst‚|jdks,t‚dS)Nr*r?rr{)rrrÚMinuter@r‚)rrDrrr Ú test_freq_strüs z"TestPeriodProperties.test_freq_strc Csddddddgddd    d
d gd d ddddgdddddddgddddgdddd d!gd"d#d$gd%d&d'gd(d)d*gd+œ    }t}| ¡D]’\}}|D]P}tjt|d,td-|d.W5QRXtjt|d,td/|d0W5QRXq„td-|d.}td/|d0}t|tƒsüt‚t|tƒsxt‚qxdS)1NZMTHZMONTHZMONTHLYZMthr1ZmonthlyZBUSZBUSINESSZ
BUSINESSLYZWEEKDAYZbusZDAYZDLYZDAILYrBZDlyZDailyZHRZHOURZHRLYZHOURLYÚhrr¦ZHRlyÚminuteZMINUTEZMINUTELYZminutelyÚsecZSECZSECONDZSECONDLYÚsecondZ MILLISECONDZ MILLISECONDLYZ millisecondZ MICROSECONDZ MICROSECONDLYrÒZ
NANOSECONDZ NANOSECONDLYr¬)    r#rSrrzr{r|r8r;ÚNrz2016-03-01 09:00rr.r_)r ÚitemsrrrrrŒr@)rZcasesrrxÚfreqsrr¡r¢rrr Útest_period_deprecated_freqs* 
 ÷   z0TestPeriodProperties.test_period_deprecated_freqc    Cs&t|j|j|j|j|j|j|ddS)NrÑ)r0r1r2r¨rérër)rr0r1r2r¨rérë)ÚboundÚoffsetrrr Ú_period_constructorsùz(TestPeriodProperties._period_constructorz bound, offsetrr.Úperiod_propertyr«rÈc    Cs4t ||¡}tjtddt||ƒW5QRXdS)NzOut of bounds nanosecondr)rÝròrrr    Úgetattr)rrðrñrórrrr Ú$test_outer_bounds_start_and_end_time(s z9TestPeriodProperties.test_outer_bounds_start_and_end_timecCsnt || ¡}| ¡jdd}t||ƒjdd|ks8t‚||tddd d¡}t||ƒ d¡|ksjt‚dS)Nr|rr.)Úunit)rÝròrLÚroundrôr@rÚfloor)rrðrñrórrIrrr Ú$test_inner_bounds_start_and_end_time0s
z9TestPeriodProperties.test_inner_bounds_start_and_end_timecCs‚dddddddg}tdd    d    ƒ}|D]}td
|d }|j|ks"t‚q"td
d d jtdd    d ƒks`t‚td
dd jtdddƒks~t‚dS)Nr%r(r#rrzr{r|rUr.Ú2012rrSrjrÂiÛrhé)rrr«r@)rZfreq_lstÚxpÚfrvrrr Útest_start_time:s  z$TestPeriodProperties.test_start_timecCs–tddd}dd„}|dddƒ}||jks.t‚tddd}|d    d
dƒ}||jksTt‚tdd d}|d    d dƒ}||jkszt‚tdd d}|d    dd ƒ}||jks t‚tddd}|d    dddƒ}||jksÈt‚tddd}|d    ddƒ}||jksît‚tddd}|d    dd ƒ}||jkst‚tddd}|d    ddƒ}||jks>t‚tddd}|d    dd dƒ}||jksht‚tddd}|d    dd dƒ}||jks’t‚dS)Nrúr%rcWsttt|Žƒ d¡jdƒS©NrKr.©rrZas_unitrÄ©Úargsrrr rÅFsz/TestPeriodProperties.test_end_time.<locals>._exéÝr.r(rUrâr#rjrrzrSr-rÂZ15Déržr¤©rrÈr@)rrvrÅrürrr Ú test_end_timeCs>                 z"TestPeriodProperties.test_end_timecCs2tddƒ}|j}tdƒtdd}||ks.t‚dS)NrÌrSrÍr.rÎ)rrÈrrr@rÏrrr Útest_end_time_business_fridayqs
z2TestPeriodProperties.test_end_time_business_fridaycCs0dd„}tddƒ}|dddƒ}|j|ks,t‚dS)NcWsttt|Žƒ d¡jdƒSrÿrrrrr rÅzsz;TestPeriodProperties.test_anchor_week_end_time.<locals>._exz2013-1-1zW-SATrr.ér)rrÅrvrürrr Útest_anchor_week_end_timeys
 z.TestPeriodProperties.test_anchor_week_end_timecCstddd}|jdkst‚dS)Nr%r5)rr0)rr0r@)rZa_daterrr Útest_properties_annuallys z-TestPeriodProperties.test_properties_annuallycCsttdddd}tdddd}tdddd}tdƒD]<}|||fD],}||jdksVt‚||j|dks@t‚q@q2dS)Nràr5r.)rr0rZzQ-JANzQ-JUNr-)rrµZqyearr@rZ)rZ
qedec_dateZ
qejan_dateZ
qejun_dateÚxZqdrrr Útest_properties_quarterly†s z.TestPeriodProperties.test_properties_quarterlycCsötdddd}tdƒD]Ú}||}|jdks0t‚d|dkrHdkr\nn|jdksÞt‚n‚d|dkrtdkrˆnn|jd    ksÞt‚nVd
|dkr d kr´nn|jdksÞt‚n*d |dkrÌd krÞnn|jdksÞt‚|j|dkst‚qdS)Nr#r5r.)rr0r1rär-rârrjér6rVrh)rrµr0r@rZr1)rZm_dater Zm_ival_xrrr Útest_properties_monthly‘s z,TestPeriodProperties.test_properties_monthlycCs†tddddd}|jdkst‚|jdks,t‚|jdks:t‚|jdksHt‚|djdksZt‚|jdksht‚tddd    ddjd
ks‚t‚dS) NrÂr5r.r ©rr0r1r2é4érUrjé)rr0r@rZr1ÚweekÚ days_in_month)rÚw_daterrr Útest_properties_weekly¡sz+TestPeriodProperties.test_properties_weeklyc    Cs¸tddddd}|jdkst‚|jdks,t‚|jdks:t‚|jdksHt‚|djdksZt‚|jdksht‚tddd    dd}|jd
ks†t‚t}tj    t
|d td ddddW5QRXdS) NrÂr5r.r rrrrUrjrrZWK) rr0r@rZr1rrr rrr)rrrxrrrr Útest_properties_weekly_legacy­sz2TestPeriodProperties.test_properties_weekly_legacycCstddddd}|jdkst‚|jdks,t‚|jdks:t‚|jdksHt‚|jdksVt‚|jdksdt‚|jdksrt‚tdddddjd    ksŒt‚td
dddd}|jdksªt‚|jdks¸t‚|jdksÆt‚|jdksÔt‚|jdksât‚|jdksðt‚|jdksþt‚td
ddddjd    kst‚dS) NrSr5r.rrrrUrjrr)    rr0r@rZr1r2ÚweekdayÚ    dayofyearr)rZb_dateZd_daterrr Útest_properties_daily¾s$z*TestPeriodProperties.test_properties_dailycCsÂtdddddd}tdddddd}||fD]}|jdks>t‚|jdksLt‚|jdksZt‚|jdksht‚|jdksvt‚|jdks„t‚|jdks’t‚|j    dks t‚tddd    dddj    d
ks,t‚q,dS) Nrzr5r.r)rr0r1r2r¨Ú2HrrUrjr)
rr0r@rZr1r2rrr¨r)rZh_date1Zh_date2Zh_daterrr Útest_properties_hourlyÖs ÿz+TestPeriodProperties.test_properties_hourlycCs¦tddddddd}|jdks"t‚|jdks0t‚|jdks>t‚|jdksLt‚|jdksZt‚|jdksht‚|jdksvt‚|j    dks„t‚tddd    ddddj    d
ks¢t‚dS) Nr?r5r.r)rr0r1r2r¨rérrrUrjr)
rrZr@r1r2rrr¨rér)rZt_daterrr Útest_properties_minutelyèsÿÿz-TestPeriodProperties.test_properties_minutelyc    CsÆtdddddddd}|jdks$t‚|jdks2t‚|jdks@t‚|jdksNt‚|jdks\t‚|jdksjt‚|jdksxt‚|j    dks†t‚|j
dks”t‚|j dks¢t‚tddddddddj d    ksÂt‚dS)
Nr?r5r.r)rr0r1r2r¨rérërrUrjr) rr0r@rZr1r2rrr¨rérër)rZs_daterrr Útest_properties_secondlyùs>ÿÿýÿz-TestPeriodProperties.test_properties_secondlyN)r°r±r²Ú__doc__rr³r´rßrårçrïÚ staticmethodròrr+Úmaxrõrùrþrrr    r
r rrrrrrrrrrr rÝÙs6
 
      .  rÝc@seZdZdd„ZdS)ÚTestPeriodFieldc    Cs6d}tjt|dt dt d¡d¡W5QRXdS)Nz@Buffer dtype mismatch, expected 'const int64_t' but got 'double'rrr.r)rrrÚ    libperiodZget_period_field_arrrdÚemptyrrrrr Ú2test_get_period_field_array_raises_on_out_of_rangeszBTestPeriodField.test_get_period_field_array_raises_on_out_of_rangeN)r°r±r²r%rrrr r"sr"c    @speZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Ze    j
  d e   d¡dfe   eddƒ¡dff¡dd„ƒZdS)ÚTestPeriodComparisonscCsTtddƒ}tddƒ}||ks t‚||ks,t‚||ks8t‚||krDt‚||krPt‚dS©NrÔr#©rr@)rÚleftÚrightrrr Ú,test_comparison_same_period_different_objects
 
    zBTestPeriodComparisons.test_comparison_same_period_different_objectcCs`tddƒ}tddƒ}||kr t‚||ks,t‚||ks8t‚||ksDt‚||krPt‚||kr\t‚dS)NrÔr#ú2000-02r()rÚjanÚfebrrr Útest_comparison_same_freq$s
 
     z/TestPeriodComparisons.test_comparison_same_freqc    Cs¼tddƒ}tddƒ}||kr t‚||ks,t‚d}tjt|d||kW5QRXtjt|d||kW5QRXtjt|d||kW5QRXtjt|d||kW5QRXdS)NrÔr#z
2012-01-01rz0Input has different freq=D from Period\(freq=M\)r)rr@rrr )rr-r2rrrr Útest_comparison_mismatched_freq/s
 
  z5TestPeriodComparisons.test_comparison_mismatched_freqc
CsÜtddƒ}|dkrt‚|dks"t‚d}d|›d|›}|dfd|ffD]\}}tjt|d||kW5QRXtjt|d||kW5QRXtjt|d||kW5QRXtjt|d||kW5QRXqFdS)NrÔr#r.z'(Period|int)'z#not supported between instances of z and r)rr@rrrC)rr-Z
int_or_perrr)r*rrr Útest_comparison_invalid_type?s
  z2TestPeriodComparisons.test_comparison_invalid_typecCsFtddƒ}tddƒ}tddƒ}|||g}|||g}t|ƒ|ksBt‚dS)NrÔr#r,z2000-03)rÚsortedr@)rr-r.ÚmarZperiodsZcorrectPeriodsrrr Útest_sort_periodsQs 
 
 
 
 
z'TestPeriodComparisons.test_sort_periodscCs†tddd}tdƒ}t|f|tft|f|tffD]P\}}||krDt‚||krPt‚||kr\t‚||ksht‚||krtt‚||kr0t‚q0dS)Nr¹rr)rrr r@)rrvÚtr)r*rrr Útest_period_cmp_natYs ü      z)TestPeriodComparisons.test_period_cmp_natzzerodim_arr, expectedrFrÔr#TcCs.tddƒ}||k|kst‚||k|ks*t‚dSr'r()rZ zerodim_arrrIrvrrr Ú!test_comparison_numpy_zerodim_arrks
z7TestPeriodComparisons.test_comparison_numpy_zerodim_arrN)r°r±r²r+r/r0r1r4r6rr³r´rdÚarrayrr7rrrr r&s   þr&c
@sPeZdZej ddddddg¡dd„ƒZd    d
„Zd d „Zd d„Z    dd„Z
dd„dd„dd„gZ dddgZ ejjde e dejjde e ddd„ƒƒZ dd„Zej dd d!d"d#g¡d$d%„ƒZej d&d'd(g¡ej dd d!d"d#g¡ej d)ejd*fejd+fejd,fejd-fg¡d.d/„ƒƒƒZd0d1„Zd2d3„Zej d4d5d6d7g¡d8d9„ƒZd:d;„Zd,S)<ÚTestArithmeticrörKrÑÚmsrÀr'c    Csltddƒ}t d|¡}||tks&t‚||tks6t‚||tksFt‚tjtdd||W5QRXdS)Nz
2022-06-01rr úunsupported operandr)rrdÚ timedelta64r r@rrrC)rrörNrrrr Útest_add_sub_td64_natws
 z$TestArithmetic.test_add_sub_td64_natc    Csftdddtddd}}||}|d|jks4t‚d}tjt|d|tdd    dW5QRXdS)
NÚ2011r%rrurâz4Input has different freq=M from Period\(freq=A-DEC\)rr]r#©rrr@rrr )rr)r*rwrrrr Útest_sub_delta„s zTestArithmetic.test_sub_deltacCsDtddddd}tddddd}|d|ks0t‚d||ks@t‚dS)NréØr.rrjr()rÚper1rPrrr Útest_add_integerszTestArithmetic.test_add_integercCsPtddd}|ttkst‚t|tks,t‚|ttks<t‚t|tksLt‚dSr“ršr}rrr Útest_add_sub_nat“s
 zTestArithmetic.test_add_sub_natc    Csštddddd}tddddd}d ddd    g¡}tjt|d
|d W5QRXtjt|d
d |W5QRXtjt|d
||W5QRXdS) NrrAr.rrjú|zunsupported operand type\(s\)zcan only concatenate strzmust be str, not Periodrr‡)rÚjoinrrrC)rrBrPrrrr Útest_add_invalid›sýÿzTestArithmetic.test_add_invalidcCs|Srªr©r rrr Ú<lambda>®ózTestArithmetic.<lambda>cCs t |g¡Srª)ÚpdÚSeriesrHrrr rI®rJcCs t |g¡Srª)rKÚIndexrHrrr rI®rJÚidentityrLrMÚlbox)ÚidsÚrboxc    Csªtdƒ}tddd}d ddddd    g¡}tjt|d
||ƒ||ƒW5QRXtjt|d
||ƒ||ƒW5QRXtjt|d
||ƒ||ƒW5QRXdS) NZ2017r#rrEz
cannot addr;zcan only operate on azincompatible typezufunc add cannot use operandsr)rrrFrrrC)rrQrOrMrNrrrr Útest_add_timestamp_raises±s  ûÿ    z(TestArithmetic.test_add_timestamp_raisesc    Csxtddd}tddd}|j}||d|ks2t‚||d|ksFt‚d}tjt|d|td    d
dW5QRXdS) Nr¹rrz
2011-01-15iòÿÿÿéz0Input has different freq=M from Period\(freq=D\)rrºr#r?)rrBrPÚoffrrrr Útest_subÌs  zTestArithmetic.test_subÚnr.rjr-râcCs\td||ƒd}td||ƒd}tt|ƒ|jjdtt|ƒ|jjd}|||ksXt‚dS)NÚ19910905rÚ19920406)rr‡rÚbaser@)rZ tick_classesrVr¡r¢rIrrr Útest_sub_n_gt_1_ticksØsÿz$TestArithmetic.test_sub_n_gt_1_ticksÚ    normalizeTFzoffset, kwd_namer1riNrc Cs||dk    r|dini}d}d}t||||f|Žd}t||||f|Žd}    t||    jjdt||jjd}
|    ||
ksxt‚dS)Nr-rWrXr)rrrYr@) rrñZkwd_namerVr[ÚkwdsZp1_dZp2_dr¡r¢rIrrr Útest_sub_n_gt_1_offsetsäs  z&TestArithmetic.test_sub_n_gt_1_offsetsc CsdD]À}td|d}td|d}|t d¡|ks6t‚t d¡||ksLt‚t d¡t d¡t ¡t dd¡t    dƒfD]L}d    }t
j t |d
||W5QRXt
j t |d
||W5QRXqvqd D]
}td |d}td |d}|t  d¡|ksþt‚t  d¡||kst‚td|d}|t  d¡|ks:t‚t  d¡||ksRt‚d ddg¡}t d¡t d¡t ¡t dd¡t    dƒfD]J}t
j t |d
||W5QRXt
j t |d
||W5QRXqŠqÊdD]}td|d}td|d}|t d¡|kst‚t d¡||ks*t‚td|d}|t d¡|ksNt‚t d¡||ksft‚td|d}|t dd¡|ksŒt‚t dd¡||ks¦t‚td|d}|t dd¡|ksÌt‚t dd¡||ksæt‚td|d}|t    dƒ|kst‚t    dƒ||kst‚td|d}|t    dd|ksBt‚t    dd||ksZt‚d ddg¡}t d¡t d¡t ¡t d d!¡t    d"dfD]J}t
j t |d
||W5QRXt
j t |d
||W5QRXq”qÜd#D]}td$|d}td%|d}|t d¡|kst‚t d¡||ks6t‚td&|d}|t d'¡|ksZt‚t d'¡||ksrt‚d(}td&|d}|t d'd!¡|ksœt‚t d'd!¡||ks¶t‚td)|d}|t d*d¡|ksÜt‚t d*d¡||ksöt‚td+|d}|t    d,d-|kst‚t    d,d-||ks2t‚td.|d}|t    d d/d0|ksXt‚t    d d/d0||ksrt‚d ddg¡}t d¡t d¡t ¡t d1d¡t    d"d2d3fD]J}t
j t |d
||W5QRXt
j t |d
||W5QRXq®qèdS)4N©r%r€Z3Ar>rZ2013rjr.émrz<Input has different freq|Input cannot be converted to Periodr©r#rtr ú2011-03z2011-05z2012-03rhrEúInput has different freqú#Input cannot be converted to Period©rZ2Drkr¾z
2011-04-06éú
2011-04-02r®ú
2011-04-03é€QrÀú
2011-03-30rãé0©ÚhoursrâÚhé©rzrrÆú2011-04-01 09:00z2011-04-03 09:00z2011-04-01 12:00r-zcannot use operands with typesz2011-04-01 10:00éz2011-04-01 11:00éx©Úminutesz2011-04-05 12:00é´©r‹rté€ rŠ©rlrt)rrrmr@Ú    YearBeginÚ
MonthBeginrærdr<rrrr rlrFrBr¦)rrrvrxÚorrrr Útest_add_offsetûsÜ  
û
   þÿ
û
       þÿ
û
       þÿ
 
ûzTestArithmetic.test_add_offsetc Cs¨d ddg¡}dD]€}td|d}|t d¡td|dks@t‚t d¡t d    ¡t ¡t     d
d ¡t
d
ƒfD]&}t j t |d ||W5QRXqjqd D] }td|d}|t d¡td|dksÆt‚|t d¡td|dksät‚t d¡t d    ¡t ¡t     d
d ¡t
d
ƒfD](}t j t |d ||W5QRXqq˜dD]*}td|d}|t d¡td|dkspt‚|t d¡td|dkst‚|t     dd ¡td|dks²t‚|t     dd¡td|dksÔt‚|t
dƒtd|dksòt‚|t
ddtd|dkst‚t d¡t d    ¡t ¡t     dd ¡t
d!dfD](}t j t |d ||W5QRXq>q>d"D]0}td#|d}|t d¡td$|dks¢t‚|t d%¡td&|dksÂt‚|t     d%d ¡td&|dksät‚|t     d'd¡td(|dkst‚|t
d)d*td+|dks&t‚|t
dd,d-td.|dksHt‚t d¡t d    ¡t ¡t     d/d¡t
d!d0d1fD](}t j t |d ||W5QRXqvqpdS)2NrErbrcr^r>rrjZ2009r.r_rrr`rar”rhz2010-03rdr¾rez
2011-03-27r®z
2011-03-31rirhrÀrãrgrjrkrârmrnrorpz2011-03-30 09:00r-z2011-04-01 06:00rqz2011-04-01 08:00rrrsz2011-04-01 07:00rurvz2011-03-28 06:00rwrŠrx)rFrrrmr@ryrzrærdr<rrrr rlrBr¦)rrrrvr{rrr Útest_sub_offset‹s„þÿ 
û 
û
   "" 
û
   "ÿ ÿ
 
ûzTestArithmetic.test_sub_offsetrr#rtr cCsPtd|d}t|tkst‚|ttks,t‚t|tks<t‚|ttksLt‚dS)Nr”rršr›rrr Útest_period_addsub_natÜs
 z%TestArithmetic.test_period_addsub_natc    Cs®tddd}|t ¡}tddd}||ks0t‚|t d¡}tddd}||ksVt‚d}tjt|d|t d¡W5QRXtjt|d|t d¡W5QRXdS)    Nr¾rrrfrjriz-Input cannot be converted to Period\(freq=D\)r)rrrBr@rrr r¦)rrvrwrxrrrr Útest_period_ops_offsetès      z%TestArithmetic.test_period_ops_offset)r°r±r²rr³r´r=r@rCrDrGZboxesrPrRrUrZrrmrnrlZWeekr]r|r}r~rrrrr r9vs>
    
 
üþ     Q
r9c    CsZd}tdƒ}tjt|d d|_W5QRX|j}tjt|dd||_W5QRXdS)Nz not writableZ2014Q1rrSrj)rrrÚAttributeErrorr=r)rrNrrrr Útest_period_immutableúsrcCs*tddƒ}|jdkst‚|jdks&t‚dS)Nz
0001-01-07rr.r )rr0r@r2)rBrrr Útest_small_year_parsings
r‚cCsŽdddddddg}tddd    }|D]}t| |¡ƒq"|D]&}td|d    }t|ƒ|jd
ks:t‚q:tdd d    }t|ƒtdd d    }t|ƒdS) Nr%r#r(rrzr{r|rr_rárSrÂ)rrÖrWr0r@)rîrrrrr Útest_negone_ordinals s    rƒc    Cs.d}tjt|dtdddW5QRXdS)Nz3Invalid frequency: <WeekOfMonth: week=0, weekday=0>rz
2012-01-02zWOM-1MONr)rrrr)rrrr Ú$test_invalid_frequency_error_messagesr„)(rrrÚnumpyrdrZpandas._libs.tslibsrrr#Zpandas._libs.tslibs.ccalendarrrZpandas._libs.tslibs.np_datetimer    Zpandas._libs.tslibs.parsingr
Zpandas._libs.tslibs.periodr r ZpandasrKr rrrrZpandas._testingZ_testingr·rr¶rÝr"r&r9rr‚rƒr„rrrr Ú<module>s<   ":^