
    Mh                        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	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  \R:                  R=                  S5      \R:                  R?                  S	5      \R:                  RA                  5       /r!\RD                  " \" S
S9RG                  5       \RH                  " S
S5      \" S
S9/\!-   S9S 5       r%\RD                  " \RH                  " SS5      \" SS9RG                  5       \" SS9/\!-   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)PerformanceWarning)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    U/var/www/html/env/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&   9   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)TestPeriodArrayLikeComparisonsM   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_scalarR   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   r4   r5   to_numpyr2   r3   r   r6   )r7   r8   pir*   r:   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-01rA   r#   	   g      #@  FNc                 \    [        SSS9n[        R                  " X15      n[        XBU5        g Nr@   rA   rB   r   r2   r3   r   )r7   r8   rI   rF   parrs        r   test_compare_invalid_scalar:TestPeriodArrayLikeComparisons.test_compare_invalid_scalarm   s(      &!,r2!$?r!   r@   rB   1D)rL   i  i  i  i  c                 \    [        SSS9n[        R                  " X15      n[        XBU5        g rN   rO   )r7   r8   r*   rF   rP   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@      rB   T)TTTTT)FFTFF)TTTFF)FFTTT)TTFTT)TTFFF)FFFTT)r   r2   r3   r   r4   r5   r6   )	r7   r8   rW   rF   rP   r*   r:   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=   rG   r   r
   rQ   pd
date_ranger5   timedelta_ranger4   arangerZ   float64listranger[   IndexrU   rc   __static_attributes__re   r!   r   r(   r(   M   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rC   r-   
   r   )r   valuesr2   assert_numpy_array_equalreshaper4   r5   )r7   r9   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}      Tra   )r   r2   r3   r   r6   )	r7   r8   rF   valr]   r;   serr:   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)FFTTrD   )FTTT)TTFF)r   r2   r3   r   r   r4   r5   r6   )r7   r-   r8   baser   r:   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   r1   )r7   r-   r8   r   r9   r:   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   r2   r3   rj   raises	TypeErrorr   to_arrayrm   r5   )r7   r-   r8   r   msgr9   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   rD   r   r   )r   r4   r5   r2   r   rm   r   )r7   r-   idx1r   r<   r   idx2s          r   test_pi_cmp_nat*TestPeriodIndexComparisons.test_pi_cmp_natb  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   rj   r   r   r4   r5   boolr2   r   )r7   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)FFTr0   )FFF)TTT)	r   r   rm   r   rZ   r4   r5   r2   r   )r7   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!   re   )rf   rg   rh   ri   r   r   rj   rk   rl   r   r   r   r   r   r[   r   ru   re   r!   r   rw   rw      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!   rw   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   r2   assert_series_equal)r7   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!   re   N)rf   rg   rh   ri   r   ru   re   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   
isinstancerm   rt   r4   ndarrayr2   r6   r	   r   r   )r7   r   funcr;   r9   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|   r9   r-   r   r   c                    > U T:H  $ rY   re   r]   r   s    r   r^   PTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  	    a3hr!   r   r   c                    > TU :H  $ rY   re   r   s    r   r^   r      	    cQhr!   c                    > U T:g  $ rY   re   r   s    r   r^   r     r   r!   r   c                    > TU :g  $ rY   re   r   s    r   r^   r     r   r!   c                    > TU :  $ rY   re   r   s    r   r^   r   	  r   r!   )TTTFc                    > U T:  $ rY   re   r   s    r   r^   r     	    a#gr!   r   c                    > TU :  $ rY   re   r   s    r   r^   r     r   r!   r   r4   r5   bool_r   r7   r9   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|   r9   r   r   c                    > U T:H  $ rY   re   r   s    r   r^   TTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r!   r   r   c                    > TU :H  $ rY   re   r   s    r   r^   r     r   r!   c                 (    U [         R                  :H  $ rY   rm   r   r\   s    r   r^   r   !      a266kr!   r   c                 (    [         R                  U :H  $ rY   r   r\   s    r   r^   r   $      bffkr!   c                    > U T:g  $ rY   re   r   s    r   r^   r   '  r   r!   r   c                    > TU :g  $ rY   re   r   s    r   r^   r   *  r   r!   c                 (    U [         R                  :g  $ rY   r   r\   s    r   r^   r   -  r   r!   r   c                 (    [         R                  U :g  $ rY   r   r\   s    r   r^   r   0  r   r!   c                    > TU :  $ rY   re   r   s    r   r^   r   3  r   r!   )TFTFc                    > U T:  $ rY   re   r   s    r   r^   r   7  r   r!   rD   c                 (    U [         R                  :  $ rY   r   r\   s    r   r^   r   ;  s    a"&&jr!   c                 (    [         R                  U :  $ rY   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!   re   N)	rf   rg   rh   ri   __doc__r   r   r  ru   re   r!   r   r   r     s    <, !<,!r!   r   c                       \ rS rSrS rSrg)TestPeriodFrameArithmeticiH  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         rb   z2015-05z2015-06rA      )
rm   	DataFramer   r   r-   r4   r5   r[   r2   assert_frame_equal)r7   dfpoffr   df2s         r   test_ops_frame_period/TestPeriodFrameArithmetic.test_ops_frame_periodI  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!   re   N)rf   rg   rh   ri   r  ru   re   r!   r   r  r  H  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TestPeriodIndexArithmeticis  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"   ra   r-   rC   1/6/2000z/unsupported operand type\(s\) for \+: .* and .*r   )r   r2   r3   rj   r   r   )r7   r8   rngr*   r   s        r   test_parr_add_iadd_parr_raises8TestPeriodIndexArithmetic.test_parr_add_iadd_parr_raisesz  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"   ra   r  r  )r   r-   rm   rt   r2   assert_index_equal)r7   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"   ra   r  r   r   )	r   insertrm   r   equalsr-   rt   r2   r$  )r7   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"   ra   r  r  hz;Input has different freq=[hD] from PeriodArray\(freq=[Dh]\)r   )r   r2   r3   rj   r   r   )r7   r8   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   rA   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   r2   r$  )r7   tick_classesr1  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   r4  r5  	normalizeFr,   )r   r   r2   r$  )r7   offsetkwd_namer1  kwdsr7  r8  r-   r9  r:  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)rC   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   r2   r3   joinr   rj   r   r   )r7   r*   r8   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 DayrQ  rQ  zCCannot add or subtract timedelta64\[ns\] dtype from period\[Q-DEC\]r   z/cannot subtract PeriodArray from TimedeltaArray)r   r   r   rj   r   r   )r7   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  rP  z
12/31/1999z1/2/2000cannot subtract .* from .*r   )r   r   r   r2   r$  rj   r   r   )r7   r  rR  rS  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"   WrO  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)rm   r5   r2   r   rt   r   r   	to_periodr3   to_timestampr6   rj   r   r   r   )r7   r8   r]  r[  boxr:   rR  dtirF   td64objr<   r;   r   s                r   test_parr_sub_td64array1TestPeriodIndexArithmetic.test_parr_sub_td64array5  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rb  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                  " [        5         X#-   nS S S 5        [        R                  " WU5        [        R                  " [        5         X2-   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                  " [        5         X'-     S S S 5        S S S 5        [        R                   " ["        US9   [        R                  " [        5         Xr-     S S S 5        S S S 5        g ! , (       d  f       GNG= 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      r1  r>  2015Q22015Q4r1  z1Input cannot be converted to Period\(freq=Q-DEC\)r   )r   r   rm   offsets
QuarterEndrZ   r[   r2   assert_produces_warningr   r$  r4   r5   HourMinuterj   r   r   )	r7   rb  rF   offsr;   resres2
unanchoredr   s	            r   test_pi_add_offset_array2TestPeriodIndexArithmetic.test_pi_add_offset_arrayf  s    &*F8,<=>

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

%%"%=
 x 0&2BCDKKFS''(:;)C <
c8,''(:;9D <
dH-XXrzz3RZZ5F5F5F5LMN
 C]]0<++,>? @ = ]]0<++,>? @ =< <; <; @? =< @? =<s`   .G3,H9H(HH(I
H9"I
3
H
H
H%	!H((
H69
I	I


Ic                 6   [        [        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  oBU   X4   -
  PM     sn5      nUR                  [        5      n[        R                  " [        5         X#-
  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                  " [        5         X'-
    S S S 5        S S S 5        [        R                   " ["        US
9   [        R                  " [        5         Xr-
    S S S 5        S S S 5        g s  snf ! , (       d  f       GN= f! , (       d  f       Nw= f! , (       d  f       N= f! , (       d  f       NP= f! , (       d  f       g = f)Nrh  ri  r   rj  rk  rl  r   ro  z6Input has different freq=-1M from Period\(freq=Q-DEC\)r   )r   r   rm   rp  rq  rs   lenrZ   r[   r2   rr  r   r$  MonthEndDayrj   r   r   )	r7   rb  rF   r*   r1  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<++,>? @ = ]]0<++,>? @ =<  J <; @? =< @? =<sZ   =G GG(!G&G(H
*G9/H

G
G%	!G((
G69
H	H


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   r2   r$  r7   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!   fivera   r   c                 V    [        SSS9nX!-
  nX!* -   n[        R                  " X45        g )Nrz   2   rB   r  )r7   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5       VVs/ s H	  u  pEXE-   PM     snn5      n[        R                  " X65        X-
  n[        R                  " [        X5       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 )NrG  r~   2Dr}   )r   r4   rp   rm   rt   zipr2   r$  )r7   rF   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88s2|<|tqQU|<=
f/88s2|<|tqQU|<=
f/ = =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,   ra   20092019r
  2016-12r|   z2013-08z2016-07)r   rm   rp  YearEndr2   r$  r}  r7   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   r2   r3   r-   r6   )r7   r8   r  r   rF   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   r2   r3   r   r6   )r7   r8   rF   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 )Nrh  r   rA   rb   2016Q1)r   r   r2   r$  )r7   r  r  rF   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)Nrh  r   rA   rb   2014Q1+bad operand type for unary -: 'PeriodArray'r   )r   r   r2   r$  rj   r   r   )r7   r  rF   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-02rJ  r  4cannot subtract PeriodArray from timedelta64\[[hD]\]r   )	r   r2   r3   r   r6   rK  rj   r   r   )r7   
three_daysr8   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   rJ  r  r  r   )r   r2   r3   r6   rK  rj   r   r   )
r7   r  r  r8   r*   r  firstr;   r<   r   s
             r   $test_parr_add_timedeltalike_tick_gt1>TestPeriodIndexArithmetic.test_parr_add_timedeltalike_tick_gt1B  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  r7   r  r*   r  r;   r<   s         r   $test_pi_add_iadd_timedeltalike_daily>TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_dailyb  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_dailyn  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,   rJ  z7Input has different freq(=.+)? from Period.*?\(freq=D\)r_  r   r   r2   r3   rK  rj   r   r   )r7   	not_dailyr8   r*   r  r   s         r   3test_parr_add_sub_timedeltalike_freq_mismatch_dailyMTestPeriodIndexArithmetic.test_parr_add_sub_timedeltalike_freq_mismatch_dailyz  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  r7   	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,   rJ  z7Input has different freq(=.+)? from Period.*?\(freq=h\)r_  r   r  )r7   r   r8   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,   ra   r  2029)r   rm   rp  r  r2   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   rj   r   r   r7   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-05ra   )r   rm   rp  r}  r2   r$  )r7   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-01rK   19Dr}   r   r,   r  rX  r   )
r   r4   timedelta64r   r2   r3   r6   rj   r   r   )	r7   r8   r  rF   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   rK   z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  rK   r  r}   r   r,   rX  r   r   ns   )r   r   r2   r3   r6   rj   r   r   copyr4   r  )r7   r8   r*   rF   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   rB   )r   r5   r2   r$  )r7   rF   rP   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                  " [        5         X#-   nS S S 5        [        / SQSS	9R                  R                  [        5      n[        R                  " WU5        [        R                  " [        5         X#-
  nS S S 5        [        S
/S-  SS	9R                  R                  [        5      n[        R                  " XE5        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   r5   r4   r
   rm   rp  r~  r2   rr  r   r   _datarZ   r[   r6   )r7   rF   rP   r*   r<   r;   s         r   test_parr_add_sub_object_array8TestPeriodIndexArithmetic.test_parr_add_sub_object_array4  s    ,<xx)+RZZ^^A->BC''(:;\F < 6S

%v 	 	)''(:;\F < ~1<BBII&Q
) <; <;s   /D%D6%
D36
E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   rm   rt   r2   r3   rj   r   r   r	   r  )r7   r8   tsr   r  r   s         r    test_period_add_timestamp_raises:TestPeriodIndexArithmetic.test_period_add_timestamp_raisesH  s   vV#&hhuK0ooc24]]9C0H 1]]9C0H 18]]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01 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 re   )Crf   rg   rh   ri   r   r%  r*  r/  rj   rk   rl   r;  rm   rp  r  rq  r}  WeekrE  r   to_pydatetimeto_datetime64rn   r	  r4   r5   rL  rT  rY  re  rt   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  ru   re   r!   r   r  r  s  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   r2   r3   rm   r  dtypesallr6   )r7   r  r8   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-10rK   r   )r   r   rb   r   r  rA   r   )r	   r   r   r-   r[   r2   r   )r7   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!   re   N)rf   rg   rh   ri   r#  r'  ru   re   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   r2   r6   r	   r   r   )r7   r   r   r;   r9   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|   r9   r   )r   r   r   2011-06c                     U S-   $ Nr   re   r\   s    r   r^   :TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>      1q5r!   c                     SU -   $ r0  re   r\   s    r   r^   r1    r2  r!   r   c                     U S-
  $ r0  re   r\   s    r   r^   r1        q1ur!   r   r,   r   r   r   r   rb   rl  )r   r   r   r-   rm   rt   r2   r$  )r7   r9   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-   $ rY   re   r  r9  s     r   r^   %TestPeriodIndexSeriesMethods.<lambda>      CHr!   c                 
    X-   $ rY   re   r<  s     r   r^   r=        BHr!   c                 
    X-
  $ rY   re   r<  s     r   r^   r=    r>  r!   c                 
    X-
  $ rY   re   r<  s     r   r^   r=    r@  r!   c                 .    [         R                  " X5      $ rY   r4   r  r<  s     r   r^   r=    s    BFF3Or!   c                 .    [         R                  " X5      $ rY   rD  r<  s     r   r^   r=    s    BFF2Or!   c                 .    [         R                  " X5      $ rY   r4   subtractr<  s     r   r^   r=    s    BKK0r!   c                 .    [         R                  " X5      $ rY   rG  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|   r9   r   rJ  )zunsupported operand type\(s\)zcan only concatenatezmust be strzobject to str implicitlyr   )r   r2   r3   rK  rj   r   r   )r7   r9  r   r8   r9   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|   r9   r   )r   r   r   r.  c                     U S-   $ r0  re   r\   s    r   r^   >TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r2  r!   c                     SU -   $ r0  re   r\   s    r   r^   rP    r2  r!   c                 0    [         R                  " U S5      $ r0  rD  r\   s    r   r^   rP        266!Q<r!   r   c                     U S-
  $ r0  re   r\   s    r   r^   rP    r5  r!   c                 0    [         R                  " U S5      $ r0  rG  r\   s    r   r^   rP        r{{1a'8r!   r   )z2011-072011-08r   z2011-10c                     U S-   $ Nr   re   r\   s    r   r^   rP    r2  r!   c                     SU -   $ rY  re   r\   s    r   r^   rP    r2  r!   c                 0    [         R                  " U S5      $ rY  rD  r\   s    r   r^   rP    rS  r!   r   c                     U S-
  $ rY  re   r\   s    r   r^   rP     r5  r!   c                 0    [         R                  " U S5      $ rY  rG  r\   s    r   r^   rP    rV  r!   r   r   )r7   r9   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 )NrN  r|   r9   r   c                 8    U [         R                  " / SQ5      -   $ Nr2  r4   r5   r\   s    r   r^   DTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>      a"((<00r!   )r   r   r   rW  c                 \    [         R                  " U [         R                  " / SQ5      5      $ )N)rA   rb   r   r   )r4   r  r5   r\   s    r   r^   re    s    bffQ 78r!   )r   r   r   r.  c                 8    U [         R                  " / SQ5      -
  $ rc  rd  r\   s    r   r^   re    rf  r!   )2010-12ri  r   ri  c                 \    [         R                  " U [         R                  " / SQ5      5      $ )N)r   r   r   rl  )r4   rH  r5   r\   s    r   r^   re    s    bkk!RXXm%<=r!   )z2010-10ri  r   r.  r^  r7   r9   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"   r9   r   c                 D    U [         R                  R                  5       -   $ rY   rm   rp  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      -   $ r0  rq  r\   s    r   r^   rr  -      a"**..++r!   )r   z
2011-02-03z
2011-03-03z
2011-04-03c                 F    U [         R                  R                  S5      -
  $ r0  rq  r\   s    r   r^   rr  5  rt  r!   )z
2010-12-30z
2011-01-30z
2011-02-27z
2011-03-30r^  rk  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)Nro  r"   r9   r   zmCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freqr   r   )r   r	   rj   r   r   rm   rp  rs  )r7   r9   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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|   r9   r   2012-01r,   ir   rj     r~   rK   r   )r   r   r-   rm   rt   r2   r$  r4   rH  r   nanr7   r9   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*bffbffbffbff=EJve#..
f*{{chh&&&C(3.
f*{{chh&&&r!   c                     [        / SQSSS9n[        [        R                  /S-  SS9n[        R
                  " [        R                  U-
  U5        [        R
                  " U[        R                  -
  U5        g )NrN  r|   r9   r   rA   r   )r   r   rm   r   r2   r$  )r7   r9   r   s      r   test_pi_sub_pdnat.TestPeriodIndexSeriesMethods.test_pi_sub_pdnatq  s[    43U
 bffX\6
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
9n[        R                  " U[        SSS9-
  U5        [        R                  " [        SSS9U-
  U5        g )Nr   r|   r9   r   r|  r,   r}  r~  r  r   rj  r~   rK   r   )r   r   r-   rm   rt   r   r2   r$  r   r4   r  r  s        r   test_pi_sub_period_nat3TestPeriodIndexSeriesMethods.test_pi_sub_period_natz  s   43U
 vic22hhhhc	26639b3h?eL
f*	,s2hhS"&&"s(AG<5I
f*bffbffbffbff=EJ
cF5s$;;SA
fU5;SAr!   re   N)rf   rg   rh   ri   r  r   r7  rj   rk   rl   rK  r_  rl  rv  ry  r  r  r  ru   re   r!   r   r*  r*    s    <	,+. [[TE3<0[[$$$$++00		
 1"?<!8!<),'<1Br!   r*  )/r  numpyr4   rj   pandas._libs.tslibsr   r   r   r   pandas.errorsr   pandasrm   r   r	   r
   r   r   pandas._testing_testingr2   pandas.corer   pandas.core.arraysr   pandas.tests.arithmetic.commonr   r   r   rp  	YearBegin
MonthBeginrt  _common_mismatchfixtureto_pytimedeltar  r   r&   r(   rw   r   r   r  r  r  r*  re   r!   r   <module>r     s       -     -  JJJJ!JJ  ",,.
r3"
  
sC s**,s
 * *Dh= h=V%1 %1P_! _!L(2 (2Vw% w%t18 18hjB jBr!   