
    d                     n   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	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  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)PerformanceWarning)PeriodIndexSeries	TimedeltaTimedeltaIndexperiod_range)ops)TimedeltaArray)assert_invalid_addsub_typeassert_invalid_comparisonget_upcast_boxc                      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2017D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          _/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/arithmetic/test_period.pytest_eq_scalarz-TestPeriodArrayLikeComparisons.test_eq_scalar+   s    222===oc>22c5$//8///00?8T22
)))))    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   r   r    to_numpyr   r   r   r!   )r"   r#   pir   r%   r'   r&   s          r(   test_compare_zerodimz3TestPeriodArrayLikeComparisons.test_compare_zerodim8   s     &!,,,q)**_R00b%..u877788?8T22
)))))r*   scalarfooz
2021-01-01r-   days	   g      #@  FNc                 t    t          dd          }t          j        ||          }t          |||           d S Nr,   r-   r.   r   r   r   r   )r"   r#   r4   r2   parrs        r(   test_compare_invalid_scalarz:TestPeriodArrayLikeComparisons.test_compare_invalid_scalarF   s?      &!,,,r>22!$?????r*   r,   r.   1D)r9   i  i  i  i  c                 t    t          dd          }t          j        ||          }t          |||           d S r;   r<   )r"   r#   r   r2   r=   s        r(   test_compare_invalid_listlikez<TestPeriodArrayLikeComparisons.test_compare_invalid_listlikeZ   s?      &!,,,r>22!$~>>>>>r*   	other_boxc                 6    |                      t                    S N)astypeobjectxs    r(   <lambda>z'TestPeriodArrayLikeComparisons.<lambda>n   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   r   r   r   r   r    r!   )	r"   r#   rB   r2   r=   r   r%   r&   r'   s	            r(   test_compare_object_dtypez8TestPeriodArrayLikeComparisons.test_compare_object_dtypen   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)   r3   r   r
   r>   pd
date_ranger    timedelta_ranger   arangerE   float64listrangerF   IndexrA   rM    r*   r(   r   r   &   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   valuesr   assert_numpy_array_equalreshaper   r    )r"   r$   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-01rd   r   rc      c                     g | ]}|k    	S r\   r\   .0rH   vals     r(   
<listcomp>zKTestPeriodIndexComparisons.test_parr_cmp_period_scalar2.<locals>.<listcomp>       (((AG(((r*   TrK   c                     g | ]}|k    	S r\   r\   ro   s     r(   rr   zKTestPeriodIndexComparisons.test_parr_cmp_period_scalar2.<locals>.<listcomp>   rs   r*   )r   r   r   r   r!   )r"   r#   r2   r&   serr%   r'   rq   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   )rb   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)FFTTr0   )FTTT)TTFF)r   r   r   r   r   r   r    r!   )r"   r   r#   baseri   r%   rj   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 )Nrz   r   )r|   r{   r}   2011-05TFFTFTTFTr   TFFTFTTFr   r   )r"   r   r#   r   r$   r%   rj   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 )Nrz   r   )Invalid comparison between dtype=period\[z\] and Periodmatch2011A)r   201220132014z@Invalid comparison between dtype=period\[A-DEC\] and PeriodArray4Mz=Invalid comparison between dtype=period\[4M\] and PeriodArray)
r   r   r   rQ   raises	TypeErrorr   to_arrayrT   r    )r"   r   r#   r   msgr$   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      FFFTFFFFTTTTr|   r{   r~   r   r0   r   r   )r   r   r    r   rg   rT   r   )r"   r   idx1ri   r'   rj   idx2s          r(   test_pi_cmp_natz*TestPeriodIndexComparisons.test_pi_cmp_nat;  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   rQ   r   r   r   r    boolr   rg   )r"   r   r   diffr   r'   r&   s          r(   &test_pi_cmp_nat_mismatched_freq_raiseszATestPeriodIndexComparisons.test_pi_cmp_nat_mismatched_freq_raisesg  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   rT   r   rE   r   r    r   rg   )r"   r   leftrightr'   r&   s         r(   test_comp_natz(TestPeriodIndexComparisons.test_comp_natu  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*   )rN   rO   rP   rk   rv   rQ   rR   rS   r   r   r   r   r   rF   r   r\   r*   r(   r^   r^      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*   r^   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|   rb   r   r~   r   r{   r   r   r   r   r   r   r   )r	   r   r   assert_series_equal)r"   r   ru   rj   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)rN   rO   rP   r   r\   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   
isinstancerT   r[   r   ndarrayr   r!   r	   r   r   )r"   rf   funcr&   r$   r'   srj   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 )Nrz   rb   r$   r   r   re   c                     | k    S rD   r\   rH   ri   s    r(   rI   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>      a3h r*   r   r   c                     | k    S rD   r\   r   s    r(   rI   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>      cQh r*   c                     | k    S rD   r\   r   s    r(   rI   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r*   r   c                     | k    S rD   r\   r   s    r(   rI   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r*   c                     | k    S rD   r\   r   s    r(   rI   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r*   )TTTFc                     | k    S rD   r\   r   s    r(   rI   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>      a#g r*   r   c                     | k    S rD   r\   r   s    r(   rI   zPTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period.<locals>.<lambda>  r   r*   r   r   r    bool_r   r"   r$   frj   ri   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~   rb   r$   r   re   c                     | k    S rD   r\   r   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r*   r   r   c                     | k    S rD   r\   r   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r*   c                 "    | t           j        k    S rD   rT   r   rG   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>      a26k r*   r   c                 "    t           j        | k    S rD   r   rG   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>      bfk r*   c                     | k    S rD   r\   r   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>   r   r*   r   c                     | k    S rD   r\   r   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r*   c                 "    | t           j        k    S rD   r   rG   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r*   r   c                 "    t           j        | k    S rD   r   rG   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>	  r   r*   c                     | k    S rD   r\   r   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r*   )TFTFc                     | k     S rD   r\   r   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  r   r*   r0   c                 "    | t           j        k    S rD   r   rG   s    r(   rI   zTTestPeriodIndexSeriesComparisonConsistency.test_pi_comp_period_nat.<locals>.<lambda>  s    a"&j r*   c                 "    t           j        | k    S rD   r   rG   s    r(   rI   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)rN   rO   rP   __doc__r   r   r   r\   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-01rb   r   z2015-022014-01z2014-02)r   Br   z	Period[M]r   z2015-03re   r   r         rL   z2015-05z2015-06r-      )
rT   	DataFramer   r   r   r   r    rF   r   assert_frame_equal)r"   dfpoffrj   df2s         r(   test_ops_frame_periodz/TestPeriodFrameArithmetic.test_ops_frame_period"  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)rN   rO   rP   r   r\   r*   r(   r   r   !  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            g          dF             Z=dG Z>dH Z?dS )I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   rK   r   r/   1/6/2000z/unsupported operand type\(s\) for \+: .* and .*r   )r   r   r   rQ   r   r   )r"   r#   rngr   r   s        r(   test_parr_add_iadd_parr_raisesz8TestPeriodIndexArithmetic.test_parr_add_iadd_parr_raisesS  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   rK   r   r   )r   r   rT   r[   r   assert_index_equal)r"   r   r   r   r&   r'   s         r(   test_pi_sub_isub_piz-TestPeriodIndexArithmetic.test_pi_sub_isub_pid  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   rK   r   r   r   )	r   insertrT   r   equalsr   r[   r   r  )r"   r   r   r'   r   r&   s         r(   test_pi_sub_pi_with_natz1TestPeriodIndexArithmetic.test_pi_sub_pi_with_natt  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   rK   r   r   Hz;Input has different freq=[HD] from PeriodArray\(freq=[DH]\)r   )r   r   r   rQ   r   r   )r"   r#   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   re   rm   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   r   r  )r"   tick_classesr  p1_dp2_dp1p2r&   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 )Nrm   r  r  	normalizeFr   )r   r   r   r  )r"   offsetkwd_namer  kwdsr  r  r   r  r  r'   r&   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-01rm   r  rc   zEurope/Brussels)r/   tzSz
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   rm   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   r   r   joinr   rQ   r   r   )r"   r   r#   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   Qrm   r   -1 Dayr)  r)  zCCannot add or subtract timedelta64\[ns\] dtype from period\[Q-DEC\]r   z/cannot subtract PeriodArray from TimedeltaArray)r   r   rf   rQ   r   r   )r"   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   90Drm   r   r(  z
12/31/1999z1/2/2000cannot subtract .* from .*r   )r   r   rf   r   r  rQ   r   r   )r"   r   r*  r+  r&   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   Wr'  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)rT   r    r   r   r[   r   r   	to_periodr   to_timestampr!   rQ   r   r   r   )r"   r#   r3  r1  boxr%   r*  dtir2   td64objr'   r&   r   s                r(   test_parr_sub_td64arrayz1TestPeriodIndexArithmetic.test_parr_sub_td64array  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r8  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        t                    5  ||z   }d d d            n# 1 swxY w Y   t          j
        ||           t          j        t                    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        t                    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        t                    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   rT   offsets
QuarterEndrE   rF   r   assert_produces_warningr   r  r   r    HourMinuterQ   r   r   )	r"   r8  r2   offsr&   resres2
unanchoredr   s	            r(   test_pi_add_offset_arrayz2TestPeriodIndexArithmetic.test_pi_add_offset_array?  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)D00D47D4?HG+H+G/	/H2G/	3HH	H(I,II,I	I,I	I,,I03I0c                 d   t          t          d          t          d          g           |t          j                            dd          t          j                            dd          g          t          fdt          t                              D                       }|                    t                    }t          j
        t                    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
        t                    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
        t                    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 )Nr=  r>  r   r?  r@  rA  c                 2    g | ]}|         |         z
  S r\   r\   )rp   r  r   r2   s     r(   rr   zFTestPeriodIndexArithmetic.test_pi_sub_offset_array.<locals>.<listcomp>i  s&    IIIQ1a 0IIIr*   re   rD  z6Input has different freq=-1M from Period\(freq=Q-DEC\)r   )r   r   rT   rE  rF  rZ   lenrE   rF   r   rG  r   r  MonthEndDayrQ   r   r   )r"   r8  r&   rK  anchoredr   r   r2   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~   "C44C8;C88F;F$F;$F(	(F;+F(	,F;;F?F?!H%;H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  rd   r   z2000-01-01 10:00r   r   r  r"   oner   r'   r&   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, ...
        rW  r  rd   r   z2000-01-01 08:00NrX  rY  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*   fiverK   r   c                 h    t          dd          }||z
  }|| z   }t          j        ||           d S )Nr`   2   r.   rX  )r"   r^  r   r'   rj   s        r(   test_pi_sub_intlikez-TestPeriodIndexArithmetic.test_pi_sub_intlike  sA    9b111tdUm
fc*****r*   c                 j   t          ddd          }t          j        d          }||z   }t          j        d t          ||          D                       }t          j        ||           ||z
  }t          j        d t          ||          D                       }t          j        ||           d S )Nr  rd   2Drc   c                     g | ]
\  }}||z   S r\   r\   rp   rH   ys      r(   rr   zQTestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1.<locals>.<listcomp>       <<<tq!QU<<<r*   c                     g | ]
\  }}||z
  S r\   r\   re  s      r(   rr   zQTestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1.<locals>.<listcomp>  rg  r*   )r   r   rW   rT   r[   zipr   r  )r"   r2   arrr'   r&   s        r(   #test_pi_add_sub_int_array_freqn_gt1z=TestPeriodIndexArithmetic.test_pi_add_sub_int_array_freqn_gt1  s     ,>>>immc8<<s2s||<<<==
fh///c8<<s2s||<<<==
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   rK   20092019r   2016-12rb   z2013-08z2016-07)r   rT   rE  YearEndr   r  rR  r"   r   r'   r&   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-01rw   r   z2016-03rt  )r   r   r   r   r   r!   )r"   r#   rt  ri   r2   r&   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 )Nrv  rw   r   z2016-04rx   )r   r   r   r   r!   )r"   r#   r2   r&   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oo%
)))42%
)))))r*   
int_holderopc                    t          t          d          t          d          g          } |ddg          } |||          }t          t          d          t          d          g          }t          j        ||           d S )Nr=  r   r-   rL   2016Q1)r   r   r   r  )r"   r{  r|  r2   r   r'   r&   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 )Nr=  r   r-   rL   2014Q1+bad operand type for unary -: 'PeriodArray'r   )r   r   r   r  rQ   r   r   )r"   r{  r2   r   r'   r&   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-01rm   rc  rc   )
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   r   r   r   r!   r$  rQ   r   r   )r"   
three_daysr#   r   r   r&   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5T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     rc   r   r#  r  r  r   )r   r   r   r!   r$  rQ   r   r   )
r"   r  r  r#   r   r   firstr&   r'   r   s
             r(   $test_parr_add_timedeltalike_tick_gt1z>TestPeriodIndexArithmetic.test_parr_add_timedeltalike_tick_gt1  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-18rX  r"   r  r   r   r&   r'   s         r(   $test_pi_add_iadd_timedeltalike_dailyz>TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_daily;  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-12rX  r  s         r(   $test_pi_sub_isub_timedeltalike_dailyz>TestPeriodIndexArithmetic.test_pi_sub_isub_timedeltalike_dailyG  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   r#  z7Input has different freq(=.+)? from Period.*?\(freq=D\)r5  r   r   r   r   r$  rQ   r   r   )r"   	not_dailyr#   r   r   r   s         r(   3test_parr_add_sub_timedeltalike_freq_mismatch_dailyzMTestPeriodIndexArithmetic.test_parr_add_sub_timedeltalike_freq_mismatch_dailyS  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:00rX  r"   	two_hoursr   r   r&   r'   s         r(   %test_pi_add_iadd_timedeltalike_hourlyz?TestPeriodIndexArithmetic.test_pi_add_iadd_timedeltalike_hourlyl  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   r#  z7Input has different freq(=.+)? from Period.*?\(freq=H\)r5  r   r  )r"   
not_hourlyr#   r   r   r   s         r(   2test_parr_add_timedeltalike_mismatched_freq_hourlyzLTestPeriodIndexArithmetic.test_parr_add_timedeltalike_mismatched_freq_hourlyw  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:00rX  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   rm  r   r   rK   ro  2029)r   rT   rE  rq  r   r  rr  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   rm  r   r   z;Input has different freq(=.+)? from Period.*?\(freq=A-DEC\)r   r   rQ   r   r   r"   mismatched_freqr   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   rp  rb   r   z2014-06z2017-05rK   )r   rT   rE  rR  r   r  )r"   r   r&   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   rp  rb   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-01r8   19Drc   r   r   rw  r/  r   )
r   r   timedelta64r   r   r   r!   rQ   r   r   )	r"   r#   rt  r2   r   r&   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   r8   z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  r8   r  rc   r   r   r/  r   r   ns   )r   r   r   r   r!   rQ   r   r   copyr   r  )r"   r#   r   r2   r&   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-31rm   r.   )r   r    r   r  )r"   r2   r=   r'   r&   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        t                    5  ||z   }d d d            n# 1 swxY w Y   t          g dd	          j                            t                    }t          j        ||           t          j        t                    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  rm   r   rc   r   r6   re   )z
2001-01-01z
2001-01-03z
2001-01-05r   z
2000-12-30)r   r    r   r
   rT   rE  rS  r   rG  r   r   _datarE   rF   r!   )r"   r2   r=   r   r'   r&   s         r(   test_parr_add_sub_object_arrayz8TestPeriodIndexArithmetic.test_parr_add_sub_object_array  s   ,<<<x)+++RZ^^A->->BCC'(:;; 	" 	"E\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 666S
 
 

v 	 	)))'(:;; 	" 	"E\F	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ~1<<<BII&QQ
)))))s$   5BBB0DD	D)@rN   rO   rP   r   r  r  r
  rQ   rR   rS   r  rT   rE  rq  rF  rR  Weekr  r   to_pydatetimeto_datetime64rU   r  r   r    r%  r,  r0  r;  r[   rN  rU  r[  r]  int64ra  rk  rs  rx  rz  operatoraddr   raddr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   _from_sequencer  r  r  r\   r*   r(   r   r   L  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(U(U(UVV  WV>
- 
- 
-
- 
- 
-  2	- 	- 	-  ,	- 	- 	-- - -  - - -   [[4-88  98& [BHeWq[111)N)5'A+66	
   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   r   r   rT   r   dtypesallr!   )r"   r  r#   ru   r&   r  r'   s          r(   "test_parr_add_timedeltalike_scalarz=TestPeriodSeriesArithmetic.test_parr_add_timedeltalike_scalar#  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-10r8   r  )r   r   rL   r  r  r-   re   )r	   r   r   r   rF   r   r   )r"   ru   ri   r   r&   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)rN   rO   rP   r  r  r\   r*   r(   r  r  "  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   r   r!   r	   r   r   )r"   rf   r   r&   r$   r'   ru   rj   s           r(   r   z#TestPeriodIndexSeriesMethods._checkY  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 )Nrz   rb   r$   r   )r}   r~   r   2011-06c                     | dz   S Nre   r\   rG   s    r(   rI   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>m  
    1q5 r*   c                     d| z   S r  r\   rG   s    r(   rI   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>n  r  r*   re   c                     | dz
  S r  r\   rG   s    r(   rI   z:TestPeriodIndexSeriesMethods.test_pi_ops.<locals>.<lambda>p  
    q1u r*   r{   r   r   r   rm   r   rL   rA  )r   r   r   r   rT   r[   r   r  )r"   r$   r&   r'   r   rj   s         r(   test_pi_opsz(TestPeriodIndexSeriesMethods.test_pi_opsd  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 rD   r\   r  r  s     r(   rI   z%TestPeriodIndexSeriesMethods.<lambda>  
    C"H r*   c                     || z   S rD   r\   r  s     r(   rI   z%TestPeriodIndexSeriesMethods.<lambda>  
    BH r*   c                     | |z
  S rD   r\   r  s     r(   rI   z%TestPeriodIndexSeriesMethods.<lambda>  r  r*   c                     || z
  S rD   r\   r  s     r(   rI   z%TestPeriodIndexSeriesMethods.<lambda>  r  r*   c                 ,    t          j        | |          S rD   r   r  r  s     r(   rI   z%TestPeriodIndexSeriesMethods.<lambda>  s    BF3OO r*   c                 ,    t          j        ||           S rD   r  r  s     r(   rI   z%TestPeriodIndexSeriesMethods.<lambda>  s    BF2sOO r*   c                 ,    t          j        | |          S rD   r   subtractr  s     r(   rI   z%TestPeriodIndexSeriesMethods.<lambda>  s    BKR00 r*   c                 ,    t          j        ||           S rD   r  r  s     r(   rI   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 )Nrz   rb   r$   r   r#  )zunsupported operand type\(s\)zcan only concatenatezmust be strzobject to str implicitlyr   )r   r   r   r$  rQ   r   r   )r"   r  r   r#   r$   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~   rb   r$   r   )r}   r~   r   r  c                     | dz   S r  r\   rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r*   c                     d| z   S r  r\   rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r*   c                 ,    t          j        | d          S r  r  rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>      26!Q<< r*   re   c                     | dz
  S r  r\   rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r*   c                 ,    t          j        | d          S r  r  rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>      r{1a'8'8 r*   rw   )z2011-072011-08r   z2011-10c                     | dz   S Nrm   r\   rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r*   c                     d| z   S r  r\   rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r*   c                 ,    t          j        | d          S r  r  rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r*   rm   c                     | dz
  S r  r\   rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r  r*   c                 ,    t          j        | d          S r  r  rG   s    r(   rI   z>TestPeriodIndexSeriesMethods.test_pi_ops_nat.<locals>.<lambda>  r
  r*   r   r   )r"   r$   r&   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  rb   r$   r   c                 4    | t          j        g d          z   S Nr  r   r    rG   s    r(   rI   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-   rL   r   re   )r   r  r    rG   s    r(   rI   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  rG   s    r(   rI   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>  r  r*   )2010-12r  r   r  c                 T    t          j        | t          j        g d                    S )N)rm   re   rm   rA  )r   r  r    rG   s    r(   rI   zDTestPeriodIndexSeriesMethods.test_pi_ops_array_int.<locals>.<lambda>  s     bk!RXmmm%<%<== r*   )z2010-10r  r   r  r  r"   r$   r   rj   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   r$   r   c                 D    | t           j                                        z   S rD   rT   rE  rS  rG   s    r(   rI   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  r"  rG   s    r(   rI   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  r"  rG   s    r(   rI   zATestPeriodIndexSeriesMethods.test_pi_ops_offset.<locals>.<lambda>  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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 )Nr   r   r$   r   zmCannot add/subtract timedelta-like from PeriodArray that is not an integer multiple of the PeriodArray's freqr   re   )r   r	   rQ   r   r   rT   rE  rH  )r"   r$   ru   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          }|t          dd          z
  }t          j        ||           |j        |j        k    sJ t          dd          |z
  }t          j        ||           |j        |j        k    sJ d S )Nrz   rb   r$   r   2012-01r   ir   r?     rd   r8   r   )r   r   r   rT   r[   r   r  r   r  r   nanr"   r$   r'   r   rj   s        r(   test_pi_sub_periodz/TestPeriodIndexSeriesMethods.test_pi_sub_period  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***bfbfbfbf=EJJJve#....
fc***{ch&&&&C(((3.
fc***{ch&&&&&&r*   c                     t          g ddd          }t          t          j        gdz  d          }t	          j        t          j        |z
  |           t	          j        |t          j        z
  |           d S )Nr  rb   r$   r   r-   r   )r   r   rT   r   r   r  )r"   r$   rj   s      r(   test_pi_sub_pdnatz.TestPeriodIndexSeriesMethods.test_pi_sub_pdnat&  sw    4443U
 
 
 bfX\666
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
          }t          j        |t          dd          z
  |           t          j        t          dd          |z
  |           d S )Nr   rb   r$   r   r*  r   r+  r,  r-  r   r?  rd   r8   r   )r   r   r   rT   r[   r   r   r  r   r   r/  r0  s        r(   test_pi_sub_period_natz3TestPeriodIndexSeriesMethods.test_pi_sub_period_nat/  sI   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***bfbfbfbf=EJJJ
cF5s$;$;$;;SAAA
fU555;SAAAAAr*   N)rN   rO   rP   r   r   r  rQ   rR   rS   r  r  r  r&  r(  r1  r3  r5  r\   r*   r(   r  r  V  s/       <<	, 	, 	,+ + +. [TE3<00[$$$$$$$$++++0000		
    10"? ? ?<! ! !8! ! !<) ) ),' ' '<1 1 1B B B B Br*   r  )%r  numpyr   rQ   pandas._libs.tslibsr   r   r   r   pandas.errorsr   pandasrT   r   r	   r
   r   r   pandas._testing_testingr   pandas.corer   pandas.core.arraysr   pandas.tests.arithmetic.commonr   r   r   r   r^   r   r   r   r   r  r  r\   r*   r(   <module>r?     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S* S* S* S* S* S* S* S*l18 18 18 18 18 18 18 18hjB jB jB jB jB jB jB jB jB jBr*   