
    A>i{                        S SK r S SKrS SKrS SKJrJrJrJr  S SK	r
S SK	JrJrJrJrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJr  \
R6                  R9                  S5      \
R6                  R;                  S5      \
R6                  R=                  5       /r\R@                  " \" S	S
9RC                  5       \RD                  " S	S5      \" S	S9/\QS9S 5       r#\R@                  " \RD                  " SS5      \" SS9RC                  5       \" SS9/\QS9S 5       r$ " S S5      r% " S S5      r& " S S5      r' " S S5      r( " S S5      r) " S S5      r* " S S 5      r+ " S! S"5      r,g)#    N)IncompatibleFrequencyPeriod	Timestamp	to_offset)PeriodIndexSeries	TimedeltaTimedeltaIndexperiod_range)ops)TimedeltaArray)assert_invalid_addsub_typeassert_invalid_comparisonget_upcast_box         )minutess)seconds)paramsc                     U R                   $ )zd
Several timedelta-like and DateOffset instances that are _not_
compatible with Hourly frequencies.
paramrequests    b/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/arithmetic/test_period.py
not_hourlyr   (        ==    im  Ddaysc                     U R                   $ )zo
Several timedelta-like and DateOffset instances that are _not_
compatible with Monthly or Annual frequencies.
r   r   s    r   mismatched_freqr%   8   r   r    c                      \ rS rSr\R
                  R                  SS\" SSS9/5      S 5       rS r	\R
                  R                  SS	\
" S
5      \" SS9SSSSS/5      S 5       r\R
                  R                  S\R                  " SSS9R                  \R                   " SSS9R                  \R$                  " S5      \R$                  " S5      R'                  \R(                  5      \" \" S5      5      / SQ\R$                  " SS5      \R$                  " SS5      R'                  \5      \R0                  " / SQ5      /	5      S 5       r\R
                  R                  S\\R                  S /5      S 5       rSrg)TestPeriodArrayLikeComparisonsL   other2017r!   freqc                     [        / SQSS9n[        R                  " X25      n[        X1S5      n[        R
                  " / SQ5      n[        R                  " XT5      nX1:H  n[        R                  " Xe5        g )N)r*   r*   2018r!   r+   TTTFr   tmbox_expectedr   nparrayassert_equal)selfr)   box_with_arrayidxxboxexpectedresults          r   test_eq_scalar-TestPeriodArrayLikeComparisons.test_eq_scalarQ   sY    2=ooc2c$/88/0??82
)r    c                 :   [        SSS9n[        R                  " UR                  5       S   5      n[        R
                  " X!5      n[        X#S5      nX#:*  n[        R                  " / SQ5      n[        R
                  " Xd5      n[        R                  " XV5        g )N2000   periodsr   TTFFF)r   r3   r4   to_numpyr1   r2   r   r5   )r6   r7   pir)   r9   r;   r:   s          r   test_compare_zerodim3TestPeriodArrayLikeComparisons.test_compare_zerodim^   ss     &!,q)*__R0b.8878??82
)r    scalarfooz
2021-01-01r@   r"   	   g      #@  FNc                 \    [        SSS9n[        R                  " X15      n[        XBU5        g Nr?   r@   rA   r   r1   r2   r   )r6   r7   rH   rE   parrs        r   test_compare_invalid_scalar:TestPeriodArrayLikeComparisons.test_compare_invalid_scalarl   s(      &!,r2!$?r    r?   rA   1D)rK   i  i  i  i  c                 \    [        SSS9n[        R                  " X15      n[        XBU5        g rM   rN   )r6   r7   r)   rE   rO   s        r   test_compare_invalid_listlike<TestPeriodArrayLikeComparisons.test_compare_invalid_listlike   s(      &!,r2!$~>r    	other_boxc                 ,    U R                  [        5      $ N)astypeobjectxs    r   <lambda>'TestPeriodArrayLikeComparisons.<lambda>   s    QXXfEUr    c                    [        SSS9n[        R                  " X15      nU" U5      n[        XES5      n[        R
                  " / SQ5      n[        R                  " Xv5      nXE:H  n[        R                  " X5        XE:*  n[        R                  " X5        XE:  n[        R                  " X5        XE:g  n[        R                  " X) 5        XE:  n[        R                  " X) 5        XE:  n[        R                  " X) 5        U" US S S2   5      n[        R
                  " / SQ5      n[        R                  " Xv5      nXE:H  n[        R                  " X5        [        R
                  " / SQ5      n[        R                  " Xv5      nXE:*  n[        R                  " X5        [        R
                  " / S	Q5      n[        R                  " Xv5      nXE:  n[        R                  " X5        [        R
                  " / S
Q5      n[        R                  " Xv5      nXE:g  n[        R                  " X5        [        R
                  " / SQ5      n[        R                  " Xv5      nXE:  n[        R                  " X5        [        R
                  " / SQ5      n[        R                  " Xv5      nXE:  n[        R                  " X5        g )Nr?      rA   T)TTTTT)FFTFF)TTTFF)FFTTT)TTFTT)TTFFF)FFFTT)r   r1   r2   r   r3   r4   r5   )	r6   r7   rV   rE   rO   r)   r9   r:   r;   s	            r   test_compare_object_dtype8TestPeriodArrayLikeComparisons.test_compare_object_dtype   s   &!,r2"d4088:;??82
)
)
)
	*
	*
	*"TrT(#88>???82
)88<=??82
)88<=??82
)88;<??82
)88=>??82
)88=>??82
)r     )__name__
__module____qualname____firstlineno__pytestmarkparametrizer   r<   rF   r   r	   rP   pd
date_ranger4   timedelta_ranger3   arangerY   float64listrangerZ   IndexrT   rb   __static_attributes__rd   r    r   r'   r'   L   sv   
 [[Wvvf3/G&HI
* J
** [[l#1		
@@ [[MM&!,22tQ/55IIaLIIaL

+qN$IIdD!IIdD!((0HH-.	
??
 [[[4;U*VW6* X6*r    r'   c                      \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ SQ5      S 5       r
\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S	 5       r\R                  R                  S/ SQ5      S
 5       r\R                  R                  S\S/5      S 5       rSrg)TestPeriodIndexComparisons   c                 x   [        SSSS9nUS   nX:  nUR                  UR                  S   :  n[        R                  " X45        UR                  R	                  SS5      U:  n[        R                  " X4R	                  SS5      5        U[
        R                  " U5      :  n[        R                  " X45        g )N2007-01   MrB   r,   
   r   )r   valuesr1   assert_numpy_array_equalreshaper3   r4   )r6   r8   perr;   exps        r   test_pi_cmp_period-TestPeriodIndexComparisons.test_pi_cmp_period   s    9bs;"gjj3::b>)
##F0 ##B*S0
##FKKA,>? rxx}$
##F0r    c                    [        SSSS9nUS   nU Vs/ s H  oDU:  PM	     nn[        R                  " X!5      n[        XcS5      n[        R                  " XW5      nXc:  n[        R                  " X5        US   nXc:  nU Vs/ s H  oDU:  PM	     nn[        R                  " XW5      n[        R                  " X5        g s  snf s  snf )Nz
2000-01-01r}   r!   r|      Tr`   )r   r1   r2   r   r5   )	r6   r7   rE   valr\   r:   serr9   r;   s	            r   test_parr_cmp_period_scalar27TestPeriodIndexComparisons.test_parr_cmp_period_scalar2   s    ,=e%'(RGR(oob1c-??82
)e%'(RGR(??82
) ) )s   CCr,   )r{   2M3Mc                    [        / SQUS9n[        R                  " X25      n[        SUS9n[	        X4S5      n[
        R                  " / SQ5      n[        R                  " Xe5      n[        R                  " X4:H  U5        [        R                  " XC:H  U5        [
        R                  " / SQ5      n[        R                  " Xe5      n[        R                  " X4:g  U5        [        R                  " XC:g  U5        [
        R                  " / SQ5      n[        R                  " Xe5      n[        R                  " X4:  U5        [        R                  " XC:  U5        [
        R                  " / SQ5      n[        R                  " Xe5      n[        R                  " X4:  U5        [        R                  " XC:  U5        [
        R                  " / S	Q5      n[        R                  " Xe5      n[        R                  " X4:  U5        [        R                  " XC:*  U5        [
        R                  " / S
Q5      n[        R                  " Xe5      n[        R                  " X4:*  U5        [        R                  " XC:  U5        g )N2011-012011-022011-032011-04r+   r   TFTFFTFTT)FFTTrC   )FTTT)TTFF)r   r1   r2   r   r   r3   r4   r5   )r6   r,   r7   baser   r9   r   s          r   test_parr_cmp_period_scalar6TestPeriodIndexComparisons.test_parr_cmp_period_scalar   s    GdSt4YT*d.hh23ooc(
S)
S)hh01ooc(
S)
S)hh12ooc(

C(

C(hh23ooc(

C(

C(hh01ooc(
S)
S)hh12ooc(
S)
S)r    c                    [        / SQUS9n[        R                  " X25      n[        / SQUS9n[        X4S5      n[        R
                  " / SQ5      n[        R                  " Xe5      n[        R                  " X4:H  U5        [        R
                  " / SQ5      n[        R                  " Xe5      n[        R                  " X4:g  U5        [        R
                  " / SQ5      n[        R                  " Xe5      n[        R                  " X4:  U5        [        R
                  " / SQ5      n[        R                  " Xe5      n[        R                  " X4:  U5        [        R
                  " / S	Q5      n[        R                  " Xe5      n[        R                  " X4:  U5        [        R
                  " / S
Q5      n[        R                  " Xe5      n[        R                  " X4:*  U5        g )Nr   r+   )r   r   r   2011-05TFFTFTTFTr   TFFTFTTFr   r0   )r6   r,   r7   r   r8   r9   r   s          r   test_parr_cmp_pi+TestPeriodIndexComparisons.test_parr_cmp_pi  sH    GdSt4 FTRd.hh23ooc(
S)hh01ooc(
S)hh23ooc(

C(hh12ooc(

C(hh12ooc(
S)hh01ooc(
S)r    c                    [        / SQUS9n[        R                  " X25      nSU S3n[        R                  " [
        US9   U[        SSS9:*    S S S 5        [        R                  " [
        US9   [        SSS9U:    S S S 5        [        / SQSS9nS	nU[        R                  [        R                  4;   a  UOUn[        R                  " [
        US9   X5:*    S S S 5        SU S3n[        R                  " [
        US9   U[        SS
S9:*    S S S 5        [        R                  " [
        US9   [        SS
S9U:    S S S 5        [        / SQS
S9nSnU[        R                  [        R                  4;   a  UOUn[        R                  " [
        US9   X5:*    S S S 5        g ! , (       d  f       GN[= f! , (       d  f       GN>= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r+   )Invalid comparison between dtype=period\[z\] and Periodmatch2011Y)r   201220132014z@Invalid comparison between dtype=period\[Y-DEC\] and PeriodArray4Mz=Invalid comparison between dtype=period\[4M\] and PeriodArray)
r   r1   r2   ri   raises	TypeErrorr   to_arrayrl   r4   )r6   r,   r7   r   msgr8   rev_msgidx_msgs           r    test_parr_cmp_pi_mismatched_freq;TestPeriodIndexComparisons.test_parr_cmp_pi_mismatched_freq>  s    GdSt4:4&N]]9C0F6,, 1 ]]9C06$, 1 :EU+RXX/FF'C]]9G4K 5 ;4&N]]9C0F6-- 1 ]]9C06%- 1 :FR+RXX/FF'C]]9G4K 541 10 10 54
 10 10 54sH   F$1F6GG1G*G;$
F36
G
G
G'*
G8;
H	c                 r   [        / SQUS9nUS   nX#:  n[        R                  " / SQ5      n[        R                  " XE5        X2:  n[        R                  " XE5        U[
        R                  :H  n[        R                  " / SQ5      n[        R                  " XE5        [
        R                  U:H  n[        R                  " XE5        U[
        R                  :g  n[        R                  " / SQ5      n[        R                  " XE5        [
        R                  U:g  n[        R                  " XE5        [        / SQUS9nX&:  n[        R                  " / SQ5      n[        R                  " XE5        X&:H  n[        R                  " / SQ5      n[        R                  " XE5        X&:g  n[        R                  " / SQ5      n[        R                  " XE5        X":H  n[        R                  " / S	Q5      n[        R                  " XE5        X":g  n[        R                  " / S
Q5      n[        R                  " XE5        g )Nr   r   NaTr   r+   r   FFFTFFFFTTTTr   r   r   r   rC   r   r   )r   r3   r4   r1   r   rl   r   )r6   r,   idx1r   r;   r   idx2s          r   test_pi_cmp_nat*TestPeriodIndexComparisons.test_pi_cmp_nata  s   C$O1ghh23
##F0
##F0hh34
##F04
##F0hh/0
##F04
##F0C$Ohh23
##F0hh34
##F0hh/0
##F0hh01
##F0hh23
##F0r    c                    [        / SQUS9n[        / SQSS9nSU S3n[        R                  " [        US9   X#:    S S S 5        X#:H  n[        R
                  " / SQ[        S	9n[        R                  " XV5        g ! , (       d  f       ND= f)
Nr   r+   r   r   r   z\] and PeriodArrayr   r   dtype)	r   ri   r   r   r3   r4   boolr1   r   )r6   r,   r   diffr   r;   r:   s          r   &test_pi_cmp_nat_mismatched_freq_raisesATestPeriodIndexComparisons.test_pi_cmp_nat_mismatched_freq_raises  st    C$OC$O:4&@RS]]9C0K 1 888E
##F5 10s   A;;
B	r   Nc                 H   [        [        S5      [        R                  [        S5      /5      n[        [        R                  [        R                  [        S5      /5      nUb"  UR	                  U5      nUR	                  U5      nX#:H  n[
        R                  " / SQ5      n[        R                  " XE5        X#:g  n[
        R                  " / SQ5      n[        R                  " XE5        [
        R                  " / SQ5      n[        R                  " U[        R                  :H  U5        [        R                  " [        R                  U:H  U5        [
        R                  " / SQ5      n[        R                  " U[        R                  :g  U5        [        R                  " [        R                  U:g  U5        [
        R                  " / SQ5      n[        R                  " U[        R                  :  U5        [        R                  " [        R                  U:  U5        g )N
2011-01-01
2011-01-03)FFTr/   )FFF)TTT)	r   r   rl   r   rY   r3   r4   r1   r   )r6   r   leftrightr;   r:   s         r   test_comp_nat(TestPeriodIndexComparisons.test_comp_nat  sf   F<0"&&&:NOPRVVRVVVL-ABC;;u%DLL'E8801
##F588/0
##F58812
##DBFFNH=
##BFFeOX>88./
##DBFFNH=
##BFFdNH=8812
##D266M8<
##BFFTM8<r    rd   )re   rf   rg   rh   r   r   ri   rj   rk   r   r   r   r   r   rZ   r   rt   rd   r    r   rv   rv      s    1"*& [[V%67#* 8#*J [[V%67 * 8 *D [[V%67  8 D [[V%67)1 8)1V [[V%67
6 8
6 [[Wvtn5= 6=r    rv   c                       \ rS rSrS rSrg)TestPeriodSeriesComparisonsi  c           
         [        [        SSS9[        SSS9[        SSS9[        SSS9/5      n[        [        SSS9[        S	SS9[        SSS9[        S
SS9/5      n[        / SQ5      n[        R                  " X:H  U5        [        / SQ5      n[        R                  " X:g  U5        [        / SQ5      n[        R                  " X:  U5        [        / SQ5      n[        R                  " X:  U5        [        / SQ5      n[        R                  " X:  U5        [        / SQ5      n[        R                  " X:*  U5        g )Nr   r   r+   r   r{   r   r   r   r   r   r   r   r   r   r   r   )r   r   r1   assert_series_equal)r6   r   r   r   s       r   (test_cmp_series_period_series_mixed_freqDTestPeriodSeriesComparisons.test_cmp_series_period_series_mixed_freq  s"   vC(ys+vC(ys+	
 vC(ys+vC(ys+	
 01
t{C0./
t{C001
tz3//0
tz3//0
t{C0./
t{C0r    rd   N)re   rf   rg   rh   r   rt   rd   r    r   r   r     s    $1r    r   c                   *    \ rS rSrSrS rS rS rSrg)*TestPeriodIndexSeriesComparisonConsistencyi  2Test PeriodIndex and Period Series Ops consistencyc                 0   [        U5      nU" U5      n[        U[        R                  [        R
                  45      (       d   e[        R                  " XS5        [        U5      nU" U5      n[        X1R                  S9n[        R                  " XW5        g Nname)r   
isinstancerl   rs   r3   ndarrayr1   r5   r   r   r   )r6   r~   funcr:   r8   r;   r   r   s           r   _check1TestPeriodIndexSeriesComparisonConsistency._check  ss     &!c (RXXrzz$:;;;;
)6NaXKK0
v+r    c                   ^ [        / SQSSS9nUS   mU4S jn[        R                  " / SQ[        R                  S9nU R	                  XU5        U4S	 jnU R	                  XU5        U4S
 jn[        R                  " / SQ[        R                  S9nU R	                  XU5        U4S jnU R	                  XU5        U4S jn[        R                  " / SQ[        R                  S9nU R	                  XU5        U4S jn[        R                  " / SQ[        R                  S9nU R	                  XU5        U4S jn[        R                  " / SQ[        R                  S9nU R	                  XU5        g )Nr   r{   r8   r,   r   r   c                    > U T:H  $ rX   rd   r\   r   s    r   r]   PTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  	    a3hr    r   r   c                    > TU :H  $ rX   rd   r   s    r   r]   r     	    cQhr    c                    > U T:g  $ rX   rd   r   s    r   r]   r     r   r    r   c                    > TU :g  $ rX   rd   r   s    r   r]   r     r   r    c                    > TU :  $ rX   rd   r   s    r   r]   r     r   r    )TTTFc                    > U T:  $ rX   rd   r   s    r   r]   r     	    a#gr    r   c                    > TU :  $ rX   rd   r   s    r   r]   r     r   r    r   r3   r4   bool_r   r6   r8   fr   r   s       @r   test_pi_comp_period>TestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period  s   8s
 !fhh2"((CCC CC hh0ACC CC hh0ACC hh2"((CCC hh0ACC r    c                   ^ [        / SQSSS9nUS   mU4S jn[        R                  " / SQ[        R                  S9nU R	                  XU5        U4S	 jnU R	                  XU5        S
 n[        R                  " / SQ[        R                  S9nU R	                  XU5        S nU R	                  XU5        U4S jn[        R                  " / SQ[        R                  S9nU R	                  XU5        U4S jnU R	                  XU5        S n[        R                  " / SQ[        R                  S9nU R	                  XU5        S nU R	                  XU5        U4S jn[        R                  " / SQ[        R                  S9nU R	                  XU5        U4S jn[        R                  " / SQ[        R                  S9nU R	                  XU5        S n[        R                  " / SQ[        R                  S9nU R	                  XU5        S n[        R                  " / SQ[        R                  S9nU R	                  XU5        g )Nr   r   r   r   r{   r8   r   r   c                    > U T:H  $ rX   rd   r   s    r   r]   TTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r    r   r   c                    > TU :H  $ rX   rd   r   s    r   r]   r     r   r    c                 (    U [         R                  :H  $ rX   rl   r   r[   s    r   r]   r          a266kr    r   c                 (    [         R                  U :H  $ rX   r   r[   s    r   r]   r   #      bffkr    c                    > U T:g  $ rX   rd   r   s    r   r]   r   &  r   r    r   c                    > TU :g  $ rX   rd   r   s    r   r]   r   )  r   r    c                 (    U [         R                  :g  $ rX   r   r[   s    r   r]   r   ,  r   r    r   c                 (    [         R                  U :g  $ rX   r   r[   s    r   r]   r   /  r   r    c                    > TU :  $ rX   rd   r   s    r   r]   r   2  r   r    )TFTFc                    > U T:  $ rX   rd   r   s    r   r]   r   6  r   r    rC   c                 (    U [         R                  :  $ rX   r   r[   s    r   r]   r   :  s    a"&&jr    c                 (    [         R                  U :  $ rX   r   r[   s    r   r]   r   >  r   r    r   r   s       @r   test_pi_comp_period_natBTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat  s   43U
 !fhh2"((CCC CC !hh3288DCC !CC hh0ACC CC !hh/rxx@CC !CC hh1BCC hh2"((CCC  hh3288DCC !hh3288DCC r    rd   N)	re   rf   rg   rh   __doc__r   r   r  rt   rd   r    r   r   r     s    <, !<,!r    r   c                       \ rS rSrS rSrg)TestPeriodFrameArithmeticiG  c           	         [         R                  " [        SSS9[        SSS9/[        SSS9[        SSS9/S.5      nUS   R                  S	:X  d   eUS
   R                  S	:X  d   e[        SSS9nUR                  n[         R                  " [
        R                  " SU-  SU-  /[        S9[
        R                  " SU-  SU-  /[        S9S.5      n[        R                  " X!-
  U5        [        R                  " X-
  SU-  5        [         R                  " [        SSS9[        SSS9/[        SSS9[        SSS9/S.5      nUS   R                  S	:X  d   eUS
   R                  S	:X  d   e[         R                  " [
        R                  " SU-  SU-  /[        S9[
        R                  " SU-  SU-  /[        S9S.5      n[        R                  " XQ-
  U5        [        R                  " X-
  SU-  5        g )Nz2015-01r{   r+   z2015-022014-01z2014-02)ABr
  	Period[M]r  z2015-03r   r   r         ra   z2015-05z2015-06r@      )
rl   	DataFramer   r   r,   r3   r4   rZ   r1   assert_frame_equal)r6   dfpoffr   df2s         r   test_ops_frame_period/TestPeriodFrameArithmetic.test_ops_frame_periodH  s   \\YS16)#3NOYS16)#3NO
 #w}}+++#w}}+++93'ffllXXq3wC0?XXrCxc2&A
 	afc*
bfb3h/llYS16)#3NOYS16)#3NO
 3x~~,,,3x~~,,,llXXq3wC0?XXrCxc2&A
 	ch,
bhS1r    rd   N)re   rf   rg   rh   r  rt   rd   r    r   r  r  G  s    '2r    r  c                   H   \ rS rSrS rS rS rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      \R                  R                  S	\R                  R                  S
4\R                  R                  S4\R                  R                   S4\R                  R"                  S4/5      S 5       5       r\R                  R                  S\" S5      \" S5      R)                  5       \" S5      R+                  5       \R,                  " SSSS9\R,                  " SSSS9\R,                  " SSSS9R.                  \R,                  " SSSS9R.                  S\R2                  " / SQ5      /	5      S 5       rS rS r\R                  R                  S/ SQ5      \R                  R                  SSS/5      S  5       5       r\R                  R                  S!\R2                  \R<                  /5      S" 5       r\R                  R                  S!\R2                  \R<                  /5      S# 5       r S$ r!S% r"\R                  R                  S&S'\R2                  " S'\RF                  S(9/5      S) 5       r$S* r%S+ r&\R                  R                  S,S-S./5      S/ 5       r'S0 r(\R                  R                  S1\R2                  \R<                  /5      \R                  R                  S2\)RT                  \+RX                  /5      S3 5       5       r-\R                  R                  S1\R2                  \R<                  /5      S4 5       r.S5 r/\R                  R                  S6/ S7Q5      S8 5       r0S9 r1S: r2S; r3S< r4S= r5S> r6S? r7S@ r8SA r9SB r:\R                  R                  S,S-S./5      SC 5       r;\R                  R                  S\R2                  " SD/SE-  SFS(9\<Rz                  " SD/SE-  SFS(9/5      SG 5       r>SH r?SI r@SJ rASKrBg)LTestPeriodIndexArithmeticir  c                 <   [        SSSS9n[        SSSS9n[        R                  " X!5      nSn[        R                  " [
        US9   X#-     S S S 5        [        R                  " [
        US9   X#-  nS S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)N1/1/2000r!   r`   r,   rB   1/6/2000z/unsupported operand type\(s\) for \+: .* and .*r   )r   r1   r2   ri   r   r   )r6   r7   rngr)   r   s        r   test_parr_add_iadd_parr_raises8TestPeriodIndexArithmetic.test_parr_add_iadd_parr_raisesy  s    :C;Zc1= ooc2
 A]]9C0K 1 ]]9C0LC 10 10 10s   A<.B<
B

Bc                     [        SSSS9n[        SSSS9nUR                  n[        R                  " SU-  /S-  5      nX-
  n[        R
                  " XT5        X-  n[        R
                  " X5        g )Nr  r!   r`   r  r  )r   r,   rl   rs   r1   assert_index_equal)r6   r  r)   r  r:   r;   s         r   test_pi_sub_isub_pi-TestPeriodIndexArithmetic.test_pi_sub_isub_pi  sk    
 :C;Zc1=hh88R#XJN+
f/
c,r    c                 R   [        SSSS9nUSS  R                  S[        R                  5      nUSS  R	                  USS  5      (       d   eX-
  nUR
                  n[        R                  " [        R                  SU-  SU-  SU-  SU-  /5      n[        R                  " X55        g )Nr  r!   r`   r  r   r   )	r   insertrl   r   equalsr,   rs   r1   r#  )r6   r  r)   r;   r  r:   s         r   test_pi_sub_pi_with_nat1TestPeriodIndexArithmetic.test_pi_sub_pi_with_nat  s    :C;ABq"&&)QRyAB((((hh88RVVQWa#gq3wCHI
f/r    c                     [        SSSS9n[        SSSS9n[        R                  " X15      n[        R                  " XB5      nSn[        R                  " [
        US9   X4-
    S S S 5        g ! , (       d  f       g = f)	Nr  r!   r`   r  r  hz;Input has different freq=[hD] from PeriodArray\(freq=[Dh]\)r   )r   r1   r2   ri   r   r   )r6   r7   box_with_array2r  r)   r   s         r    test_parr_sub_pi_mismatched_freq:TestPeriodIndexArithmetic.test_parr_sub_pi_mismatched_freq  s_    :C;Zc1=ooc27L]]0<K =<<s   A,,
A:nr   r   r   r@   c                     SnSn[        U/U" U5      S9n[        U/U" U5      S9n[        U/UR                  R                  S9[        U/UR                  R                  S9-
  n[        R                  " Xe-
  U5        g )N1991090519920406r+   )r   r,   r   r1   r#  )r6   tick_classesr0  p1_dp2_dp1p2r:   s           r   test_sub_n_gt_1_ticks/TestPeriodIndexArithmetic.test_sub_n_gt_1_ticks  sw     $l1o6$l1o6vBGGLL9KF=
 
 	rw2r    zoffset, kwd_namemonthstartingMonthNweekdayc                     Ub  US0O0 nSnSnU" U4SS0UD6n[        U/US9n[        U/US9n	X-
  n
[        U/UR                  S9[        U/UR                  S9-
  n[        R                  " X5        g )Nr   r3  r4  	normalizeFr+   )r   r   r1   r#  )r6   offsetkwd_namer0  kwdsr6  r7  r,   r8  r9  r;   r:   s               r   test_sub_n_gt_1_offsets1TestPeriodIndexArithmetic.test_sub_n_gt_1_offsets  s     !) 4!}"a151D1$d+$d+vDII6F:
 
 	f/r    r)   
2016-01-01r   r,  r|   zEurope/Brussels)rB   tzr   z
Asia/TokyogQ	@)g       @g      @g      @c                 <   [        SSSS9n[        R                  " X25      nSR                  / SQ5      n[	        X1U5        [
        R                  " [        US9   X1-     S S S 5        [
        R                  " [        US9   X-     S S S 5        [
        R                  " [        US9   X1-
    S S S 5        [
        R                  " [        US9   X-
    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       NW= f! , (       d  f       g = f)Nr  r!   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   r1   r2   joinr   ri   r   r   )r6   r)   r7   r  r   s        r   test_parr_add_sub_invalid3TestPeriodIndexArithmetic.test_parr_add_sub_invalid  s    & :C;ooc2hh
 	#3s3]]9C0K 1]]9C0K 1]]9C0K 1]]9C0K 10 10000000s0   C C+&C<D
C(+
C9<
D

Dc                    [        SSSS9n[        / SQ5      nUR                  nSn[        R                  " [
        US9   X-     S S S 5        [        R                  " [
        US9   X1-     S S S 5        [        R                  " [
        US9   X-
    S S S 5        Sn[        R                  " [
        US9   X1-
    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       NY= f! , (       d  f       g = f)	Nr  Qr   r  -1 DayrP  rP  zCCannot add or subtract timedelta64\[ns\] dtype from period\[Q-DEC\]r   z/cannot subtract PeriodArray from TimedeltaArray)r   r
   r~   ri   r   r   )r6   r  tditdarrr   s        r   *test_pi_add_sub_td64_array_non_tick_raisesDTestPeriodIndexArithmetic.test_pi_add_sub_td64_array_non_tick_raises  s    :C;;<

T]]9C0K 1]]9C0K 1 ]]9C0K 1@]]9C0K 10 1000 10 10s0    C&CC$4C5
C
C!$
C25
Dc                    [        SSSS9n[        / SQ5      nUR                  n[        SSSS9nX-   n[        R                  " XT5        X-   n[        R                  " XT5        X!-   n[        R                  " XT5        X1-   n[        R                  " XT5        [        SSSS9nX-
  n[        R                  " XT5        X-
  n[        R                  " XT5        Sn[
        R                  " [        US	9   X1-
    S S S 5        [
        R                  " [        US	9   X!-
    S S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)
Nr  90Dr   r  rO  z
12/31/1999z1/2/2000cannot subtract .* from .*r   )r   r
   r~   r1   r#  ri   r   r   )r6   r  rQ  rR  r:   r;   r   s          r   test_pi_add_sub_td64_array_tick9TestPeriodIndexArithmetic.test_pi_add_sub_td64_array_tick  s    :E1=;<

5!D
f/
f/
f/
f/
B
f/
f/+]]9C0K 1 ]]9C0I 10 10 10s   2D&D7&
D47
Epi_freq)r!   WrN  r,  tdi_freqc                 <   UnU[         R                  [        R                  4;  a  UO[         R                  n[        SS/US9n[        S5      U-   nUR                  U5      n[        R                  " Xd5      n	US:X  a  X-
  n
UR                  S5      U-
  R                  U5      n[        R                  " X5      n[        R                  " X5        US   U	-
  n
US   R                  S5      U-
  R                  U5      n[        R                  " X5      n[        R                  " X5        g US:X  aS  S	n[        R                  " [        US
9   X-
    S S S 5        [        R                  " [        US
9   US   U	-
    S S S 5        g Sn[        R                  " [        US
9   X-
    S S S 5        [        R                  " [        US
9   US   U	-
    S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f! , (       d  f       N[= f! , (       d  f       g = f)Nz1 hoursz2 hoursr+   z2018-03-07 17:16:40r,  r   r   r!   nCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freq.r   z"Cannot add or subtract timedelta64)rl   r4   r1   r   rs   r
   r   	to_periodr2   to_timestampr5   ri   r   r   r   )r6   r7   r\  rZ  boxr9   rQ  dtirE   td64objr;   r:   r   s                r   test_parr_sub_td64array1TestPeriodIndexArithmetic.test_parr_sub_td64array4  s    "((BKK!88sbhhi3(C-.4]]7# //#+c>\F,s2==gFHx6HOOF- UW_F1**3/#5@@IHx5HOOF-^E  4C@ A 4C@1 A@ 7Cy4 5y41 54 A@ A@ 5444s0   G5	G+"G<	H
G(+
G9<
H

Hra  c                    [        [        S5      [        S5      /5      nU" [        R                  R	                  SSS9[        R                  R	                  SSS9/5      n[        [        S5      [        S5      /5      R                  [        5      n[        R                  " U5         X4-   nS S S 5        [        R                  " WU5        [        R                  " U5         XC-   nS S S 5        [        R                  " WU5        [        R                  " [        R                  R                  SS	9[        R                  R                  SS	9/5      nS
n	[        R                  " [         U	S9   [        R                  " U5         X8-     S S S 5        S S S 5        [        R                  " [         U	S9   [        R                  " U5         X-     S S S 5        S S S 5        g ! , (       d  f       GN;= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N]= f! , (       d  f       g = f)N2015Q12016Q2r      r0  r=  2015Q22015Q4r0  z1Input cannot be converted to Period\(freq=Q-DEC\)r   )r   r   rl   offsets
QuarterEndrY   rZ   r1   assert_produces_warningr#  r3   r4   HourMinuteri   r   r   )
r6   performance_warningra  rE   offsr:   resres2
unanchoredr   s
             r   test_pi_add_offset_array2TestPeriodIndexArithmetic.test_pi_add_offset_arraye  s    &*F8,<=>

%%%<

%%"%=
 x 0&2BCDKKFS''(;<)C =
c8,''(;<9D =
dH-XXrzz3RZZ5F5F5F5LMN
 C]]0<++,?@ A = ]]0<++,?@ A =< =< =< A@ =< A@ =<s`   *G#$G51HHH6H:H)H:#
G25
H
H	H
H&)
H7	3H::
Ic                    [        [        S5      [        S5      /5      nU" [        R                  R	                  SSS9[        R                  R	                  SSS9/5      n[        [        [        U5      5       Vs/ s H  oSU   XE   -
  PM     sn5      nUR                  [        5      n[        R                  " U5         X4-
  nS S S 5        [        R                  " WU5        U" [        R                  R                  5       [        R                  R                  SS9/5      nS	n	[        R                  " [         U	S
9   [        R                  " U5         X8-
    S S S 5        S S S 5        [        R                  " [         U	S
9   [        R                  " U5         X-
    S S S 5        S S S 5        g s  snf ! , (       d  f       N= f! , (       d  f       Nr= f! , (       d  f       N{= f! , (       d  f       NO= f! , (       d  f       g = f)Nrg  rh  r   ri  rj  rk  r   rn  z6Input has different freq=-1M from Period\(freq=Q-DEC\)r   )r   r   rl   ro  rp  rr   lenrY   rZ   r1   rq  r#  MonthEndDayri   r   r   )
r6   rt  ra  rE   r)   r0  r:   rv  anchoredr   s
             r   test_pi_sub_offset_array2TestPeriodIndexArithmetic.test_pi_sub_offset_array  s    &*F8,<=>

%%%<

%%"%=
 %B.I.Q1 0.IJ??6*''(;<*C =
c8,

++-rzz~~~/BCD H]]0<++,?@ A = ]]0<++,?@ A =<  J =< A@ =< A@ =<sZ   =F4F9GG
GG=G,#G=9
G

G	G
G),
G:	6G==
Hc                     [        SSSS9nX!-   n[        SSSS9n[        R                  " X45        X!-  n[        R                  " X$5        g )N2000-01-01 09:00r,  r}   r  z2000-01-01 10:00r   r1   r#  r6   oner  r;   r:   s        r   test_pi_add_iadd_int.TestPeriodIndexArithmetic.test_pi_add_iadd_int  sJ    -CD 2bI
f/

c,r    c                     [        SSSS9nX!-
  n[        SSSS9n[        R                  " X45        X!-  n[        R                  " X$5        g)zs
PeriodIndex.__sub__ and __isub__ with several representations of
the integer 1, e.g. int, np.int64, np.uint8, ...
r  r,  r}   r  z2000-01-01 08:00Nr  r  s        r   test_pi_sub_isub_int.TestPeriodIndexArithmetic.test_pi_sub_isub_int  sL    
 -CD 2bI
f/

c,r    fiver`   r   c                 V    [        SSS9nX!-
  nX!* -   n[        R                  " X45        g )Nry   2   rA   r  )r6   r  r  r;   r   s        r   test_pi_sub_intlike-TestPeriodIndexArithmetic.test_pi_sub_intlike  s,    9b1Um
f*r    c                    [        SSSS9n[        R                  " S5      nX-   n[        R                  " [        XSS9 VVs/ s H	  u  pEXE-   PM     snn5      n[        R                  " X65        X-
  n[        R                  " [        XSS9 VVs/ s H	  u  pEXE-
  PM     snn5      n[        R                  " X65        g s  snnf s  snnf )NrF  r}   2Dr|   T)strict)r   r3   ro   rl   rs   zipr1   r#  )r6   rE   arrr;   r\   yr:   s          r   #test_pi_add_sub_int_array_freqn_gt1=TestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1  s     ,>iim88s24/HI/HtqQU/HIJ
f/88s24/HI/HtqQU/HIJ
f/ J Js   C
C
c                    [        SSSS9nU[        R                  R                  S5      -
  n[        SSSS9n[        R
                  " X#5        U[        R                  R                  S5      -  n[        R
                  " X5        [        SS	S
S9nU[        R                  R                  S5      -
  n[        SSS
S9n[        R
                  " X#5        U[        R                  R                  S5      -  n[        R
                  " X5        g )Nr   2024r   r+   r`   20092019r	  2016-12r{   z2013-08z2016-07)r   rl   ro  YearEndr1   r#  r}  r6   r  r;   r:   s       r   test_pi_sub_isub_offset1TestPeriodIndexArithmetic.test_pi_sub_isub_offset  s     664rzz))!,,S9
f/rzz!!!$$
c,9ic:rzz**1--	93?
f/rzz""1%%
c,r    	transposeTFc                 ,   [        SSS9n[        U/5      n[        S/SS9n[        R                  " XAUS9n[        R                  " XQUS9nXCR                  -   n[        R
                  " Xe5        UR                  U-   n[        R
                  " Xe5        g )N2016-01r   r+   z2016-03r  )r   r   r1   r2   r,   r5   )r6   r7   r  r   rE   r:   r;   s          r   test_pi_add_offset_n_gt12TestPeriodIndexArithmetic.test_pi_add_offset_n_gt1  sz    
 YT*#	{6__R9E??8yQhh
)B
)r    c                    [        S/SS9n[        S/SS9n[        R                  " X!5      n[        R                  " X15      nU[        S5      -   n[        R                  " XC5        [        S5      U-   n[        R                  " XC5        g )Nr  r   r+   z2016-043ME)r   r1   r2   r   r5   )r6   r7   rE   r:   r;   s        r   &test_pi_add_offset_n_gt1_not_divisible@TestPeriodIndexArithmetic.test_pi_add_offset_n_gt1_not_divisible  sr     )40	{6__R0??8<i&&
)5!B&
)r    
int_holderopc                     [        [        S5      [        S5      /5      nU" SS/5      nU" X45      n[        [        S5      [        S5      /5      n[        R                  " XV5        g )Nrg  r   r@   ra   2016Q1)r   r   r1   r#  )r6   r  r  rE   r)   r;   r:   s          r   test_pi_add_intarray.TestPeriodIndexArithmetic.test_pi_add_intarray  sY     &*F5M:;Ar7#Bx 0&-@A
f/r    c                 :   [        [        S5      [        S5      /5      nU" SS/5      nX#-
  n[        [        S5      [        S5      /5      n[        R                  " XE5        Sn[        R
                  " [        US9   X2-
    S S S 5        g ! , (       d  f       g = f)Nrg  r   r@   ra   2014Q1+bad operand type for unary -: 'PeriodArray'r   )r   r   r1   r#  ri   r   r   )r6   r  rE   r)   r;   r:   r   s          r   test_pi_sub_intarray.TestPeriodIndexArithmetic.test_pi_sub_intarray  s{     &*F5M:;Ar7#x 0&-@A
f/<]]9C0J 100s   >B
Bc                    Un[        SSSS9n[        R                  " XB5      n[        / SQSS9n[        R                  " XR5      nXC-   n[        R                  " Xe5        X4-   n[        R                  " Xe5        [        / SQSS9n[        R                  " XR5      nXC-
  n[        R                  " Xe5        SR                  S	S
/5      n[        R                  " [        US9   X4-
    S S S 5        g ! , (       d  f       g = f)N
2014-05-01r   r  r|   )
2014-05-04z
2014-05-06z
2014-05-08r+   )
2014-04-28z
2014-04-30z
2014-05-02rI  r  4cannot subtract PeriodArray from timedelta64\[[hD]\]r   )	r   r1   r2   r   r5   rJ  ri   r   r   )r6   
three_daysr7   r)   r  r:   r;   r   s           r   &test_parr_add_timedeltalike_minute_gt1@TestPeriodIndexArithmetic.test_parr_add_timedeltalike_minute_gt1   s    
 <>ooc2IPTU??8<
)
) IPTU??8<
)hh>G
 ]]9C0K 100s   "C00
C>freqstr)5ns5us5ms5s5min5h5Dc                    Un[        SSUS9nUS   n[        R                  " XS5      n[        Xd-   SUS9n[        R                  " Xs5      nXT-   n[        R                  " X5        XE-   n[        R                  " X5        [        Xd-
  SUS9n[        R                  " Xs5      nXT-
  n[        R                  " X5        SR	                  SS/5      n	[
        R                  " [        U	S9   XE-
    S S S 5        g ! , (       d  f       g = f)	Nr     r|   r   rI  r  r  r   )r   r1   r2   r5   rJ  ri   r   r   )
r6   r  r  r7   r)   r  firstr:   r;   r   s
             r   $test_parr_add_timedeltalike_tick_gt1>TestPeriodIndexArithmetic.test_parr_add_timedeltalike_tick_gt1A  s     <AAooc2qwG??8<
)
)  qwG??8<
)hh>G
 ]]9C0K 100s   )C77
Dc                     Un[        SSSS9n[        SSSS9nX2-   n[        R                  " XT5        X2-  n[        R                  " X45        g )Nr  
2014-05-15r!   r+   r  z
2014-05-18r  r6   r  r)   r  r:   r;   s         r   $test_pi_add_iadd_timedeltalike_daily>TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_dailya  M    <C@lE
f/
c,r    c                     Un[        SSSS9n[        SSSS9nX2-
  n[        R                  " XT5        X2-  n[        R                  " X45        g )Nr  r  r!   r+   r  z
2014-05-12r  r  s         r   $test_pi_sub_isub_timedeltalike_daily>TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_dailym  r  r    c                 (   Un[        SSSS9n[        R                  " XB5      nSR                  SS/5      n[        R
                  " [        US9   XC-     S S S 5        [        R
                  " [        US9   XC-  nS S S 5        [        R
                  " [        US9   XC-
    S S S 5        [        R
                  " [        US9   XC-  nS S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       NW= f! , (       d  f       g = f)	Nr  r  r!   r+   rI  z7Input has different freq(=.+)? from Period.*?\(freq=D\)r^  r   r   r1   r2   rJ  ri   r   r   )r6   	not_dailyr7   r)   r  r   s         r   3test_parr_add_sub_timedeltalike_freq_mismatch_dailyMTestPeriodIndexArithmetic.test_parr_add_sub_timedeltalike_freq_mismatch_dailyy  s     <C@ooc2hh LE	
 ]]0<K =]]0<LC =]]0<K =]]0<LC =< =<<<<<<<s0   C6C!C2D
C!
C/2
D 
Dc                     Un[        SSSS9n[        SSSS9nX2-   n[        R                  " XT5        X2-  n[        R                  " X45        g )N2014-01-01 10:002014-01-05 10:00r,  r+   z2014-01-01 12:00z2014-01-05 12:00r  r6   	two_hoursr)   r  r:   r;   s         r   %test_pi_add_iadd_timedeltalike_hourly?TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_hourly  Q    -/AL 24FSQ
f/
c,r    c                 L   Un[        SSSS9n[        R                  " XB5      nSR                  SS/5      n[        R
                  " [        US9   XC-     S S S 5        [        R
                  " [        US9   XC-  nS S S 5        g ! , (       d  f       N5= f! , (       d  f       g = f)	Nr  r  r,  r+   rI  z7Input has different freq(=.+)? from Period.*?\(freq=h\)r^  r   r  )r6   r   r7   r)   r  r   s         r   2test_parr_add_timedeltalike_mismatched_freq_hourlyLTestPeriodIndexArithmetic.test_parr_add_timedeltalike_mismatched_freq_hourly  s     -/ALooc2hh LE	
 ]]0<K = ]]0<LC =< =< =<s   B6B
B
B#c                     Un[        SSSS9n[        SSSS9nX2-
  n[        R                  " XT5        X2-  n[        R                  " X45        g )Nr  r  r,  r+   z2014-01-01 08:00z2014-01-05 08:00r  r  s         r   %test_pi_sub_isub_timedeltalike_hourly?TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_hourly  r  r    c                    [        SSSS9nU[        R                  R                  S5      -   n[        SSSS9n[        R
                  " X#5        U[        R                  R                  S5      -  n[        R
                  " X5        g )Nr   r  r   r+   r`   r  2029)r   rl   ro  r  r1   r#  r  s       r   "test_add_iadd_timedeltalike_annual<TestPeriodIndexArithmetic.test_add_iadd_timedeltalike_annual  sn     664rzz))!,,S9
f/rzz!!!$$
c,r    c                    Un[        SSSS9nSn[        R                  " [        US9   X2-     S S S 5        [        R                  " [        US9   X2-  nS S S 5        [        R                  " [        US9   X2-
    S S S 5        [        R                  " [        US9   X2-  nS S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       NW= f! , (       d  f       g = f)Nr   r  r   r+   z;Input has different freq(=.+)? from Period.*?\(freq=Y-DEC\)r   r   ri   r   r   r6   r%   r)   r  r   s        r   2test_pi_add_sub_timedeltalike_freq_mismatch_annualLTestPeriodIndexArithmetic.test_pi_add_sub_timedeltalike_freq_mismatch_annual  s    664M]]0<K =]]0<LC =]]0<K =]]0<LC =< =<<<<<<</   B)B:5CC)
B7:
C
C
C*c                    [        SSSS9n[        SSSS9nU[        R                  R                  S5      -   n[        R
                  " X25        U[        R                  R                  S5      -  n[        R
                  " X5        g )Nr	  r  r{   r+   z2014-06z2017-05r`   )r   rl   ro  r}  r1   r#  )r6   r  r:   r;   s       r    test_pi_add_iadd_timedeltalike_M:TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_M  sl    9ic:	93?rzz**1--
f/rzz""1%%
c,r    c                    Un[        SSSS9nSn[        R                  " [        US9   X2-     S S S 5        [        R                  " [        US9   X2-  nS S S 5        [        R                  " [        US9   X2-
    S S S 5        [        R                  " [        US9   X2-  nS S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       NW= f! , (       d  f       g = f)Nr	  r  r{   r+   z7Input has different freq(=.+)? from Period.*?\(freq=M\)r   r  r  s        r   3test_pi_add_sub_timedeltalike_freq_mismatch_monthlyMTestPeriodIndexArithmetic.test_pi_add_sub_timedeltalike_freq_mismatch_monthly  s    9ic:I]]0<K =]]0<LC =]]0<K =]]0<LC =< =<<<<<<<r  c                    [        SSSS9n[        R                  " S5      n[        S/S-  SS9n[        R
                  " X1US9n[        R
                  " XQUS9nXd-   n[        R                  " Xu5        XF-   n[        R                  " Xu5        Xd-
  n[        R                  " Xu5        Sn[        R                  " [        US	9   XF-
    S S S 5        g ! , (       d  f       g = f)
N
1994-04-01rJ   19Dr|   r   r+   r  rW  r   )
r   r3   timedelta64r   r1   r2   r5   ri   r   r   )	r6   r7   r  rE   r)   r:   objr;   r   s	            r   test_parr_add_sub_td64_nat4TestPeriodIndexArithmetic.test_parr_add_sub_td64_nat  s     ,>u%w{7oobIF??8yQ
)
)
)+]]9C0K 100s   C
Cr   rJ   m8[ns]c                 P   [        SSSS9n[        S/S-  SS9n[        R                  " X15      n[        R                  " XA5      nXR-   n[        R                  " Xd5        X%-   n[        R                  " Xd5        XR-
  n[        R                  " Xd5        Sn[
        R                  " [        US9   X%-
    S S S 5        UR                  5       n[        R                  " S	S
5      US	'   [        US	   /S/S-  -   SS9n[        R                  " XA5      nXR-   n[        R                  " Xd5        X%-   n[        R                  " Xd5        XR-
  n[        R                  " Xd5        [
        R                  " [        US9   X%-
    S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  rJ   r  r|   r   r+   rW  r   r   ns   )r   r   r1   r2   r5   ri   r   r   copyr3   r  )r6   r7   r)   rE   r:   r  r;   r   s           r   !test_parr_add_sub_tdt64_nat_array;TestPeriodIndexArithmetic.test_parr_add_sub_tdt64_nat_array   sH    ,>w{7oob1??8<
)
)
)+]]9C0K 1 

>>!T*a1w%145A??8<
)
)
)]]9C0K 10 10 10s   /F8F
F
F%c                 l    [        SSS9nUR                  nX!-
  nX-
  n[        R                  " X45        g )N
2000-12-31r   rA   )r   r4   r1   r#  )r6   rE   rO   r;   r:   s        r   test_parr_add_sub_index1TestPeriodIndexArithmetic.test_parr_add_sub_index*  s3    ,2xx7
f/r    c                 ~   [        SSSS9nUR                  n[        R                  " [        SS9[        R
                  R                  S5      S/5      n[        R                  " U5         X4-   nS S S 5        [        / SQSS	9R                  R                  [        5      n[        R                  " WU5        [        R                  " U5         X4-
  nS S S 5        [        S
/S-  SS	9R                  R                  [        5      n[        R                  " XV5        g ! , (       d  f       N= f! , (       d  f       Na= f)Nr  r   r!   r|   r   r"   r   )z
2001-01-01z
2001-01-03z
2001-01-05r+   z
2000-12-30)r   r4   r3   r	   rl   ro  r~  r1   rq  r   _datarY   rZ   r5   )r6   rt  rE   rO   r)   r;   r:   s          r   test_parr_add_sub_object_array8TestPeriodIndexArithmetic.test_parr_add_sub_object_array3  s    ,<xx)+RZZ^^A->BC''(;<\F = 6S

%v 	 	)''(;<\F = ~1<BBII&Q
) =< =<s   +DD.
D+.
D<c                 F   [        S5      n[        SSS9n[        R                  " U/SS9n[        R
                  " XA5      nSn[        R                  " [        US9   XB-     S S S 5        [        R                  " [        US9   X$-     S S S 5        Sn[        R                  " [        US9   U[        U/5      -     S S S 5        [        R                  " [        US9   [        U/5      U-     S S S 5        [        R                  " [        US9   U[        R                  " U/5      -     S S S 5        [        R                  " [        US9   [        R                  " U/5      U-     S S S 5        U[        R                  L a  SnOS	n[        R                  " [        US9   U[        R                  " U/5      -     S S S 5        U[        R                  L a  SnOS
n[        R                  " [        US9   [        R                  " U/5      U-     S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNf= f! , (       d  f       GN<= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nr*   r{   r+   r  r   z$cannot add PeriodArray and Timestampr   z(cannot add PeriodArray and DatetimeArrayzAunsupported operand type\(s\) for \+: 'Period' and 'DatetimeArrayzBunsupported operand type\(s\) for \+: 'DatetimeArray' and 'Period')r   r   rl   rs   r1   r2   ri   r   r   r   r  )r6   r7   tsr   r  r   s         r    test_period_add_timestamp_raises:TestPeriodIndexArithmetic.test_period_add_timestamp_raisesG  s   vV#&hhuK0ooc24]]9C0H 1]]9C0H 1 9]]9C0&", 1]]9C0B4L3 1]]9C0"((B4.  1]]9C0HHbTNS  1 R\\)<CVC]]9C0",,t$$ 1R\\)<CWC]]9C0LL"$ 103 1000 10000000 10 10s`   HH'+H9II	I/J1J
H$'
H69
I
I
I,/
I>
J
J rd   )Cre   rf   rg   rh   r  r$  r)  r.  ri   rj   rk   r:  rl   ro  r  rp  r}  WeekrD  r   to_pydatetimeto_datetime64rm   r  r3   r4   rK  rS  rX  rd  rs   ry  r  r  r  int64r  r  r  r  r  operatoraddr   raddr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   _from_sequencer  r  r  r  rt   rd   r    r   r  r  r  s   "- 0 [[S,/3 03 [[S,/[[ZZ)ZZ""O4ZZ  $'ZZ__i(		
0 00& [[ l#l#113l#113MM,<MM,6GHMM,<BBMM,lCIIHH_%	
"#"4"> [[Y(<=[[Z$5*  6 >* ^ [[URXXrxx$89  : < [[URXXrxx$89 ::-
- [[Va!288)D%EF+ G+0-$ [[[4-8* 9*$*$ [[\BHHbhh+?@[[THLL#((#;<0 = A0 [[\BHHbhh+?@ A"B [[Y(WX Y>
-
-2	-,	--- [[[4-8 9& [[HHeWq[1))5'A+XF	
F0*(#%r    r  c                        \ rS rSrS rS rSrg)TestPeriodSeriesArithmeticim  c                    [        [        SSS9[        SSS9/SS9nUR                  S:X  d   e[        [        SSS9[        S	SS9/SS9n[        R                  " X25      nU[
        R                  L a$  UR                  S:H  R                  5       (       d   e[        R                  " XB5      nXQ-   n[        R                  " Xd5        X-   n[        R                  " Xd5        g )
N
2015-01-01r!   r+   
2015-01-02xxxr   	Period[D]
2015-01-04
2015-01-05)
r   r   r   r1   r2   rl   r  dtypesallr5   )r6   r  r7   r   r:   r  r;   s          r   "test_parr_add_timedeltalike_scalar=TestPeriodSeriesArithmetic.test_parr_add_timedeltalike_scalarn  s    Ls+VLs-KL
 yyK'''Ls+VLs-KL

 ooc2R\\)JJ+-224444??8<!
)!
)r    c                    [        [        SSS9[        SSS9/SS9nUR                  S:X  d   e[        SSS9nUR                  n[        S	U-  S
U-  /S[        S9n[
        R                  " X!-
  U5        [
        R                  " X-
  SU-  5        [        [        SSS9[        SSS9/SS9nUR                  S:X  d   e[        SU-  SU-  /S[        S9n[
        R                  " XQ-
  U5        [
        R                  " X-
  SU-  5        g )Nr  r!   r+   r  r  r   r   z
2015-01-10rJ   r  r   r   ra   r"  r!  r@   r   )r   r   r   r,   rZ   r1   r   )r6   r   r   r  r:   s2s         r   test_ops_series_period1TestPeriodSeriesArithmetic.test_ops_series_period  s   Ls+VLs-KL
 yyK'''\,hh1s7AG,5G
sy(3
sy"x-8Ls+VLs-KL
 xx;&&&1s7AG,5G
rx2
sxh7r    rd   N)re   rf   rg   rh   r%  r*  rt   rd   r    r   r  r  m  s    *28r    r  c                       \ rS rSrSrS rS r\R                  R                  SSS/5      \R                  R                  SS	 S
 S S S S S S /5      S 5       5       r
S rS rS rS rS rS rS rSrg)TestPeriodIndexSeriesMethodsi  r   c                     [        U5      nU" U5      n[        R                  " XS5        [        U5      nU" U5      n[        X1R                  S9n[        R
                  " XW5        g r   )r   r1   r5   r   r   r   )r6   r~   r   r:   r8   r;   r   r   s           r   r   #TestPeriodIndexSeriesMethods._check  sO    &!c
)VncXKK0
v+r    c                    [        / SQSSS9n[        / SQSSS9nU R                  US U5        U R                  US U5        U R                  US-   S	 U5        U[        S
SS9-
  nUR                  n[        R
                  " SU-  SU-  SU-  SU-  /SS9n[        R                  " X55        [        S
SS9U-
  n[        R
                  " SU-  SU-  SU-  SU-  /SS9n[        R                  " X55        g )Nr   r{   r8   r   )r   r   r   2011-06c                     U S-   $ Nr   rd   r[   s    r   r]   :TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>      1q5r    c                     SU -   $ r3  rd   r[   s    r   r]   r4    r5  r    r   c                     U S-
  $ r3  rd   r[   s    r   r]   r4        q1ur    r   r+   r   r   r   r   ra   rk  )r   r   r   r,   rl   rs   r1   r#  )r6   r8   r:   r;   r  r   s         r   test_pi_ops(TestPeriodIndexSeriesMethods.test_pi_ops  s    8s
 8s
 	C(3C(3C!G_c2vic22hhhhCS!c'1s7;%H
f*	,s2hhCc28R#X>UK
f*r    ngstrg      ?r   c                 
    X-   $ rX   rd   r  r<  s     r   r]   %TestPeriodIndexSeriesMethods.<lambda>      CHr    c                 
    X-   $ rX   rd   r?  s     r   r]   r@        BHr    c                 
    X-
  $ rX   rd   r?  s     r   r]   r@    rA  r    c                 
    X-
  $ rX   rd   r?  s     r   r]   r@    rC  r    c                 .    [         R                  " X5      $ rX   r3   r  r?  s     r   r]   r@    s    BFF3Or    c                 .    [         R                  " X5      $ rX   rG  r?  s     r   r]   r@    s    BFF2Or    c                 .    [         R                  " X5      $ rX   r3   subtractr?  s     r   r]   r@    s    BKK0r    c                 .    [         R                  " X5      $ rX   rJ  r?  s     r   r]   r@    s    BKK0r    c                     [        / SQSSS9n[        R                  " XC5      nSR                  / SQ5      n[        R
                  " [        US9   U" XQ5        S S S 5        g ! , (       d  f       g = f)Nr   r{   r8   r   rI  )zunsupported operand type\(s\)zcan only concatenatezmust be strzobject to str implicitlyr   )r   r1   r2   rJ  ri   r   r   )r6   r<  r   r7   r8   r  r   s          r   test_parr_ops_errors1TestPeriodIndexSeriesMethods.test_parr_ops_errors  s[     8s
 ooc2hh
 ]]9C0M 100s   	A""
A0c                    [        / SQSSS9n[        / SQSSS9nU R                  US U5        U R                  US U5        U R                  US U5        U R                  US	-   S
 U5        U R                  US	-   S U5        [        / SQSSS9n[        / SQSSS9nU R                  US U5        U R                  US U5        U R                  US U5        U R                  US-   S U5        U R                  US-   S U5        g )Nr   r   r   r   r{   r8   r   )r   r   r   r1  c                     U S-   $ r3  rd   r[   s    r   r]   >TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r5  r    c                     SU -   $ r3  rd   r[   s    r   r]   rS    r5  r    c                 0    [         R                  " U S5      $ r3  rG  r[   s    r   r]   rS        266!Q<r    r   c                     U S-
  $ r3  rd   r[   s    r   r]   rS    r8  r    c                 0    [         R                  " U S5      $ r3  rJ  r[   s    r   r]   rS        r{{1a'8r    r   )z2011-072011-08r   z2011-10c                     U S-   $ Nr   rd   r[   s    r   r]   rS    r5  r    c                     SU -   $ r\  rd   r[   s    r   r]   rS    r5  r    c                 0    [         R                  " U S5      $ r\  rG  r[   s    r   r]   rS    rV  r    r   c                     U S-
  $ r\  rd   r[   s    r   r]   rS     r8  r    c                 0    [         R                  " U S5      $ r\  rJ  r[   s    r   r]   rS    rY  r    r   r   )r6   r8   r:   s      r   test_pi_ops_nat,TestPeriodIndexSeriesMethods.test_pi_ops_nat  s   43U
 43U
 	C(3C(3C/:C!G_c2C!G8#> 44e
 44e
 	C(3C(3C/:C!G_c2C!G8#>r    c                 .   [        / SQSSS9nS n[        / SQSSS9nU R                  XU5        S n[        / SQSSS9nU R                  XU5        S	 n[        / S
QSSS9nU R                  XU5        S n[        / SQSSS9nU R                  XU5        g )NrQ  r{   r8   r   c                 8    U [         R                  " / SQ5      -   $ Nr1  r3   r4   r[   s    r   r]   DTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>      a"((<00r    )r   r   r   rZ  c                 \    [         R                  " U [         R                  " / SQ5      5      $ )N)r@   ra   r   r   )r3   r  r4   r[   s    r   r]   rh    s    bffQ 78r    )r   r   r   r1  c                 8    U [         R                  " / SQ5      -
  $ rf  rg  r[   s    r   r]   rh    ri  r    )2010-12rl  r   rl  c                 \    [         R                  " U [         R                  " / SQ5      5      $ )N)r   r   r   rk  )r3   rK  r4   r[   s    r   r]   rh    s    bkk!RXXm%<=r    )z2010-10rl  r   r1  ra  r6   r8   r   r   s       r   test_pi_ops_array_int2TestPeriodIndexSeriesMethods.test_pi_ops_array_int  s    43U
 143U
 	CC 843U
 	CC 043U
 	CC =43U
 	CC r    c                     [        / SQSSS9nS n[        / SQSSS9nU R                  XU5        S n[        / SQSSS9nU R                  XU5        S	 n[        / S
QSSS9nU R                  XU5        g )Nr   z
2011-02-01z
2011-03-01z
2011-04-01r!   r8   r   c                 D    U [         R                  R                  5       -   $ rX   rl   ro  r~  r[   s    r   r]   ATestPeriodIndexSeriesMethods.test_pi_ops_offset.<locals>.<lambda>%  s    a"**..**r    )z
2011-01-02z
2011-02-02z
2011-03-02z
2011-04-02c                 F    U [         R                  R                  S5      -   $ r3  rt  r[   s    r   r]   ru  -      a"**..++r    )r   z
2011-02-03z
2011-03-03z
2011-04-03c                 F    U [         R                  R                  S5      -
  $ r3  rt  r[   s    r   r]   ru  5  rw  r    )z
2010-12-30z
2011-01-30z
2011-02-27z
2011-03-30ra  rn  s       r   test_pi_ops_offset/TestPeriodIndexSeriesMethods.test_pi_ops_offset  s    D

 +D

 	CC +D

 	CC +D

 	CC r    c                 N   [        / SQSSS9n[        U5      nSnX4 H  n[        R                  " [        US9   U[
        R                  R                  S5      -     S S S 5        [        R                  " [        US9   [
        R                  R                  S5      U-     S S S 5        [        R                  " [        US9   U[
        R                  R                  S5      -
    S S S 5        M     g ! , (       d  f       N= f! , (       d  f       Nh= f! , (       d  f       GM  = f)Nrr  r!   r8   r   zmCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freqr   r   )r   r   ri   r   r   rl   ro  rr  )r6   r8   r   r   r  s        r   test_pi_offset_errors2TestPeriodIndexSeriesMethods.test_pi_offset_errors=  s    D

 Sk< 	 :C4C@bjjooa(( A 4C@

"S( A 4C@bjjooa(( A@ @@ A@ A@s#   #C2>#D#D2
D 	
D	
D$	c                    [        / SQSSS9nU[        SSS9-
  nUR                  n[        R                  " SU-  SU-  S	U-  S
U-  /SS9n[
        R                  " X$5        [        R                  " U[        SSS95      n[
        R                  " X$5        [        SSS9U-
  n[        R                  " SU-  SU-  SU-  SU-  /SS9n[
        R                  " X$5        [        R                  " [        SSS9U5      n[
        R                  " X$5        [        [        R                  [        R                  [        R                  [        R                  /SSS9nU[        SSS9-
  n[
        R                  " X$5        UR                  UR                  :X  d   e[        SSS9U-
  n[
        R                  " X$5        UR                  UR                  :X  d   eg )Nr   r{   r8   r   2012-01r+   ir   ri     r}   rJ   r  r(  r   )r   r   r,   rl   rs   r1   r#  r3   rK  r
   nanr6   r8   r;   r  r   s        r   test_pi_sub_period/TestPeriodIndexSeriesMethods.test_pi_sub_periodS  s   8s
 vic22hhhhc	39cCicBO
f*S&"=>
f*	,s2hhS"s(BHa#g>UK
f*VIC8#>
f*VVRVVRVVRVV,5
 ve#..
f*{{chh&&&C(3.
f*{{chh&&&r    c                     [        / SQSSS9n[        [        R                  /S-  SSS9n[        R
                  " [        R                  U-
  U5        [        R
                  " U[        R                  -
  U5        g )NrQ  r{   r8   r   r@   r  r(  )r   r
   rl   r   r1   r#  )r6   r8   r   s      r   test_pi_sub_pdnat.TestPeriodIndexSeriesMethods.test_pi_sub_pdnats  s]    43U
 bffX\XF
bffslC0
cBFFlC0r    c                    [        / SQSSS9nU[        SSS9-
  nUR                  n[        R                  " SU-  [        R
                  SU-  S	U-  /SS
9n[        R                  " X$5        [        SSS9U-
  n[        R                  " SU-  [        R
                  SU-  SU-  /SS
9n[        R                  " X$5        [        [        R                  [        R                  [        R                  [        R                  /SSS9n[        R                  " U[        SSS9-
  U5        [        R                  " [        SSS9U-
  U5        g )Nr   r{   r8   r   r  r+   r  r  r  r   ri  r}   rJ   r  r(  r   )r   r   r,   rl   rs   r   r1   r#  r
   r3   r  r  s        r   test_pi_sub_period_nat3TestPeriodIndexSeriesMethods.test_pi_sub_period_nat|  s   43U
 vic22hhhhc	26639b3h?eL
f*	,s2hhS"&&"s(AG<5I
f*VVRVVRVVRVV,5
 	cF5s$;;SA
fU5;SAr    rd   N)re   rf   rg   rh   r  r   r:  ri   rj   rk   rN  rb  ro  ry  r|  r  r  r  rt   rd   r    r   r-  r-    s    <	,+. [[TE3<0[[$$$$++00		
 1"?<!8!<),'@1Br    r-  )-r  numpyr3   ri   pandas._libs.tslibsr   r   r   r   pandasrl   r   r   r	   r
   r   pandas._testing_testingr1   pandas.corer   pandas.core.arraysr   pandas.tests.arithmetic.commonr   r   r   ro  	YearBegin
MonthBeginrs  _common_mismatchfixtureto_pytimedeltar  r   r%   r'   rv   r   r   r  r  r  r-  rd   r    r   <module>r     s           -  JJJJ!JJ  ",,.
r3" 
	 
sC s**,s 
	* *Dh= h=V%1 %1P_! _!L(2 (2Vx% x%v18 18hnB nBr    