
    .iX                        d dl m Z mZ d dlZd dl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jD                  d        Z# G d d      Z$ejJ                  jM                  dg d      d        Z'd Z(ejJ                  jM                  dg d      d        Z)y)    )datetimetimezoneN)DAYSMONTHS)IncompatibleFrequency)InvalidIndexError)	DataFrameSeries	Timestamp)
date_range)PeriodPeriodIndexperiod_range)_get_period_range_edges)offsetsc                      dd} | S )zK
    Series with period range index and random data for test purposes.
    c                 R   t        j                         5  dj                  ddg      }t        j                  d|t               t        | ||      }d d d        t        t        j                  j                  d      j                  t                    |      S # 1 sw Y   KxY w)	N|zPeriod with BDay freqPeriodDtype\[B\] is deprecatedignore)categoryfreq   index)warningscatch_warningsjoinfilterwarningsFutureWarningr   r
   nprandomdefault_rngstandard_normallen)startendr   msgrngs        e/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/resample/test_period_index.py_simple_period_range_seriesz?simple_period_range_series.<locals>._simple_period_range_series,   s    $$& 	6((35VWXC##&
 uc5C	6 bii++A.>>s3xHPSTT	6 	6s   >BB&)D )r,   s    r+   simple_period_range_seriesr/   &   s    
U '&    c                      e Zd Zej                  j                  dg d      d        Zd Zej                  j                  dg d      ej                  j                  dddid	d
ig      d               Zej                  j                  de	      ej                  j                  dddg      ej                  j                  dddg      ej                  j                  dg d      d                             Z
d Zej                  j                  dg d      d        Zej                  j                  dddg      d        Zd Zd Zd Zej                  j                  de	      ej                  j                  d ddg      ej                  j                  dg d!      d"                      Zej                  j                  d#dd$g      ej                  j                  d ddg      d%               Zd& Zej                  j                  d'd(g d)fd*d+d,gfg      d-        Zd. Zd/ Zej                  j                  d0 ej0                  d1      ej4                  j7                  d1      g      d2        Zej                  j                  d0 ej0                  d1      ej4                  j7                  d1      g      d3        Zd4 Zd5 Zd6 Z d7 Z!ej                  j                  d8e"      ej                  j                  d#dd$g      ej                  j                  d ddg      d9                      Z#d: Z$ej                  j                  de	      d;        Z%ej                  j                  d<ddg      d=        Z&d> Z'd? Z(d@ Z)dA Z*dB Z+dC Z,dD Z-dE Z.dF Z/dG Z0dH Z1dI Z2dJ Z3dK Z4ej                  jk                  dLM      dN        Z6ej                  j                  dOg dP      dQ        Z7ej                  j                  dOg dR      dS        Z8dT Z9dU Z:dV Z;ej                  j                  dWdXdYg      dZ        Z<ej                  j                  d[e=j|                  d\e=j|                  d]d^gg d_fe=j|                  e=j|                  d\e=j|                  e=j|                  e=j|                  d]d^e=j|                  e=j|                  g
g d`fg      ej                  j                  dadbdce?j                  dddegfdfdcdggfdhdidegfg      dj               ZAdk ZBej                  j                  dlg dm      dn        ZCdo ZDej                  j                  dpg dq      dr        ZEds ZFdt ZGej                  j                  dudvdwg      dx        ZHej                  j                  dy eIj                          eIj                  dz       eIj                  dz      g      d{        ZMy|)}TestPeriodIndexr   )2D1h2hc                 P    |t        d      t        dd            }|j                         j                  |      j	                         }|j                         j                  |      j	                         }t        j                  ||       |j                  d   j                  d      }|j                  d   |j                  j                  z   j                  d      }t        |||d	
      }|j                         j                  |      j                  |      }|j                  |      j	                         }t        j                  ||       |j                  |      j	                         j                         j                         }t        j                  ||       y )N   
2020-01-01periodsr   r   r'   howleft)r'   r(   r   	inclusive)ranger   to_timestampresampleasfreqtmassert_almost_equalr   r   r   reindex	to_period)	selfframe_or_seriesr   objexpectedresultr'   r(   	new_indexs	            r+   test_asfreqzTestPeriodIndex.test_asfreq<   sG    eAhl<QR.ST##%..t4;;=!!#,,T299;
vx0		!))g)6yy}syy~~-;;;HU$&Q	##%--i8BB4Hd#**,
vx0d#**,99;EEG
vx0r0   c                 d   t        t        ddd      t        ddd      d      }t        t        t	        |            |      }t        |j                  d   j                  d	      |j                  d
   j                  d	      d      }|j                         j                  |d      }|j                         j                  d      j                  d      }t        j                  ||       |j                  d      }t        |j                  d   j                  d	      |j                  d
   j                  d	      d      }|j                         j                  |d      }|j                         j                  d      j                  d      }t        j                  ||       y )N     
   r-   r   r   r   r'   r;   r=   r4   g      @)
fill_valuevalue      @)r   r   r
   r@   r&   r   r   rA   rF   rB   rC   rD   assert_series_equalto_frameassert_frame_equal)rH   r   srM   rK   rL   frames          r+   test_asfreq_fill_valuez&TestPeriodIndex.test_asfreq_fill_valueQ   so    XdAq18D!R3HsS5U$E2GGAJ###0WWR[&&7&3
	
 >>#++I#+F!**407737G
vx0

7#KKN''G'4[[_**w*7
	
 %%'//	c/J##%..t4;;s;K
fh/r0   )h12hr3   Wkwargsondateleveldc                    t        t        ddd      t        ddd      d      }t        j                  t	        |      t        j
                        }t        ||dt        j                  j                  ||gdd	g
            }d}t        j                  t        |      5   |j                  |fi | d d d        y # 1 sw Y   y xY w)NrP   rQ   rR   r-   r   dtype)ra   avrc   )namesr   zResampling from level= or on= selection with a PeriodIndex is not currently supported, use \.set_index\(\.\.\.\) to explicitly set indexmatch)r   r   r"   aranger&   int64r	   pd
MultiIndexfrom_arrayspytestraisesNotImplementedErrorrB   )rH   r   r_   r   r*   dfr)   s          r+   test_selectionzTestPeriodIndex.test_selectioni   s    
 XdAq18D!R3HsSiiE
"((3%--++S%Lc
+K

# 	
 ]].c: 	(BKK''	( 	( 	(s   #C  C	monthmethffillbfillconvr'   r(   )offsetperiod)r-   r-   Br   MEM)QEQc                 l    |ddd|       }|dk(  rt         nd }d}	t        j                  ||	      5   t        |j	                  ||      |             }
|
j                  ||	      }|j                  ||      j                         }d d d        t        j                  
       y # 1 sw Y    xY w)
N1/1/1990z
12/31/1990Y-r   r   r   rj   
conventionr;   )	r!   rD   assert_produces_warninggetattrrB   rA   rC   rG   rV   )rH   r{   r|   rz   rw   rv   r/   tswarnr)   rL   rK   s               r+   test_annual_upsample_casesz*TestPeriodIndex.test_annual_upsample_cases|   s     (
LE7|T &#}4/''C8 	AHWR[[D[A4HJF**6t*<Hvt4>>@H	A 	vx0		A 	As   AB**B3c                     |ddd      }|j                  d      j                         }|j                  |j                  j                        j                         }t        ddd      |_        t        j                  ||       t        j                  |j                  d      j                         |       t        j                  |j                  d      j                         |       y )Nr   	6/30/1995r   r   Y-DECY)rB   meangroupbyr   yearr   rD   rV   rH   r/   r   rL   rK   s        r+   test_basic_downsamplez%TestPeriodIndex.test_basic_downsample   s    '
KcJW%**,::bhhmm,113%j+GL
vx0 	r{{7388:FC
r{{3/446?r0   zrule,expected_error_msg))r   z<YearEnd: month=12>)Q-MARz<QuarterEnd: startingMonth=3>)r   z
<MonthEnd>)W-THUz<Week: weekday=3>c                      |ddd      }d| d}t        j                  t        |      5  |j                  |      j	                          d d d        y # 1 sw Y   y xY w)Nr   r   W-WEDr   z3Frequency <Week: weekday=2> cannot be resampled to z&, as they are not sub or super periodsrj   )rq   rr   r   rB   r   )rH   r/   ruleexpected_error_msgr   r)   s         r+   test_not_subperiodz"TestPeriodIndex.test_not_subperiod   sd     (
KgNA!""HJ 	 ]]0< 	%KK""$	% 	% 	%s    AAr-   r3   c                 .    |ddd      }|j                  d      j                         }|j                  |d      j                         }|j                  |d      }|j	                  |d	      j                  |      }t        j                  ||       y )
Nr   r   r   r   r   r(   r   r;   rx   )rB   r   rx   rA   rC   rG   rD   rV   )rH   r   r/   r   rL   	resampledrK   s          r+   test_basic_upsamplez#TestPeriodIndex.test_basic_upsample   s    '
KcJW%**,OODUO;AAC	&&t&7??41;;DA
y(3r0   c                 n   t        ddd      }t        t        j                  j	                  d      j                  t        |            |      }|j                  dd      j                  d	      }|j                  d      j                  |j                  d
d      }t        j                  ||       y )N1/1/2000r7   r   r:   r   r   r   r(   r   )limitrx   )methodr   )r   r
   r"   r#   r$   r%   r&   rB   rx   rC   rF   r   rD   rV   rH   r*   r   rL   rK   s        r+   test_upsample_with_limitz(TestPeriodIndex.test_upsample_with_limit   s    :qs;BII))!,<<SXFLSU3999B99S>))&,,wa)P
vx0r0   c                      |ddd      }t        d|i      }|j                  d      j                         }|d   j                  d      j                         }t        j                  |d   |       y )Nr   
12/31/1995r   r   rg   r-   )r	   rB   rx   rD   rV   )rH   r/   r   rt   rdfexps         r+   test_annual_upsamplez$TestPeriodIndex.test_annual_upsample   sf    '
LwORy!kk#$$&gs#))+
s3x-r0   c                    t        ddd      }t        g d|      }|j                  d      j                         }t        dd	d      }|j	                  dd
      j                  |d      }t        j                  ||       y )N20002003r   r   )rQ   r         r   r   2000-01z2003-12r'   r;   rx   r   )r   r
   rB   rx   rC   rF   rD   rV   )rH   r*   r   rL   ex_indexrK   s         r+   test_annual_upsample2z%TestPeriodIndex.test_annual_upsample2   ss    668L,S!'')	93?99Sg9.66x6P
vx0r0   r   )r}   r~   r   c                 n   d| } |dd|      }|dk(  rt         nd }d}	t        j                  ||	      5  |j                  ||      j	                         }
|
j                  ||	      }|j                  |d
      j                         }d d d        t        j                  
       y # 1 sw Y    xY w)NQ-r   z
12/31/1991r   r   r   rj   r   r;   rx   	r!   rD   r   rB   rx   rA   rC   rG   rV   )rH   rv   r{   r|   r   r/   r   r   r   r)   rL   rK   s               r+   test_quarterly_upsamplez'TestPeriodIndex.test_quarterly_upsample   s     E7|'
LtL &#}4/''C8 	D[[J[?EEGF**6z*BHvw7AACH	D 	vx0		D 	D   AB++B4targetr   c                 d    |ddd      }|dk(  rd nt         }d}t        j                  ||      5  |j                  ||      j	                         }|j                  ||	      }|j                  |d
      j                         }d d d        t        j                         y # 1 sw Y    xY w)Nr   r   r   r   r-   r   rj   r   r;   rx   r   )	rH   r   r   r/   r   r   r)   rL   rK   s	            r+   test_monthly_upsamplez%TestPeriodIndex.test_monthly_upsample   s     (
LsK}t-/''C8 	D[[J[?EEGF**6z*BHvw7AACH	D 	vx0		D 	Ds   AB&&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|      }|j                         j                  d      j                         }t        j                  ||       |j                  d      j                         j                         }t        j                  ||       y )Nd   20130101rY   idx)r   r:   namefloatr   rf   rR      z2013-01-01 00:00minz2013-01-01 00:01)r   g     @A@g     S@r   )r
   r@   r   r"   nanr   r   rG   rB   r   rD   rV   )rH   rY   r   rK   rL   result2s         r+   test_resample_basicz#TestPeriodIndex.test_resample_basic   s    #JZc3UK

 66"R&.7I50QR
 4,e4''.335
vx0**U#((*446
w1r0   zfreq,expected_valsr   )      r   	   2M<   (   c                     t        dt        dd            }|j                  |      j                         }t        d|t	        |            }t        ||      }t        j                  ||       y )NrQ   r   r   r'   r:   r   r'   r   r:   )r
   r   rB   countr&   rD   rV   )rH   r   expected_valsseriesrL   expected_indexrK   s          r+   test_resample_countz#TestPeriodIndex.test_resample_count  sb    
 FC!HI&,,.%tS-?
 -~>
vx0r0   c                     t        t        d      t        ddd            }|} t        |j	                  d      |             }t        j                  ||       y )Nr   r   r   r'   r:   r   r   )r
   r@   r   r   rB   rD   rV   )rH   resample_methodr   rK   rL   s        r+   test_resample_same_freqz'TestPeriodIndex.test_resample_same_freq  sK    a61SV(WX?-?A
vx0r0   c                     d}t        ddd      }t        t        d      |      }|j                  d      }t	        j
                  t        |      5  |j                          d d d        y # 1 sw Y   y xY w)	NzcFrequency <MonthEnd> cannot be resampled to <Week: weekday=6>, as they are not sub or super periodsr   r   r   r   r   r^   rj   )r   r
   r@   rB   rq   rr   r   r   )rH   r)   piserrss        r+   test_resample_incompat_freqz+TestPeriodIndex.test_resample_incompat_freq  sg    3 	 <U1XR(\\#]]0< 	GGI	 	 	s   A--A6tzAmerica/Los_Angelesc                 *   |}t        dddddt        j                        }t        dddddt        j                        }t        ||dd	      }t	        d|
      }|j                  |      }d}t        j                  t        |      5  |j                  d      j                         j                         }d d d        t        ||dd      t        j                         z
  }	t	        d|	
      }
t        j                  |
       y # 1 sw Y   QxY w)Ni     rQ   r   )r   rv   dayhourminutetzinfor   r\   r   )r   r   r   zAConverting to PeriodArray/Index representation will drop timezonerj   r-   )r'   r(   r   r         ?)r   r   utcr   r
   
tz_convertrD   r   UserWarningrB   r   rG   r   r   DayrV   )rH   r   local_timezoner'   r(   r   r   r)   rL   r   rK   s              r+   test_with_local_timezonez(TestPeriodIndex.test_with_local_timezone"  s     RQQq
 RQQq
 5#Ce<'"">2Q''3? 	=__S)..0::<F	= u#CeDw{{}T 	 #^4
vx0	= 	=s   .D		Dc                    t        ddd||      }t        d|      }|j                  d      j                         }t	        j
                  ddg|d	      j                  |      }t        d
|      }t        j                  ||       y )Nz
2017-01-010   r\   )r:   r   r   unitr   r   r-   z
2017-01-02)r   r          @)	r   r
   rB   r   rn   DatetimeIndexas_unitrD   rV   )rH   r   r   dtir   rL   exp_dtirK   s           r+   test_resample_with_tzz%TestPeriodIndex.test_resample_with_tzF  s     rNQc"c"'')""<(Rc

'$- 	 
 	vx0r0   c                 J   t        ddd      }t        t        j                  t	        |            |      }|j                  d      }t        j                  |j                  d      |_        |j                  d      j                         }t        j                  ||       y )Nz
2017-03-12z2017-03-12 1:45:0015minr   r   z
US/Pacific900s)r   r
   r"   zerosr&   tz_localizern   r   r   rB   r   rD   rV   )rH   r   rY   rK   rL   s        r+   'test_resample_nonexistent_time_bin_edgez7TestPeriodIndex.test_resample_nonexistent_time_bin_edge[  sy    <)=GL288CJ'u5==.))(..vF""6*//1
vx0r0   c           	      x   t        ddd      }|j                  d      j                  d      }t        t	        t        t        |                  |      }|j                  t        j                  d	            j                         }t        d
ddddd      }t        j                  |j                  |       y )Nz
2017-10-10z
2017-10-20r4   r'   r(   r   UTCzAmerica/Sao_Paulo)datar   1Dr   z
2017-10-09r-   shift_forwardr>   )r'   r(   r   r   nonexistentr?   )r   r   r   r	   listr@   r&   r   rn   Grouperr   rD   assert_index_equalr   )rH   r   rt   rL   rK   s        r+   (test_resample_nonexistent_time_bin_edge2z8TestPeriodIndex.test_resample_nonexistent_time_bin_edge2d  s    <dK!!%(334GHDs5z!235ABJJD1288:"'
 	fllH5r0   c                     t        dddd      }t        t        j                  t	        |            |      }|j                  d      j                         }t        j                  ||       y )Nz2014-10-25 22:00:00z2014-10-26 00:30:0030minzEurope/Londonr   r   r   )	r   r
   r"   r   r&   rB   r   rD   rV   )rH   r   rK   rL   s       r+   %test_resample_ambiguous_time_bin_edgez5TestPeriodIndex.test_resample_ambiguous_time_bin_edget  s\    !!	
 "((3s8,C8""7+002
vx0r0   c                 `   t        t        j                  dd      t        ddd            }|j	                  d      j                         }|j	                  d      j                         j	                  d      j                         j                  d      }t        j                  ||       y )	Nr   rm   re   z
2010-01-01r   r   r   r   )
r
   r"   rl   r   rB   rx   lastastyperD   rV   )rH   rY   r  boths       r+   !test_fill_method_and_how_upsamplez1TestPeriodIndex.test_fill_method_and_how_upsample  s    IIaw'\14@
 zz$%%'zz$%%'006;;=DDWM
tT*r0   r   c                 n   d| } |dd|      }|dk(  rd nt         }d}t        j                  ||      5  |j                  ||      j	                         }	|	j                  ||	      }
|
j                  |d
      j                         }
d d d        t        j                  	
       y # 1 sw Y    xY w)NzW-r   z
07/31/1990r   r-   r   rj   r   r;   rx   r   )rH   r   r   r   r/   r   r   r   r)   rL   rK   s              r+   test_weekly_upsamplez$TestPeriodIndex.test_weekly_upsample  s     C5z'
LtL}t-/''C8 	D[[J[?EEGF**6z*BHvw7AACH	D 	vx0		D 	Dr   c                      |ddd      }|j                  d      j                         j                         }|j                  d      j                         j                  d      }t        j                  ||       y )Nr   r   r   r   r   r'   r;   )rB   r   rA   rD   rV   r   s        r+   test_resample_to_timestampsz+TestPeriodIndex.test_resample_to_timestamps  se    '
LsKW%**,99;;;w',,.;;;H
vx0r0   c                     |ddd|       }|j                  d|       j                         }|j                  dd      }t        |j                  d	   j                  dd      |j                  d
   j                  dd      d|       }|j                  |j                  dd      d      }||_        t        j                  ||       y )N19901992r   r   r   r-   r'   r;   r   r=   r(   rY   rx   r   )	rB   rx   rA   r   r   rC   rF   rD   rV   )rH   r/   rv   r   quar_tsstampsqdatesrK   s           r+   test_resample_to_quarterlyz*TestPeriodIndex.test_resample_to_quarterly  s    'r%\J++5'l+113'2HHQKsG,HHRLU+eW
 >>&"5"5c3"?>P
w1r0   r<   c                      |ddd      }|j                  d|      j                         }|j                  d|      }|j                  |j                  d	      }t        j                  ||       y )
Nr  r  zY-JUNr   r   r   r;   rx   r   )rB   rx   rC   rF   r   rD   rV   )rH   r/   r<   r   rL   rK   s         r+   $test_resample_to_quarterly_start_endz4TestPeriodIndex.test_resample_to_quarterly_start_end  sj     (WEW5;;=99W#9.##FLL#A 	vx0r0   c                 z   t        g dd      }t        t        j                  j	                  d      j                  d      |      }|j                         }|j                  d      j                         }|j                  d      j                         j                  d      }t        j                  ||       y )N)  rP     i  r   r   r   r   r   YE)r   r
   r"   r#   r$   r%   rA   rB   rx   rG   rD   rV   )rH   r*   rY   r  filledrK   s         r+   test_resample_fill_missingz*TestPeriodIndex.test_resample_fill_missing  s    2=299((+;;A>cJ!C&&(??4(..0::3?
vx0r0   c                 6   t        g dd      }t        t        j                  j	                  d      j                  d      |      }d}t        j                  t        |      5  |j                  d      j                          d d d        y # 1 sw Y   y xY w)	N)r"  rP   rP   r#  r#  r   r   r   r7   r   z8Reindexing only valid with uniquely valued Index objectsrj   )r   r
   r"   r#   r$   r%   rq   rr   r   rB   rx   )rH   r*   rY   r)   s       r+   test_cant_fill_missing_dupsz+TestPeriodIndex.test_cant_fill_missing_dups  sr    8sC299((+;;A>cJH]],C8 	$JJsO!!#	$ 	$ 	$s   & BBc                    t        ddd      }t        t        j                  j	                  d      j                  t        |            |      }|j                         j                  d      j                         }|j                  d      j                         j                         }t        j                  ||       |j                  d      }|j                  d      j                         }t        j                  ||       |j                  d      j                         j                         j                         }t        j                  ||       y )Nr   z1/5/2000r   r   r   r   5min)r   r
   r"   r#   r$   r%   r&   rA   rB   r   rD   rV   rG   rH   r*   r   rK   rL   s        r+   test_resample_5minutez%TestPeriodIndex.test_resample_5minute  s    :z>BII))!,<<SXFcR??$--f5::<V$))+88:
vx0%%f-V$))+
vx0V$))+88:DDF
vx0r0   c                     |ddd      }|j                  d      j                         }|j                  d      j                  t        dd            }t	        j
                  ||        |dd      }|j                  dd	      j                         }t        dd
d      }|j                  dd      j                  |      }t	        j
                  ||       y )Nr   z2/1/2000r   r   r-   z1/3/2000r\   rY   r   z2/1/2000 23:00r;   )rB   rC   rF   r   rD   rV   )rH   r/   r   rL   rK   exp_rngs         r+   "test_upsample_daily_business_dailyz2TestPeriodIndex.test_upsample_daily_business_daily  s    '
JSIS!((*99S>)),z:*NO
vx0'
J?SS188:z+;#F99Sc9*227;
vx0r0   c                 T   t        ddd      }t        t        j                  d      |      }|d d }|j	                  d      j                  t              }|j	                  d      j                  t              j                  |j                     }t        j                  ||       y )	Nz1/1/2012r*  i  r   r   r   z2012-01-04 06:5510min)r   r
   r"   arrayrB   applyr&   locr   rD   rV   )rH   drrY   subsetrL   rK   s         r+   test_resample_irregular_sparsez.TestPeriodIndex.test_resample_irregular_sparse  s    jvtD288C=+&&')//4::g&,,S155fllC
vx0r0   c                    t        ddd      }t        t        j                  j	                  d      j                  t        |            |      }|j                  d      j                         }|j                         j                         sJ |j                  d      j                         j                         d d }|j                  d      j                         }t        j                  ||       y )	Nr   rR   r   r   r   r   r   r=   )r   r
   r"   r#   r$   r%   r&   rB   rC   isnaallrx   rD   rV   r   s        r+   test_resample_weekly_all_naz+TestPeriodIndex.test_resample_weekly_all_na  s    Rg>BII))!,<<SXFcRW%,,.{{}  """W%,,.446s;99W%++-
vx0r0   c                 R   t        dd|      }t        t        t        |            |      }|j	                  d      }|j                  d      }|j                  d      j                         }|j                         }|j                  j	                  d       |_	        |j                  d      j                         j	                  d      }t        j                  |j                  d      |_	        t        j                  ||       |j                  d	      j                         }y )
Nz	2012-4-13z2012-5-1)r'   r(   r   r   r  r   r^   r   r-   )r   r
   r@   r&   r   r   rB   r   copyr   rn   r   rD   rV   )	rH   r   r5  r   ts_utcts_localrL   ts_local_naiver   s	            r+   test_resample_tz_localizedz*TestPeriodIndex.test_resample_tz_localized  s    kzEE#b'N"-&$$%:;""3',,.!-33??E%%c*//1==>ST$$SYYS9	
vs+ ""3',,.r0   c                 *   t        dddd      }t        ddg|      }|j                  d	d
d
      j                         }t        ddd	d      }t        t        j
                  dg|      }t        j                  ||       d}t        j                  t        |      5  |j                  d	      j                         j                         }d d d        t        ddd	      }t        dg|      }t        j                  ||       y # 1 sw Y   <xY w)Nz2001-09-20 15:59z2001-09-20 16:00r   zAustralia/Sydneyr  rQ   r   r   r-   rightclosedlabelz
2001-09-20)r:   r   r   g      ?zBConverting to PeriodArray/Index representation will drop timezone rj   r   )r   r
   rB   r   r"   r   rD   rV   r   r   rG   r   )rH   r   rY   rL   r   rK   r)   s          r+   test_resample_tz_localized2z+TestPeriodIndex.test_resample_tz_localized2  s     2CU
 Aq6% Cw?DDFlACDVW2663-x8
vx0 S''3? 	8ZZ_))+557F	8acB3%x0
vx0		8 	8s    .D		Dc                    t        ddd      }|j                  d      }t        |      }t        j                  j                  d      j                  t        |            |d<   t        j                  t        j                  j                  d      j                  t        |                  |d	<   t        |j                  d
      j                         d   |j                  d
      j                         d	   ddd	g      }|j                  d
      j                  ddd      j                  dd	g      }t        j                  ||       y )Nz1/1/2011i N  r\   r   ESTr   r   firstsecondr$  )rJ  rK  )columnssumr   )r   r   r	   r"   r#   r$   r%   r&   cumsumrB   rM  r   aggrF   rD   rX   r+  s        r+   test_resample_tz_localized3z+TestPeriodIndex.test_resample_tz_localized3)  s    U=ooe$S!ii++A.>>s3xH7yy!6!6q!9!I!I#c(!ST8T*..09++d+0028< h'
 KKS5F34Wgx0W1 	
 	fh/r0   c                    t        t        j                  j                  d      j	                  d      t        ddd            }t        j                  |j                  d<   |j                  dd	d
      j                         }|dd  j                  dd	d
      j                         }t        j                  ||       |j                  dd	d	      j                         }|dd  j                  dd	d	      j                         }t        ddd      }t        j                  |j                  |       t        j                  ||       y )Nr      z1/1/2012 9:301minr   r   r   r1  r>   rC  rD  rQ   r   )r
   r"   r#   r$   r%   r   r   ilocrB   r   rD   rV   r	  r   )rH   rY   rL   r   r   s        r+   test_closed_left_cornerz'TestPeriodIndex.test_closed_left_corner?  s
   II!!!$44R8?L
 FFq	GF'BGGIennWV7nCHHJ
vs+GF&AFFHennWV6nBGGIO'1M
fllH5
vs+r0   c                 @   t        ddd      }t        t        j                  d      |      }|j	                  d      j                         }|j                         j	                  d      j                         j                         }t        j                  ||       y )N2000Q1rR   Q-DECr   r   r   r$  )
r   r
   r"   rl   rB   r   rA   rG   rD   rV   )rH   r*   r   rL   r   s        r+   test_quarterly_resamplingz)TestPeriodIndex.test_quarterly_resamplingS  st    8Rg>BIIbM-S!&&(oo((.335??A
vs+r0   c                     t        ddd      }t        |      }t        |      D cg c]  }|gdz  
 }}t        |g d|      }|j	                  dd	d	
      j                          y c c}w )Nz8/6/2012z	8/26/2012r-   r  r7   )openhighlowclosevol)rL  r   zW-MONr>   rD  )r   r&   r@   r	   rB   rJ  )rH   indnxr  rt   s         r+   test_resample_weekly_bug_1726z-TestPeriodIndex.test_resample_weekly_bug_1726[  sh    z{EH!&q*Aa**t%LTWX 	GF&9??A	 +s   A)c                    t        j                  ddg      j                  d      j                  d      }t	        ddg|      }|j                  dd	d	
      j                         j                         }g d}t        j                  |d      j                  d      j                  |j                        }t        j                  |d      }t	        g d|      }t        j                  ||       y )Nl     Z! l     NE! r  zAmerica/ChicagorQ   r   r   r]   rC  rD  )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   )rn   r   r   r   r	   rB   r  rx   to_datetimer   r   rD   rX   )rH   r   rt   rL   expected_index_valuesrK   s         r+   "test_resample_with_dst_time_changez2TestPeriodIndex.test_resample_with_dst_time_changee  s     13FGH[Z)* 	
 1vU+U7'BGGIOOQ!
  NN0d;Z)*WUZZ  	
   U3M
 	fh/r0   c                    t        t        j                  dd      t        j                        }|j                  d      j                         }|j                  d      j                         j                  d      j                         }|j                  d   t        d      k(  sJ |j                  d   |j                  d   k(  sJ y )N2000010120000201r   BMSr   r   20000103)	r
   rn   bdate_ranger"   float64rB   r   r   r   )rH   
timeseriesres1res2s       r+   test_resample_bms_2752z&TestPeriodIndex.test_resample_bms_2752  s    ..Z8



 ""5)..0""5)..099#>CCEzz!}	* 5555zz!}

1---r0   z6Commented out for more than 3 years. Should this work?)reasonc                 N   t        ddd      }t        t        j                  d      |      }t        ddd	      }|j	                  dd
      j                  |      }|j                  d      }|j                  d      j                         }t        j                  ||       y )Nr   r   r   r   r   z
2000-01-01z
2000-03-31r-   r   r(   r;   ry   r   )r   r
   r"   rl   rC   rF   fillnarB   r   rD   rV   )rH   r*   r   	exp_indexrK   rL   s         r+   test_monthly_convention_spanz,TestPeriodIndex.test_monthly_convention_span  s    9ad;BIIaL, !|#F	99Se9,44Y???'?2S!&&(
vx0r0   zfrom_freq, to_freq))r-   r   )r   r$  )r   r   )r-   r^   c                 P   t        dd|      }t        t        j                  j	                  d      j                  t        |      df      |      }|j                  |      j                         }t        j                  ||j                  |dd      j                                y )N	8/15/2012r   r   r   rC  rD  r   r	   r"   r#   r$   r%   r&   rB   r   rD   rX   rH   	from_freqto_freqr   rt   r   s         r+   test_default_right_closed_labelz/TestPeriodIndex.test_default_right_closed_label  s     {CiHryy,,Q/??S1NPSTKK(--/	
r{{77'{JOOQ	
r0   ))r-   MS)r   YS)r   QS)r\   r-   )r   r\   c                 P   t        dd|      }t        t        j                  j	                  d      j                  t        |      df      |      }|j                  |      j                         }t        j                  ||j                  |dd      j                                y )Nry  r   r   r   r>   rD  rz  r{  s         r+   test_default_left_closed_labelz.TestPeriodIndex.test_default_left_closed_label  s    
 {CiHryy,,Q/??S1NPSTKK(--/	
r{{76{HMMO	
r0   c                 D   t        ddd      }t        t        j                  j	                  d      j                  t        |            |      }|j                  d      j                         }t        j                  |j                  d   |j                                y )	Nz
2012-01-01z
2012-12-31r   r  r   r   r   r   )r   r
   r"   r#   r$   r%   r&   rB   r   rD   rE   rT  )rH   r   r   rL   s       r+   test_all_values_single_binz*TestPeriodIndex.test_all_values_single_bin  sp    <\LRYY**1-==c%jIQVWc"'')
v{{1~sxxz:r0   c                    t        t        j                  j                  d      j	                  d      t        ddd            }|j                  d      j                         }t        j                  |j                  d	d
 j                         |j                  d
d  j                         gd      j                  }t        j                  t        d      t        d      gdd      |_        t        j                   ||       y )Nr   )r   r   z2000-1-1r   ns)r:   r   r   5Dr   r7   rQ   )axisz2000-1-6zM8[ns])rf   r   )r	   r"   r#   r$   r%   r   rB   r   rn   concatrT  Tr   r   r   rD   rX   )rH   rt   rL   rK   s       r+   (test_evenly_divisible_with_no_extra_binsz8TestPeriodIndex.test_evenly_divisible_with_no_extra_bins  s     II!!!$44V<Z>
 T"'')99bggal//127712;3C3C3EFQOQQ))z"Ij$9:(QU
 	fh/r0   c           	         t        dd      }t        dddddd	gdz  d
ddddd	gdz  z   |j                  |            j                         }t        ddd      }t        dddddd	gdz  |      }|j	                  d      j                         }t        j                  ||       t        dddddd	gdz  |      }|j	                  d      j                         }t        j                  ||       y )Nz2001-5-4   r   rQ   P   Z   r      )REST_KEY
DLY_TRN_QTDLY_SLS_AMTCOOP_DLY_TRN_QTCOOP_DLY_SLS_AMTr   F   rR   2   r   r   7Dr      rR  i  i  i0  i  )	r   r	   append
sort_indexrB   r   rD   rX   rM  )rH   r   rt   rK   rL   s        r+   )test_evenly_divisible_with_no_extra_bins2z9TestPeriodIndex.test_evenly_divisible_with_no_extra_bins2  sK   R8 !""$#%')(* 	 !""$#%')(* 	( ,,u%+
, *,- 	0 :qt< !#"$#%')(* 	 
 T"((*
fh/ !#"&#&'*(+ 	 
 T"&&(
fh/r0   zfreq, period_mult)r\      )r]   r   c                 8   t        ddd      }t        t        t        |            |      }|j	                         j                  |      j                         j                  |      }t        d||t        |      z        }|j                  |      }|j                  |      j                         }t        j                  ||       |j                  |      j                         j	                         j                         }t        j                  ||       y )Nr   r-   rR   r   r   )r   r
   r@   r&   rA   rB   ohlcrG   rF   rD   rX   )rH   r   period_multr   rY   rK   rM   rL   s           r+   test_upsampling_ohlcz$TestPeriodIndex.test_upsampling_ohlc  s     S"=5R>,>>#,,T2779CCDI !vD+PSTVPWBWX	##I.D!&&(
fh/D!&&(557AAC
fh/r0   zperiods, values1970-01-01 00:00:00z1970-01-01 00:00:02z1970-01-01 00:00:03)r   r   r7      r   )
rQ   r   r   r7         r  r         zfreq, expected_values1sr   r  r   2sg      "@3sg      @c                     t        |d      }t        ||      }t        dt        |      |      }t        ||      }|j	                  |      j                         }	t        j                  |	|       y )NrY   r   r   r  r   )r   r	   r   r&   rB   r   rD   rX   )
rH   r:   valuesr   expected_valuesr   rZ   r   rK   rL   s
             r+   test_resample_with_natz&TestPeriodIndex.test_resample_with_nat  sh    P G#.&.%!3+?d
 _NC%**,
fh/r0   c                    t        t        j                  gdz  d      }t        g d|dg      }t        g |j                        }t        |dgd	      }|j                  d
      j                         }t        j                  ||       y )Nr   rY   r   )r   r   r7   rg   )r   rL  )r  r   rn  )r   rL  rf   r  )	r   rn   NaTr	   r   rB   r   rD   rX   )rH   r   rZ   r   rK   rL   s         r+   test_resample_with_only_natz+TestPeriodIndex.test_resample_with_only_natP  so    "&&AC0)2u=$"277;>C5	R%**,
fh/r0   z$start,end,start_freq,end_freq,offset))1991090519910909 03:00r\   24h10h)r  19910909 12:00r\   r  r  )r  z19910909 23:00r\   r  r  )19910905 10:0019910909r\   r  r  )r  19910909 10:00r\   r  r  )r  r  r\   r  r  )19910905 12:00r  r\   r  r  )r  r  r\   r  r  )r  r  r\   r  r  )r  r  r\   r  34h)r  r  r\   17hr  )r  r  r\   r  3h)r  z19910913 06:00r5   r  r  )r  z19910905 01:39Min5Min3Min)r  z19910905 03:182Minr  r  c                 `   t        |||      }t        t        j                  t	        |            |      }|j                  ||      j                         }|j                  |      }|j                         j                  ||      j                         }	t        j                  ||	       y )Nr   r   )r{   )
r   r
   r"   rl   r&   rB   r   rA   rD   rV   )
rH   r'   r(   
start_freqend_freqr{   r   r   rL   rK   s
             r+   test_resample_with_offsetz)TestPeriodIndex.test_resample_with_offsetY  s    , %:6RYYs2w'r2hv6;;=$$X.##%..x.GLLN
vx0r0   c                    t        ddd      }t        t        j                  t	        |            |      }|j                  d      j                         }|j                  d      }|j                         j                  d      j                         }|j                  j                  d       |_        t        j                  ||       y )Nr  z19910909 1:00r\   r   r   r   r   )r   r
   r"   rl   r&   rB   r   rA   r   
_with_freqrD   rV   )rH   r   r   rL   rK   s        r+   test_resample_with_offset_monthz/TestPeriodIndex.test_resample_with_offset_monthw  s    *O#FRYYs2w'r2c"'')$$S)##%..t499;!2248
vx0r0   z1first,last,freq,freq_to_offset,exp_first,exp_last))r  19920406r-   r-   r  r  )z19910905 00:0019920406 06:00r-   r-   r  r  )19910905 06:00r  r\   r\   r  r  )19910906r  r   r   z1991-091992-04)1991083119920430r   r   1991-08r  )r  r  r   r   r  r  c                     t        |      }t        |      }t        ||      }t        ||      }t        j                  j                  j	                  |      }t        |||      }||f}||k(  sJ y )Nr   )r   rn   tseriesfrequencies	to_offsetr   )	rH   rJ  r  r   freq_to_offset	exp_firstexp_lastrL   rK   s	            r+   test_get_period_range_edgesz+TestPeriodIndex.test_get_period_range_edges  sn    * ud|940	(.zz%%//?(d;x(!!!r0   c                 f   t        ddd      }t        j                  d      }t        j                  |dd t	        ||      j                         }|j                  d      j                  d      }t	        d	t        j                  gt        d
dgd            }t        j                  ||       y )N2018r   r  r   r   r   rQ   )	min_countrU   2018Q12018Q2rX  r   r   )r   r"   onesr   r
   rG   rB   rM  r   rD   rV   )rH   r   r  rY   rL   rK   s         r+   test_sum_min_countz"TestPeriodIndex.test_sum_min_count  s    dA>wwqzFFQq	4))+C$$q$1"&&Mh-A!P
 	vx0r0   c                    d}d}t        j                  t        |      5  t        ddd       d d d        t        ddd      }t	        t        j                  t        |            |	      }t        j                  t        |      5  |j                  d
      j                          d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NzInvalid frequency: TzInvalid frequency: Lrj   z2020-01-01 00:00:00 00:00z2020-01-01 00:00:00 00:01Lr   msr   r  
rq   rr   
ValueErrorr   r
   r"   rl   r&   rB   r   )rH   msg_tmsg_lrng_lr   s        r+   test_resample_t_l_deprecatedz,TestPeriodIndex.test_resample_t_l_deprecated  s    &&]]:U3 	+-Hs	 ')D4
 RYYs5z*%8]]:U3 	%LL""$	% 	%	 		% 	%s   B2	 B>2B;>Czfreq, freq_depr, freq_depr_res)2Q2q2y)r   2mr  c                    d| }t        j                  t        |      5  t        dd|       d d d        d| }t        dd|      }t	        t        j                  t        |            |      }t        j                  t        |      5  |j                  |      j                          d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NInvalid frequency: rj   r8   z
2020-08-01r   r   r  )rH   r   	freq_deprfreq_depr_resr)   r*   r   s          r+   (test_resample_lowercase_frequency_raisesz8TestPeriodIndex.test_resample_lowercase_frequency_raises  s     $I;/]]:S1 	E|)D	E $M?3<DARYYs3x(4]]:S1 	/LL',,.	/ 	/	E 	E	/ 	/s   B8 C8CCr{   r   c                     t        j                  | d      } |t        d      t        dd            }t	        j
                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)N% is not supported as period frequencyr7   r8   r9   r   rj   r   )reescaper@   r   rq   rr   r  rC   )rH   r{   rI   r)   rJ   s        r+   !test_asfreq_invalid_period_offsetz1TestPeriodIndex.test_asfreq_invalid_period_offset  sc     ii6("GHIeAhl<QR.ST]]:S1 	$JJFJ#	$ 	$ 	$s   A..A7N)N__name__
__module____qualname__rq   markparametrizerN   r[   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   zoneinfoZoneInfodateutilr   gettzr   r   r   r
  r  r  r   r  r  r  r   r&  r(  r,  r/  r7  r;  rA  rG  rP  rU  rY  rc  rg  rr  xfailrw  r~  r  r  r  r  r  rn   r  r"   r   r  r  r  r  r  r  r  r  r   
MonthBegin
BYearBeginBusinessHourr  r.   r0   r+   r2   r2   ;   s   [[V%781 91(00 [[V%<=[[Xv#'GH( I >(" [[Wf-[[Vgw%78[[Vgu%56[[P
1 7 9 .
1
@ [[!	
%% [[Vc4[14 241.1 [[Wf-[[\GU+;<[[C1 = .
1 [[XSz2[[\GU+;<	1 = 3	12$ [[_5w>O7PQ111
 [[H34KK34	
11: [[H34KK34	
1116 
1+ [[UD)[[XSz2[[\GU+;<	1 = 3 *	11 [[Wf-2 .2  [[UWe$451 611$111
1/(1,0,,(,B#0J. [[VW1 X1 [[S

 [[K
	
;090v [[09j2IJ0 K0  [[ FF)FF)) !	 FFFF)FFFFFF))FFFF 2	
< [[Arvvq"%&A|$%K$%	

0=L
00 [[.	
(1)(1	1 [[;	
$"%$"
1%" [[(	
	/	/ [[G Gq! G  #	
$$r0   r2   r   )2ME2QEz2QE-FEB2YEz2YE-MAR2me2qez2ye-marc                     |dd   d} | t        d      t        dd            }d| }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)	NrQ   r  r7   r8   r9   r   r  rj   r@   r   rq   rr   r  rB   rI   r   r)   rJ   s       r+   'test_resample_frequency_ME_QE_YE_raisesr    si     !"XJ;
<C
%(,|Q*O
PCv
&C	z	- T  s   A""A+c                 ~     | ddd      d d }|j                  d      j                         }t        |      dk(  sJ y )Nz2007-01z2010-05r   r   r   r   )rB   r   r&   )r/   len0ptsrL   s      r+   test_corner_cases_periodr    sB    (ICH!LGg&++-Fv;!r0   )2BME2CBME2SMEz2BQE-FEBz2BYE-MARc                     d| } | t        d      t        dd            }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nr  r7   r8   r9   r   rj   r  r  s       r+   $test_resample_frequency_invalid_freqr    sV      v
&C
%(,|Q*O
PC	z	- T  s   AA#)*r   r   r  r   r  r  numpyr"   rq   pandas._libs.tslibs.ccalendarr   r   pandas._libs.tslibs.periodr   pandas.errorsr   pandasrn   r	   r
   r   pandas._testing_testingrD   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   r   pandas.core.resampler   pandas.tseriesr   fixturer/   r2   r  r  r  r  r  r.   r0   r+   <module>r"     s    
      = +  
  4 
 9 " ' '(d$ d$N 
	 !RS Tr0   