
    Pi{                     J   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
j                            d          e
j                            d          e
j                                        gZ ej          ed	
          !                                 ej"        d	d           ed	          ge          d             Z# ej          ej"        dd           ed          !                                 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,dS )#    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    w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/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                            dd edd          g          d             Zd Zej                            dd e	d	           e
d
          dddddg          d             Zej                            d ej        dd
          j         ej        dd
          j         ej        d
           ej        d
                              ej                   e ed
                    g d ej        dd           ej        dd                              e           ej        g d          g	          d             Zej                            deej        d g          d             ZdS )TestPeriodArrayLikeComparisonsother2017r!   freqc                    t          g dd          }t          j        ||          }t          ||d          }t	          j        g d          }t          j        ||          }||k    }t          j        ||           d S )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   s    222===oc>22c5$//8///00?8T22
)))))r    c                 X   t          dd          }t          j        |                                d                   }t	          j        ||          }t          ||d          }||k    }t          j        g d          }t	          j        ||          }t	          j        ||           d S )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0b%..u877788?8T22
)))))r    scalarfooz
2021-01-01r>   r"   	   g      #@  FNc                 t    t          dd          }t          j        ||          }t          |||           d S 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2!$?????r    r=   r?   1D)rH   i  i  i  i  c                 t    t          dd          }t          j        ||          }t          |||           d S rJ   rK   )r5   r6   r(   rC   rL   s        r   test_compare_invalid_listlikez<TestPeriodArrayLikeComparisons.test_compare_invalid_listlike   s?      &!,,,r>22!$~>>>>>r    	other_boxc                 6    |                      t                    S N)astypeobjectxs    r   <lambda>z'TestPeriodArrayLikeComparisons.<lambda>   s    QXXfEUEU r    c                    t          dd          }t          j        ||          } ||          }t          ||d          }t	          j        g d          }t          j        ||          }||k    }t          j        ||           ||k    }t          j        ||           ||k    }t          j        ||           ||k    }t          j        ||            ||k     }t          j        ||            ||k    }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        ||          }||k    }t          j        ||           t	          j        g d          }t          j        ||          }||k     }t          j        ||           t	          j        g d          }t          j        ||          }||k    }t          j        ||           d S )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2	"dE4008:::;;?8T22
)))
)))
)))
	***
	***
	***	"TTrT(##8>>>???8T22
)))8<<<==?8T22
)))8<<<==?8T22
)))8;;;<<?8T22
)))8===>>?8T22
)))8===>>?8T2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       
 [Wvvvf3/G/G/G&HII
* 
* JI
** * * [Il##I1		
 @ @ @ [BM&!,,,2BtQ///5BIaLLBIaLL
++DqNN$$$BIdD!!BIdD!!((00BH---..	
 ? ? ?
 [[4;U;U*VWW6* 6* XW6* 6* 6*r    r'   c                      e Zd Zd Zd Zej                            dg d          d             Zej                            dg d          d             Z	ej                            dg d          d             Z
ej                            dg d          d             Zej                            dg d          d	             Zej                            d
edg          d             ZdS )TestPeriodIndexComparisonsc                    t          ddd          }|d         }||k     }|j        |j        d         k     }t          j        ||           |j                            dd          |k     }t          j        ||                    dd                     |t          j        |          k     }t          j        ||           d S )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j3:b>)
#FC000 ##B**S0
#FCKKA,>,>??? rx}}$
#FC00000r    c                    t          ddd          }|d         fd|D             }t          j        ||          }t          |d          }t          j        ||          }|k    }t          j        ||           |d         |k    }fd	|D             }t          j        ||          }t          j        ||           d S )
Nz
2000-01-01rs   r!   rr      c                     g | ]}|k    	S rk   rk   .0rW   vals     r   
<listcomp>zKTestPeriodIndexComparisons.test_parr_cmp_period_scalar2.<locals>.<listcomp>       (((AG(((r    TrZ   c                     g | ]}|k    	S rk   rk   r}   s     r   r   zKTestPeriodIndexComparisons.test_parr_cmp_period_scalar2.<locals>.<listcomp>   r   r    )r   r0   r1   r   r4   )r5   r6   rC   r9   serr8   r:   r   s          @r   test_parr_cmp_period_scalar2z7TestPeriodIndexComparisons.test_parr_cmp_period_scalar2   s    ,===e((((R(((ob.11c3--?8T22s
)))es((((R(((?8T22
)))))r    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        ||k    |           t          j        ||k    |           t          j        g d          }t          j        ||          }t          j        ||k    |           t          j        ||k     |           t          j        g d          }t          j        ||          }t          j        ||k     |           t          j        ||k    |           t          j        g d	          }t          j        ||          }t          j        ||k    |           t          j        ||k    |           t          j        g d
          }t          j        ||          }t          j        ||k    |           t          j        ||k    |           d S )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   sI    GGGdSSSt^44YT***dC..h22233oc4((
S)))
tS)))h00011oc4((
S)))
tS)))h11122oc4((
s
C(((
d
C(((h22233oc4((
s
C(((
d
C(((h00011oc4((
S)))
tS)))h11122oc4((
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        ||k    |           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    |           t	          j        g d
          }t          j        ||          }t          j        ||k    |           d S )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  s    GGGdSSSt^44 FFFTRRRdC..h22233oc4((
S)))h00011oc4((
S)))h22233oc4((
s
C(((h11122oc4((
s
C(((h11122oc4((
S)))h00011oc4((
S)))))r    c                 `   t          g d|          }t          j        ||          }d| d}t          j        t
          |          5  |t          dd          k     d d d            n# 1 swxY w Y   t          j        t
          |          5  t          dd          |k     d d d            n# 1 swxY w Y   t          g dd          }d	}|t          j        t          j	        fv r|n|}t          j        t
          |          5  ||k     d d d            n# 1 swxY w Y   d| d}t          j        t
          |          5  |t          dd
          k     d d d            n# 1 swxY w Y   t          j        t
          |          5  t          dd
          |k     d d d            n# 1 swxY w Y   t          g dd
          }d}|t          j        t          j	        fv r|n|}t          j        t
          |          5  ||k     d d d            d S # 1 swxY w Y   d S )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    GGGdSSSt^44N4NNN]9C000 	- 	-F6,,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- ]9C000 	- 	-6$$$,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- :::EEEU+RX/FFF''C]9G444 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 O4NNN]9C000 	. 	.F6-----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ]9C000 	. 	.6%%%--	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. :::FFFR+RX/FFF''C]9G444 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sl   
A,,A03A0B44B8;B8D  D$'D$E..E25E2F66F:=F:H##H'*H'c                 d   t          g d|          }|d         }||k    }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        k    }t          j        g d          }t          j        ||           t
          j        |k    }t          j        ||           t          g d|          }||k     }t          j        g d          }t          j        ||           ||k    }t          j        g d          }t          j        ||           ||k    }t          j        g d          }t          j        ||           ||k    }t          j        g d	          }t          j        ||           ||k    }t          j        g d
          }t          j        ||           d S )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CC$OOO1gh22233
#FC000t
#FC000h33344
#FC0004
#FC000h///00
#FC0004
#FC000CCC$OOOh22233
#FC000h33344
#FC000h///00
#FC000h00011
#FC000h22233
#FC00000r    c                 @   t          g d|          }t          g dd          }d| d}t          j        t          |          5  ||k     d d d            n# 1 swxY w Y   ||k    }t	          j        g dt          	          }t          j        ||           d S )
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CC$OOOCCC$OOOS4SSS]9C000 	 	4KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 8888EEE
#FH55555s   AA"Ar   Nc                    t          t          d          t          j        t          d          g          }t          t          j        t          j        t          d          g          }|*|                    |          }|                    |          }||k    }t          j        g d          }t          j        ||           ||k    }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        k    |           t          j        t          j        |k    |           t          j        g d          }t          j        |t          j        k     |           t          j        t          j        |k    |           d S )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  s   F<00"&&:N:NOPPRVRVVL-A-ABCC;;u%%DLL''E800011
#FH5558///00
#FH555811122
#DBFNH===
#BFeOX>>>8...//
#DBFNH===
#BFdNH===811122
#D26M8<<<
#BFTM8<<<<<r    )r]   r^   r_   ry   r   r`   ra   rb   r   r   r   r   r   rU   r   rk   r    r   rm   rm      sq       1 1 1"* * *& [V%6%6%677#* #* 87#*J [V%6%6%677 *  * 87 *D [V%6%6%677    87 D [V%6%6%677)1 )1 87)1V [V%6%6%677
6 
6 87
6 [Wvtn55= = 65= = =r    rm   c                       e Zd Zd ZdS )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        ||k    |           t          g d          }t          j        ||k    |           t          g d          }t          j        ||k     |           t          g d          }t          j        ||k    |           t          g d          }t          j        ||k    |           d S )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0011
ts{C000...//
ts{C00000011
tcz3//////00
tcz3//////00
ts{C000...//
ts{C00000r    N)r]   r^   r_   r   rk   r    r   r   r     s#        $1 $1 $1 $1 $1r    r   c                   $    e Zd ZdZd Zd Zd ZdS )*TestPeriodIndexSeriesComparisonConsistency2Test PeriodIndex and Period Series Ops consistencyc                 >   t          |          } ||          }t          |t          j        t          j        f          sJ t          j        ||           t          |          } ||          }t          ||j	                  }t          j
        ||           d S Nname)r   
isinstancerc   rj   r2   ndarrayr0   r4   r   r   r   )r5   rt   funcr9   r7   r:   r   rx   s           r   _checkz1TestPeriodIndexSeriesComparisonConsistency._check  s     &!!c (RXrz$:;;;;;
)))6NNaXFK000
vs+++++r    c                    t          g ddd          }|d         fd}t          j        g dt          j                  }|                     |||           fd	}|                     |||           fd
}t          j        g dt          j                  }|                     |||           fd}|                     |||           fd}t          j        g dt          j                  }|                     |||           fd}t          j        g dt          j                  }|                     |||           fd}t          j        g dt          j                  }|                     |||           d S )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                     | k    S rS   rk   r   s    r   rX   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r    r   c                     | k    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                     | k    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   888s
 
 
 !fh222"(CCCCC   CC   h000AAACC   CC   h000AAACC   h222"(CCCCC   h000AAACC     r    c                    t          g ddd          }|d         fd}t          j        g dt          j                  }|                     |||           fd	}|                     |||           d
 }t          j        g dt          j                  }|                     |||           d }|                     |||           fd}t          j        g dt          j                  }|                     |||           fd}|                     |||           d }t          j        g dt          j                  }|                     |||           d }|                     |||           fd}t          j        g dt          j                  }|                     |||           fd}t          j        g dt          j                  }|                     |||           d }t          j        g dt          j                  }|                     |||           d }t          j        g dt          j                  }|                     |||           d S )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>       a26k r    r   c                 "    t           j        | k    S rS   r   rV   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>#      bfk r    c                     | k    S rS   rk   r   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>&  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   r   rV   s    r   rX   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>,  r   r    r   c                 "    t           j        | k    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        k    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   4443U
 
 
 !fh222"(CCCCC   CC   !!h33328DDDCC   !!CC   h000AAACC   CC   !!h///rx@@@CC   !!CC   h111BBBCC   h222"(CCCCC     h33328DDDCC   !!h33328DDDCC     r    N)r]   r^   r_   __doc__r   r   r   rk   r    r   r   r     sG        <<, , , ! ! !<,! ,! ,! ,! ,!r    r   c                       e Zd Zd ZdS )TestPeriodFrameArithmeticc                 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          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             d S )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  sY   \YS1116)#3N3N3NOYS1116)#3N3N3NO 
 
 #w}++++#w}++++93'''flXq3wC0???XrCxc2&AAA 
 
 	a"fc***
b1fb3h///lYS1116)#3N3N3NOYS1116)#3N3N3NO 
 
 3x~,,,,3x~,,,,lXq3wC0???XrCxc2&AAA 
 
 	cBh,,,
b3hS11111r    N)r]   r^   r_   r  rk   r    r   r   r   G  s#        '2 '2 '2 '2 '2r    r   c                      e Zd Zd Zd Zd Zd Zej        	                    dg d          d             Z
ej        	                    dg d          e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        	                    d ed           ed                                           ed                                           ej        ddd           ej        ddd           ej        ddd          j         ej        ddd          j        d ej        g d          g	          d             Zd Zd Zej        	                    dg d          ej        	                    dddg          d                         Zej        	                    d ej        ej        g          d!             Zej        	                    d ej        ej        g          d"             Zd# Z d$ Z!ej        	                    d%d& ej        d&ej"        '          g          d(             Z#d) Z$d* Z%ej        	                    d+d,d-g          d.             Z&d/ Z'ej        	                    d0ej        ej        g          ej        	                    d1e(j)        e*j+        g          d2                         Z,ej        	                    d0ej        ej        g          d3             Z-d4 Z.ej        	                    d5g d6          d7             Z/d8 Z0d9 Z1d: Z2d; Z3d< Z4d= Z5d> Z6d? Z7d@ Z8dA Z9ej        	                    d+d,d-g          dB             Z:ej        	                    d ej        dCgdDz  dE'           e;j<        dCgdDz  dE'          g          dF             Z=dG Z>dH Z?dI Z@dS )JTestPeriodIndexArithmeticc                 ^   t          ddd          }t          ddd          }t          j        ||          }d}t          j        t
          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t
          |          5  ||z  }d d d            d S # 1 swxY w Y   d S )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=== oc>22
 A]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	5LC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   A))A-0A-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        ||           d S )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  s    
 :C;;;Zc1===h8R#XJN++u
fh///u
c8,,,,,r    c                 h   t          ddd          }|dd                              dt          j                  }|dd                              |dd                    sJ ||z
  }|j        }t          j        t          j        d|z  d|z  d|z  d|z  g          }t          j        ||           d S )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;;;ABBq"&))QRRyABB(((((uh8RVQWa#gq3wCHI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            d S # 1 swxY w Y   d S )	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  s    :C;;;Zc1===oc>2277L]0<<< 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ,A??BBnr   r   r{   r>   c                    d}d}t          |g ||                    }t          |g ||                    }t          |g|j        j                  t          |g|j        j                  z
  }t          j        ||z
  |           d S )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  s     $ll1oo666$ll1oo666vBGL999KF=
 =
 =
 
 	rBw2222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        |
|           d S )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!}}"va1151D11$d+++$d+++bvDI666F:
 :
 :
 
 	fh/////r    r(   
2016-01-01r{   r  rr   zEurope/Brussels)r@   tzr   z
Asia/TokyogQ	@)g       @g      @g      @c                 f   t          ddd          }t          j        ||          }d                    g d          }t	          |||           t          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t          j        t          |          5  ||z
   d d d            d S # 1 swxY w Y   d S )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;;;oc>22hh  
 
 	#3s333]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   +A==BB#B55B9<B9C--C14C1D&&D*-D*c                 $   t          ddd          }t          g d          }|j        }d}t          j        t
          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t
          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t
          |          5  ||z
   d d d            n# 1 swxY w Y   d}t          j        t
          |          5  ||z
   d d d            d S # 1 swxY w Y   d S )	Nr  Qr{   r	  -1 Dayr6  r6  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00 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	@]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   AA!A BBB8C

CC2DD	D	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            n# 1 swxY w Y   t          j        t          |	          5  ||z
   d d d            d S # 1 swxY w Y   d S )
Nr  90Dr{   r	  r5  z
12/31/1999z1/2/2000cannot subtract .* from .*r   )r   r
   rt   r0   r  r`   r   r   )r5   r  r7  r8  r9   r:   r   s          r   test_pi_add_sub_td64_array_tickz9TestPeriodIndexArithmetic.test_pi_add_sub_td64_array_tick  s    :E1===;;;<<
5!DDDs
fh///u
fh///s
fh///
fh///
BBBs
fh///u
fh///+]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]9C000 	 	#II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   DD!D EEEpi_freq)r!   Wr4  r  tdi_freqc                 |   |}|t           j        t          j        fvr|nt           j        }t          ddg|          }t          d          |z   }|                    |          }t          j        ||          }	|dk    r||	z
  }
|	                    d          |z
                      |          }t          j        ||          }t          j
        |
|           |d         |	z
  }
|d         	                    d          |z
                      |          }t          j        ||          }t          j
        |
|           d S |dk    r{d	}t          j        t          |
          5  ||	z
   d d d            n# 1 swxY w Y   t          j        t          |
          5  |d         |	z
   d d d            d S # 1 swxY w Y   d S d}t          j        t          |
          5  ||	z
   d d d            n# 1 swxY w Y   t          j        t          |
          5  |d         |	z
   d d d            d S # 1 swxY w Y   d S )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@  r>  boxr8   r7  dtirC   td64objr:   r9   r   s                r   test_parr_sub_td64arrayz1TestPeriodIndexArithmetic.test_parr_sub_td64array4  sC    "(BK!888ssbhi3(CCC-..4]]7## /#s++c>>'\F,,s2==gFFHx66HOFH--- UW_F1**3//#5@@IIHx55HOFH-----^^E  4C@@@  W               4C@@@    1                                    7Cy444  W              y444    1                                   sH   %E77E;>E;F66F:=F: G22G69G6H11H58H5rE  c                    t          t          d          t          d          g          } |t          j                            dd          t          j                            dd          g          }t          t          d          t          d          g                              t                    }t          j        |          5  ||z   }d d d            n# 1 swxY w Y   t          j	        ||           t          j        |          5  ||z   }d d d            n# 1 swxY w Y   t          j	        ||           t          j        t          j                            d	          t          j                            d	          g          }d
}	t          j        t           |	          5  t          j        |          5  ||z    d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t           |	          5  t          j        |          5  ||z    d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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_warningrE  rC   offsr9   resres2
unanchoredr   s
             r   test_pi_add_offset_arrayz2TestPeriodIndexArithmetic.test_pi_add_offset_arraye  s    &**F8,<,<=>>s
%%%<<
%%"%==
 
 x 0 0&2B2BCDDKKFSS'(;<< 	 	t)C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
c8,,,'(;<< 	 	"9D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
dH---Xrz33RZ5F5F5F5L5LMNN
 C]0<<< 	  	 +,?@@    Z                             	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ]0<<< 	  	 +,?@@    R                             	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   C  C$'C$D&&D*-D*5G3
GG3G 	 G3#G 	$G33G7:G7I.I 4I I	II	IIIc                 F   t          t          d          t          d          g           |t          j                            dd          t          j                            dd          g          t          fdt          t                              D                       }|                    t                    }t          j
        |          5  z
  }d d d            n# 1 swxY w Y   t          j        ||            |t          j                                        t          j                            d	          g          }d
}t          j        t           |          5  t          j
        |          5  |z
   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t           |          5  t          j
        |          5  |z
   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrJ  rK  r   rL  rM  rN  c                 2    g | ]}|         |         z
  S rk   rk   )r~   r  r(   rC   s     r   r   zFTestPeriodIndexArithmetic.test_pi_sub_offset_array.<locals>.<listcomp>  s&    IIIQ1a 0IIIr    r   rQ  z6Input has different freq=-1M from Period\(freq=Q-DEC\)r   )r   r   rc   rR  rS  ri   lenrT   rU   r0   rT  r  MonthEndDayr`   r   r   )	r5   rW  rE  r9   rY  anchoredr   r(   rC   s	          @@r   test_pi_sub_offset_arrayz2TestPeriodIndexArithmetic.test_pi_sub_offset_array  s6    &**F8,<,<=>>
%%%<<
%%"%==
 
 IIIII%B..IIIJJ??6**'(;<< 	 	u*C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
c8,,,3
++--rz~~~/B/BCDD H]0<<< 	 	+,?@@  X              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]0<<< 	 	+,?@@  2              	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s~   C//C36C33F1FF1F	F1!F	"F11F58F5H,G>2H>H	HH	HHHc                     t          ddd          }||z   }t          ddd          }t          j        ||           ||z  }t          j        ||           d S )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  sj    -CDDDs 2bIII
fh///s

c8,,,,,r    c                     t          ddd          }||z
  }t          ddd          }t          j        ||           ||z  }t          j        ||           dS )z
        PeriodIndex.__sub__ and __isub__ with several representations of
        the integer 1, e.g. int, np.int64, np.uint8, ...
        re  r  rs   r	  z2000-01-01 08:00Nrf  rg  s        r   test_pi_sub_isub_intz.TestPeriodIndexArithmetic.test_pi_sub_isub_int  sl    
 -CDDDs 2bIII
fh///s

c8,,,,,r    fiverZ   r   c                 h    t          dd          }||z
  }|| z   }t          j        ||           d S )Nro   2   r?   rf  )r5   rl  r  r:   rx   s        r   test_pi_sub_intlikez-TestPeriodIndexArithmetic.test_pi_sub_intlike  sA    9b111tdUm
fc*****r    c                 r   t          ddd          }t          j        d          }||z   }t          j        d t          ||d          D                       }t          j        ||           ||z
  }t          j        d t          ||d          D                       }t          j        ||           d S )	Nr-  rs   2Drr   c                     g | ]
\  }}||z   S rk   rk   r~   rW   ys      r   r   zQTestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1.<locals>.<listcomp>       IIItq!QUIIIr    T)strictc                     g | ]
\  }}||z
  S rk   rk   rs  s      r   r   zQTestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1.<locals>.<listcomp>  ru  r    )r   r2   rf   rc   rj   zipr0   r  )r5   rC   arrr:   r9   s        r   #test_pi_add_sub_int_array_freqn_gt1z=TestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1  s     ,>>>immc8IIs2s4/H/H/HIIIJJ
fh///c8IIs2s4/H/H/HIIIJJ
fh/////r    c                 N   t          ddd          }|t          j                            d          z
  }t          ddd          }t	          j        ||           |t          j                            d          z  }t	          j        ||           t          dd	d
          }|t          j                            d          z
  }t          ddd
          }t	          j        ||           |t          j                            d          z  }t	          j        ||           d S )Nr   2024r   r*   rZ   20092019r   2016-12rq   z2013-08z2016-07)r   rc   rR  YearEndr0   r  r`  r5   r  r:   r9   s       r   test_pi_sub_isub_offsetz1TestPeriodIndexArithmetic.test_pi_sub_isub_offset  s    66444rz))!,,,S999
fh///rz!!!$$$
c8,,,9ic:::rz**1---	93???
fh///rz""1%%%
c8,,,,,r    	transposeTFc                 D   t          dd          }t          |g          }t          dgd          }t          j        |||          }t          j        |||          }||j        z   }t          j        ||           |j        |z   }t          j        ||           d S )N2016-01r   r*   z2016-03r  )r   r   r0   r1   r+   r4   )r5   r6   r  rw   rC   r9   r:   s          r   test_pi_add_offset_n_gt1z2TestPeriodIndexArithmetic.test_pi_add_offset_n_gt1  s    
 YT***#	{666_R9EEE?8^yQQQch
)))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        ||           d S )Nr  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  s     )4000	{666_R0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        ||           d S )NrJ  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     &**F5MM:;;
Ar7##Bx 0 0&--@AA
fh/////r    c                 v   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            d S # 1 swxY w Y   d S )NrJ  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     &**F5MM:;;
Ar7##ex 0 0&--@AA
fh///<]9C000 	 	BJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B..B25B2c                 4   |}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                    d	d
g          }t          j        t          |          5  ||z
   d d d            d S # 1 swxY w Y   d S )N
2014-05-01r{   rq  rr   )
2014-05-04z
2014-05-06z
2014-05-08r*   )
2014-04-28z
2014-04-30z
2014-05-02r0  r  4cannot subtract PeriodArray from timedelta64\[[hD]\]r   )	r   r0   r1   r   r4   r1  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   sy   
 <>>>oc>22IIIPTUUU?8^<<u
)))
))) IIIPTUUU?8^<<u
)))hh>G
 
 ]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :DDDfreqstr)5ns5us5ms5s5min5h5Dc                 L   |}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                    ddg          }	t          j        t          |	          5  ||z
   d d d            d S # 1 swxY w Y   d S )	Nr     rr   r   r0  r  r  r   )r   r0   r1   r4   r1  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AAoc>22qwGGG?8^<<u
)))
)))  qwGGG?8^<<u
)))hh>G
 
 ]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   DD Dc                     |}t          ddd          }t          ddd          }||z   }t          j        ||           ||z  }t          j        ||           d S )Nr  
2014-05-15r!   r*   r  z
2014-05-18rf  r5   r  r(   r  r9   r:   s         r   $test_pi_add_iadd_timedeltalike_dailyz>TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_dailya  m    <C@@@lEEEu
fh///u
c8,,,,,r    c                     |}t          ddd          }t          ddd          }||z
  }t          j        ||           ||z  }t          j        ||           d S )Nr  r  r!   r*   r  z
2014-05-12rf  r  s         r   $test_pi_sub_isub_timedeltalike_dailyz>TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_dailym  r  r    c                 H   |}t          ddd          }t          j        ||          }d                    ddg          }t	          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z  }d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z  }d d d            d S # 1 swxY w Y   d S )	Nr  r  r!   r*   r0  z7Input has different freq(=.+)? from Period.*?\(freq=D\)rB  r   r   r0   r1   r1  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  s3    <C@@@oc>22hh LE	
 
 ]0<<< 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]0<<< 	 	5LC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]0<<< 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]0<<< 	 	5LC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   A..A25A2B&&B*-B*CC"%C"DDDc                     |}t          ddd          }t          ddd          }||z   }t          j        ||           ||z  }t          j        ||           d S )N2014-01-01 10:002014-01-05 10:00r  r*   z2014-01-01 12:00z2014-01-05 12:00rf  r5   	two_hoursr(   r  r9   r:   s         r   %test_pi_add_iadd_timedeltalike_hourlyz?TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_hourly  q    -/ALLL 24FSQQQu
fh///u
c8,,,,,r    c                 h   |}t          ddd          }t          j        ||          }d                    ddg          }t	          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t	          j        t          |          5  ||z  }d d d            d S # 1 swxY w Y   d S )	Nr  r  r  r*   r0  z7Input has different freq(=.+)? from Period.*?\(freq=h\)rB  r   r  )r5   r   r6   r(   r  r   s         r   2test_parr_add_timedeltalike_mismatched_freq_hourlyzLTestPeriodIndexArithmetic.test_parr_add_timedeltalike_mismatched_freq_hourly  sO    -/ALLLoc>22hh LE	
 
 ]0<<< 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ]0<<< 	 	5LC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   A..A25A2B''B+.B+c                     |}t          ddd          }t          ddd          }||z
  }t          j        ||           ||z  }t          j        ||           d S )Nr  r  r  r*   z2014-01-01 08:00z2014-01-05 08:00rf  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                            d          z   }t          ddd          }t	          j        ||           |t          j                            d          z  }t	          j        ||           d S )Nr   r|  r   r*   rZ   r~  2029)r   rc   rR  r  r0   r  r  s       r   "test_add_iadd_timedeltalike_annualz<TestPeriodIndexArithmetic.test_add_iadd_timedeltalike_annual  s     66444rz))!,,,S999
fh///rz!!!$$$
c8,,,,,r    c                    |}t          ddd          }d}t          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t          |          5  ||z  }d d d            n# 1 swxY w Y   t          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t          j        t          |          5  ||z  }d d d            d S # 1 swxY w Y   d S )Nr   r|  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44M]0<<< 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]0<<< 	 	5LC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]0<<< 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]0<<< 	 	5LC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	G   AAA*A<<B B "B44B8;B8C--C14C1c                 *   t          ddd          }t          ddd          }|t          j                            d          z   }t	          j        ||           |t          j                            d          z  }t	          j        ||           d S )Nr   r  rq   r*   z2014-06z2017-05rZ   )r   rc   rR  r`  r0   r  )r5   r  r9   r:   s       r    test_pi_add_iadd_timedeltalike_Mz:TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_M  s    9ic:::	93???rz**1---
fh///rz""1%%%
c8,,,,,r    c                    |}t          ddd          }d}t          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t          |          5  ||z  }d d d            n# 1 swxY w Y   t          j        t          |          5  ||z
   d d d            n# 1 swxY w Y   t          j        t          |          5  ||z  }d d d            d S # 1 swxY w Y   d S )Nr   r  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<<< 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]0<<< 	 	5LC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]0<<< 	 	%KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]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            d S # 1 swxY w Y   d S )
N
1994-04-01rG   19Drr   r   r*   r  r<  r   )
r   r2   timedelta64r   r0   r1   r4   r`   r   r   )	r5   r6   r  rC   r(   r9   objr:   r   s	            r   test_parr_add_sub_td64_natz4TestPeriodIndexArithmetic.test_parr_add_sub_td64_nat  sC    ,>>>u%%w{777ob.IFFF?8^yQQQu
)))
)))u
)))+]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   C((C,/C,r   rG   m8[ns]c                    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            n# 1 swxY w Y   |                                }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            d S # 1 swxY w Y   d S )Nr  rG   r  rr   r   r*   r<  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   sF    ,>>>w{777ob.11?8^<<u
)))
)))u
)))+]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 

>!T**a1w%145AAA?8^<<u
)))
)))u
)))]9C000 	 	CKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   =CCC#F66F:=F:c                 t    t          dd          }|j        }||z
  }||z
  }t          j        ||           d S )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*  sF    ,222x7
fh/////r    c                    t          ddd          }|j        }t          j        t          d          t          j                            d          dg          }t          j        |          5  ||z   }d d d            n# 1 swxY w Y   t          g dd	          j
                            t                    }t          j        ||           t          j        |          5  ||z
  }d d d            n# 1 swxY w Y   t          d
gdz  d	          j
                            t                    }t          j        ||           d S )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   rR  ra  r0   rT  r   _datarT   rU   r4   )r5   rW  rC   rL   r(   r:   r9   s          r   test_parr_add_sub_object_arrayz8TestPeriodIndexArithmetic.test_parr_add_sub_object_array3  s   ,<<<x)+++RZ^^A->->BCC'(;<< 	" 	"E\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 666S
 
 

v 	 	)))'(;<< 	" 	"E\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ~1<<<BII&QQ
)))))s$   0BB	B&C88C<?C<c                 D   t          d          }t          dd          }t          j        |gd          }t	          j        ||          }d}t          j        t          |          5  ||z    d d d            n# 1 swxY w Y   t          j        t          |          5  ||z    d d d            n# 1 swxY w Y   d}t          j        t          |          5  |t          |g          z    d d d            n# 1 swxY w Y   t          j        t          |          5  t          |g          |z    d d d            n# 1 swxY w Y   t          j        t          |          5  |t          j        |g          z    d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |g          |z    d d d            n# 1 swxY w Y   |t          j
        u rd}nd	}t          j        t          |          5  |t          j
        |g          z    d d d            n# 1 swxY w Y   |t          j
        u rd}nd
}t          j        t          |          5  t          j
        |g          |z    d d d            d S # 1 swxY w Y   d S )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   ry  r   s         r    test_period_add_timestamp_raisesz:TestPeriodIndexArithmetic.test_period_add_timestamp_raisesG  sw   vV#&&&huK000oc>224]9C000 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 9]9C000 	 	&",,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	 	B4LL3	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9C000 	! 	!"(B4..  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!]9C000 	! 	!HbTNNS  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! R\))<CCVC]9C000 	% 	%",t$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%R\))<CCWC]9C000 	% 	%L"$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   *A<<B B "B44B8;B8C<<D D "EE	E(FFF3GGGH66H:=H:/JJJ)Ar]   r^   r_   r  r  r  r  r`   ra   rb   r#  rc   rR  r  rS  r`  Weekr,  r   to_pydatetimeto_datetime64rd   r  r2   r3   r2  r9  r=  rH  rj   r\  rc  ri  rk  int64ro  rz  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  rk   r    r   r  r  r  s         "- - - 0 0 0   [S,,,//3 3 0/3 [S,,,//[Z)Z"O4Z $'Z_i(		
 0 0  0/0& [ Il##Il##1133Il##1133BM,<<<BM,6GHHHBM,<<<BBM,lCCCIBH___%%	
 " # "4  "  > [Y(<(<(<==[Z$55*  *  65 >=* ^ [URXrx$899    :9 < [URXrx$899  :9:- - -
- 
- 
- [Va!28)D)D)D%EFF+ + GF+0 0 0- - -$ [[4-88* * 98*$* * *$ [\BHbh+?@@[THL#(#;<<0 0 =< A@0 [\BHbh+?@@  A@"  B [Y(W(W(WXX  YX>
- 
- 
-
- 
- 
-  2	- 	- 	-  ,	- 	- 	-- - -  - - -   [[4-88  98& [BHeWq[111)N)5'A+XFFF	
   F0 0 0* * *(#% #% #% #% #%r    r  c                       e Zd Zd Zd ZdS )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                                    sJ t          j        ||          }||z   }t          j	        ||           ||z   }t          j	        ||           d S )
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-K-KL
 
 
 yK''''Ls+++VLs-K-K-KL
 
 

 oc>22R\))J+-2244444?8^<<z!
)))c!
)))))r    c                 v   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             d S )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  sc   Ls+++VLs-K-K-KL
 
 
 yK''''\,,,h1s7AG,5GGG
sSy(333
sSy"x-888Ls+++VLs-K-K-KL
 
 
 x;&&&&1s7AG,5GGG
rCx222
sRxh77777r    N)r]   r^   r_   r  r  rk   r    r   r  r  m  s2        * * *28 8 8 8 8r    r  c                       e Zd ZdZd Zd Zej                            dddg          e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dS )TestPeriodIndexSeriesMethodsr   c                     t          |          } ||          }t          j        ||           t          |          } ||          }t          ||j                  }t          j        ||           d S r   )r   r0   r4   r   r   r   )r5   rt   r   r9   r7   r:   r   rx   s           r   r   z#TestPeriodIndexSeriesMethods._check  ss    &!!c
)))VnncXFK000
vs+++++r    c                 6   t          g ddd          }t          g ddd          }|                     |d |           |                     |d |           |                     |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        ||           d S )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[   rN  )r   r   r   r+   rc   rj   r0   r  )r5   r7   r9   r:   r  rx   s         r   test_pi_opsz(TestPeriodIndexSeriesMethods.test_pi_ops  sO   888s
 
 
 888s
 
 
 	C(333C(333C!G__c222vic2222hhCS!c'1s7;%HHH
fc***	,,,s2hCc28R#X>UKK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    BF3OO r    c                 ,    t          j        ||           S rS   r  r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  s    BF2sOO r    c                 ,    t          j        | |          S rS   r2   subtractr  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  s    BKR00 r    c                 ,    t          j        ||           S rS   r  r  s     r   rX   z%TestPeriodIndexSeriesMethods.<lambda>  s    BKC00 r    c                    t          g ddd          }t          j        ||          }d                    g d          }t	          j        t          |          5   |||           d d d            d S # 1 swxY w Y   d S )Nr   rq   r7   r   r0  )zunsupported operand type\(s\)zcan only concatenatezmust be strzobject to str implicitlyr   )r   r0   r1   r1  r`   r   r   )r5   r  r   r6   r7   r  r   s          r   test_parr_ops_errorsz1TestPeriodIndexSeriesMethods.test_parr_ops_errors  s     888s
 
 
 oc>22hh  
 
 ]9C000 	 	DbMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A66A:=A:c                    t          g ddd          }t          g ddd          }|                     |d |           |                     |d |           |                     |d |           |                     |d	z   d
 |           |                     |d	z   d |           t          g ddd          }t          g ddd          }|                     |d |           |                     |d |           |                     |d |           |                     |dz   d |           |                     |dz   d |           d S )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>      26!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'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   4443U
 
 
 4443U
 
 
 	C(333C(333C//:::C!G__c222C!G88#>>> 4444e
 
 
 4444e
 
 
 	C(333C(333C//:::C!G__c222C!G88#>>>>>r    c                    t          g ddd          }d }t          g ddd          }|                     |||           d }t          g ddd          }|                     |||           d	 }t          g d
dd          }|                     |||           d }t          g ddd          }|                     |||           d S )Nr  rq   r7   r   c                 4    | t          j        g d          z   S Nr  r2   r3   rV   s    r   rX   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>      a"(<<<000 r    )r   r   r   r  c                 T    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     bfQ 7 788 r    )r   r   r   r  c                 4    | 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                 T    t          j        | t          j        g d                    S )N)r{   r   r{   rN  )r2   r  r3   rV   s    r   rX   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>  s     bk!RXmmm%<%<== r    )z2010-10r.  r   r  r%  r5   r7   r   rx   s       r   test_pi_ops_array_intz2TestPeriodIndexSeriesMethods.test_pi_ops_array_int  s/   4443U
 
 
 104443U
 
 
 	CC   884443U
 
 
 	CC   004443U
 
 
 	CC   ==4443U
 
 
 	CC     r    c                 B   t          g ddd          }d }t          g ddd          }|                     |||           d }t          g ddd          }|                     |||           d	 }t          g d
dd          }|                     |||           d S )Nr   z
2011-02-01z
2011-03-01z
2011-04-01r!   r7   r   c                 D    | t           j                                        z   S rS   rc   rR  ra  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                            d          z   S r  r5  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                            d          z
  S r  r5  rV   s    r   rX   zATestPeriodIndexSeriesMethods.test_pi_ops_offset.<locals>.<lambda>5  r7  r    )z
2010-12-30z
2011-01-30z
2011-02-27z
2011-03-30r%  r0  s       r   test_pi_ops_offsetz/TestPeriodIndexSeriesMethods.test_pi_ops_offset  s    DDD
 
 

 +*DDD
 
 

 	CC   ++DDD
 
 

 	CC   ++DDD
 
 

 	CC     r    c                 `   t          g ddd          }t          |          }d}||fD ]}t          j        t          |          5  |t
          j                            d          z    d d d            n# 1 swxY w Y   t          j        t          |          5  t
          j                            d          |z    d d d            n# 1 swxY w Y   t          j        t          |          5  |t
          j                            d          z
   d d d            n# 1 swxY w Y   d S )Nr3  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   rR  rU  )r5   r7   r   r   r  s        r   test_pi_offset_errorsz2TestPeriodIndexSeriesMethods.test_pi_offset_errors=  s   DDD
 
 

 Skk< 	 : 	) 	)C4C@@@ ) )bjooa(((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) 4C@@@ ) )
""S(() ) ) ) ) ) ) ) ) ) ) ) ) ) ) 4C@@@ ) )bjooa(((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	) 	)s6   #A77A;	>A;	#CC	C	2#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 d S )Nr   rq   r7   r   2012-01r*   ir   rL     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   888s
 
 
 vic2222hhc	39cCicBOOO
fc***S&"="="=>>
fc***	,,,s2hS"s(BHa#g>UKKK
fc***VIC888#>>
fc***VRVRVRV,5
 
 
 ve#....
fc***{ch&&&&C(((3.
fc***{ch&&&&&&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
  |           d S )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  sy    4443U
 
 
 bfX\XFFF
bfslC000
cBFlC0000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
  |           d S )Nr   rq   r7   r   r=  r*   r>  r?  r@  r   rL  rs   rG   r  r  r   )r   r   r+   rc   rj   r   r0   r  r
   r2   rB  rC  s        r   test_pi_sub_period_natz3TestPeriodIndexSeriesMethods.test_pi_sub_period_nat|  sT   4443U
 
 
 vic2222hhc	2639b3h?eLLL
fc***	,,,s2hS"&"s(AG<5III
fc***VRVRVRV,5
 
 
 	cF5s$;$;$;;SAAA
fU555;SAAAAAr    N)r]   r^   r_   r   r   r  r`   ra   rb   r  r&  r1  r9  r;  rD  rF  rH  rk   r    r   r  r    s0       <<	, 	, 	,+ + +. [TE3<00[$$$$$$$$++++0000		
    10"? ? ?<! ! !8! ! !<) ) ),' ' '@1 1 1B B B B 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   rR  	YearBegin
MonthBeginrV  _common_mismatchfixtureto_pytimedeltar  r   r%   r'   rm   r   r   r   r  r  r  rk   r    r   <module>rV     s                                                 - - - - - -          JJ!J  	",,..r3	" 
	     sC  	s**,,	s 
	    * * * * * * * *Dh= h= h= h= h= h= h= h=V%1 %1 %1 %1 %1 %1 %1 %1P_! _! _! _! _! _! _! _!L(2 (2 (2 (2 (2 (2 (2 (2Vx% x% x% x% x% x% x% x%v18 18 18 18 18 18 18 18hnB nB nB nB nB nB nB nB nB nBr    