
    .i{                        d dl Z d dlZd dlZd dlmZmZmZmZ d dl	Z
d dl	mZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZmZ e
j6                  j9                  d      e
j6                  j;                  d      e
j6                  j=                         gZ ej@                   ed	
      jC                          ejD                  d	d       ed	      ge      d        Z# ej@                   ejD                  dd       ed      jC                          ed      ge      d        Z$ G d d      Z% G d d      Z& G d d      Z' G d d      Z( G d d      Z) G d d      Z* G d d       Z+ G d! d"      Z,y)#    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                     | j                   S )zp
    Several timedelta-like and DateOffset instances that are _not_
    compatible with Hourly frequencies.
    paramrequests    a/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/arithmetic/test_period.py
not_hourlyr   (        ==    im  Ddaysc                     | j                   S )z{
    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                      e Zd Zej                  j                  dd edd      g      d        Zd Zej                  j                  dd e	d	       e
d
      dddddg      d        Zej                  j                  d ej                  dd
      j                   ej                  dd
      j                   ej"                  d
       ej"                  d
      j%                  ej&                         e ed
            g d ej"                  dd       ej"                  dd      j%                  e       ej.                  g d      g	      d        Zej                  j                  deej                  d g      d        Zy)TestPeriodArrayLikeComparisonsother2017r!   freqc                     t        g dd      }t        j                  ||      }t        ||d      }t	        j
                  g d      }t        j                  ||      }||k(  }t        j                  ||       y )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_scalarz-TestPeriodArrayLikeComparisons.test_eq_scalarQ   sc    2=ooc>2c5$/88/0??8T2
)r    c                 @   t        dd      }t        j                  |j                         d         }t	        j
                  ||      }t        ||d      }||k  }t        j                  g d      }t	        j
                  ||      }t	        j                  ||       y )N2000   periodsr   TTFFF)r   r2   r3   to_numpyr0   r1   r   r4   )r5   r6   pir(   r8   r:   r9   s          r   test_compare_zerodimz3TestPeriodArrayLikeComparisons.test_compare_zerodim^   s}     &!,q)*__R0b%.u8878??8T2
)r    scalarfooz
2021-01-01r>   r"   	   g      #@  FNc                 d    t        dd      }t        j                  ||      }t        |||       y Nr=   r>   r?   r   r0   r1   r   )r5   r6   rE   rC   parrs        r   test_compare_invalid_scalarz:TestPeriodArrayLikeComparisons.test_compare_invalid_scalarl   s,      &!,r>2!$?r    r=   r?   1D)rH   i  i  i  i  c                 d    t        dd      }t        j                  ||      }t        |||       y rJ   rK   )r5   r6   r(   rC   rL   s        r   test_compare_invalid_listlikez<TestPeriodArrayLikeComparisons.test_compare_invalid_listlike   s,      &!,r>2!$~>r    	other_boxc                 ,    | j                  t              S N)astypeobjectxs    r   <lambda>z'TestPeriodArrayLikeComparisons.<lambda>   s    QXXfEU r    c                    t        dd      }t        j                  ||      } ||      }t        ||d      }t	        j
                  g d      }t        j                  ||      }||k(  }t        j                  ||       ||k  }t        j                  ||       ||k\  }t        j                  ||       ||k7  }t        j                  ||        ||k  }t        j                  ||        ||kD  }t        j                  ||         ||d d d         }t	        j
                  g d      }t        j                  ||      }||k(  }t        j                  ||       t	        j
                  g d      }t        j                  ||      }||k  }t        j                  ||       t	        j
                  g d	      }t        j                  ||      }||k\  }t        j                  ||       t	        j
                  g d
      }t        j                  ||      }||k7  }t        j                  ||       t	        j
                  g d      }t        j                  ||      }||k  }t        j                  ||       t	        j
                  g d      }t        j                  ||      }||kD  }t        j                  ||       y )Nr=      r?   T)TTTTT)FFTFF)TTTFF)FFTTT)TTFTT)TTFFF)FFFTT)r   r0   r1   r   r2   r3   r4   )	r5   r6   rQ   rC   rL   r(   r8   r9   r:   s	            r   test_compare_object_dtypez8TestPeriodArrayLikeComparisons.test_compare_object_dtype   s:   &!,r>2"dE4088:;??8T2
)
)
)
	*
	*
	*"TrT(#88>???8T2
)88<=??8T2
)88<=??8T2
)88;<??8T2
)88=>??8T2
)88=>??8T2
)r    )__name__
__module____qualname__pytestmarkparametrizer   r;   rD   r   r	   rM   pd
date_ranger3   timedelta_ranger2   arangerT   float64listrangerU   IndexrP   r\    r    r   r'   r'   L   s   
 [[Wvvf3/G&HI
* J
** [[l#1		
@@ [[BMM&!,22BtQ/55BIIaLBIIaL

+qN$BIIdD!BIIdD!((0BHH-.	
??
 [[[4;U*VW6* X6*r    r'   c                      e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	ej                  j                  dg d      d        Z
ej                  j                  dg d      d        Zej                  j                  dg d      d	        Zej                  j                  d
edg      d        Zy)TestPeriodIndexComparisonsc                 ~   t        ddd      }|d   }||k  }|j                  |j                  d   k  }t        j                  ||       |j                  j	                  dd      |k  }t        j                  ||j	                  dd             |t        j                  |      k  }t        j                  ||       y )N2007-01   Mr@   r+   
   r   )r   valuesr0   assert_numpy_array_equalreshaper2   r3   )r5   r7   perr:   exps        r   test_pi_cmp_periodz-TestPeriodIndexComparisons.test_pi_cmp_period   s    9bs;"gsjj3::b>)
##FC0 ##B*S0
##FCKKA,>? rxx}$
##FC0r    c                    t        ddd      }|d   }|D cg c]  }||kD  	 }}t        j                  ||      }t        ||d      }t        j                  ||      }||kD  }t        j                  ||       |d   }||kD  }|D cg c]  }||kD  	 }}t        j                  ||      }t        j                  ||       y c c}w c c}w )Nz
2000-01-01rs   r!   rr      TrZ   )r   r0   r1   r   r4   )	r5   r6   rC   valrW   r9   serr8   r:   s	            r   test_parr_cmp_period_scalar2z7TestPeriodIndexComparisons.test_parr_cmp_period_scalar2   s    ,=e%'(AG((oob.1c3-??8T2s
)es%'(AG((??8T2
) ) )s   CCr+   )rq   2M3Mc                    t        g d|      }t        j                  ||      }t        d|      }t	        ||d      }t        j                  g d      }t        j                  ||      }t        j                  ||k(  |       t        j                  ||k(  |       t        j                  g d      }t        j                  ||      }t        j                  ||k7  |       t        j                  ||k7  |       t        j                  g d      }t        j                  ||      }t        j                  ||kD  |       t        j                  ||k  |       t        j                  g d      }t        j                  ||      }t        j                  ||k  |       t        j                  ||kD  |       t        j                  g d	      }t        j                  ||      }t        j                  ||k\  |       t        j                  ||k  |       t        j                  g d
      }t        j                  ||      }t        j                  ||k  |       t        j                  ||k\  |       y )N2011-012011-022011-032011-04r*   r   TFTFFTFTT)FFTTrA   )FTTT)TTFF)r   r0   r1   r   r   r2   r3   r4   )r5   r+   r6   baserw   r8   rx   s          r   test_parr_cmp_period_scalarz6TestPeriodIndexComparisons.test_parr_cmp_period_scalar   s    GdSt^4YT*dC.hh23ooc4(
S)
tS)hh01ooc4(
S)
tS)hh12ooc4(
s
C(
d
C(hh23ooc4(
s
C(
d
C(hh01ooc4(
S)
tS)hh12ooc4(
S)
tS)r    c                    t        g d|      }t        j                  ||      }t        g d|      }t        ||d      }t	        j
                  g d      }t        j                  ||      }t        j                  ||k(  |       t	        j
                  g d      }t        j                  ||      }t        j                  ||k7  |       t	        j
                  g d      }t        j                  ||      }t        j                  ||kD  |       t	        j
                  g d      }t        j                  ||      }t        j                  ||k  |       t	        j
                  g d	      }t        j                  ||      }t        j                  ||k\  |       t	        j
                  g d
      }t        j                  ||      }t        j                  ||k  |       y )Nr   r*   )r   r   r   2011-05TFFTFTTFTr   TFFTFTTFr   r/   )r5   r+   r6   r   r7   r8   rx   s          r   test_parr_cmp_piz+TestPeriodIndexComparisons.test_parr_cmp_pi  sd    GdSt^4 FTRdC.hh23ooc4(
S)hh01ooc4(
S)hh23ooc4(
s
C(hh12ooc4(
s
C(hh12ooc4(
S)hh01ooc4(
S)r    c                    t        g d|      }t        j                  ||      }d| d}t        j                  t
        |      5  |t        dd      k   d d d        t        j                  t
        |      5  t        dd      |k\   d d d        t        g dd      }d	}|t        j                  t        j                  fv r|n|}t        j                  t
        |      5  ||k   d d d        d| d}t        j                  t
        |      5  |t        dd
      k   d d d        t        j                  t
        |      5  t        dd
      |k\   d d d        t        g dd
      }d}|t        j                  t        j                  fv r|n|}t        j                  t
        |      5  ||k   d d d        y # 1 sw Y   mxY w# 1 sw Y   FxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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   r0   r1   r`   raises	TypeErrorr   to_arrayrc   r3   )r5   r+   r6   r   msgr7   rev_msgidx_msgs           r    test_parr_cmp_pi_mismatched_freqz;TestPeriodIndexComparisons.test_parr_cmp_pi_mismatched_freq>  s    GdSt^4:4&N]]9C0 	-F6,,	- ]]9C0 	-6$,	- :EU+RXX/FF'C]]9G4 	CK	 ;4&N]]9C0 	.F6--	. ]]9C0 	.6%-	. :FR+RXX/FF'C]]9G4 	CK	 	1	- 	-	- 	-	 	
	. 	.	. 	.	 	sH   G;G&GG)	G54HGGG&)G25G>H
c                 |   t        g d|      }|d   }||kD  }t        j                  g d      }t        j                  ||       ||k  }t        j                  ||       |t
        j                  k(  }t        j                  g d      }t        j                  ||       t
        j                  |k(  }t        j                  ||       |t
        j                  k7  }t        j                  g d      }t        j                  ||       t
        j                  |k7  }t        j                  ||       t        g d|      }||k  }t        j                  g d      }t        j                  ||       ||k(  }t        j                  g d      }t        j                  ||       ||k7  }t        j                  g d      }t        j                  ||       ||k(  }t        j                  g d	      }t        j                  ||       ||k7  }t        j                  g d
      }t        j                  ||       y )Nr   r   NaTr   r*   r   FFFTFFFFTTTTr   r   r   r   rA   r   r   )r   r2   r3   r0   ru   rc   r   )r5   r+   idx1rw   r:   rx   idx2s          r   test_pi_cmp_natz*TestPeriodIndexComparisons.test_pi_cmp_nata  s   C$O1ghh23
##FC0t
##FC0hh34
##FC04
##FC0hh/0
##FC04
##FC0C$Ohh23
##FC0hh34
##FC0hh/0
##FC0hh01
##FC0hh23
##FC0r    c                 &   t        g d|      }t        g dd      }d| d}t        j                  t        |      5  ||kD   d d d        ||k(  }t	        j
                  g dt        	      }t        j                  ||       y # 1 sw Y   BxY w)
Nr   r*   r   r   r   z\] and PeriodArrayr   r   dtype)	r   r`   r   r   r2   r3   boolr0   ru   )r5   r+   r   diffr   r:   r9   s          r   &test_pi_cmp_nat_mismatched_freq_raiseszATestPeriodIndexComparisons.test_pi_cmp_nat_mismatched_freq_raises  s    C$OC$O:4&@RS]]9C0 	4K	 888E
##FH5	 	s    BBr   Nc                 4   t        t        d      t        j                  t        d      g      }t        t        j                  t        j                  t        d      g      }|"|j	                  |      }|j	                  |      }||k(  }t        j                  g d      }t        j                  ||       ||k7  }t        j                  g d      }t        j                  ||       t        j                  g d      }t        j                  |t        j                  k(  |       t        j                  t        j                  |k(  |       t        j                  g d      }t        j                  |t        j                  k7  |       t        j                  t        j                  |k7  |       t        j                  g d      }t        j                  |t        j                  k  |       t        j                  t        j                  |kD  |       y )N
2011-01-01
2011-01-03)FFTr.   )FFF)TTT)	r   r   rc   r   rT   r2   r3   r0   ru   )r5   r   leftrightr:   r9   s         r   test_comp_natz(TestPeriodIndexComparisons.test_comp_nat  sn   F<0"&&&:NOPRVVRVVVL-ABC;;u%DLL'E8801
##FH588/0
##FH58812
##DBFFNH=
##BFFeOX>88./
##DBFFNH=
##BFFdNH=8812
##D266M8<
##BFFTM8<r    )r]   r^   r_   ry   r~   r`   ra   rb   r   r   r   r   r   rU   r   rk   r    r   rm   rm      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    rm   c                       e Zd Zd Zy)TestPeriodSeriesComparisonsc           	         t        t        dd      t        dd      t        dd      t        dd      g      }t        t        dd      t        d	d      t        dd      t        d
d      g      }t        g d      }t        j                  ||k(  |       t        g d      }t        j                  ||k7  |       t        g d      }t        j                  ||kD  |       t        g d      }t        j                  ||k  |       t        g d      }t        j                  ||k\  |       t        g d      }t        j                  ||k  |       y )Nr   r   r*   r   rq   r   r   r   r   r   r   r   r   r   r   r   )r   r   r0   assert_series_equal)r5   r   r}   rx   s       r   (test_cmp_series_period_series_mixed_freqzDTestPeriodSeriesComparisons.test_cmp_series_period_series_mixed_freq  s.   vC(ys+vC(ys+	
 vC(ys+vC(ys+	
 01
ts{C0./
ts{C001
tcz3//0
tcz3//0
ts{C0./
ts{C0r    N)r]   r^   r_   r   rk   r    r   r   r     s    $1r    r   c                   "    e Zd ZdZd Zd Zd Zy)*TestPeriodIndexSeriesComparisonConsistency2Test PeriodIndex and Period Series Ops consistencyc                 .   t        |      } ||      }t        |t        j                  t        j
                  f      sJ t        j                  ||       t        |      } ||      }t        ||j                        }t        j                  ||       y Nname)r   
isinstancerc   rj   r2   ndarrayr0   r4   r   r   r   )r5   rt   funcr9   r7   r:   r   rx   s           r   _checkz1TestPeriodIndexSeriesComparisonConsistency._check  sv     &!c (RXXrzz$:;;;
)6NaXFKK0
vs+r    c                    t        g ddd      }|d   fd}t        j                  g dt        j                        }| j	                  |||       fd	}| j	                  |||       fd
}t        j                  g dt        j                        }| j	                  |||       fd}| j	                  |||       fd}t        j                  g dt        j                        }| j	                  |||       fd}t        j                  g dt        j                        }| j	                  |||       fd}t        j                  g dt        j                        }| j	                  |||       y )Nr   rq   r7   r+   r   r   c                     | k(  S rS   rk   rW   rw   s    r   rX   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>      a3h r    r   r   c                     | k(  S rS   rk   r   s    r   rX   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>      cQh r    c                     | k7  S rS   rk   r   s    r   rX   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r    r   c                     | k7  S rS   rk   r   s    r   rX   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r    c                     | k\  S rS   rk   r   s    r   rX   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r    )TTTFc                     | kD  S rS   rk   r   s    r   rX   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>      a#g r    r   c                     | k\  S rS   rk   r   s    r   rX   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r    r   r2   r3   bool_r   r5   r7   frx   rw   s       @r   test_pi_comp_periodz>TestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period  s   8s
 !fhh2"((CCC CC hh0ACC CC hh0ACC hh2"((CCC hh0ACC r    c                    t        g ddd      }|d   fd}t        j                  g dt        j                        }| j	                  |||       fd	}| j	                  |||       d
 }t        j                  g dt        j                        }| j	                  |||       d }| j	                  |||       fd}t        j                  g dt        j                        }| j	                  |||       fd}| j	                  |||       d }t        j                  g dt        j                        }| j	                  |||       d }| j	                  |||       fd}t        j                  g dt        j                        }| j	                  |||       fd}t        j                  g dt        j                        }| j	                  |||       d }t        j                  g dt        j                        }| j	                  |||       d }t        j                  g dt        j                        }| j	                  |||       y )Nr   r   r   r   rq   r7   r   r   c                     | k(  S rS   rk   r   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r    r   r   c                     | k(  S rS   rk   r   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r    c                 (    | t         j                  k(  S rS   rc   r   rV   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>       a266k r    r   c                 (    t         j                  | k(  S rS   r   rV   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>#      bffk r    c                     | k7  S rS   rk   r   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>&  r   r    r   c                     | k7  S rS   rk   r   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>)  r   r    c                 (    | t         j                  k7  S rS   r   rV   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>,  r   r    r   c                 (    t         j                  | k7  S rS   r   rV   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>/  r   r    c                     | k\  S rS   rk   r   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>2  r   r    )TFTFc                     | k  S rS   rk   r   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>6  r   r    rA   c                 (    | t         j                  kD  S rS   r   rV   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>:  s    a"&&j r    c                 (    t         j                  | k\  S rS   r   rV   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>>  r   r    r   r   s       @r   test_pi_comp_period_natzBTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat  s   43U
 !fhh2"((CCC CC !hh3288DCC !CC hh0ACC CC !hh/rxx@CC !CC hh1BCC hh2"((CCC  hh3288DCC !hh3288DCC r    N)r]   r^   r_   __doc__r   r   r   rk   r    r   r   r     s    <, !<,!r    r   c                       e Zd Zd Zy)TestPeriodFrameArithmeticc                 2   t        j                  t        dd      t        dd      gt        dd      t        dd      gd      }|d   j                  d	k(  sJ |d
   j                  d	k(  sJ t        dd      }|j                  }t        j                  t        j                  d|z  d|z  gt              t        j                  d|z  d|z  gt              d      }t        j                  ||z
  |       t        j                  ||z
  d|z         t        j                  t        dd      t        dd      gt        dd      t        dd      gd      }|d   j                  d	k(  sJ |d
   j                  d	k(  sJ t        j                  t        j                  d|z  d|z  gt              t        j                  d|z  d|z  gt              d      }t        j                  ||z
  |       t        j                  ||z
  d|z         y )Nz2015-01rq   r*   z2015-022014-01z2014-02)ABr   	Period[M]r   z2015-03r   r   r         r[   z2015-05z2015-06r>      )
rc   	DataFramer   r   r+   r2   r3   rU   r0   assert_frame_equal)r5   dfpoffrx   df2s         r   test_ops_frame_periodz/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
 	a"fc*
b1fb3h/llYS16)#3NOYS16)#3NO
 3x~~,,,3x~~,,,llXXq3wC0?XXrCxc2&A
 	cBh,
b3hS1r    N)r]   r^   r_   r   rk   r    r   r   r   G  s    '2r    r   c                   j   e Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Z
ej                  j                  dg d      ej                  j                  dej                  j                  d	fej                  j                  d
fej                  j                  dfej                  j                   dfg      d               Zej                  j                  d ed       ed      j'                          ed      j)                          ej*                  ddd       ej*                  ddd       ej*                  ddd      j,                   ej*                  ddd      j,                  d ej0                  g d      g	      d        Zd Zd Zej                  j                  dg d      ej                  j                  dddg      d               Zej                  j                  d ej0                  ej:                  g      d!        Zej                  j                  d ej0                  ej:                  g      d"        Zd# Z d$ Z!ej                  j                  d%d& ej0                  d&ejD                  '      g      d(        Z#d) Z$d* Z%ej                  j                  d+d,d-g      d.        Z&d/ Z'ej                  j                  d0ej0                  ej:                  g      ej                  j                  d1e(jR                  e*jV                  g      d2               Z,ej                  j                  d0ej0                  ej:                  g      d3        Z-d4 Z.ej                  j                  d5g d6      d7        Z/d8 Z0d9 Z1d: Z2d; Z3d< Z4d= Z5d> Z6d? Z7d@ Z8dA Z9ej                  j                  d+d,d-g      dB        Z:ej                  j                  d ej0                  dCgdDz  dE'       e;jx                  dCgdDz  dE'      g      dF        Z=dG Z>dH Z?dI Z@y)JTestPeriodIndexArithmeticc                 @   t        ddd      }t        ddd      }t        j                  ||      }d}t        j                  t
        |      5  ||z    d d d        t        j                  t
        |      5  ||z  }d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)N1/1/2000r!   rZ   r+   r@   1/6/2000z/unsupported operand type\(s\) for \+: .* and .*r   )r   r0   r1   r`   r   r   )r5   r6   rngr(   r   s        r   test_parr_add_iadd_parr_raisesz8TestPeriodIndexArithmetic.test_parr_add_iadd_parr_raisesy  s    :C;Zc1= ooc>2
 A]]9C0 	%K	 ]]9C0 	5LC	 		 		 	s   B9BBBc                     t        ddd      }t        ddd      }|j                  }t        j                  d|z  gdz        }||z
  }t	        j
                  ||       ||z  }t	        j
                  ||       y )Nr  r!   rZ   r  r  )r   r+   rc   rj   r0   assert_index_equal)r5   r  r(   r   r9   r:   s         r   test_pi_sub_isub_piz-TestPeriodIndexArithmetic.test_pi_sub_isub_pi  ss    
 :C;Zc1=hh88R#XJN+u
fh/u
c8,r    c                 N   t        ddd      }|dd  j                  dt        j                        }|dd  j	                  |dd        sJ ||z
  }|j
                  }t        j                  t        j                  d|z  d|z  d|z  d|z  g      }t        j                  ||       y )Nr  r!   rZ   r  r   r   )	r   insertrc   r   equalsr+   rj   r0   r	  )r5   r  r(   r:   r   r9   s         r   test_pi_sub_pi_with_natz1TestPeriodIndexArithmetic.test_pi_sub_pi_with_nat  s    :C;ABq"&&)QRyAB(((uhh88RVVQWa#gq3wCHI
fh/r    c                    t        ddd      }t        ddd      }t        j                  ||      }t        j                  ||      }d}t        j                  t
        |      5  ||z
   d d d        y # 1 sw Y   y xY w)	Nr  r!   rZ   r  r  hz;Input has different freq=[hD] from PeriodArray\(freq=[Dh]\)r   )r   r0   r1   r`   r   r   )r5   r6   box_with_array2r  r(   r   s         r    test_parr_sub_pi_mismatched_freqz:TestPeriodIndexArithmetic.test_parr_sub_pi_mismatched_freq  sn    :C;Zc1=ooc>27L]]0< 	%K	 	 	s   &A55A>nr   r   r{   r>   c                    d}d}t        |g ||            }t        |g ||            }t        |g|j                  j                        t        |g|j                  j                        z
  }t        j                  ||z
  |       y )N1991090519920406r*   )r   r+   r   r0   r	  )r5   tick_classesr  p1_dp2_dp1p2r9   s           r   test_sub_n_gt_1_ticksz/TestPeriodIndexArithmetic.test_sub_n_gt_1_ticks  sy     $l1o6$l1o6vBGGLL9KF=
 
 	rBw2r    zoffset, kwd_namemonthstartingMonthNweekdayc                    ||dini }d}d} ||fddi|}t        |g|      }t        |g|      }	|	|z
  }
t        |g|j                        t        |g|j                        z
  }t        j                  |
|       y )Nr{   r  r  	normalizeFr*   )r   r   r0   r	  )r5   offsetkwd_namer  kwdsr  r  r+   r  r  r:   r9   s               r   test_sub_n_gt_1_offsetsz1TestPeriodIndexArithmetic.test_sub_n_gt_1_offsets  s     !) 4!}"a151D1$d+$d+bvDII6F:
 
 	fh/r    r(   
2016-01-01r{   r  rr   zEurope/Brussels)r@   tzr   z
Asia/TokyogQ	@)g       @g      @g      @c                 4   t        ddd      }t        j                  ||      }dj                  g d      }t	        |||       t        j                  t        |      5  ||z    d d d        t        j                  t        |      5  ||z    d d d        t        j                  t        |      5  ||z
   d d d        t        j                  t        |      5  ||z
   d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)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   r0   r1   joinr   r`   r   r   )r5   r(   r6   r  r   s        r   test_parr_add_sub_invalidz3TestPeriodIndexArithmetic.test_parr_add_sub_invalid  s    & :C;ooc>2hh
 	#3s3]]9C0 	%K	]]9C0 	CK	]]9C0 	%K	]]9C0 	CK	 		 		 		 		 	s0    C*	C62DD*C36C?DDc                    t        ddd      }t        g d      }|j                  }d}t        j                  t
        |      5  ||z    d d d        t        j                  t
        |      5  ||z    d d d        t        j                  t
        |      5  ||z
   d d d        d}t        j                  t
        |      5  ||z
   d d d        y # 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   MxY w# 1 sw Y   y xY w)	Nr  Qr{   r  -1 Dayr0  r0  zCCannot add or subtract timedelta64\[ns\] dtype from period\[Q-DEC\]r   z/cannot subtract PeriodArray from TimedeltaArray)r   r
   rt   r`   r   r   )r5   r  tditdarrr   s        r   *test_pi_add_sub_td64_array_non_tick_raiseszDTestPeriodIndexArithmetic.test_pi_add_sub_td64_array_non_tick_raises  s    :C;;<

T]]9C0 	%K	]]9C0 	CK	 ]]9C0 	%K	@]]9C0 	CK	 		 		 		 		 	s0   C.CC)C5CC&)C25C>c                    t        ddd      }t        g d      }|j                  }t        ddd      }||z   }t        j                  ||       ||z   }t        j                  ||       ||z   }t        j                  ||       ||z   }t        j                  ||       t        ddd      }||z
  }t        j                  ||       ||z
  }t        j                  ||       d}t        j                  t        |	      5  ||z
   d d d        t        j                  t        |	      5  ||z
   d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)
Nr  90Dr{   r  r/  z
12/31/1999z1/2/2000cannot subtract .* from .*r   )r   r
   rt   r0   r	  r`   r   r   )r5   r  r1  r2  r9   r:   r   s          r   test_pi_add_sub_td64_array_tickz9TestPeriodIndexArithmetic.test_pi_add_sub_td64_array_tick  s8    :E1=;<

5!Ds
fh/u
fh/s
fh/
fh/
Bs
fh/u
fh/+]]9C0 	CK	 ]]9C0 	#I	 		 		 	s   D;,E;EEpi_freq)r!   Wr.  r  tdi_freqc                 (   |}|t         j                  t        j                  fvr|nt         j                  }t        ddg|      }t        d      |z   }|j                  |      }t        j                  ||      }	|dk(  r||	z
  }
|j                  d      |z
  j                  |      }t        j                  ||      }t        j                  |
|       |d   |	z
  }
|d   j                  d      |z
  j                  |      }t        j                  ||      }t        j                  |
|       y |dk(  rXd	}t        j                  t        |
      5  ||	z
   d d d        t        j                  t        |
      5  |d   |	z
   d d d        y d}t        j                  t        |
      5  ||	z
   d d d        t        j                  t        |
      5  |d   |	z
   d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w# 1 sw Y   NxY w# 1 sw Y   y xY w)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)rc   r3   r0   r   rj   r
   r   	to_periodr1   to_timestampr4   r`   r   r   r   )r5   r6   r:  r8  boxr8   r1  dtirC   td64objr:   r9   r   s                r   test_parr_sub_td64arrayz1TestPeriodIndexArithmetic.test_parr_sub_td64array4  s    "((BKK!88sbhhi3(C-.4]]7# //#s+c>'\F,s2==gFHx6HOOFH- UW_F1**3/#5@@IHx5HOOFH-^E  4C@ W 4C@  1    7Cy4 Wy4  1           s0   G$:	G0)G<	H$G-0G9<HHr?  c                 t   t        t        d      t        d      g      } |t        j                  j	                  dd      t        j                  j	                  dd      g      }t        t        d      t        d      g      j                  t              }t        j                  |      5  ||z   }d d d        t        j                  |       t        j                  |      5  ||z   }d d d        t        j                  |       t        j                  t        j                  j                  d	      t        j                  j                  d	      g      }d
}	t        j                  t         |	      5  t        j                  |      5  ||z    d d d        d d d        t        j                  t         |	      5  t        j                  |      5  ||z    d d d        d d d        y # 1 sw Y   =xY w# 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   wxY w# 1 sw Y   DxY w# 1 sw Y   y xY w)N2015Q12016Q2r      r  r  2015Q22015Q4r  z1Input cannot be converted to Period\(freq=Q-DEC\)r   )r   r   rc   offsets
QuarterEndrT   rU   r0   assert_produces_warningr	  r2   r3   HourMinuter`   r   r   )
r5   performance_warningr?  rC   offsr9   resres2
unanchoredr   s
             r   test_pi_add_offset_arrayz2TestPeriodIndexArithmetic.test_pi_add_offset_arraye  s    &*F8,<=>

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

%%"%=
 x 0&2BCDKKFS''(;< 	t)C	
c8,''(;< 	"9D	
dH-XXrzz3RZZ5F5F5F5LMN
 C]]0< 	 ++,?@  Z 	  ]]0< 	 ++,?@  R 	  	 	 		 	   	  	    	  	 s`   /G0(G=<HH
HH.H"H.0G:=H
H	HH"H+	'H..H7c                     t        t        d      t        d      g      } |t        j                  j	                  dd      t        j                  j	                  dd      g      }t        t        t        |            D cg c]  }||   ||   z
   c}      }|j                  t              }t        j                  |      5  ||z
  }d d d        t        j                  |        |t        j                  j                         t        j                  j                  d      g      }d	}	t        j                  t         |	
      5  t        j                  |      5  ||z
   d d d        d d d        t        j                  t         |	
      5  t        j                  |      5  ||z
   d d d        d d d        y c c}w # 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   nxY w# 1 sw Y   ;xY w# 1 sw Y   y xY w)NrD  rE  r   rF  rG  rH  r   rK  z6Input has different freq=-1M from Period\(freq=Q-DEC\)r   )r   r   rc   rL  rM  ri   lenrT   rU   r0   rN  r	  MonthEndDayr`   r   r   )
r5   rQ  r?  rC   r(   r  r9   rS  anchoredr   s
             r   test_pi_sub_offset_arrayz2TestPeriodIndexArithmetic.test_pi_sub_offset_array  s    &*F8,<=>

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

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

++-rzz~~~/BCD H]]0< 	++,?@ X	 ]]0< 	++,?@ 2	 	  J	 	 	 	 	 	sZ   F?GG!G'GG4(G(.G4GG	GG%(G1	-G44G=c                     t        ddd      }||z   }t        ddd      }t        j                  ||       ||z  }t        j                  ||       y )N2000-01-01 09:00r  rs   r  z2000-01-01 10:00r   r0   r	  r5   oner  r:   r9   s        r   test_pi_add_iadd_intz.TestPeriodIndexArithmetic.test_pi_add_iadd_int  sR    -CDs 2bI
fh/s

c8,r    c                     t        ddd      }||z
  }t        ddd      }t        j                  ||       ||z  }t        j                  ||       y)z
        PeriodIndex.__sub__ and __isub__ with several representations of
        the integer 1, e.g. int, np.int64, np.uint8, ...
        r^  r  rs   r  z2000-01-01 08:00Nr_  r`  s        r   test_pi_sub_isub_intz.TestPeriodIndexArithmetic.test_pi_sub_isub_int  sT    
 -CDs 2bI
fh/s

c8,r    fiverZ   r   c                 `    t        dd      }||z
  }|| z   }t        j                  ||       y )Nro   2   r?   r_  )r5   re  r  r:   rx   s        r   test_pi_sub_intlikez-TestPeriodIndexArithmetic.test_pi_sub_intlike  s2    9b1tdUm
fc*r    c                    t        ddd      }t        j                  d      }||z   }t        j                  t        ||d      D cg c]
  \  }}||z    c}}      }t        j                  ||       ||z
  }t        j                  t        ||d      D cg c]
  \  }}||z
   c}}      }t        j                  ||       y c c}}w c c}}w )Nr'  rs   2Drr   T)strict)r   r2   rf   rc   rj   zipr0   r	  )r5   rC   arrr:   rW   yr9   s          r   #test_pi_add_sub_int_array_freqn_gt1z=TestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1  s     ,>iimc88s2s4/HItq!QUIJ
fh/c88s2s4/HItq!QUIJ
fh/ J Js   	C	
C
c                 4   t        ddd      }|t        j                  j                  d      z
  }t        ddd      }t	        j
                  ||       |t        j                  j                  d      z  }t	        j
                  ||       t        dd	d
      }|t        j                  j                  d      z
  }t        ddd
      }t	        j
                  ||       |t        j                  j                  d      z  }t	        j
                  ||       y )Nr   2024r   r*   rZ   20092019r   2016-12rq   z2013-08z2016-07)r   rc   rL  YearEndr0   r	  rY  r5   r  r:   r9   s       r   test_pi_sub_isub_offsetz1TestPeriodIndexArithmetic.test_pi_sub_isub_offset  s     664rzz))!,,S9
fh/rzz!!!$$
c8,9ic:rzz**1--	93?
fh/rzz""1%%
c8,r    	transposeTFc                 F   t        dd      }t        |g      }t        dgd      }t        j                  |||      }t        j                  |||      }||j                  z   }t        j
                  ||       |j                  |z   }t        j
                  ||       y )N2016-01r   r*   z2016-03rx  )r   r   r0   r1   r+   r4   )r5   r6   rx  rw   rC   r9   r:   s          r   test_pi_add_offset_n_gt1z2TestPeriodIndexArithmetic.test_pi_add_offset_n_gt1  s    
 YT*#	{6__R9E??8^yQchh
)B
)r    c                 $   t        dgd      }t        dgd      }t        j                  ||      }t        j                  ||      }|t        d      z   }t        j                  ||       t        d      |z   }t        j                  ||       y )Nrz  r   r*   z2016-043ME)r   r0   r1   r   r4   )r5   r6   rC   r9   r:   s        r   &test_pi_add_offset_n_gt1_not_divisiblez@TestPeriodIndexArithmetic.test_pi_add_offset_n_gt1_not_divisible  sz     )40	{6__R0??8^<i&&
)5!B&
)r    
int_holderopc                     t        t        d      t        d      g      } |ddg      } |||      }t        t        d      t        d      g      }t        j                  ||       y )NrD  r   r>   r[   2016Q1)r   r   r0   r	  )r5   r  r  rC   r(   r:   r9   s          r   test_pi_add_intarrayz.TestPeriodIndexArithmetic.test_pi_add_intarray  s]     &*F5M:;Ar7#Bx 0&-@A
fh/r    c                 8   t        t        d      t        d      g      } |ddg      }||z
  }t        t        d      t        d      g      }t        j                  ||       d}t	        j
                  t        |      5  ||z
   d d d        y # 1 sw Y   y xY w)NrD  r   r>   r[   2014Q1+bad operand type for unary -: 'PeriodArray'r   )r   r   r0   r	  r`   r   r   )r5   r  rC   r(   r:   r9   r   s          r   test_pi_sub_intarrayz.TestPeriodIndexArithmetic.test_pi_sub_intarray  s     &*F5M:;Ar7#ex 0&-@A
fh/<]]9C0 	BJ	 	 	s   BBc                    |}t        ddd      }t        j                  ||      }t        g dd      }t        j                  ||      }||z   }t        j                  ||       ||z   }t        j                  ||       t        g dd      }t        j                  ||      }||z
  }t        j                  ||       dj                  d	d
g      }t        j                  t        |      5  ||z
   d d d        y # 1 sw Y   y xY w)N
2014-05-01r{   rj  rr   )
2014-05-04z
2014-05-06z
2014-05-08r*   )
2014-04-28z
2014-04-30z
2014-05-02r*  r  4cannot subtract PeriodArray from timedelta64\[[hD]\]r   )	r   r0   r1   r   r4   r+  r`   r   r   )r5   
three_daysr6   r(   r  r9   r:   r   s           r   &test_parr_add_timedeltalike_minute_gt1z@TestPeriodIndexArithmetic.test_parr_add_timedeltalike_minute_gt1   s    
 <>ooc>2IPTU??8^<u
)
) IPTU??8^<u
)hh>G
 ]]9C0 	CK	 	 	s   0C??Dfreqstr)5ns5us5ms5s5min5h5Dc                 (   |}t        dd|      }|d   }t        j                  ||      }t        ||z   d|      }t        j                  ||      }||z   }t        j                  ||       ||z   }t        j                  ||       t        ||z
  d|      }t        j                  ||      }||z
  }t        j                  ||       dj	                  ddg      }	t        j                  t        |	      5  ||z
   d d d        y # 1 sw Y   y xY w)	Nr     rr   r   r*  r  r  r   )r   r0   r1   r4   r+  r`   r   r   )
r5   r  r  r6   r(   r  firstr9   r:   r   s
             r   $test_parr_add_timedeltalike_tick_gt1z>TestPeriodIndexArithmetic.test_parr_add_timedeltalike_tick_gt1A  s     <AAooc>2qwG??8^<u
)
)  qwG??8^<u
)hh>G
 ]]9C0 	CK	 	 	s   9DDc                     |}t        ddd      }t        ddd      }||z   }t        j                  ||       ||z  }t        j                  ||       y )Nr  
2014-05-15r!   r*   r  z
2014-05-18r_  r5   r  r(   r  r9   r:   s         r   $test_pi_add_iadd_timedeltalike_dailyz>TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_dailya  U    <C@lEu
fh/u
c8,r    c                     |}t        ddd      }t        ddd      }||z
  }t        j                  ||       ||z  }t        j                  ||       y )Nr  r  r!   r*   r  z
2014-05-12r_  r  s         r   $test_pi_sub_isub_timedeltalike_dailyz>TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_dailym  r  r    c                    |}t        ddd      }t        j                  ||      }dj                  ddg      }t	        j
                  t        |      5  ||z    d d d        t	        j
                  t        |      5  ||z  }d d d        t	        j
                  t        |      5  ||z
   d d d        t	        j
                  t        |      5  ||z  }d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)	Nr  r  r!   r*   r*  z7Input has different freq(=.+)? from Period.*?\(freq=D\)r<  r   r   r0   r1   r+  r`   r   r   )r5   	not_dailyr6   r(   r  r   s         r   3test_parr_add_sub_timedeltalike_freq_mismatch_dailyzMTestPeriodIndexArithmetic.test_parr_add_sub_timedeltalike_freq_mismatch_dailyy  s     <C@ooc>2hh LE	
 ]]0< 	%K	]]0< 	5LC	]]0< 	%K	]]0< 	5LC	 		 		 		 		 	s0   C>C+'C7DC(+C47D Dc                     |}t        ddd      }t        ddd      }||z   }t        j                  ||       ||z  }t        j                  ||       y )N2014-01-01 10:002014-01-05 10:00r  r*   z2014-01-01 12:00z2014-01-05 12:00r_  r5   	two_hoursr(   r  r9   r:   s         r   %test_pi_add_iadd_timedeltalike_hourlyz?TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_hourly  Y    -/AL 24FSQu
fh/u
c8,r    c                 J   |}t        ddd      }t        j                  ||      }dj                  ddg      }t	        j
                  t        |      5  ||z    d d d        t	        j
                  t        |      5  ||z  }d d d        y # 1 sw Y   3xY w# 1 sw Y   y xY w)	Nr  r  r  r*   r*  z7Input has different freq(=.+)? from Period.*?\(freq=h\)r<  r   r  )r5   r   r6   r(   r  r   s         r   2test_parr_add_timedeltalike_mismatched_freq_hourlyzLTestPeriodIndexArithmetic.test_parr_add_timedeltalike_mismatched_freq_hourly  s     -/ALooc>2hh LE	
 ]]0< 	%K	 ]]0< 	5LC	 		 		 	s   B>BBB"c                     |}t        ddd      }t        ddd      }||z
  }t        j                  ||       ||z  }t        j                  ||       y )Nr  r  r  r*   z2014-01-01 08:00z2014-01-05 08:00r_  r  s         r   %test_pi_sub_isub_timedeltalike_hourlyz?TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_hourly  r  r    c                    t        ddd      }|t        j                  j                  d      z   }t        ddd      }t	        j
                  ||       |t        j                  j                  d      z  }t	        j
                  ||       y )Nr   rq  r   r*   rZ   rs  2029)r   rc   rL  ru  r0   r	  rv  s       r   "test_add_iadd_timedeltalike_annualz<TestPeriodIndexArithmetic.test_add_iadd_timedeltalike_annual  sr     664rzz))!,,S9
fh/rzz!!!$$
c8,r    c                    |}t        ddd      }d}t        j                  t        |      5  ||z    d d d        t        j                  t        |      5  ||z  }d d d        t        j                  t        |      5  ||z
   d d d        t        j                  t        |      5  ||z  }d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)Nr   rq  r   r*   z;Input has different freq(=.+)? from Period.*?\(freq=Y-DEC\)r   r   r`   r   r   r5   r%   r(   r  r   s        r   2test_pi_add_sub_timedeltalike_freq_mismatch_annualzLTestPeriodIndexArithmetic.test_pi_add_sub_timedeltalike_freq_mismatch_annual  s    664M]]0< 	%K	]]0< 	5LC	]]0< 	%K	]]0< 	5LC	 		 		 		 		 	/   B8C C)C8CCCC%c                    t        ddd      }t        ddd      }|t        j                  j                  d      z   }t	        j
                  ||       |t        j                  j                  d      z  }t	        j
                  ||       y )Nr   rt  rq   r*   z2014-06z2017-05rZ   )r   rc   rL  rY  r0   r	  )r5   r  r9   r:   s       r    test_pi_add_iadd_timedeltalike_Mz:TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_M  sp    9ic:	93?rzz**1--
fh/rzz""1%%
c8,r    c                    |}t        ddd      }d}t        j                  t        |      5  ||z    d d d        t        j                  t        |      5  ||z  }d d d        t        j                  t        |      5  ||z
   d d d        t        j                  t        |      5  ||z  }d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   KxY w# 1 sw Y   y xY w)Nr   rt  rq   r*   z7Input has different freq(=.+)? from Period.*?\(freq=M\)r   r  r  s        r   3test_pi_add_sub_timedeltalike_freq_mismatch_monthlyzMTestPeriodIndexArithmetic.test_pi_add_sub_timedeltalike_freq_mismatch_monthly  s    9ic:I]]0< 	%K	]]0< 	5LC	]]0< 	%K	]]0< 	5LC	 		 		 		 		 	r  c                    t        ddd      }t        j                  d      }t        dgdz  d      }t	        j
                  |||      }t	        j
                  |||      }||z   }t	        j                  ||       ||z   }t	        j                  ||       ||z
  }t	        j                  ||       d}t        j                  t        |	      5  ||z
   d d d        y # 1 sw Y   y xY w)
N
1994-04-01rG   19Drr   r   r*   r{  r6  r   )
r   r2   timedelta64r   r0   r1   r4   r`   r   r   )	r5   r6   rx  rC   r(   r9   objr:   r   s	            r   test_parr_add_sub_td64_natz4TestPeriodIndexArithmetic.test_parr_add_sub_td64_nat  s     ,>u%w{7oob.IF??8^yQu
)
)u
)+]]9C0 	CK	 	 	s   C""C+r   rG   m8[ns]c                 d   t        ddd      }t        dgdz  d      }t        j                  ||      }t        j                  ||      }||z   }t        j                  ||       ||z   }t        j                  ||       ||z
  }t        j                  ||       d}t        j                  t        |      5  ||z
   d d d        |j                         }t        j                  d	d
      |d	<   t        |d	   gdgdz  z   d      }t        j                  ||      }||z   }t        j                  ||       ||z   }t        j                  ||       ||z
  }t        j                  ||       t        j                  t        |      5  ||z
   d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  rG   r  rr   r   r*   r6  r   r   ns   )r   r   r0   r1   r4   r`   r   r   copyr2   r  )r5   r6   r(   rC   r9   r  r:   r   s           r   !test_parr_add_sub_tdt64_nat_arrayz;TestPeriodIndexArithmetic.test_parr_add_sub_tdt64_nat_array   sz    ,>w{7oob.1??8^<u
)
)u
)+]]9C0 	CK	 

>>!T*a1w%145A??8^<u
)
)u
)]]9C0 	CK	 		 		 	s   :FF&F#&F/c                 v    t        dd      }|j                  }||z
  }||z
  }t        j                  ||       y )N
2000-12-31r{   r?   )r   r3   r0   r	  )r5   rC   rL   r:   r9   s        r   test_parr_add_sub_indexz1TestPeriodIndexArithmetic.test_parr_add_sub_index*  s9    ,2xx7
fh/r    c                 ~   t        ddd      }|j                  }t        j                  t        d      t        j
                  j                  d      dg      }t        j                  |      5  ||z   }d d d        t        g dd	      j                  j                  t              }t        j                  |       t        j                  |      5  ||z
  }d d d        t        d
gdz  d	      j                  j                  t              }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ZxY w)Nr  r{   r!   rr   r   r"   r   )z
2001-01-01z
2001-01-03z
2001-01-05r*   z
2000-12-30)r   r3   r2   r	   rc   rL  rZ  r0   rN  r   _datarT   rU   r4   )r5   rQ  rC   rL   r(   r:   r9   s          r   test_parr_add_sub_object_arrayz8TestPeriodIndexArithmetic.test_parr_add_sub_object_array3  s    ,<xx)+RZZ^^A->BC''(;< 	"E\F	" 6S

%v 	 	)''(;< 	"E\F	" ~1<BBII&Q
)	" 	"	" 	"s   /D'D3'D03D<c                    t        d      }t        dd      }t        j                  |gd      }t	        j
                  ||      }d}t        j                  t        |      5  ||z    d d d        t        j                  t        |      5  ||z    d d d        d}t        j                  t        |      5  |t        |g      z    d d d        t        j                  t        |      5  t        |g      |z    d d d        t        j                  t        |      5  |t        j                  |g      z    d d d        t        j                  t        |      5  t        j                  |g      |z    d d d        |t        j                  u rd}nd	}t        j                  t        |      5  |t        j                  |g      z    d d d        |t        j                  u rd}nd
}t        j                  t        |      5  t        j                  |g      |z    d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   TxY w# 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr)   rq   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   rc   rj   r0   r1   r`   r   r   r   r   )r5   r6   tsrw   rm  r   s         r    test_period_add_timestamp_raisesz:TestPeriodIndexArithmetic.test_period_add_timestamp_raisesG  s   vV#&hhuK0ooc>24]]9C0 	"H	]]9C0 	H	 9]]9C0 	&",	]]9C0 	B4L3	]]9C0 	!"((B4. 	!]]9C0 	!HHbTNS 	! R\\)<CVC]]9C0 	%",,t$$	%R\\)<CWC]]9C0 	%LL"$	% 	%3	 		 		 		 		! 	!	! 	!	% 	%	% 	%s`   $H&H38I +III'/I3I?&H03H= I
II$'I03I<?J)Ar]   r^   r_   r  r
  r  r  r`   ra   rb   r  rc   rL  ru  rM  rY  Weekr&  r   to_pydatetimeto_datetime64rd   r  r2   r3   r,  r3  r7  rB  rj   rV  r\  rb  rd  int64rh  ro  rw  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  rk   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BMM,<BMM,6GHBMM,<BBBMM,lCIIBHH_%	
"#"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& [[BHHeWq[1)N))5'A+XF	
F0*(#%r    r   c                       e Zd Zd Zd Zy)TestPeriodSeriesArithmeticc                    t        t        dd      t        dd      gd      }|j                  dk(  sJ t        t        dd      t        d	d      gd      }t        j                  ||      }|t
        j                  u r|j                  dk(  j                         sJ t        j                  ||      }||z   }t        j                  ||       ||z   }t        j                  ||       y )
N
2015-01-01r!   r*   
2015-01-02xxxr   	Period[D]
2015-01-04
2015-01-05)
r   r   r   r0   r1   rc   r   dtypesallr4   )r5   r  r6   r}   r9   r  r:   s          r   "test_parr_add_timedeltalike_scalarz=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??8^<z!
)c!
)r    c                 J   t        t        dd      t        dd      gd      }|j                  dk(  sJ t        dd      }|j                  }t        d	|z  d
|z  gdt              }t        j                  ||z
  |       t        j                  ||z
  d|z         t        t        dd      t        dd      gd      }|j                  dk(  sJ t        d|z  d|z  gdt              }t        j                  ||z
  |       t        j                  ||z
  d|z         y )Nr  r!   r*   r  r  r   r  z
2015-01-10rG   r  r   r   r[   r  r  r>   r   )r   r   r   r+   rU   r0   r   )r5   r}   rw   r   r9   s2s         r   test_ops_series_periodz1TestPeriodSeriesArithmetic.test_ops_series_period  s   Ls+VLs-KL
 yyK'''\,hh1s7AG,5G
sSy(3
sSy"x-8Ls+VLs-KL
 xx;&&&1s7AG,5G
rCx2
sRxh7r    N)r]   r^   r_   r  r  rk   r    r   r  r  m  s    *28r    r  c                       e Zd ZdZd Zd Zej                  j                  dddg      ej                  j                  dd d	 d
 d d d d d g      d               Z	d Z
d Zd Zd Zd Zd Zd Zy)TestPeriodIndexSeriesMethodsr   c                     t        |      } ||      }t        j                  ||       t        |      } ||      }t        ||j                        }t        j
                  ||       y r   )r   r0   r4   r   r   r   )r5   rt   r   r9   r7   r:   r}   rx   s           r   r   z#TestPeriodIndexSeriesMethods._check  sU    &!c
)VncXFKK0
vs+r    c                    t        g ddd      }t        g ddd      }| j                  |d |       | j                  |d |       | j                  |dz   d	 |       |t        d
d      z
  }|j                  }t	        j
                  d|z  d|z  d|z  d|z  gd      }t        j                  ||       t        d
d      |z
  }t	        j
                  d|z  d|z  d|z  d|z  gd      }t        j                  ||       y )Nr   rq   r7   r   )r   r   r   2011-06c                     | dz   S Nr   rk   rV   s    r   rX   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>  
    1q5 r    c                     d| z   S r  rk   rV   s    r   rX   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>  r  r    r   c                     | dz
  S r  rk   rV   s    r   rX   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>  
    q1u r    r   r*   r   r   r{   r   r[   rH  )r   r   r   r+   rc   rj   r0   r	  )r5   r7   r9   r:   r   rx   s         r   test_pi_opsz(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
fc*	,s2hhCc28R#X>UK
fc*r    ngstrg      ?r   c                     | |z   S rS   rk   r  r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  
    C"H r    c                     || z   S rS   rk   r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  
    BH r    c                     | |z
  S rS   rk   r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  r  r    c                     || z
  S rS   rk   r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  r  r    c                 .    t        j                  | |      S rS   r2   r  r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  s    BFF3O r    c                 .    t        j                  ||       S rS   r  r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  s    BFF2sO r    c                 .    t        j                  | |      S rS   r2   subtractr  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  s    BKKR0 r    c                 .    t        j                  ||       S rS   r  r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  s    BKKC0 r    c                     t        g ddd      }t        j                  ||      }dj                  g d      }t	        j
                  t        |      5   |||       d d d        y # 1 sw Y   y xY w)Nr   rq   r7   r   r*  )zunsupported operand type\(s\)zcan only concatenatezmust be strzobject to str implicitlyr   )r   r0   r1   r+  r`   r   r   )r5   r  r   r6   r7   r  r   s          r   test_parr_ops_errorsz1TestPeriodIndexSeriesMethods.test_parr_ops_errors  sh     8s
 ooc>2hh
 ]]9C0 	bM	 	 	s   
A((A1c                 ,   t        g ddd      }t        g ddd      }| j                  |d |       | j                  |d |       | j                  |d |       | j                  |d	z   d
 |       | j                  |d	z   d |       t        g ddd      }t        g ddd      }| j                  |d |       | j                  |d |       | j                  |d |       | j                  |dz   d |       | j                  |dz   d |       y )Nr   r   r   r   rq   r7   r   )r   r   r   r  c                     | dz   S r  rk   rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r    c                     d| z   S r  rk   rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r    c                 .    t        j                  | d      S r  r  rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>      266!Q< r    r   c                     | dz
  S r  rk   rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r    c                 .    t        j                  | d      S r  r  rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>      r{{1a'8 r    r   )z2011-072011-08r   z2011-10c                     | dz   S Nr{   rk   rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r    c                     d| z   S r  rk   rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r    c                 .    t        j                  | d      S r  r  rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r    r{   c                     | dz
  S r  rk   rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>   r  r    c                 .    t        j                  | d      S r  r  rV   s    r   rX   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r    r   r   )r5   r7   r9   s      r   test_pi_ops_natz,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                 T   t        g ddd      }d }t        g ddd      }| j                  |||       d }t        g ddd      }| j                  |||       d	 }t        g d
dd      }| j                  |||       d }t        g ddd      }| j                  |||       y )Nr  rq   r7   r   c                 6    | t        j                  g d      z   S Nr  r2   r3   rV   s    r   rX   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>      a"((<00 r    )r   r   r   r  c                 X    t        j                  | t        j                  g d            S )N)r>   r[   r   r   )r2   r  r3   rV   s    r   rX   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>  s    bffQ 78 r    )r   r   r   r  c                 6    | t        j                  g d      z
  S r  r  rV   s    r   rX   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>  r   r    )2010-12r#  r   r#  c                 X    t        j                  | t        j                  g d            S )N)r{   r   r{   rH  )r2   r  r3   rV   s    r   rX   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>  s    bkk!RXXm%<= r    )z2010-10r#  r   r  r  r5   r7   r   rx   s       r   test_pi_ops_array_intz2TestPeriodIndexSeriesMethods.test_pi_ops_array_int  s    43U
 143U
 	CC 843U
 	CC 043U
 	CC =43U
 	CC r    c                    t        g ddd      }d }t        g ddd      }| j                  |||       d }t        g ddd      }| j                  |||       d	 }t        g d
dd      }| j                  |||       y )Nr   z
2011-02-01z
2011-03-01z
2011-04-01r!   r7   r   c                 D    | t         j                  j                         z   S rS   rc   rL  rZ  rV   s    r   rX   zATestPeriodIndexSeriesMethods.test_pi_ops_offset.<locals>.<lambda>%  s    a"**..** r    )z
2011-01-02z
2011-02-02z
2011-03-02z
2011-04-02c                 F    | t         j                  j                  d      z   S r  r*  rV   s    r   rX   zATestPeriodIndexSeriesMethods.test_pi_ops_offset.<locals>.<lambda>-      a"**..++ r    )r   z
2011-02-03z
2011-03-03z
2011-04-03c                 F    | t         j                  j                  d      z
  S r  r*  rV   s    r   rX   zATestPeriodIndexSeriesMethods.test_pi_ops_offset.<locals>.<lambda>5  r,  r    )z
2010-12-30z
2011-01-30z
2011-02-27z
2011-03-30r  r%  s       r   test_pi_ops_offsetz/TestPeriodIndexSeriesMethods.test_pi_ops_offset  s    D

 +D

 	CC +D

 	CC +D

 	CC r    c                 <   t        g ddd      }t        |      }d}||fD ]  }t        j                  t        |      5  |t
        j                  j                  d      z    d d d        t        j                  t        |      5  t
        j                  j                  d      |z    d d d        t        j                  t        |      5  |t
        j                  j                  d      z
   d d d         y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   xY w)Nr(  r!   r7   r   zmCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freqr   r   )r   r   r`   r   r   rc   rL  rO  )r5   r7   r}   r   r  s        r   test_pi_offset_errorsz2TestPeriodIndexSeriesMethods.test_pi_offset_errors=  s    D

 Sk< 	 : 	)C4C@ )bjjooa(() 4C@ )

"S() 4C@ )bjjooa(() )	)) )) )) )s$    #C:#D#D:D	D	D	c                    t        g ddd      }|t        dd      z
  }|j                  }t        j                  d|z  d|z  d	|z  d
|z  gd      }t        j                  ||       t        j                  |t        dd            }t        j                  ||       t        dd      |z
  }t        j                  d|z  d|z  d|z  d|z  gd      }t        j                  ||       t        j                  t        dd      |      }t        j                  ||       t        t        j                  t        j                  t        j                  t        j                  gdd      }|t        dd      z
  }t        j                  ||       |j                  |j                  k(  sJ t        dd      |z
  }t        j                  ||       |j                  |j                  k(  sJ y )Nr   rq   r7   r   2012-01r*   ir   rF     rs   rG   r  r  r   )r   r   r+   rc   rj   r0   r	  r2   r  r
   nanr5   r7   r:   r   rx   s        r   test_pi_sub_periodz/TestPeriodIndexSeriesMethods.test_pi_sub_periodS  s   8s
 vic22hhhhc	39cCicBO
fc*S&"=>
fc*	,s2hhS"s(BHa#g>UK
fc*VIC8#>
fc*VVRVVRVVRVV,5
 ve#..
fc*{{chh&&&C(3.
fc*{{chh&&&r    c                     t        g ddd      }t        t        j                  gdz  dd      }t	        j
                  t        j                  |z
  |       t	        j
                  |t        j                  z
  |       y )Nr  rq   r7   r   r>   r  r  )r   r
   rc   r   r0   r	  )r5   r7   rx   s      r   test_pi_sub_pdnatz.TestPeriodIndexSeriesMethods.test_pi_sub_pdnats  s]    43U
 bffX\XF
bffslC0
cBFFlC0r    c                    t        g ddd      }|t        dd      z
  }|j                  }t        j                  d|z  t        j
                  d|z  d	|z  gd
      }t        j                  ||       t        dd      |z
  }t        j                  d|z  t        j
                  d|z  d|z  gd
      }t        j                  ||       t        t        j                  t        j                  t        j                  t        j                  gdd      }t        j                  |t        dd      z
  |       t        j                  t        dd      |z
  |       y )Nr   rq   r7   r   r2  r*   r3  r4  r5  r   rF  rs   rG   r  r  r   )r   r   r+   rc   rj   r   r0   r	  r
   r2   r7  r8  s        r   test_pi_sub_period_natz3TestPeriodIndexSeriesMethods.test_pi_sub_period_nat|  s   43U
 vic22hhhhc	26639b3h?eL
fc*	,s2hhS"&&"s(AG<5I
fc*VVRVVRVVRVV,5
 	cF5s$;;SA
fU5;SAr    N)r]   r^   r_   r   r   r  r`   ra   rb   r	  r  r&  r.  r0  r9  r;  r=  rk   r    r   r  r    s    <	,+. [[TE3<0[[$$$$++00		
 1"?<!8!<),'@1Br    r  )-r  numpyr2   r`   pandas._libs.tslibsr   r   r   r   pandasrc   r   r   r	   r
   r   pandas._testing_testingr0   pandas.corer   pandas.core.arraysr   pandas.tests.arithmetic.commonr   r   r   rL  	YearBegin
MonthBeginrP  _common_mismatchfixtureto_pytimedeltar  r   r%   r'   rm   r   r   r   r   r  r  rk   r    r   <module>rK     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    