
    o[weT                     $   d dl m Z  d dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z
 d dlmZ d dlZd dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lmZ  ej                    d             Z ej        d             Z! G d d          Z"dS )    )datetimeN)DAYSMONTHS)IncompatibleFrequency)InvalidIndexError)	DataFrameSeries	Timestamp)
date_range)PeriodPeriodIndexperiod_range)_get_period_range_edges)offsetsc                      t           S )N)r        Glib/python3.11/site-packages/pandas/tests/resample/test_period_index.py_index_factoryr   !   s    r   c                      dS )Npir   r   r   r   _series_namer   &   s    4r   c                   
   e Zd Zej                            dg d          ej                            dg d          d                         Zd Zej                            dg d          ej                            dg d          ej                            d	d
diddig          d                                     Zej                            de	          ej                            dddg          ej                            dddg          ej                            dg d          d                                                 Z
d Zej                            dg d          d             Zej                            dddg          d             Zd  Zd! Zej                            de	          ej                            d"g d          ej                            d#ddg          d$                                     Zej                            d"dd%g          ej                            d#ddg          d&                         Zd' Zej                            d(d)g d*fd+d,d-gfg          d.             Zd/ Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zej                            d7e          ej                            d"dd%g          ej                            d#ddg          d8                                     Zd9 Zej                            de	          d:             Zej                            d;ddg          d<             Z d= Z!d> Z"ej                            dd?g          ej                            dg d          d@                         Z#dA Z$dB Z%dC Z&dD Z'dE Z(dF Z)dG Z*dH Z+dI Z,ej        -                    dJK          dL             Z.ej                            dMg dN          dO             Z/ej                            dMg dP          dQ             Z0dR Z1dS Z2ej                            dTdUdVg          ej                            ddWdXg          dY                         Z3ej                            dZe4j5        d[e4j5        d\d]gg d^fe4j5        e4j5        d[e4j5        e4j5        e4j5        d\d]e4j5        e4j5        g
g d_fg          ej                            d`dadbe6j7        dcddgfdedbdfgfdgdhddgfg          di                         Z8dj Z9ej                            dkg dl          dm             Z:ej                            dng do          dp             Z;dq Z<dWS )rTestPeriodIndexfreq)2D1H2Hkind)periodN	timestampc                 >   |}|dk    r:|                                                     |                                          }n|j        d                              d          }|j        d         |j        j        z                        d          }t          |||d          }|                                                     |                              |          }|                    ||                                          }	t          j	        |	|           d S )	Nr!   r   starthowleft)r#   endr   	inclusiver   )
to_timestampresampleasfreqindexr   r   reindex	to_periodtmassert_almost_equal)
selfseries_and_framer   r   objexpectedr#   r(   	new_indexresults
             r   test_asfreqzTestPeriodIndex.test_asfreq,   s     ;''))22488??AAHHIaL--'-::E9R=39>1??G?LLC"CdfUUUI''))11)<<FFtLLHd..5577
vx00000r   c                    |}t          |j        d                             d          |j        d                             d          d          }|                                                    |d          }|                    dd	
                              d          }t          j        ||           |                    d          }t          |j        d                             d          |j        d                             d          d          }|                                                    |d          }|                    dd	
                              d          }t          j	        ||           d S )Nr   r#   r$   r&   r   r   g      @)
fill_valuer!   r*   value      @)
r   r.   r+   r/   r,   r-   r1   assert_series_equalto_frameassert_frame_equal)r3   seriessr7   r6   r8   frames          r   test_asfreq_fill_valuez&TestPeriodIndex.test_asfreq_fill_value=   sr    GAJ###00WR[&&7&33
 
 
	
 >>##++I#+FFD{33::c:JJ
vx000

7##KN''G'44[_**w*77
 
 
	
 %%''//	c/JJ;77>>#>NN
fh/////r   )H12Hr   W)Nr    r!   kwargsondateleveldc                 Z   t          j        t          |          t           j                  }t	          ||dt
          j                            ||gddg                    }d}t          j	        t          |          5   |j        |fd	|i| d d d            d S # 1 swxY w Y   d S )
Ndtype)rK   avrM   )namesr.   zResampling from level= or on= selection with a PeriodIndex is not currently supported, use \.set_index\(\.\.\.\) to explicitly set indexmatchr   )nparangelenint64r   pd
MultiIndexfrom_arrayspytestraisesNotImplementedErrorr,   )r3   r.   r   r   rI   rngdfmsgs           r   test_selectionzTestPeriodIndex.test_selectionT   s    iE

"(333%%-++S%Lc
+KK
 
 

# 	
 ].c::: 	3 	3BK22426222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   B  B$'B$monthmethffillbfillconvr#   r(   targ)DBMc                     |ddd|           }|dk    rt           nd }d}t          j        ||          5   t          |                    ||          |                      }	|	                    ||	          }
|
                    ||                                          }
d d d            n# 1 swxY w Y   t          j        |	|
           d S )
N1/1/1990z
12/31/1991A-r;   rl   PeriodDtype\[B\] is deprecatedrU   
conventionr$   )	FutureWarningr1   assert_produces_warninggetattrr,   r+   r-   r0   r?   )r3   rj   ri   rf   re   simple_period_range_seriestswarnrc   r8   r6   s              r   test_annual_upsample_casesz*TestPeriodIndex.test_annual_upsample_casesg   s    ('
L|E||TTT $}}/'C888 	? 	?FWR[[$[??FFHHF**4T*::HtT22<<>>H	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	vx00000s   A-B22B69B6c                     |ddd          }|                     d                                          }|                    |j        j                                                  }t          ddd          |_        t          j        ||           t          j        |                     d                                          |           t          j        |                     d                                          |           d S )Nro   	6/30/1995rm   r;   a-decrQ   )r,   meangroupbyr.   yearr   r1   r?   r3   rw   rx   r8   r6   s        r   test_basic_downsamplez%TestPeriodIndex.test_basic_downsamplew   s    ''
KcJJJW%%**,,::bhm,,1133%j+GLLL
vx000 	r{{73388::FCCC
r{{3//4466?????r   zrule,expected_error_msg))r}   z<YearEnd: month=12>)zq-marz<QuarterEnd: startingMonth=3>)rm   z
<MonthEnd>)zw-thuz<Week: weekday=3>c                      |ddd          }d| d}t          j        t          |          5  |                    |                                           d d d            d S # 1 swxY w Y   d S )Nro   r|   zw-wedr;   z3Frequency <Week: weekday=2> cannot be resampled to z&, as they are not sub or super periodsrU   )r^   r_   r   r,   r~   )r3   rw   ruleexpected_error_msgrx   rc   s         r   test_not_subperiodz"TestPeriodIndex.test_not_subperiod   s     ('
KgNNNJ!J J J 	 ]0<<< 	% 	%KK""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   (A%%A),A)rk   r   c                 l    |ddd          }|                     d                                          }|                     |d                                          }|                    |d          }|                    |d	                              |          }t          j        ||           d S )
Nro   r|   rm   r;   r}   r(   rr   r$   rg   )r,   r~   rg   r+   r-   r0   r1   r?   )r3   r   rw   rx   r8   	resampledr6   s          r   test_basic_upsamplez#TestPeriodIndex.test_basic_upsample   s    ''
KcJJJW%%**,,OODUO;;AACC	&&t&77??411;;DAA
y(33333r   c                    t          ddd          }t          t          j                            d                              t          |                    |          }|                    dd                              d	          }|	                    d          
                    |j        d
d          }t          j        ||           d S )N1/1/2000   Aperiodsr      rm   r(   rr   )limitrg   )methodr   )r   r	   rW   randomdefault_rngstandard_normalrY   r,   rg   r-   r/   r.   r1   r?   r3   ra   rx   r8   r6   s        r   test_upsample_with_limitz(TestPeriodIndex.test_upsample_with_limit   s    :qs;;;BI))!,,<<SXXFFLLSU33999BB99S>>))&,wa)PP
vx00000r   c                 `    |ddd          }t          d|i          }|                    d                                          }|d                             d                                          }t          j        |d         |           t          ddd          }t          g d	|
          }|                    d                                          }t          ddd          }|                    dd                              |d          }	t          j        ||	           d S )Nro   
12/31/1995A-DECr;   rQ   rk   20002003)   r         rT   rm   2000-01z2003-12r#   r$   rg   r   )	r   r,   rg   r1   r?   r   r	   r-   r/   )
r3   rw   rx   rb   rdfexpra   r8   ex_indexr6   s
             r   test_annual_upsamplez$TestPeriodIndex.test_annual_upsample   s   ''
LwOOORy!!kk#$$&&gs##))++
s3x---66888LLL,,,S!!''))	93???99Sg9..66x6PP
vx00000r   targetrs   c                    d| } |dd|          }|dk    rt           nd }d}t          j        ||          5  |                    ||                                          }	|	                    ||	          }
|
                    |d
                                          }
d d d            n# 1 swxY w Y   t          j        |	|
           d S )NQ-ro   r   r;   rl   rq   rU   rr   r$   rg   	rt   r1   ru   r,   rg   r+   r-   r0   r?   )r3   re   r   rs   rw   r   rx   ry   rc   r8   r6   s              r   test_quarterly_upsamplez'TestPeriodIndex.test_quarterly_upsample   s+    E||''
LtLLL &#}}4/'C888 	D 	D[[J[??EEGGF**6z*BBHvw77AACCH	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	vx00000   A)B00B47B4rl   c                     |ddd          }|dk    rd nt           }d}t          j        ||          5  |                    ||                                          }|                    ||	          }|                    |d
                                          }d d d            n# 1 swxY w Y   t          j        ||           d S )Nro   r   rm   r;   rk   rq   rU   rr   r$   rg   r   )	r3   r   rs   rw   rx   ry   rc   r8   r6   s	            r   test_monthly_upsamplez%TestPeriodIndex.test_monthly_upsample   s     ('
LsKKK}}tt-/'C888 	D 	D[[J[??EEGGF**6z*BBHvw77AACCH	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	vx00000s   A)B++B/2B/c           	      (   t          t          d          t          dddd          d          }t          j        |dd	<   t          t          d
d          t          dd          gd          }t          ddg|          }|                                                    dd          	                                }t          j        ||           |                    dd          	                                }t          j        ||           d S )Nd   20130101rC   idx)r   r   namefloatr.   rP   
      z2013-01-01 00:00Tz2013-01-01 00:01)r   g     @A@g     S@rT   r    r*   )r	   ranger   rW   nanr   r   r0   r,   r~   r1   r?   )r3   rC   r.   r6   r8   result2s         r   test_resample_basicz#TestPeriodIndex.test_resample_basic   s   #JJZc3UKKK
 
 

 6"R%&,,f5G.M.MN
 
 
 4,e444''(';;@@BB
vx000**Sx*005577
w11111r   zfreq,expected_valsrm   )      r   	   2M<   (   c                    t          dt          dd                    }|                    |                                          }t          d|t	          |                    }t          ||          }t          j        ||           d S )Nr   r   r   r#   r   rT   r#   r   r   )r	   r   r,   countrY   r1   r?   )r3   r   expected_valsrB   r8   expected_indexr6   s          r   test_resample_countz#TestPeriodIndex.test_resample_count   s    
 FC!H!H!HIII&&,,..%tS-?-?
 
 
 -~>>>
vx00000r   c                     t          t          d          t          ddd                    }|} t          |                    d          |                      }t          j        ||           d S )Nr   r   rm   r#   r   r   rT   )r	   r   r   rv   r,   r1   r?   )r3   resample_methodrB   r6   r8   s        r   test_resample_same_freqz'TestPeriodIndex.test_resample_same_freq   sk    a61SV(W(W(WXXX?--??AA
vx00000r   c           	         d}t          j        t          |          5  t          t	          d          t          ddd                                        d                                           d d d            d S # 1 swxY w Y   d S )	NzcFrequency <MonthEnd> cannot be resampled to <Week: weekday=6>, as they are not sub or super periodsrU   r   r   rm   r   rT   rH   )r^   r_   r   r	   r   r   r,   r~   )r3   rc   s     r   test_resample_incompat_freqz+TestPeriodIndex.test_resample_incompat_freq   s    3 	 ]0<<< 	# 	#a613 O O O  hsmmDDFFF	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   AA??BBc                    t          j        d          }t          dddddt           j                  }t          dddddt           j                  }t	          ||d	          }t          d|
          }|                    |          }|                    dd                                          }t          ||d          t          j                    z
  }t          d|
          }t          j        ||           d S )NAmerica/Los_Angeles     r   r   r   re   dayhourminutetzinfor   rF   r;   rT   rk   r    r*   r#   r(   r         ?)pytztimezoner   utcr   r	   
tz_convertr,   r~   r   r   Dayr1   r?   	r3   local_timezoner#   r(   r.   rB   r8   r   r6   s	            r   test_with_local_timezone_pytzz-TestPeriodIndex.test_with_local_timezone_pytz  s    '<==d"!!AdhWWWD!DHUUU5#C000'''"">2284499;;
 &EsEEEU#^444
vx00000r   c           	      Z   t          dt          dddd                    }|                    d                                          }t          d	t	          j        dd
gdd                    }t          j        ||           |j        j	        t          j        d          k    sJ d S )Nr   z
2017-01-010   rF   z
US/Easternr   r   tzrT   rk          @z
2017-01-02)r   r   )r	   r   r,   r~   r[   DatetimeIndexr1   r?   r.   r   r   r   )r3   rC   r8   r6   s       r   test_resample_with_pytzz'TestPeriodIndex.test_resample_with_pytz  s    Zbs|TTT
 
 
 C%%''"|,C  
 
 
 	vx000|$-"="=======r   c           	      ,   d}t          dddddt          j                                                  }t          dddddt          j                                                  }t	          ||dd	
          }t          d|          }|                    |          }|                    dd                                          }t          ||dd	          t          j                    z
  }t          d|          }t          j        ||           d S )Nzdateutil/America/Los_Angelesr   r   r   r   r   r   rF   r   )r   r   rT   rk   r    r*   )r#   r(   r   r   r   )r   dateutilr   tzutcr   r	   r   r,   r~   r   r   r   r1   r?   r   s	            r   !test_with_local_timezone_dateutilz1TestPeriodIndex.test_with_local_timezone_dateutil+  s   7RQQqARARATAT
 
 
 RQQqARARATAT
 
 
 5#Ce<<<'''"">2284499;; u#CeDDDw{}}T 	 #^444
vx00000r   c           	      "   t          ddd          }t          t          j        t	          |                    |          }|                    d          }t          j        |j        d          |_        |	                    d          
                                }t          j        ||           t          dd	d
          }|                    d                              d          }t          t          t!          t	          |                              |          }|                    t          j        d                                                    }t          dd	dddd          }t          j        |j        |           d S )Nz
2017-03-12z2017-03-12 1:45:0015Tr;   rT   z
US/Pacific900Sz
2017-10-10z
2017-10-20r   r   UTCzAmerica/Sao_Paulo)datar.   1Dz
2017-10-09rk   shift_forwardr'   )r#   r(   r   r   nonexistentr)   )r   r	   rW   zerosrY   tz_localizer[   r   r.   r,   r~   r1   r?   r   r   listr   r   Grouperr   assert_index_equal)r3   r.   rC   r6   r8   rb   s         r   'test_resample_nonexistent_time_bin_edgez7TestPeriodIndex.test_resample_nonexistent_time_bin_edgeF  sb   <)=EJJJ28CJJ''u555==..)(.vFFF""6**//11
vx000 <dKKK!!%((334GHHDs5zz!2!2335AAABJD1112288::"'
 
 
 	flH55555r   c                    t          dddd          }t          t          j        t	          |                    |          }|                    d                                          }t          j        ||           d S )Nz2014-10-25 22:00:00z2014-10-26 00:30:0030TzEurope/Londonr   r   rT   )	r   r	   rW   r   rY   r,   r~   r1   r?   )r3   r   r6   r8   s       r   %test_resample_ambiguous_time_bin_edgez5TestPeriodIndex.test_resample_ambiguous_time_bin_edge^  s|    !#8u
 
 
 "(3s88,,C888""5))..00
vx00000r   c                    t          t          j        dd          t          ddd                    }|                    d                                          }|                    d                                                              d                                                              d          }t          j	        ||           d S )	Nr   rZ   rO   z
2010-01-01Qr   rT   rm   )
r	   rW   rX   r   r,   rg   lastastyper1   r?   )r3   rC   r  boths       r   !test_fill_method_and_how_upsamplez1TestPeriodIndex.test_fill_method_and_how_upsampleg  s    Iaw'''\13???
 
 
 zz#$$&&zz#$$&&//4499;;BB7KK
tT*****r   r   c                    d| } |dd|          }|dk    rd nt           }d}t          j        ||          5  |                    ||                                          }	|	                    ||	          }
|
                    |d
                                          }
d d d            n# 1 swxY w Y   t          j        |	|
           d S )NzW-ro   r   r;   rk   rq   rU   rr   r$   rg   r   )r3   r   r   rs   rw   r   rx   ry   rc   r8   r6   s              r   test_weekly_upsamplez$TestPeriodIndex.test_weekly_upsampleq  s+    Czz''
LtLLL}}tt-/'C888 	D 	D[[J[??EEGGF**6z*BBHvw77AACCH	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	vx00000r   c                     |ddd          }|                     dd                                          }|                    d	                               d                                          }t          j        ||           d S )
Nro   r   rm   r;   r   r!   r*   r#   r$   )r,   r~   r+   r1   r?   r   s        r   test_resample_to_timestampsz+TestPeriodIndex.test_resample_to_timestamps  s    ''
LsKKKW;77<<>>??w?//88AAFFHH
vx00000r   c                     |ddd|           }|                     d|                                           }|                    dd          }t          |j        d	                             dd          |j        d
                             dd          d|           }|                    |                    dd          d          }||_        t          j        ||           d S )N19901992rp   r;   r   rk   r#   r$   r   r&   r(   rC   rg   r   )	r,   rg   r+   r   r.   r-   r/   r1   r?   )r3   rw   re   rx   quar_tsstampsqdatesr6   s           r   test_resample_to_quarterlyz*TestPeriodIndex.test_resample_to_quarterly  s    ''\%\\JJJ++l5ll++1133'22HQKsG,,HRLU++e
 
 
 >>&"5"5c3"?"?>PP
w11111r   r%   c                     |ddd          }|                     d|                                          }|                    d|          }|                    |j        d	          }t          j        ||           d S )
Nr
  r  zA-JUNr;   zQ-MARrr   r$   rg   r   )r,   rg   r-   r/   r.   r1   r?   )r3   rw   r%   rx   r8   r6   s         r   $test_resample_to_quarterly_start_endz4TestPeriodIndex.test_resample_to_quarterly_start_end  s     ('WEEEW55;;==99W#9..##FL#AA
 	vx00000r   c                    t          g dd          }t          t          j                            d                              d          |          }|                                }|                    d                                          }|                    d                                          	                    d          }t          j        ||           d S )N)      i  r   r;   r   r   rT   )r   r	   rW   r   r   r   r+   r,   rg   r0   r1   r?   )r3   ra   rC   r  filledr6   s         r   test_resample_fill_missingz*TestPeriodIndex.test_resample_fill_missing  s    222===29((++;;A>>cJJJ!!C&&((??3''--//99#>>
vx00000r   c                 h   t          g dd          }t          t          j                            d                              d          |          }d}t          j        t          |          5  |	                    d          
                                 d d d            d S # 1 swxY w Y   d S )	N)r  r  r  r  r  r   r;   r   r   rT   z8Reindexing only valid with uniquely valued Index objectsrU   )r   r	   rW   r   r   r   r^   r_   r   r,   rg   )r3   ra   rC   rc   s       r   test_cant_fill_missing_dupsz+TestPeriodIndex.test_cant_fill_missing_dups  s    888sCCC29((++;;A>>cJJJH],C888 	$ 	$JJsOO!!###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   2(B''B+.B+5minc                    t          ddd          }t          t          j                            d                              t          |                    |          }|                                                    |          	                                }|dk    r|
                    |          }|                    ||          	                                }t          j        ||           d S )	Nr   z1/5/2000r   r;   r   rT   r!   r*   )r   r	   rW   r   r   r   rY   r+   r,   r~   r0   r1   r?   )r3   r   r   ra   rx   r6   r8   s          r   test_resample_5minutez%TestPeriodIndex.test_resample_5minute  s     :z<<<BI))!,,<<SXXFFcRRR??$$--d3388::;))$//HT--2244
vx00000r   c                     |ddd          }|                     d                                          }|                    d                              t          dd                    }t	          j        ||            |dd          }|                     dd	                                          }t          dd
d          }|                    dd                              |          }t	          j        ||           d S )Nr   z2/1/2000rl   r;   rk   z1/3/2000rF   rC   rr   z2/1/2000 23:00r$   )r,   r-   r/   r   r1   r?   )r3   rw   rx   r8   r6   exp_rngs         r   "test_upsample_daily_business_dailyz2TestPeriodIndex.test_upsample_daily_business_daily  s    ''
JSIIIS!!((**99S>>)),z:*N*NOO
vx000''
J??SS1188::z+;#FFF99Sc9**227;;
vx00000r   c                    t          ddd          }t          t          j        d          |          }|d d         }|                    d                              t                    }|                    d                              t                    j        |j                 }t          j
        ||           d S )	Nz1/1/2012r  i  r   r   rT   z2012-01-04 06:5510min)r   r	   rW   arrayr,   applyrY   locr.   r1   r?   )r3   drrC   subsetr8   r6   s         r   test_resample_irregular_sparsez.TestPeriodIndex.test_resample_irregular_sparse  s    jvtDDD28C==+++&&&'))//44::g&&,,S115flC
vx00000r   c                 ^   t          ddd          }t          t          j                            d                              t          |                    |          }|                    d                                          }|	                                
                                sJ |                    d                                                                          d d         }|                    d                                          }t          j        ||           d S )	Nr   r   zW-WEDr   r   rT   zW-THUr&   )r   r	   rW   r   r   r   rY   r,   r-   isnaallrg   r1   r?   r   s        r   test_resample_weekly_all_naz+TestPeriodIndex.test_resample_weekly_all_na  s    Rg>>>BI))!,,<<SXXFFcRRRW%%,,..{{}}  """""W%%,,..4466ss;99W%%++--
vx00000r   c                    t          dd          }t          t          t          |                    |          }|                    d          }|                    d          }|                    d                                          }|                                }d |j	        
                                D             |_	        |                    d                                                              d          }t          j        |j	        d	          |_	        t          j        ||           |                    d
                                          }t          dddd          }t          ddg|          }	|	                    d
dd                                          }t          ddd
d          }
t          dg|
          }t          j        ||           |	                    d
d                                          }t          ddd
          }
t          dg|
          }t          j        ||           t          ddd          }|                    d          }t!          |          }t"          j                            d                              t          |                    |d<   t#          j        t"          j                            d                              t          |                              |d <   t!          |                    d!                                          d         |                    d!                                          d          d"dd g#          }|                    d!                              d$d%d"                              dd g#          }t          j        ||           d S )&Nz	2012-4-13z2012-5-1)r#   r(   rT   r   r   rH   c                 :    g | ]}|                     d           S )N)r   )replace.0xs     r   
<listcomp>z>TestPeriodIndex.test_resample_tz_localized.<locals>.<listcomp>  s3      
  
  
'(AIITI"" 
  
  
r   r;   rk   z2001-09-20 15:59z2001-09-20 16:00r   zAustralia/Sydneyr   r   r   rightclosedlabelz
2001-09-21r   g      ?r    r*   z
2001-09-20r   z1/1/2011i N  rF   ESTfirstsecondr   )r8  r9  )columnssumr~   )r   r	   r   rY   r   r   r,   r~   copyr.   to_pydatetimer[   r   r1   r?   r   r   rW   r   r   r   cumsumr;  aggr/   rA   )r3   r%  rx   ts_utcts_localr8   ts_local_naiver   r   rC   r   r6   ra   s                r   test_resample_tz_localizedz*TestPeriodIndex.test_resample_tz_localized  s   kz:::E#b''NN"---&&$$%:;;""3'',,..! 
  
,:,@,N,N,P,P 
  
  
 %%c**//11==>STT$SYS999	
vs+++ ""3'',,..  2AS
 
 
 Aq6%%%Cw??DDFFlACDVWWW3%x000
vx000 Ch//4466acBBB3%x000
vx000 U===ooe$$S!!!i++A..>>s3xxHH7y!6!6q!9!9!I!I#c((!S!STT8S))--//8++c**//11(;  h'
 
 
 KKS5F3344Wgx0W11 	
 	fh/////r   c                    t          t          j                            d                              d          t          ddd                    }t          j        |j        d<   |                    dd	d
          	                                }|dd                              dd	d
          	                                }t          j        ||           |                    dd	d	          	                                }|dd                              dd	d	          	                                }t          ddd          }t          j        |j        |           t          j        ||           d S )Nr      z1/1/2012 9:301minr   rT   r   r!  r'   r3  r4  r   r   )r	   rW   r   r   r   r   r   ilocr,   r~   r1   r?   r   r.   )r3   rC   r8   r   r   s        r   test_closed_left_cornerz'TestPeriodIndex.test_closed_left_corner!  sI   I!!!$$44R88?LLL
 
 
 Fq	GF'BBGGIIennWV7nCCHHJJ
vs+++GF&AAFFHHennWV6nBBGGIIO'1MMM
flH555
vs+++++r   c                 ~   t          ddd          }t          t          j        d          |          }|                    d                                          }|                                                    d                                                                          }t          j	        ||           d S )N2000Q1r   Q-DECr   rT   r   )
r   r	   rW   rX   r,   r~   r+   r0   r1   r?   )r3   ra   rx   r8   r   s        r   test_quarterly_resamplingz)TestPeriodIndex.test_quarterly_resampling5  s    8Rg>>>BIbMM---S!!&&((oo((--2244>>@@
vs+++++r   c                     t          ddd          }t          |          }d t          |          D             }t          |g d|          }|                    dd	d	
                                           d S )Nz8/6/2012z	8/26/2012rk   r   c                     g | ]}|gd z  	S )r   r   r/  s     r   r2  zATestPeriodIndex.test_resample_weekly_bug_1726.<locals>.<listcomp>A  s    ***Aa***r   )openhighlowclosevol)r:  r.   zW-MONr'   r4  )r   rY   r   r   r,   r8  )r3   indnr   rb   s        r   test_resample_weekly_bug_1726z-TestPeriodIndex.test_resample_weekly_bug_1726=  s    z{EEEHH**q***t%L%L%LTWXXX 	GF&99??AAAAAr   c                    t          j        ddg                              d                              d          }t	          ddg|          }|                    dd	d	
                                                                          }g d}t          j        |d                              d          }t          j        |d          }t	          g d|          }t          j
        ||           d S )Nl     Z! l     NE! r   zAmerica/Chicagor   r   rT   12hr3  r4  )z2016-03-09 12:00:00-06:00z2016-03-10 00:00:00-06:00z2016-03-10 12:00:00-06:00z2016-03-11 00:00:00-06:00z2016-03-11 12:00:00-06:00z2016-03-12 00:00:00-06:00z2016-03-12 12:00:00-06:00z2016-03-13 00:00:00-06:00z2016-03-13 13:00:00-05:00z2016-03-14 01:00:00-05:00z2016-03-14 13:00:00-05:00z2016-03-15 01:00:00-05:00z2016-03-15 13:00:00-05:00T)r   r;   )r   r   r   r   r   r   r   r   r   r   r   r   r   )r[   r   r   r   r   r,   r  rg   to_datetimer1   rA   )r3   r.   rb   r8   expected_index_valuesr6   s         r   "test_resample_with_dst_time_changez2TestPeriodIndex.test_resample_with_dst_time_changeG  s    13FGHH[Z)** 	
 1vU+++U7'BBGGIIOOQQ!
 !
 !
 4$???JJ
 
  U333MMM
 
 
 	fh/////r   c                    t          t          j        dd          t          j                  }|                    d                                          }|                    d                                                              d                                          }|j        d         t          d          k    sJ |j        d         |j        d         k    sJ d S )N2000010120000201r   BMSrl   r   20000103)	r	   r[   bdate_rangerW   float64r,   r~   r.   r
   )r3   
timeseriesres1res2s       r   test_resample_bms_2752z&TestPeriodIndex.test_resample_bms_2752j  s    .Z88

 
 

 ""5))..00""5))..0099#>>CCEEz!}	* 5 55555z!}
1------r   z6Commented out for more than 3 years. Should this work?)reasonc                    t          ddd          }t          t          j        d          |          }t          ddd	          }|                    dd
                              |          }|                    d          }|                    d                                          }t          j
        ||           d S )Nr   r   rm   r   rT   z
2000-01-01z
2000-03-31rk   r;   r(   r$   rh   r   )r   r	   rW   rX   r-   r/   fillnar,   r~   r1   r?   )r3   ra   rx   	exp_indexr6   r8   s         r   test_monthly_convention_spanz,TestPeriodIndex.test_monthly_convention_spant  s    9ac:::BIaLL,,, !|#FFF	99Se9,,44Y????'?22S!!&&((
vx00000r   zfrom_freq, to_freq))rk   rm   )r   r   )rm   r   )rk   rH   c                    t          dd|          }t          t          j                            d                              t          |          df          |          }|                    |                                          }t          j
        ||                    |dd                                                     d S )N	8/15/2012r   r   r   r3  r4  r   r   rW   r   r   r   rY   r,   r~   r1   rA   r3   	from_freqto_freqr   rb   r   s         r   test_default_right_closed_labelz/TestPeriodIndex.test_default_right_closed_label  s     {CiHHHry,,Q//??S1NNPSTTKK((--//	
r{{77'{JJOOQQ	
 	
 	
 	
 	
r   ))rk   MS)r   AS)rm   QS)rF   rk   )r   rF   c                    t          dd|          }t          t          j                            d                              t          |          df          |          }|                    |                                          }t          j
        ||                    |dd                                                     d S )Nrm  r   r   r   r'   r4  rn  ro  s         r   test_default_left_closed_labelz.TestPeriodIndex.test_default_left_closed_label  s    
 {CiHHHry,,Q//??S1NNPSTTKK((--//	
r{{76{HHMMOO	
 	
 	
 	
 	
r   c                 x   t          ddd          }t          t          j                            d                              t          |                    |          }|                    d                                          }t          j
        |j        d         |                                           d S )	Nz
2012-01-01z
2012-12-31rm   r   r   rT   r   r   )r   r	   rW   r   r   r   rY   r,   r~   r1   r2   rG  )r3   r.   rC   r8   s       r   test_all_values_single_binz*TestPeriodIndex.test_all_values_single_bin  s    <\LLL29((++;;CJJGGuUUUC%%''
v{1~qvvxx88888r   c           	      ~   t          t          j                            d                              d          t          dd                    }|                    d                                          }t          j	        |j
        dd	                                         |j
        d	d                                          gd
          j        }t          j        t          d          t          d          gd          |_        t          j        ||           t          dd          }t          d
dddddgdz  ddddddgdz  z   |                    |                                                    }t          ddd          }t          ddddddgdz  |          }|                    d                                          }t          j        ||           t          dddd d!dgdz  |          }|                    d                                          }t          j        ||           d S )"Nr   )r   r   z2000-1-1r   )r   rT   5Dr   r   r   )axisz2000-1-6r;   z2001-5-4   r   P   Z   r      )REST_KEY
DLY_TRN_QTDLY_SLS_AMTCOOP_DLY_TRN_QTCOOP_DLY_SLS_AMTF   r   2   r   7Dr      rE  i  i  i0  i  )r   rW   r   r   r   r   r,   r~   r[   concatrG  r   r   r
   r.   r1   rA   append
sort_indexr   r;  )r3   rb   r8   r6   r.   s        r   (test_evenly_divisible_with_no_extra_binsz8TestPeriodIndex.test_evenly_divisible_with_no_extra_bins  s    I!!!$$44V<<Z333
 
 
 T""''))9bgacl//1127122;3C3C3E3EFQOOOQ)z""Ij$9$9:
 
 
 	fh///R888 !""$#%')(*  	 !""$#%')(*  	( ,,u%%+
 
 
, *,,- 	0 :qt<<< !#"$#%')(*  	 
 
 
 T""((**
fh/// !#"&#&'*(+  	 
 
 
 T""&&((
fh/////r   zfreq, period_mult)rF      )rG   r   Nr    c                    t          ddd          }t          t          t          |                    |          }|                                                    |                                                              |          }t          d||t          |          z            }|                    |          }|                    ||                                          }t          j
        ||           d S )Nr   rk   r   r   rT   r*   )r   r	   r   rY   r+   r,   ohlcr0   r/   r1   rA   )	r3   r   period_multr   r   rC   r6   r7   r8   s	            r   test_upsampling_ohlcz$TestPeriodIndex.test_upsampling_ohlc  s     S"===5R>>,,,>>##,,T227799CCDII !vD+PSTVPWPWBWXXX	##I..Dt,,1133
fh/////r   zperiods, values1970-01-01 00:00:00z1970-01-01 00:00:02z1970-01-01 00:00:03)r   r   r      r   )
r   r   r   r         r  r         zfreq, expected_values1sr   r  r   2sg      "@3sg      @c                 "   t          |d          }t          ||          }t          dt          |          |          }t          ||          }|                    |                                          }	t          j        |	|           d S )NSr;   rT   r  r   )r   r   r   rY   r,   r~   r1   rA   )
r3   r   valuesr   expected_valuesr.   rD   r   r6   r8   s
             r   test_resample_with_natz&TestPeriodIndex.test_resample_with_nat  s    P G#...&...%!3+?+?d
 
 
 _NCCC%%**,,
fh/////r   c                 8   t          t          j        gdz  d          }t          g d|dg          }t          g |j                  }t          |dgd	          }|                    d
                                          }t          j        ||           d S )Nr   r  r;   )r   r   r   rQ   )r.   r:  )r   r   rb  )r.   r:  rP   r  )	r   r[   NaTr   r   r,   r~   r1   rA   )r3   r   rD   r   r6   r8   s         r   test_resample_with_only_natz+TestPeriodIndex.test_resample_with_only_nat-  s    "&AC000)))2u===$"27;;;>C5	RRR%%**,,
fh/////r   z$start,end,start_freq,end_freq,offset))1991090519910909 03:00rF   24H10H)r  19910909 12:00rF   r  r  )r  z19910909 23:00rF   r  r  )19910905 10:0019910909rF   r  r  )r  19910909 10:00rF   r  r  )r  r  rF   r  r  )19910905 12:00r  rF   r  r  )r  r  rF   r  r  )r  r  rF   r  r  )r  r  rF   r  34H)r  r  rF   17Hr  )r  r  rF   r  3H)r  z19910909 1:00rF   rm   r  )r  z19910913 06:00r   r  r  )r  z19910905 01:39Min5Min3Min)r  z19910905 03:182Minr  r  c                    t          |||          }t          t          j        t	          |                    |          }|                    ||                                          }|                    |          }|                                                    ||                                          }	|dk    r|	j        	                    d           |	_        t          j        ||	           d S )Nr;   rT   )offsetrm   )r   r	   rW   rX   rY   r,   r~   r+   r.   
_with_freqr1   r?   )
r3   r#   r(   
start_freqend_freqr  r   serr8   r6   s
             r   test_resample_with_offsetz)TestPeriodIndex.test_resample_with_offset6  s    . %:666RYs2ww''r222hv66;;==$$X..##%%..x.GGLLNNs??%^66t<<HN
vx00000r   z"first,last,freq,exp_first,exp_last))r  19920406rk   r  r  )z19910905 00:0019920406 06:00rk   r  r  )19910905 06:00r  rF   r  r  )19910906r  rm   z1991-091992-04)1991083119920430rm   1991-08r  )r  r  rm   r  r  c                    t          |          }t          |          }t          ||          }t          ||          }t          j        j                            |          }t          |||          }||f}||k    sJ d S )Nr;   )r   r[   tseriesfrequencies	to_offsetr   )r3   r8  r  r   	exp_firstexp_lastr8   r6   s           r   test_get_period_range_edgesz+TestPeriodIndex.test_get_period_range_edgesX  s    $ ud||94000	(...z%//55(d;;x(!!!!!!r   c                    t          ddd          }t          j        d          }t          j        |dd<   t	          ||                                          }|                    d                              d          }t	          d	t          j        gt          d
dgd                    }t          j
        ||           d S )N2018rm   r  r   r   r   r   )	min_countr>   2018Q12018Q2rK  r;   rT   )r   rW   onesr   r	   r0   r,   r;  r   r1   r?   )r3   r.   r   rC   r8   r6   s         r   test_sum_min_countz"TestPeriodIndex.test_sum_min_countu  s    c1===wqzzFQqS	4))++C$$q$11"&Mh-A!P!P!P
 
 
 	vx00000r   )=__name__
__module____qualname__r^   markparametrizer9   rE   rd   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  r  r  r  r  r'  r+  rC  rH  rL  rV  r[  rf  xfailrk  rr  rw  ry  r  r  r[   r  rW   r   r  r  r  r  r  r   r   r   r   r   +   sp       [V%7%7%788[V%B%B%BCC1 1 DC 9810 0 0. [V%<%<%<==[V%B%B%BCC[Xv#'GHH3 3 IH DC >=3  [Wf--[Vgw%788[Vgu%566[V___55
1 
1 65 76 98 .-
1
@ 
@ 
@ [!	
 	
 	
 % % % [Vc4[114 4 2141 1 11 1 1  [Wf--[X77[\GU+;<<1 1 =< 87 .-1 [XSz22[\GU+;<<	1 	1 =< 32	12 2 2$ [___5w>O7PQ 1 1 11 1 1# # #1 1 1*> > > 1 1 166 6 601 1 1+ + + [UD))[XSz22[\GU+;<<
1 
1 =< 32 *)
11 1 1 [Wf--2 2 .-2  [UWe$455
1 
1 65
11 1 1$ $ $ [VfX..[V%B%B%BCC1 1 DC /.11 1 11 1 1
1 
1 
1;0 ;0 ;0z, , ,(, , ,B B B!0 !0 !0F. . . [VWW1 1 XW1 [NNN 
 
 
 [GGG 
 
	 
9 9 9G0 G0 G0R [09j2IJJ[VdH%5660 0 76 KJ0 [ F)F)) !  	 FF)FFF))FF 211	
 < [Arvq"%&A|$%K$%	
 
0 
0 = L
00 0 0 [.	
 	
 	
 *1 1+ *1 [,	
 	
 	
 "
" 
"# "
"
1 
1 
1 
1 
1r   r   )#r   r   numpyrW   r^   r   pandas._libs.tslibs.ccalendarr   r   pandas._libs.tslibs.periodr   pandas.errorsr   pandasr[   r   r	   r
   pandas._testing_testingr1   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   r   pandas.core.resampler   pandas.tseriesr   fixturer   r   r   r   r   r   <module>r     s                       = < < < < < + + + + + +             
       4 4 4 4 4 4         
 9 8 8 8 8 8 " " " " " "      T1 T1 T1 T1 T1 T1 T1 T1 T1 T1r   