gL i ddlZddlZddlZddlmZmZmZmZddl m Z ddl Z ddl m Z mZmZmZmZddlmZddlmZddlmZddlmZmZmZe j:j=de j:j?d e j:jAgZ!ejDed jGejHd d ed ge!zdZ%ejDejHddedjGedge!zdZ&GddZ'GddZ(GddZ)GddZ*GddZ+GddZ,Gd d!Z-Gd"d#Z.y)$N)IncompatibleFrequencyPeriod Timestamp to_offset)PerformanceWarning) PeriodIndexSeries TimedeltaTimedeltaIndex period_range)ops)TimedeltaArray)assert_invalid_addsub_typeassert_invalid_comparisonget_upcast_box)minutess)seconds)paramsc|jS)zp Several timedelta-like and DateOffset instances that are _not_ compatible with Hourly frequencies. paramrequests i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/arithmetic/test_period.py not_hourlyr) ==imDdaysc|jS)z{ Several timedelta-like and DateOffset instances that are _not_ compatible with Monthly or Annual frequencies. rrs rmismatched_freqr&9r r!ceZdZejj ddeddgdZdZejj dde d e d d d dddgdZ ejj de jdd je jdd jej"d ej"d j%ej&eed gdej"ddej"ddj%ee j.gdg dZejj deejdgdZy)TestPeriodArrayLikeComparisonsother2017r"freqctgdd}tj||}t||d}t j gd}tj||}||k(}tj ||y)N)r*r*2018r"r+TTTFrtm box_expectedrnparray assert_equal)selfr)box_with_arrayidxxboxexpectedresults rtest_eq_scalarz-TestPeriodArrayLikeComparisons.test_eq_scalarRsc2=ooc>2c5$/88/0??8T2 )r!c@tdd}tj|jd}t j ||}t ||d}||k}tjgd}t j ||}t j||y)N2000periodsrTTFFF)r r3r4to_numpyr1r2rr5)r6r7pir)r9r;r:s rtest_compare_zerodimz3TestPeriodArrayLikeComparisons.test_compare_zerodim_s}&! ,q)* __R 0b%.u8878??8T2 )r!scalarfooz 2021-01-01r?r# g#@FNcdtdd}tj||}t|||yNr>r?r@r r1r2r)r6r7rFrDparrs rtest_compare_invalid_scalarz:TestPeriodArrayLikeComparisons.test_compare_invalid_scalarms, &! ,r>2!$?r!r>r@1D)rIiiiicdtdd}tj||}t|||yrKrL)r6r7r)rDrMs rtest_compare_invalid_listlikez2!$~>r! other_boxc,|jtSN)astypeobjectxs rz'TestPeriodArrayLikeComparisons.sQXXfEUr!ctdd}tj||}||}t||d}t j gd}tj||}||k(}tj ||||k}tj ||||k\}tj ||||k7}tj ||||k}tj ||||kD}tj ||||ddd}t j gd}tj||}||k(}tj ||t j gd}tj||}||k}tj ||t j gd }tj||}||k\}tj ||t j gd }tj||}||k7}tj ||t j gd }tj||}||k}tj ||t j gd }tj||}||kD}tj ||y) Nr>r@T)TTTTT)FFTFF)TTTFF)FFTTT)TTFTT)TTFFF)FFFTT)r r1r2rr3r4r5) r6r7rRrDrMr)r9r:r;s rtest_compare_object_dtypez8TestPeriodArrayLikeComparisons.test_compare_object_dtypes: &! ,r>2" dE4088:;??8T2 ) ) )  *  *  *"TrT(#88>???8T2 )88<=??8T2 )88<=??8T2 )88;<??8T2 )88=>??8T2 )88=>??8T2 )r!)__name__ __module__ __qualname__pytestmark parametrizerr<rErr rNpd date_ranger4timedelta_ranger3arangerUfloat64listrangerVIndexrQr]r!rr(r(Ms  [[Wvvf3/G&HI *J * * [[  l # 1       @ @ [[ BMM&! , 2 2 B  tQ / 5 5 BIIaL BIIaL   + qN $ BIIdD ! BIIdD ! ( ( 0 BHH- . ??  [[[4;U*VW6*X6*r!r(ceZdZdZdZej jdgddZej jdgddZ ej jdgddZ ej jdgddZ ej jdgdd Z ej jd e d gd Zy ) TestPeriodIndexComparisonsc~tddd}|d}||k}|j|jdk}tj|||jj dd|k}tj||j dd|t j |k}tj||y)N2007-01MrAr, r)r valuesr1assert_numpy_array_equalreshaper3r4)r6r8perr;exps rtest_pi_cmp_periodz-TestPeriodIndexComparisons.test_pi_cmp_periods9bs;"gsjj3::b>) ##FC0##B*S0 ##FCKKA,>?rxx}$ ##FC0r!ctddd}|d}|Dcgc]}||kD }}tj||}t||d}tj||}||kD}tj|||d}||kD}|Dcgc]}||kD }}tj||}tj||ycc}wcc}w)Nz 2000-01-01rtr"rsTr[)r r1r2rr5) r6r7rDvalrXr:serr9r;s rtest_parr_cmp_period_scalar2z7TestPeriodIndexComparisons.test_parr_cmp_period_scalar2s , =e%'(AG((oob.1c3-??8T2s )es%'(AG((??8T2 )))s C Cr,)rr2M3Mctgd|}tj||}td|}t ||d}t j gd}tj||}tj||k(|tj||k(|t j gd}tj||}tj||k7|tj||k7|t j gd}tj||}tj||kD|tj||k|t j gd}tj||}tj||k|tj||kD|t j gd }tj||}tj||k\|tj||k|t j gd }tj||}tj||k|tj||k\|y) N2011-012011-022011-032011-04r+rTFTFFTFTT)FFTTrB)FTTT)TTFF)rr1r2rrr3r4r5)r6r,r7baserxr9rys rtest_parr_cmp_period_scalarz6TestPeriodIndexComparisons.test_parr_cmp_period_scalarsGdSt^4YT*dC.hh23ooc4(  S) t S)hh01ooc4(  S) t S)hh12ooc4( s C( d C(hh23ooc4( s C( d C(hh01ooc4(  S) t S)hh12ooc4(  S) t S)r!ctgd|}tj||}tgd|}t||d}t j gd}tj||}tj ||k(|t j gd}tj||}tj ||k7|t j gd}tj||}tj ||kD|t j gd}tj||}tj ||k|t j gd }tj||}tj ||k\|t j gd }tj||}tj ||k|y) Nrr+)rrr2011-05TFFTFTTFTrTFFTFTTFrr0)r6r,r7rr8r9rys rtest_parr_cmp_piz+TestPeriodIndexComparisons.test_parr_cmp_pisdGdSt^4FTRdC.hh23ooc4(  S)hh01ooc4(  S)hh23ooc4( s C(hh12ooc4( s C(hh12ooc4(  S)hh01ooc4(  S)r!ctgd|}tj||}d|d}tjt |5|t ddkdddtjt |5t dd|k\dddtgdd}d }|tjtjfvr|n|}tjt |5||kdddd|d}tjt |5|t dd kdddtjt |5t dd |k\dddtgdd }d }|tjtjfvr|n|}tjt |5||kdddy#1swYmxYw#1swYFxYw#1swYxYw#1swYxYw#1swYxYw#1swYyxYw) Nrr+)Invalid comparison between dtype=period\[z \] and Periodmatch2011Y)r201220132014z@Invalid comparison between dtype=period\[Y-DEC\] and PeriodArray4Mz=Invalid comparison between dtype=period\[4M\] and PeriodArray) rr1r2raraises TypeErrorrto_arrayrdr4)r6r,r7rmsgr8rev_msgidx_msgs r test_parr_cmp_pi_mismatched_freqz;TestPeriodIndexComparisons.test_parr_cmp_pi_mismatched_freq?sGdSt^4:4& N ]]9C 0 - F6, , -]]9C 0 - 6 $ , -:EU+ RXX/FF'C ]]9G 4  CK ;4& N ]]9C 0 . F6- - .]]9C 0 . 6 % - .:FR+ RXX/FF'C ]]9G 4  CK  1 - - - -    . . . .   sHG;G&GG) G54HG GG&)G25G>H c|tgd|}|d}||kD}tjgd}tj||||k}tj|||t j k(}tjgd}tj||t j |k(}tj|||t j k7}tjgd}tj||t j |k7}tj||tgd|}||k}tjgd}tj||||k(}tjgd}tj||||k7}tjgd}tj||||k(}tjgd }tj||||k7}tjgd }tj||y) NrrNaTrr+rFFFTFFFFTTTTrrrrrBrr)rr3r4r1rvrdr)r6r,idx1rxr;ryidx2s rtest_pi_cmp_natz*TestPeriodIndexComparisons.test_pi_cmp_natbsC$O1ghh23 ##FC0t ##FC0hh34 ##FC04 ##FC0hh/0 ##FC04 ##FC0C$Ohh23 ##FC0hh34 ##FC0hh/0 ##FC0hh01 ##FC0hh23 ##FC0r!c&tgd|}tgdd}d|d}tjt|5||kDddd||k(}t j gdt }tj||y#1swYBxYw) Nrr+rrrz\] and PeriodArrayrrdtype) rrarrr3r4boolr1rv)r6r,rdiffrr;r:s r&test_pi_cmp_nat_mismatched_freq_raiseszATestPeriodIndexComparisons.test_pi_cmp_nat_mismatched_freq_raisessC$OC$O:4&@RS ]]9C 0  4K 888E ##FH5   s BBrNc4ttdtjtdg}ttjtjtdg}|"|j |}|j |}||k(}t j gd}tj||||k7}t j gd}tj||t j gd}tj|tjk(|tjtj|k(|t j gd}tj|tjk7|tjtj|k7|t j gd}tj|tjk|tjtj|kD|y)N 2011-01-01 2011-01-03)FFTr/)FFF)TTT) rrrdrrUr3r4r1rv)r6rleftrightr;r:s r test_comp_natz(TestPeriodIndexComparisons.test_comp_natsnF<0"&&&:NOPRVVRVVVL-ABC  ;;u%DLL'E8801 ##FH588/0 ##FH58812 ##DBFFNH= ##BFFeOX>88./ ##DBFFNH= ##BFFdNH=8812 ##D266M8< ##BFFTM8. a3hr!rrc|k(SrTrlrs rrYzPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.. cQhr!c|k7SrTrlrs rrYzPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period..rr!rc|k7SrTrlrs rrYzPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period..rr!c|k\SrTrlrs rrYzPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.. rr!)TTTFc|kDSrTrlrs rrYzPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period..  a#gr!rc|k\SrTrlrs rrYzPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period..rr!rr3r4bool_rr6r8fryrxs @rtest_pi_comp_periodz>TestPeriodIndexSeriesComparisonConsistency.test_pi_comp_periods 8s !f hh2"((C CC  CC hh0A CC  CC hh0A CC hh2"((C CC hh0A CC r!ctgddd}|dfd}tjgdtj}|j |||fd }|j |||d }tjgd tj}|j |||d }|j |||fd }tjgdtj}|j |||fd}|j |||d}tjgdtj}|j |||d}|j |||fd}tjgdtj}|j |||fd}tjgdtj}|j |||d}tjgd tj}|j |||d}tjgd tj}|j |||y)Nrrrrrrr8rrc|k(SrTrlrs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..rr!rrc|k(SrTrlrs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..rr!c(|tjk(SrTrdrrWs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..!a266kr!rc(tj|k(SrTrrWs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..$bffkr!c|k7SrTrlrs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..'rr!rc|k7SrTrlrs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..*rr!c(|tjk7SrTrrWs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..-rr!rc(tj|k7SrTrrWs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..0rr!c|k\SrTrlrs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..3rr!)TFTFc|kSrTrlrs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..7rr!rBc(|tjkDSrTrrWs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..;sa"&&jr!c(tj|k\SrTrrWs rrYzTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat..?rr!rrs @rtest_pi_comp_period_natzBTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nats 43U !f hh2"((C CC  CC !hh3288D CC ! CC hh0A CC  CC !hh/rxx@ CC ! CC hh1B CC hh2"((C CC hh3288D CC !hh3288D CC r!N)r^r_r`__doc__rrrrlr!rrrs<, !<,!r!rceZdZdZy)TestPeriodFrameArithmeticc2tjtddtddgtddtddgd}|djd k(sJ|d jd k(sJtd d}|j}tjt j d |zd |zgtt j d|zd|zgtd}tj||z |tj||z d|ztjtddtddgtddtddgd}|djd k(sJ|d jd k(sJtjt j d|zd|zgtt j d|zd|zgtd}tj||z |tj||z d|zy)Nz2015-01rrr+z2015-022014-01z2014-02)ABr Period[M]rz2015-03rrr r\z2015-05z2015-06r?) rd DataFramerrr,r3r4rVr1assert_frame_equal)r6dfpoffrydf2s rtest_ops_frame_periodz/TestPeriodFrameArithmetic.test_ops_frame_periodIs \\YS16)#3NOYS16)#3NO   #w}} +++#w}} +++ 93 'ffllXXq3wC0?XXrCxc2&A   a"fc* b1fb3h/llYS16)#3NOYS16)#3NO   3x~~,,,3x~~,,,llXXq3wC0?XXrCxc2&A   cBh, b3hS1r!N)r^r_r`rrlr!rrrHs'2r!rcjeZdZdZdZdZdZejjdgddZ ejjdgdejjde jjd fe jjd fe jjd fe jj d fgd Zejjdededj'edj)e j*ddde j*ddde j*dddj,e j*dddj,dej0gdg dZdZdZejjdgdejjdd dgdZejjd ej0e j:gd!Zejjd ej0e j:gd"Zd#Z d$Z!ejjd%d&ej0d&ejD'gd(Z#d)Z$d*Z%ejjd+d,d-gd.Z&d/Z'ejjd0ej0e j:gejjd1e(jRe*jVgd2Z,ejjd0ej0e j:gd3Z-d4Z.ejjd5gd6d7Z/d8Z0d9Z1d:Z2d;Z3d<Z4d=Z5d>Z6d?Z7d@Z8dAZ9ejjd+d,d-gdBZ:ejjdej0dCgdDzdE'e;jxdCgdDzdE'gdFZ=dGZ>dHZ?dIZ@y )JTestPeriodIndexArithmeticc@tddd}tddd}tj||}d}tjt |5||zdddtjt |5||z }dddy#1swY3xYw#1swYyxYw)N1/1/2000r"r[r,rA1/6/2000z/unsupported operand type\(s\) for \+: .* and .*r)r r1r2rarr)r6r7rngr)rs rtest_parr_add_iadd_parr_raisesz8TestPeriodIndexArithmetic.test_parr_add_iadd_parr_raiseszs:C;Zc1=ooc>2 A ]]9C 0  %K ]]9C 0  5LC      sB9BBBctddd}tddd}|j}tjd|zgdz}||z }t j ||||z}t j ||y)Nrr"r[rr)r r,rdrkr1assert_index_equal)r6rr)rr:r;s rtest_pi_sub_isub_piz-TestPeriodIndexArithmetic.test_pi_sub_isub_piss :C;Zc1=hh88R#XJN+u fh/ u  c8,r!cNtddd}|ddjdtj}|ddj |ddsJ||z }|j }tj tjd|zd|zd|zd|zg}tj||y)Nrr"r[rrr) r insertrdrequalsr,rkr1r )r6rr)r;rr:s rtest_pi_sub_pi_with_natz1TestPeriodIndexArithmetic.test_pi_sub_pi_with_nats:C;ABq"&&)QRyAB(((uhh88RVVQWa#gq3wCHI fh/r!ctddd}tddd}tj||}tj||}d}tjt |5||z dddy#1swYyxYw) Nrr"r[rrhz;Input has different freq=[hD] from PeriodArray\(freq=[Dh]\)r)r r1r2rarr)r6r7box_with_array2rr)rs r test_parr_sub_pi_mismatched_freqz:TestPeriodIndexArithmetic.test_parr_sub_pi_mismatched_freqsn:C;Zc1=ooc>27L ]]0 <  %K   s &A55A>nrrr|r?cd}d}t|g||}t|g||}t|g|jjt|g|jjz }tj||z |y)N1991090519920406r+)rr,rr1r )r6 tick_classesrp1_dp2_dp1p2r:s rtest_sub_n_gt_1_ticksz/TestPeriodIndexArithmetic.test_sub_n_gt_1_tickssy $l1o 6 $l1o 6vBGGLL9K F=   rBw2r!zoffset, kwd_namemonth startingMonthNweekdayc||dini}d}d}||fddi|}t|g|}t|g|} | |z } t|g|jt|g|jz } tj| | y)Nr|rr normalizeFr+)rrr1r ) r6offsetkwd_namerkwdsrrr,rrr;r:s rtest_sub_n_gt_1_offsetsz1TestPeriodIndexArithmetic.test_sub_n_gt_1_offsetss!) 4!}"a151D1 $d + $d +bvDII6 F:   fh/r!r) 2016-01-01r|rrszEurope/Brussels)rAtzrz Asia/TokyogQ @)g@g@g@c4tddd}tj||}djgd}t |||t j t|5||zdddt j t|5||zdddt j t|5||z dddt j t|5||z dddy#1swYxYw#1swYhxYw#1swYKxYw#1swYyxYw)Nrr"r|r|)z!(:?cannot add PeriodArray and .*)z&(:?cannot subtract .* from (:?a\s)?.*)z3(:?unsupported operand type\(s\) for \+: .* and .*)z1unsupported operand type\(s\) for [+-]: .* and .*r)r r1r2joinrrarr)r6r)r7rrs rtest_parr_add_sub_invalidz3TestPeriodIndexArithmetic.test_parr_add_sub_invalids&:C;ooc>2hh   #3s3 ]]9C 0  %K  ]]9C 0  CK  ]]9C 0  %K  ]]9C 0  CK           s0 C* C62DD*C36C?D Dctddd}tgd}|j}d}tjt |5||zdddtjt |5||zdddtjt |5||z dddd}tjt |5||z dddy#1swYxYw#1swYjxYw#1swYMxYw#1swYyxYw) NrQr|r-1 Dayr1r1zCCannot add or subtract timedelta64\[ns\] dtype from period\[Q-DEC\]rz/cannot subtract PeriodArray from TimedeltaArray)r r rurarr)r6rtditdarrrs r*test_pi_add_sub_td64_array_non_tick_raiseszDTestPeriodIndexArithmetic.test_pi_add_sub_td64_array_non_tick_raisess:C;;< T ]]9C 0  %K  ]]9C 0  CK ]]9C 0  %K @ ]]9C 0  CK          s0C.CC)C5CC&)C25C>ctddd}tgd}|j}tddd}||z}tj||||z}tj||||z}tj||||z}tj||tddd}||z }tj||||z }tj||d}t j t| 5||z dddt j t| 5||z dddy#1swY3xYw#1swYyxYw) Nr90Dr|rr0z 12/31/1999z1/2/2000cannot subtract .* from .*r)r r rur1r rarr)r6rr2r3r:r;rs rtest_pi_add_sub_td64_array_tickz9TestPeriodIndexArithmetic.test_pi_add_sub_td64_array_ticks8:E1=;<  5!Ds fh/u fh/s fh/ fh/ Bs fh/u fh/+ ]]9C 0  CK ]]9C 0  #I      sD;,E;EEpi_freq)r"Wr/rtdi_freqc(|}|tjtjfvr|ntj}t ddg|}t d|z}|j|}tj||} |dk(r|| z } |jd|z j|} tj| |} tj| | |d| z } |djd|z j|} tj| |} tj| | y|dk(rXd } tjt| 5|| z dddtjt| 5|d| z dddyd } tjt| 5|| z dddtjt| 5|d| z dddy#1swYxYw#1swYyxYw#1swYNxYw#1swYyxYw) Nz1 hoursz2 hoursr+z2018-03-07 17:16:40rrrr"nCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freq.rz"Cannot add or subtract timedelta64)rdr4r1rrkr r to_periodr2 to_timestampr5rarrr) r6r7r;r9boxr9r2dtirDtd64objr;r:rs rtest_parr_sub_td64arrayz1TestPeriodIndexArithmetic.test_parr_sub_td64array5s"((BKK!88sbhhi3(C-.4 ]]7 #//#s+ c>'\F,s2==gFHx6H OOFH -UW_F1**3/#5@@IHx5H OOFH - ^E 4C@ W  4C@ 1  7Cy4 W  y4 1          s0G$: G0)G< H$G-0G9<HHr@cttdtdg}|tjj ddtjj ddg}ttdtdgj t }tjt5||z}dddtj|tjt5||z}dddtj|tjtjjd tjjd g}d }tj t"| 5tjt5||zddddddtj t"| 5tjt5||zddddddy#1swYIxYw#1swYxYw#1swYwxYw#1swY{xYw#1swYDxYw#1swYyxYw) N2015Q12016Q2r rr 2015Q22015Q4rz1Input cannot be converted to Period\(freq=Q-DEC\)r)rrrdoffsets QuarterEndrUrVr1assert_produces_warningrr r3r4HourMinuterarr) r6r@rDoffsr:resres2 unanchoredrs rtest_pi_add_offset_arrayz2TestPeriodIndexArithmetic.test_pi_add_offset_arrayfs&*F8,<= > %%%< %%"%=   x 0&2BCDKKFS  ' '(: ; t)C  c8,  ' '(: ; "9D  dH-XXrzz3RZZ5F5F5F5LMN C ]]0 < ++,>? Z  ]]0 < ++,>? R               s`3H0H H&H$H&H>)H2/H>H  HH# H&&H/2H; 7H>>Icttdtdg}|tjj ddtjj ddg}tt t |Dcgc] }||||z c}}|jt}tjt5||z }dddtj||tjjtjjdg}d }tj t"| 5tjt5||z ddddddtj t"| 5tjt5||z ddddddycc}w#1swYxYw#1swYoxYw#1swYsxYw#1swY %%%< %%"%=  %B.IQ1a 0IJ??6*  ' '(: ; u*C  c8, ++-rzz~~~/BCDH ]]0 < ++,>? X   ]]0 < ++,>? 2     J          sZG  GG))G/G)H4G5:HGG& "G))G25G> :HH ctddd}||z}tddd}tj||||z }tj||y)N2000-01-01 09:00rrtrz2000-01-01 10:00r r1r r6onerr;r:s rtest_pi_add_iadd_intz.TestPeriodIndexArithmetic.test_pi_add_iadd_intsR-CDs 2bI fh/ s  c8,r!ctddd}||z }tddd}tj||||z}tj||y)z PeriodIndex.__sub__ and __isub__ with several representations of the integer 1, e.g. int, np.int64, np.uint8, ... r^rrtrz2000-01-01 08:00Nr_r`s rtest_pi_sub_isub_intz.TestPeriodIndexArithmetic.test_pi_sub_isub_intsT -CDs 2bI fh/ s  c8,r!fiver[rc`tdd}||z }|| z}tj||y)Nrp2r@r_)r6rerr;rys rtest_pi_sub_intlikez-TestPeriodIndexArithmetic.test_pi_sub_intlikes29b1tdUm fc*r!ctddd}tjd}||z}tjt ||Dcgc] \}}||z c}}}t j||||z }tjt ||Dcgc] \}}||z  c}}}t j||ycc}}wcc}}w)Nr(rt2Drs)r r3rgrdrkzipr1r )r6rDarrr;rXyr:s r#test_pi_add_sub_int_array_freqn_gt1z=TestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1s, >iimc88s2s|ooc>2IPTU??8^<u ) )IPTU??8^<u )hh>G   ]]9C 0  CK   s 0C??Dfreqstr)5ns5us5ms5s5min5h5dc(|}tdd|}|d}tj||}t||zd|}tj||}||z}tj||||z}tj||t||z d|}tj||}||z }tj||dj ddg} t j t| 5||z dddy#1swYyxYw) Nrrsrr+rrr)r r1r2r5r,rarr) r6rrr7r)rfirstr:r;rs r$test_parr_add_timedeltalike_tick_gt1z>TestPeriodIndexArithmetic.test_parr_add_timedeltalike_tick_gt1Bs<AAooc>2 qwG??8^<u ) )  qwG??8^<u )hh>G   ]]9C 0  CK   s 9DDc|}tddd}tddd}||z}tj||||z }tj||y)Nr 2014-05-15r"r+rz 2014-05-18r_r6rr)rr:r;s r$test_pi_add_iadd_timedeltalike_dailyz>TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_dailybU<C@ lEu fh/ u  c8,r!c|}tddd}tddd}||z }tj||||z}tj||y)Nrrr"r+rz 2014-05-12r_rs r$test_pi_sub_isub_timedeltalike_dailyz>TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_dailynrr!c|}tddd}tj||}djddg}t j t |5||zdddt j t |5||z }dddt j t |5||z dddt j t |5||z}dddy#1swYxYw#1swYhxYw#1swYKxYw#1swYyxYw) Nrrr"r+r+z7Input has different freq(=.+)? from Period.*?\(freq=D\)r=rr r1r2r,rarr)r6 not_dailyr7r)rrs r3test_parr_add_sub_timedeltalike_freq_mismatch_dailyzMTestPeriodIndexArithmetic.test_parr_add_sub_timedeltalike_freq_mismatch_dailyzs<C@ooc>2hhLE   ]]0 <  %K  ]]0 <  5LC  ]]0 <  %K  ]]0 <  5LC           s0C>C+'C7DC(+C47DD c|}tddd}tddd}||z}tj||||z }tj||y)N2014-01-01 10:002014-01-05 10:00rr+z2014-01-01 12:00z2014-01-05 12:00r_r6 two_hoursr)rr:r;s r%test_pi_add_iadd_timedeltalike_hourlyz?TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_hourlyY-/AL 24FSQu fh/ u  c8,r!cJ|}tddd}tj||}djddg}t j t |5||zdddt j t |5||z }dddy#1swY3xYw#1swYyxYw) Nrrrr+r+z7Input has different freq(=.+)? from Period.*?\(freq=h\)r=rr)r6rr7r)rrs r2test_parr_add_timedeltalike_mismatched_freq_hourlyzLTestPeriodIndexArithmetic.test_parr_add_timedeltalike_mismatched_freq_hourlys-/ALooc>2hhLE   ]]0 <  %K ]]0 <  5LC      sB >B BB"c|}tddd}tddd}||z }tj||||z}tj||y)Nrrrr+z2014-01-01 08:00z2014-01-05 08:00r_rs r%test_pi_sub_isub_timedeltalike_hourlyz?TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_hourlyrr!ctddd}|tjjdz}tddd}t j |||tjjdz }t j ||y)Nrrprr+r[rr2029)r rdrMrtr1r rus r"test_add_iadd_timedeltalike_annualzu%w{7oob.IF??8^yQu ) )u )+ ]]9C 0  CK   s C""C+rrHzm8[ns]cdtddd}tdgdzd}tj||}tj||}||z}tj||||z}tj||||z }tj||d}t j t|5||z ddd|j}tjd d |d <t|d gdgd zzd}tj||}||z}tj||||z}tj||||z }tj||t j t|5||z dddy#1swYxYw#1swYyxYw) NrrHrrsrr+r7rrns) r rr1r2r5rarrcopyr3r)r6r7r)rDr:rr;rs r!test_parr_add_sub_tdt64_nat_arrayz;TestPeriodIndexArithmetic.test_parr_add_sub_tdt64_nat_arraysz, >w{7oob.1??8^<u ) )u )+ ]]9C 0  CK  >>!T*a1w%145A??8^<u ) )u ) ]]9C 0  CK      s:F F&F#&F/cvtdd}|j}||z }||z }tj||y)N 2000-12-31r|r@)r r4r1r )r6rDrMr;r:s rtest_parr_add_sub_indexz1TestPeriodIndexArithmetic.test_parr_add_sub_index+s9 , 2xx7 fh/r!ctddd}|j}tjtdtj j ddg}tjt5||z}dddtgdd jjt}tj|tjt5||z }dddtd gdzd jjt}tj||y#1swYxYw#1swYZxYw) Nrr|r"rsrr#r)z 2001-01-01z 2001-01-03z 2001-01-05r+z 2000-12-30)r r4r3r rdrMrZr1rOrr_datarUrVr5)r6rDrMr)r;r:s rtest_parr_add_sub_object_arrayz8TestPeriodIndexArithmetic.test_parr_add_sub_object_array4s , <xx)+RZZ^^A->BC  ' '(: ; "E\F " 6S %v  )  ' '(: ; "E\F " ~1<BBII&Q ) " " " "s3D/D;/D8;Ectd}tdd}tj|gd}t j ||}d}t jt|5||zdddt jt|5||zdddd}t jt|5|t|gzdddt jt|5t|g|zdddt jt|5|tj|gzdddt jt|5tj|g|zddd|tjurd}nd }t jt|5|tj|gzddd|tjurd}nd }t jt|5tj|g|zdddy#1swYxYw#1swYxYw#1swYzxYw#1swYTxYw#1swY$xYw#1swYxYw#1swYxYw#1swYyxYw) Nr*rrr+rrz$cannot add PeriodArray and Timestamprz(cannot add PeriodArray and DatetimeArrayzAunsupported operand type\(s\) for \+: 'Period' and 'DatetimeArrayzBunsupported operand type\(s\) for \+: 'DatetimeArray' and 'Period') rrrdrkr1r2rarrr r)r6r7tsrxrlrs r test_period_add_timestamp_raisesz:TestPeriodIndexArithmetic.test_period_add_timestamp_raisesHs v V#&hhuK0ooc>24 ]]9C 0  "H  ]]9C 0  H 8 ]]9C 0  &",   ]]9C 0  B4L3   ]]9C 0 ! "((B4.  ! ]]9C 0 ! HHbTNS  ! R\\ ) [[Y(<= [[Z$5* 6>* ^ [[URXXrxx$89 : < [[URXXrxx$89::- - [[Va!288)D%EF+G+ 0-$ [[[4-8*9*$ *$ [[\BHHbhh+?@ [[THLL#((#;<0=A0 [[\BHHbhh+?@ A "B [[Y(WXY> - -2 -, -- -  [[[4-89& [[ BHHeWq[ 1 )N ) )5'A+X F F0*("%r!rceZdZdZdZy)TestPeriodSeriesArithmeticcttddtddgd}|jdk(sJttddtd dgd}tj||}|t j ur|jdk(jsJtj||}||z}tj||||z}tj||y) N 2015-01-01r"r+ 2015-01-02xxxr Period[D] 2015-01-04 2015-01-05) r rrr1r2rdrdtypesallr5)r6rr7r~r:rr;s r"test_parr_add_timedeltalike_scalarz=TestPeriodSeriesArithmetic.test_parr_add_timedeltalike_scalarns Ls +VLs-K L yyK''' Ls +VLs-K L  ooc>2 R\\ )JJ+-224 44??8^<z! )c! )r!cJttddtddgd}|jdk(sJtdd}|j}td |zd |zgdt }t j ||z |t j ||z d |zttd dtddgd}|jdk(sJtd|zd|zgdt }t j ||z |t j ||z d |zy)Nrr"r+rrrrz 2015-01-10rHr)rrr\rrr?r)r rrr,rVr1r)r6r~rxrr:s2s rtest_ops_series_periodz1TestPeriodSeriesArithmetic.test_ops_series_periods Ls +VLs-K L yyK'''\,hh1s7AG,5G sSy(3 sSy"x-8  Ls +VLs-K L xx;&&&1s7AG,5G rCx2 sRxh7r!N)r^r_r`rrrlr!rrrms *28r!rc eZdZdZdZdZejjdddgejjddd d d d d ddgdZ dZ dZ dZ dZ dZdZdZy)TestPeriodIndexSeriesMethodsrct|}||}tj||t|}||}t||j}tj ||yr)rr1r5r rr)r6rurr:r8r;r~rys rrz#TestPeriodIndexSeriesMethods._checksU&!c )VncXFKK0 vs+r!ctgddd}tgddd}|j|d||j|d||j|dzd ||td d z }|j}t j d |zd |zd|zd|zgd}t j||td d |z }t j d |zd|zd|zd|zgd}t j||y)Nrrrr8r)rrr2011-06c |dzSNrrlrWs rrYz:TestPeriodIndexSeriesMethods.test_pi_ops.. 1q5r!c d|zSrrlrWs rrYz:TestPeriodIndexSeriesMethods.test_pi_ops..rr!rc |dz SrrlrWs rrYz:TestPeriodIndexSeriesMethods.test_pi_ops.. q1ur!rr+rrr|rr\rI)rrrr,rdrkr1r )r6r8r:r;rrys r test_pi_opsz(TestPeriodIndexSeriesMethods.test_pi_opss 8s  8s  C(3 C(3 C!G_c2vic22hhhhCS!c'1s7;%H fc* ,s2hhCc28R#X>UK fc*r!ngstrg?rc ||zSrTrlrrs rrYz%TestPeriodIndexSeriesMethods. C"Hr!c ||zSrTrlrs rrYz%TestPeriodIndexSeriesMethods. BHr!c ||z SrTrlrs rrYz%TestPeriodIndexSeriesMethods.rr!c ||z SrTrlrs rrYz%TestPeriodIndexSeriesMethods.rr!c.tj||SrTr3rrs rrYz%TestPeriodIndexSeriesMethods.sBFF3Or!c.tj||SrTrrs rrYz%TestPeriodIndexSeriesMethods.sBFF2sOr!c.tj||SrTr3subtractrs rrYz%TestPeriodIndexSeriesMethods.sBKKR0r!c.tj||SrTrrs rrYz%TestPeriodIndexSeriesMethods.sBKKC0r!ctgddd}tj||}djgd}t j t |5|||dddy#1swYyxYw)Nrrrr8rr+)zunsupported operand type\(s\)zcan only concatenatez must be strzobject to str implicitlyr)rr1r2r,rarr)r6rrr7r8rrs rtest_parr_ops_errorsz1TestPeriodIndexSeriesMethods.test_parr_ops_errorssh 8s ooc>2hh  ]]9C 0  bM   s  A((A1c,tgddd}tgddd}|j|d||j|d||j|d||j|d zd ||j|d zd |tgdd d}tgd d d}|j|d||j|d||j|d||j|dzd||j|dzd|y)Nrrrrrrr8r)rrrrc |dzSrrlrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..rr!c d|zSrrlrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..rr!c.tj|dSrrrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..266!Q<r!rc |dz SrrlrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..rr!c.tj|dSrrrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..r{{1a'8r!r)z2011-072011-08rz2011-10c |dzSNr|rlrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..rr!c d|zSrrlrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..rr!c.tj|dSrrrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..r r!r|c |dz SrrlrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..rr!c.tj|dSrrrWs rrYz>TestPeriodIndexSeriesMethods.test_pi_ops_nat..rr!rr)r6r8r:s rtest_pi_ops_natz,TestPeriodIndexSeriesMethods.test_pi_ops_nats 43U  43U  C(3 C(3 C/: C!G_c2 C!G8#> 44e  44e  C(3 C(3 C/: C!G_c2 C!G8#>r!cTtgddd}d}tgddd}|j|||d}tgddd}|j|||d }tgd dd}|j|||d }tgd dd}|j|||y) Nrrrr8rc6|tjgdzSNrr3r4rWs rrYzDTestPeriodIndexSeriesMethods.test_pi_ops_array_int..a"((<00r!)rrrrcXtj|tjgdS)N)r?r\rr)r3rr4rWs rrYzDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.. sbffQ 78r!)rrrrc6|tjgdz SrrrWs rrYzDTestPeriodIndexSeriesMethods.test_pi_ops_array_int..rr!)2010-12r rr cXtj|tjgdS)N)r|rr|rI)r3rr4rWs rrYzDTestPeriodIndexSeriesMethods.test_pi_ops_array_int..sbkk!RXXm%<=r!)z2010-10r rrrr6r8rrys rtest_pi_ops_array_intz2TestPeriodIndexSeriesMethods.test_pi_ops_array_ints 43U  1 43U  CC 8 43U  CC 0 43U  CC = 43U  CC r!ctgddd}d}tgddd}|j|||d}tgddd}|j|||d }tgd dd}|j|||y) Nrz 2011-02-01z 2011-03-01z 2011-04-01r"r8rcD|tjjzSrTrdrMrZrWs rrYzATestPeriodIndexSeriesMethods.test_pi_ops_offset..%sa"**..**r!)z 2011-01-02z 2011-02-02z 2011-03-02z 2011-04-02cF|tjjdzSrr'rWs rrYzATestPeriodIndexSeriesMethods.test_pi_ops_offset..-a"**..++r!)rz 2011-02-03z 2011-03-03z 2011-04-03cF|tjjdz Srr'rWs rrYzATestPeriodIndexSeriesMethods.test_pi_ops_offset..5r)r!)z 2010-12-30z 2011-01-30z 2011-02-27z 2011-03-30rr"s rtest_pi_ops_offsetz/TestPeriodIndexSeriesMethods.test_pi_ops_offsets D  + D  CC + D  CC + D  CC r!c<tgddd}t|}d}||fD]}tjt|5|t j jdzdddtjt|5t j jd|zdddtjt|5|t j jdz dddy#1swYxYw#1swY^xYw#1swYxYw)Nr%r"r8rzmCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freqrr)rr rarrrdrMrP)r6r8r~rrs rtest_pi_offset_errorsz2TestPeriodIndexSeriesMethods.test_pi_offset_errors=s D  Sk < : )C4C@ )bjjooa(( )4C@ ) "S( )4C@ )bjjooa(( ) ) ) ) ) ) ) ) )s$#C:#D #D:D D D ctgddd}|tddz }|j}tjd|zd|zd |zd |zgd }t j ||tj|tdd}t j ||tdd|z }tjd |zd |zd|zd|zgd }t j ||tjtdd|}t j ||ttjtjtjtjgd }|tddz }t j |||j|jk(sJtdd|z }t j |||j|jk(sJy)Nrrrr8r2012-01r+irrG rtrHr) rrr,rdrkr1r r3rr nanr6r8r;rrys rtest_pi_sub_periodz/TestPeriodIndexSeriesMethods.test_pi_sub_periodSs 8s vic22hhhhc 39cCicBO fc*S&"=> fc* ,s2hhS"s(BHa#g>UK fc*VIC8#> fc*bffbffbffbff=EJve#.. fc*{{chh&&&C(3. fc*{{chh&&&r!ctgddd}ttjgdzd}t j tj|z |t j |tjz |y)Nrrrr8rr?r)rr rdrr1r )r6r8rys rtest_pi_sub_pdnatz.TestPeriodIndexSeriesMethods.test_pi_sub_pdnatqs[ 43U bffX\6 bffslC0 cBFFlC0r!ctgddd}|tddz }|j}tjd|ztj d|zd |zgd }t j||tdd|z }tjd |ztj d |zd |zgd }t j||ttjtjtjtjgd }t j|tddz |t jtdd|z |y)Nrrrr8rr/r+r0r1r2rrGrtrHr) rrr,rdrkrr1r r r3r4r5s rtest_pi_sub_period_natz3TestPeriodIndexSeriesMethods.test_pi_sub_period_natzs 43U vic22hhhhc 26639b3h?eL fc* ,s2hhS"&&"s(AG<5I fc*bffbffbffbff=EJ cF5s$;;SA fU5;SAr!N)r^r_r`rrrrarbrcrrr#r+r-r6r8r:rlr!rrrs< ,+. [[TE3<0 [[ $ $ $ $ + + 0 0   1"?<!8!<),'<1Br!r)/rnumpyr3rapandas._libs.tslibsrrrr pandas.errorsrpandasrdrr r r r pandas._testing_testingr1 pandas.corer pandas.core.arraysrpandas.tests.arithmetic.commonrrrrM YearBegin MonthBeginrQ_common_mismatchfixtureto_pytimedeltarrr&r(rnrrrrrrrlr!rrIs  --JJJJ!JJ",,.r3"    sC s**,s    **Dh=h=V%1%1P_!_!L(2(2Vw %w %t1818hjBjBr!