
    OwgU                        d dl 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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@                  jC                  d      Z" ejF                         d        Z$ejF                  d        Z%ejF                  d        Z& G d d      Z'ej@                  jQ                  dg d      d        Z)d Z*ej@                  jQ                  dg d      d        Z+y)    )datetimeN)DAYSMONTHS)IncompatibleFrequency)InvalidIndexError)	DataFrameSeries	Timestamp)
date_range)PeriodPeriodIndexperiod_range)_get_period_range_edges)offsetsz@ignore:Resampling with a PeriodIndex is deprecated:FutureWarningc                      t         S )N)r        ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/resample/test_period_index.py_index_factoryr   &   s    r   c                       y)Npir   r   r   r   _series_namer   +   s    r   c                      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        r   _simple_period_range_seriesz?simple_period_range_series.<locals>._simple_period_range_series6   s    $$& 	6((35VWXC##&
 uc5C	6 bii++A.>>s3xHPSTT	6 	6s   >BB&)Dr   )r2   s    r   simple_period_range_seriesr4   0   s    
U '&r   c                      e Zd Zej                  j                  dg d      ej                  j                  dg d      d               Zd Zej                  j                  dg d      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      d0        Zd1 Zd2 Zej                  j                  d3 ej0                  d4      ej4                  j7                  d4      g      d5        Zej                  j                  d3 ej0                  d4      ej4                  j7                  d4      g      d6        Zd7 Zd8 Zd9 Z d: Z!ej                  j                  d;e"      ej                  j                  d&dd'g      ej                  j                  d#ddg      d<                      Z#d= Z$ej                  j                  de	      d>        Z%ej                  j                  d?ddg      d@        Z&dA Z'dB Z(ej                  j                  ddCg      ej                  j                  dg d      dD               Z)dE Z*dF Z+dG Z,dH Z-dI Z.dJ Z/dK Z0dL Z1dM Z2dN Z3dO Z4ej                  jk                  dPQ      dR        Z6ej                  j                  dSg dT      dU        Z7ej                  j                  dSg dV      dW        Z8dX Z9dY Z:dZ Z;ej                  j                  d[d\d]g      ej                  j                  dd^d_g      d`               Z<ej                  j                  dae=j|                  dbe=j|                  dcddgg defe=j|                  e=j|                  dbe=j|                  e=j|                  e=j|                  dcdde=j|                  e=j|                  g
g dffg      ej                  j                  dgdhdie?j                  djdkgfdldidmgfdndodkgfg      dp               ZAdq ZBej                  j                  drg ds      dt        ZCdu ZDej                  j                  dvg dw      dx        ZEdy ZFdz ZGej                  j                  d{d|d}d~ddgfd-dd|d}ddgfg      d        ZHej                  j                  d eIj                          eIj                  d       eIj                  d      g      d        ZMy^)TestPeriodIndexr    )2D1h2hkind)periodN	timestampc                 d   |}|dk(  r.|j                         j                  |      j                         }n|j                  d   j                  d      }|j                  d   |j                  j                  z   j                  d      }t        |||d      }|j                         j                  |      j                  |      }d}	t        j                  t        |		      5  |j                  ||
      j                         }
d d d        t        j                  
|       y # 1 sw Y    xY w)Nr<   r   r.   howleft)r.   r/   r    	inclusivez?The 'kind' keyword in (Series|DataFrame).resample is deprecatedmatchr:   )to_timestampresampleasfreqr#   r    r   reindex	to_periodtmassert_produces_warningr(   assert_almost_equal)selfseries_and_framer    r:   objexpectedr.   r/   	new_indexr0   results              r   test_asfreqzTestPeriodIndex.test_asfreqF   s     ;'')2248??AHIIaL--'-:E99R=399>>1??G?LC"CdfUI'')11)<FFtLHO''SA 	<\\$T\299;F	<
vx0	< 	<s   %"D&&D/c                 z   |}t        |j                  d   j                  d      |j                  d   j                  d      d      }|j                         j                  |d      }d	}t	        j
                  t        |
      5  |j                  dd      j                  d      }d d d        t	        j                  |       |j                  d      }t        |j                  d   j                  d      |j                  d   j                  d      d      }|j                         j                  |d      }d}t	        j
                  t        |
      5  |j                  dd      j                  d      }d d d        t	        j                  ||       y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nr   r.   r>   r@   r8   r   g      @)
fill_value3The 'kind' keyword in Series.resample is deprecatedrC   r<   rE   value      @6The 'kind' keyword in DataFrame.resample is deprecated)r   r#   rF   rI   rK   rL   r(   rG   rH   assert_series_equalto_frameassert_frame_equal)rN   seriessrR   rQ   r0   rS   frames           r   test_asfreq_fill_valuez&TestPeriodIndex.test_asfreq_fill_valueY   s    GGAJ###0WWR[&&7&3
	
 >>#++I#+FC''SA 	OZZ;Z7>>#>NF	O
vx0

7#KKN''G'4[[_**w*7
	
 %%'//	c/JF''SA 	S^^D{^;BBcBRF	S
fh/	O 	O	S 	Ss   	$F%"$F1%F.1F:)h12hr7   W)Nr;   r<   kwargsondateleveldc                    t        j                  t        |      t         j                        }t	        ||dt
        j                  j                  ||gddg            }d}d}t        j                  t        |	      5  t        j                  t        |	      5   |j                  |fd
|i| d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Ndtype)rg   avri   )namesr"   zResampling from level= or on= selection with a PeriodIndex is not currently supported, use \.set_index\(\.\.\.\) to explicitly set indexrZ   rC   r:   )r)   aranger-   int64r   pd
MultiIndexfrom_arrayspytestraisesNotImplementedErrorrK   rL   r(   rG   )	rN   r#   r    r:   re   r1   dfr0   depr_msgs	            r   test_selectionzTestPeriodIndex.test_selectiont   s     iiE
"((3%--++S%Lc
+K

# 	
 L]].c: 	7++MJ 7D6t6v67	7 	77 7	7 	7s$   CC3CC		CCmonthmethffillbfillconvr.   r/   )offsetr;   )r3   r3   Br   MEM)QEQc                     |ddd|       }|dk(  rt         nd }d}	|d}	t         }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/1991Y-r   r   r   +Resampling with a PeriodIndex is deprecatedrC   
conventionr>   )	r(   rK   rL   getattrrG   rF   rH   rJ   r[   )rN   r   r;   r   r|   r{   r4   tswarnr0   rS   rQ   s               r   test_annual_upsample_casesz*TestPeriodIndex.test_annual_upsample_cases   s     (
LE7|T &#}4/<?C D''C8 	AHWR[[D[A4HJF**6t*<Hvt4>>@H	A 	vx0		A 	As   AB44B=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)rG   meangroupbyr#   yearr   rK   r[   )rN   r4   r   rS   rQ   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?r   zrule,expected_error_msg))r   z<YearEnd: month=12>)Q-MARz<QuarterEnd: startingMonth=3>)r   z
<MonthEnd>)z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   zw-wedr   z3Frequency <Week: weekday=2> cannot be resampled to z&, as they are not sub or super periodsrC   )ru   rv   r   rG   r   )rN   r4   ruleexpected_error_msgr   r0   s         r   test_not_subperiodz"TestPeriodIndex.test_not_subperiod   sd     (
KgNA!""HJ 	 ]]0< 	%KK""$	% 	% 	%s    AAr3   r7   c                     |ddd      }|j                  d      j                         }d}t        j                  t        |      5  |j                  |d	      j                         }d d d        |j                  |d
      }|j                  |d      j                  |      }t        j                  |       y # 1 sw Y   TxY w)Nr   r   r   r   r   9The 'convention' keyword in Series.resample is deprecatedrC   r/   r   r>   r}   )
rG   r   rK   rL   r(   r}   rF   rH   rJ   r[   )rN   r    r4   r   rS   r0   	resampledrQ   s           r   test_basic_upsamplez#TestPeriodIndex.test_basic_upsample   s    '
KcJW%**,I''SA 	H?EEGI	H&&t&7??41;;DA
y(3		H 	Hs   "B==Cc                    t        ddd      }t        t        j                  j	                  d      j                  t        |            |      }d}t        j                  t        |      5  |j                  dd	
      j                  d      }d d d        |j                  d      j                  j                  dd      }t        j                  ||       y # 1 sw Y   MxY w)N1/1/2000   r   periodsr    r!   r   rC   r   r/   r   )limitr}   )methodr   )r   r	   r)   r*   r+   r,   r-   rK   rL   r(   rG   r}   rH   rI   r#   r[   )rN   r1   r   r0   rS   rQ   s         r   test_upsample_with_limitz(TestPeriodIndex.test_upsample_with_limit   s    :qs;BII))!,<<SXFLI''SA 	G[[[7==A=FF	G99S>))&,,wa)P
vx0	G 	Gs   -$CC&c                      |ddd      }t        d|i      }|j                  d      j                         }|d   j                  d      j                         }t        j                  |d   |       y )Nr   
12/31/1995r   r   rm   r3   )r   rG   r}   rK   r[   )rN   r4   r   rx   rdfexps         r   test_annual_upsamplez$TestPeriodIndex.test_annual_upsample   sf    '
LwORy!kk#$$&gs#))+
s3x-r   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   )   r!         r"   r   2000-01z2003-12r.   r>   r}   r   )r   r	   rG   r}   rH   rI   rK   r[   )rN   r1   r   rS   ex_indexrQ   s         r   test_annual_upsample2z%TestPeriodIndex.test_annual_upsample2   ss    668L,S!'')	93?99Sg9.66x6P
vx0r   r   )r   r   r   c                    d| } |dd|      }|dk(  rt         nd }d}	|d}	t         }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   r   r   r   r   r   rC   r   r>   r}   	r(   rK   rL   rG   r}   rF   rH   rJ   r[   )rN   r{   r   r;   r   r4   r    r   r   r0   rS   rQ   s               r   test_quarterly_upsamplez'TestPeriodIndex.test_quarterly_upsample   s     E7|'
LtL &#}4/<?C D''C8 	D[[J[?EEGF**6z*BHvw7AACH	D 	vx0		D 	D   AB55B>targetr   c                 x    |ddd      }|dk(  rd nt         }d}|d}t         }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   r3   r   r   rC   r   r>   r}   r   )	rN   r   r   r4   r   r   r0   rS   rQ   s	            r   test_monthly_upsamplez%TestPeriodIndex.test_monthly_upsample   s     (
LsK}t-/<?C D''C8 	D[[J[?EEGF**6z*BHvw7AACH	D 	vx0		D 	Ds   AB00B9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}t        j                  t        |      5  |j                         j                  dd      j                         }d d d        t        j                  |       t        j                  t        |      5  |j                  dd      j                         }d d d        t        j                  |       y # 1 sw Y   {xY w# 1 sw Y   ,xY w)Nd   20130101r_   idx)r    r   namefloatr#   rl   
      z2013-01-01 00:00minz2013-01-01 00:01)r   g     @A@g     S@r"   rW   rC   r;   rE   )r	   ranger   r)   nanr   r   rK   rL   r(   rJ   rG   r   r[   )rN   r_   r#   rQ   r0   rS   result2s          r   test_resample_basicz#TestPeriodIndex.test_resample_basic	  s   #JZc3UK

 66"R&.7I50QR
 4,e4C''SA 	I[[]++E+AFFHF	I
vx0''SA 	>jjXj6;;=G	>
w1	I 	I	> 	>s   0D10"D=1D:=Ezfreq,expected_valsr   )      r   	   2M<   (   c                     t        dt        dd            }|j                  |      j                         }t        d|t	        |            }t        ||      }t        j                  ||       y )Nr   r   r   r.   r   r"   r.   r    r   )r	   r   rG   countr-   rK   r[   )rN   r    expected_valsr^   rS   expected_indexrQ   s          r   test_resample_countz#TestPeriodIndex.test_resample_count  sb    
 FC!HI&,,.%tS-?
 -~>
vx0r   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   rG   rK   r[   )rN   resample_methodr^   rQ   rS   s        r   test_resample_same_freqz'TestPeriodIndex.test_resample_same_freq+  sK    a61SV(WX?-?A
vx0r   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"   rd   rC   )r   r	   r   rG   ru   rv   r   r   )rN   r0   r   serrss        r   test_resample_incompat_freqz+TestPeriodIndex.test_resample_incompat_freq3  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d      j                         }d d d        t        ||dd      t        j                         z
  }	t	        d|	
      }
t        j                  |
       y # 1 sw Y   QxY w)Ni     r   r   )r   r{   dayhourminutetzinfor!   rb   r   )r    r   r"   rW   rC   r3   r;   rE   )r.   r/   r    r         ?)r   pytzutcr   r	   
tz_convertrK   rL   r(   rG   r   r   r   Dayr[   )rN   r   local_timezoner.   r/   r#   r^   r0   rS   r   rQ   s              r   test_with_local_timezonez(TestPeriodIndex.test_with_local_timezone?  s     d"!!AdhhWD!DHHU5#Ce<'"">2C''SA 	@__Sx_8==?F	@ u#CeDw{{}T 	 #^4
vx0	@ 	@s   "C==Dc                 J   t        ddd||      }t        d|      }|j                  d      j                         }t	        j
                  ddg|d	      j                  |      }t        d
|      }t        j                  ||       |j                  j                  |k(  sJ y )Nz
2017-01-010   rb   )r   r    r   unitr!   r"   r3   z
2017-01-02)r   r           @)r   r	   rG   r   rr   DatetimeIndexas_unitrK   r[   r#   r   )rN   r   r   dtir   rS   exp_dtirQ   s           r   test_resample_with_tzz%TestPeriodIndex.test_resample_with_tz_  s     rNQc"c"'')""<(Rc

'$- 	 
 	vx0||"$$$r   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_localizerr   r   r#   rG   r   rK   r[   )rN   r#   r_   rQ   rS   s        r   'test_resample_nonexistent_time_bin_edgez7TestPeriodIndex.test_resample_nonexistent_time_bin_edgev  sy    <)=GL288CJ'u5==.))(..vF""6*//1
vx0r   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-20r8   r.   r/   r    UTCzAmerica/Sao_Paulodatar#   1Dr   z
2017-10-09r3   shift_forwardrA   )r.   r/   r    r   nonexistentrB   )r   r  r   r   listr   r-   r   rr   Grouperr   rK   assert_index_equalr#   )rN   r#   rx   rS   rQ   s        r   (test_resample_nonexistent_time_bin_edge2z8TestPeriodIndex.test_resample_nonexistent_time_bin_edge2  s    <dK!!%(334GHDs5z!235ABJJD1288:"'
 	fllH5r   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-   rG   r   rK   r[   )rN   r   rQ   rS   s       r   %test_resample_ambiguous_time_bin_edgez5TestPeriodIndex.test_resample_ambiguous_time_bin_edge  s\    !!	
 "((3s8,C8""7+002
vx0r   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   rq   rk   z
2010-01-01r   r   r"   r   )
r	   r)   rp   r   rG   r}   lastastyperK   r[   )rN   r_   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*r   r   c                    d| } |dd|      }|dk(  rd nt         }d}|d}t         }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   r   r   r3   r   r   rC   r   r>   r}   r   )rN   r   r   r   r4   r    r   r   r0   rS   rQ   s              r   test_weekly_upsamplez$TestPeriodIndex.test_weekly_upsample  s     C5z'
LtL}t-/<?C D''C8 	D[[J[?EEGF**6z*BHvw7AACH	D 	vx0		D 	Dr   c                 J    |ddd      }d}t        j                  t        |      5  |j                  dd	      j	                         }d d d        |j                  d
      j                  d      j	                         }t        j                  |       y # 1 sw Y   OxY w)Nr   r   r   r   rW   rC   r   r<   rE   r.   r>   zYE-DEC)rK   rL   r(   rG   r   rF   r[   )rN   r4   r   r0   rS   rQ   s         r   test_resample_to_timestampsz+TestPeriodIndex.test_resample_to_timestamps  s    '
LsKC''SA 	C[[{[;@@BF	C??w?/88BGGI
vx0	C 	Cs   "BB"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   r3   r.   r>   r   r@   r/   r_   r}   r   )	rG   r}   rF   r   r#   rH   rI   rK   r[   )rN   r4   r{   r   quar_tsstampsqdatesrQ   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1r   r?   c                 L    |ddd      }d}t        j                  t        |      5  |j                  d|      j	                         }d d d        |j                  d|	      }|j                  j                  d
      }t        j                  ||       y # 1 sw Y   PxY w)Nr  r  zY-JUNr   r   rC   r   r   r>   r}   r   )	rK   rL   r(   rG   r}   rH   rI   r#   r[   )rN   r4   r?   r   r0   rS   rQ   s          r   $test_resample_to_quarterly_start_endz4TestPeriodIndex.test_resample_to_quarterly_start_end  s     (WEI''SA 	B[[S[9??AF	B99W#9.##FLL#A 	vx0	B 	Bs   "BB#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)      i  r   r   r!   r   r"   YE)r   r	   r)   r*   r+   r,   rF   rG   r}   rJ   rK   r[   )rN   r1   r_   r!  filledrQ   s         r   test_resample_fill_missingz*TestPeriodIndex.test_resample_fill_missing  s    2=299((+;;A>cJ!C&&(??4(..0::3?
vx0r   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'  r(  r(  r)  r)  r   r   r!   r   r"   z8Reindexing only valid with uniquely valued Index objectsrC   )r   r	   r)   r*   r+   r,   ru   rv   r   rG   r}   )rN   r1   r_   r0   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5minc                    t        ddd      }t        t        j                  j	                  d      j                  t        |            |      }|j                         j                  |      j                         }|dk7  r|j                  |      }d}t        j                  t        |	      5  |j                  ||
      j                         }d d d        t        j                  |       y # 1 sw Y    xY w)Nr   z1/5/2000r   r   r!   r"   r<   rW   rC   rE   )r   r	   r)   r*   r+   r,   r-   rF   rG   r   rJ   rK   rL   r(   r[   )rN   r    r:   r1   r   rQ   r0   rS   s           r   test_resample_5minutez%TestPeriodIndex.test_resample_5minute  s     :z>BII))!,<<SXFcR??$--d388:;))$/HC''SA 	9[[D[1668F	9
vx0	9 	9s   1"C22C;c                     |ddd      }|j                  d      j                         }|j                  d      j                  t        dd            }t	        j
                  ||        |dd      }d}t	        j                  t        |      5  |j                  d	d
      j                         }d d d        t        ddd	      }|j                  d	d
      j                  |      }t	        j
                  ||       y # 1 sw Y   PxY w)Nr   z2/1/2000r   r   r3   z1/3/2000r   rC   rb   r_   r   z2/1/2000 23:00r>   )rG   rH   rI   r   rK   r[   rL   r(   )rN   r4   r   rS   rQ   r0   exp_rngs          r   "test_upsample_daily_business_dailyz2TestPeriodIndex.test_upsample_daily_business_daily  s    '
JSIS!((*99S>)),z:*NO
vx0'
J?I''SA 	?[[[5<<>F	?z+;#F99Sc9*227;
vx0		? 	?s   "DD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)   arrayrG   applyr-   locr#   rK   r[   )rN   drr_   subsetrS   rQ   s         r   test_resample_irregular_sparsez.TestPeriodIndex.test_resample_irregular_sparse  s    jvtD288C=+&&')//4::g&,,S155fllC
vx0r   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   r   zW-WEDr   r!   r"   zW-THUr@   )r   r	   r)   r*   r+   r,   r-   rG   rH   isnaallr}   rK   r[   )rN   r1   r   rS   rQ   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0r   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   rd   r   r3   )r   r	   r   r-   r  r   rG   r   copyr#   rr   r   rK   r[   )	rN   r   r:  r   ts_utcts_localrS   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',,.r   c                    t        dddd      }t        ddg|      }|j                  d	d
d
      j                         }t        ddd	d      }t        dg|      }t	        j
                  ||       d}t	        j                  t        |      5  |j                  d	d      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  r   r!   r"   r3   rightclosedlabelz
2001-09-21)r   r    r   g      ?rW   rC   r;   rE   z
2001-09-20r   )	r   r	   rG   r   rK   r[   rL   r(   r   )rN   r   r_   rS   r   rQ   r0   s          r   test_resample_tz_localized2z+TestPeriodIndex.test_resample_tz_localized28  s     2CU
 Aq6%Cw?DDFlACDVW3%x0
vx0 D''SA 	;ZZ(Z388:F	;acB3%x0
vx0		; 	;s   "C..C7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  rb   r   ESTr"   r!   firstsecondr*  )rO  rP  )columnssumr   )r   r  r   r)   r*   r+   r,   r-   cumsumrG   rR  r   aggrI   rK   r]   )rN   r1   r   rQ   rS   s        r   test_resample_tz_localized3z+TestPeriodIndex.test_resample_tz_localized3M  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/r   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   r6  rA   rH  rI  r   r   )r	   r)   r*   r+   r,   r   r   ilocrG   r   rK   r[   r  r#   )rN   r_   rS   r   r   s        r   test_closed_left_cornerz'TestPeriodIndex.test_closed_left_cornerc  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+r   c                 @   t        ddd      }t        t        j                  d      |      }|j	                  d      j                         }|j                         j	                  d      j                         j                         }t        j                  ||       y )N2000Q1r   Q-DECr   r"   r   r*  )
r   r	   r)   rp   rG   r   rF   rJ   rK   r[   )rN   r1   r   rS   r   s        r   test_quarterly_resamplingz)TestPeriodIndex.test_quarterly_resamplingw  st    8Rg>BIIbM-S!&&(oo((.335??A
vs+r   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/2012r3   r  r   )openhighlowclosevol)rQ  r#   zW-MONrA   rI  )r   r-   r   r   rG   rO  )rN   indnxr  rx   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/Chicagor   r!   r"   rc   rH  rI  )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   )rr   r   r  r   r   rG   r  r}   to_datetimer   r   rK   r]   )rN   r#   rx   rS   expected_index_valuesrQ   s         r   "test_resample_with_dst_time_changez2TestPeriodIndex.test_resample_with_dst_time_change  s     13FGH[Z)* 	
 1vU+U7'BGGIOOQ!
  NN0d;Z)*WUZZ  	
   U3M
 	fh/r   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	   rr   bdate_ranger)   float64rG   r   r#   r
   )rN   
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---r   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-31r3   r   r/   r>   r~   r   )r   r	   r)   rp   rH   rI   fillnarG   r   rK   r[   )rN   r1   r   	exp_indexrQ   rS   s         r   test_monthly_convention_spanz,TestPeriodIndex.test_monthly_convention_span  s    9ad;BIIaL, !|#F	99Se9,44Y???'?2S!&&(
vx0r   zfrom_freq, to_freq))r3   r   )r   r*  )r   r   )r3   rd   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!   rH  rI  r   r   r)   r*   r+   r,   r-   rG   r   rK   r]   rN   	from_freqto_freqr   rx   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	
r   ))r3   MS)r   YS)r   QS)rb   r3   )r   rb   c                 P   t        dd|      }t        t        j                  j	                  d      j                  t        |      df      |      }|j                  |      j                         }t        j                  ||j                  |dd      j                                y )Nr~  r   r   r!   rA   rI  r  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	
r   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-   rG   r   rK   rM   rY  )rN   r#   r   rS   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:r   c                 
   t        t        j                  j                  d      j	                  d      t        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   )r   r"   5Dr   r   r   )axisz2000-1-6zM8[ns])rl   r    )r   r)   r*   r+   r,   r   rG   r   rr   concatrY  Tr   r
   r#   rK   r]   )rN   rx   rS   rQ   s       r   (test_evenly_divisible_with_no_extra_binsz8TestPeriodIndex.test_evenly_divisible_with_no_extra_bins  s     II!!!$44V<Z3
 T"'')99bggal//127712;3C3C3EFQOQQ))z"Ij$9:(QU
 	fh/r   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   r   P   Z   r      )REST_KEY
DLY_TRN_QTDLY_SLS_AMTCOOP_DLY_TRN_QTCOOP_DLY_SLS_AMTr!   F   r   2   r"   r   7Dr      rW  i  i  i0  i  )	r   r   append
sort_indexrG   r   rK   r]   rR  )rN   r#   rx   rQ   rS   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/r   zfreq, period_mult)rb      )rc   r!   Nr;   c                    t        ddd      }t        t        t        |            |      }|j	                         j                  |      j                         j                  |      }t        d||t        |      z        }|j                  |      }d}t        j                  t        |      5  |j                  ||      j                         }	d d d        t        j                  	|       y # 1 sw Y    xY w)	Nr   r3   r   r   r"   rW   rC   rE   )r   r	   r   r-   rF   rG   ohlcrJ   rI   rK   rL   r(   r]   )
rN   r    period_multr:   r   r_   rQ   rR   r0   rS   s
             r   test_upsampling_ohlcz$TestPeriodIndex.test_upsampling_ohlc1  s     S"=5R>,>>#,,T2779CCDI !vD+PSTVPWBWX	##I.C''SA 	8ZZ4Z0557F	8
fh/	8 	8s   2"C33C<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                 R   t        |d      }t        ||      }t        dt        |      |      }t        ||      }d}	t	        j
                  t        |	      5  |j                  |      }
d d d        
j                         }t	        j                  ||       y # 1 sw Y   0xY w)Nr_   r   r"   r  r   r   rC   )
r   r   r   r-   rK   rL   r(   rG   r   r]   )rN   r   valuesr    expected_valuesr#   r`   r   rQ   r0   r   rS   s               r   test_resample_with_natz&TestPeriodIndex.test_resample_with_natB  s    P G#.&.%!3+?d
 _NC;''SA 	&%B	&
fh/	& 	&s   BB&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   r_   r   )r!   r   r   rm   )r#   rQ  )r  r    rs  )r#   rQ  rl   r  )	r   rr   NaTr   r    rG   r   rK   r]   )rN   r   r`   r   rQ   rS   s         r   test_resample_with_only_natz+TestPeriodIndex.test_resample_with_only_natw  so    "&&AC0)2u=$"277;>C5	R%**,
fh/r   z$start,end,start_freq,end_freq,offset))1991090519910909 03:00rb   24h10h)r  19910909 12:00rb   r  r  )r  z19910909 23:00rb   r  r  )19910905 10:0019910909rb   r  r  )r  19910909 10:00rb   r  r  )r  r  rb   r  r  )19910905 12:00r  rb   r  r  )r  r  rb   r  r  )r  r  rb   r  r  )r  r  rb   r  34h)r  r  rb   17hr  )r  r  rb   r  3h)r  z19910913 06:00r9   r  r  )r  z19910905 01:39Min5Min3Min)r  z19910905 03:182Minr  r  c                    t        |||      }t        t        j                  t	        |            |      }d}t        j                  t        |      5  |j                  ||      }	d d d        	j                         }
|
j                  |      }
|j                         j                  ||      j                         }t        j                  |
|       y # 1 sw Y   pxY w)Nr   r"   r   rC   r   )r   r	   r)   rp   r-   rK   rL   r(   rG   r   rF   r[   )rN   r.   r/   
start_freqend_freqr   r   r   r0   r   rS   rQ   s               r   test_resample_with_offsetz)TestPeriodIndex.test_resample_with_offset  s    , %:6RYYs2w'r2;''SA 	7hv6B	7$$X.##%..x.GLLN
vx0	7 	7s   CC!c                    t        ddd      }t        t        j                  t	        |            |      }d}t        j                  t        |      5  |j                  dd	
      }d d d        j                         }|j                  d      }|j                         j                  dd	
      j                         }|j                  j                  d       |_        t        j                  ||       y # 1 sw Y   xY w)Nr  z19910909 1:00rb   r   r"   r   rC   r   r  r  r   )r   r	   r)   rp   r-   rK   rL   r(   rG   r   rF   r#   
_with_freqr[   )rN   r   r   r0   r   rS   rQ   s          r   test_resample_with_offset_monthz/TestPeriodIndex.test_resample_with_offset_month  s    *O#FRYYs2w'r2;''SA 	0c$/B	0$$S)##%..tD.AFFH!2248
vx0	0 	0s   C88Dz1first,last,freq,freq_to_offset,exp_first,exp_last))r  19920406r3   r3   r  r  )z19910905 00:0019920406 06:00r3   r3   r  r  )19910905 06:00r  rb   rb   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   rr   tseriesfrequencies	to_offsetr   )	rN   rO  r  r    freq_to_offset	exp_firstexp_lastrS   rQ   s	            r   test_get_period_range_edgesz+TestPeriodIndex.test_get_period_range_edges  sn    * ud|940	(.zz%%//?(d;x(!!!r   c                    t        ddd      }t        j                  d      }t        j                  |dd t	        ||      j                         }d}t        j                  t        |      5  |j                  d      }d d d        j                  d	
      }t	        dt        j                  gt        ddgd            }t        j                  ||       y # 1 sw Y   \xY w)N2018r   r  r   r   r   rC   r   r   )	min_countrY   2018Q12018Q2r]  r   r"   )r   r)   onesr   r	   rJ   rK   rL   r(   rG   rR  r   r[   )rN   r#   r  r_   r0   r   rS   rQ   s           r   test_sum_min_countz"TestPeriodIndex.test_sum_min_count  s    dA>wwqzFFQq	4))+;''SA 	!CB	!!$"&&Mh-A!P
 	vx0	! 	!s   .CC$c                    d}d}t        j                  t        |      5  t        ddd      }d d d        t	        t        j                  t                    |      }t        ddd	      }t	        d
dg|      }t        j                  t        |      5  |j                  d      j                         }d d d        t        j                  |       y # 1 sw Y   xY w# 1 sw Y   ,xY w)Nz:'T' is deprecated and will be removed in a future version.z:'L' is deprecated and will be removed in a future version.rC   z2020-01-01 00:00:00 00:00z2020-01-01 00:00:00 00:01Lr   r"   r   g    K@g     L@r  rK   rL   r(   r   r	   r)   rp   r-   rG   r   r[   )rN   msg_tmsg_lrng_lr   r1   rQ   rS   s           r   test_resample_t_l_deprecatedz,TestPeriodIndex.test_resample_t_l_deprecated  s    LL''UC 	 +-HsE	 RYYs5z*%8')D5
 7G,C8''UC 	.\\#&++-F	.
vx0	 		. 	.s   C C#C #C,z.freq, freq_depr, freq_res, freq_depr_res, data2Q2q2Y2yg      ?2mr   rY   c                    d|dd   d}d|dd   d d|dd   d}d|dd   d t        j                  t        |      5  t        dd|	      }d d d        t	        t        j                  t                    |
      }	t        dd|	      }
t	        ||
      }t        j                  t        |      5  |	j                  |      j                         }d d d        t        j                  |       y # 1 sw Y   xY w# 1 sw Y   ,xY w)N'r   z)' is deprecated and will be removed in a zfuture version. Please use 'z
' instead.rC   z
2020-01-01z
2020-08-01r   r"   r  r  )rN   r    	freq_deprfreq_resfreq_depr_resr  ry   depr_msg_resr  r   r1   rQ   rS   s                r   ,test_resample_lowercase_frequency_deprecatedz<TestPeriodIndex.test_resample_lowercase_frequency_deprecated  s
    y}o%NO
&tABxj
;=,--VW
&x|nJ?''XF 	M |)LE	MRYYs5z*%8<HEt3/''\J 	8\\-0557F	8
vx0	M 	M	8 	8s    C56 D5C>D
r   r!   c                     d|j                    d}|}t        j                  t        |      5  |j	                  |       d d d        y # 1 sw Y   y xY w)NzInvalid offset: 'z' for converting time series rC   r   )baseru   rv   
ValueErrorrH   )rN   r   rO   r0   rx   s        r   !test_asfreq_invalid_period_offsetz1TestPeriodIndex.test_asfreq_invalid_period_offset  sM     "&++.KL]]:S1 	#II6I"	# 	# 	#s   A

A)N__name__
__module____qualname__ru   markparametrizerT   ra   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   timezonedateutilr   gettzr   r   r  r  r  r  r   r  r  r#  r%  r,  r.  r1  r4  r<  r@  rF  rL  rU  rZ  r^  rh  rl  rw  xfailr|  r  r  r  r  r  r  rr   r  r)   r   r  r  r  r  r  r  r  r  r   
MonthBegin
BYearBeginBusinessHourr  r   r   r   r6   r6   E   sA   [[V%78[[V%BC1 D 91"06 [[V%<=[[V%BC[[Xv#'GH7 I D >7$ [[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
 [[DMM/0KK34	
112 [[DMM/0KK34	
%% 16 
1+ [[UD)[[XSz2[[\GU+;<1 = 3 *11 [[Wf-2 .2  [[UWe$451 611$ [[VfX.[[V%BC	1 D /	111
1/(1*0,,(,B#0J. [[VW1 X1 [[S

 [[K
	
;090v [[09j2IJ[[VdH%560 7 K0 [[ FF)FF)) !	 FFFF)FFFFFF))FFFF 2	
< [[Arvvq"%&A|$%K$%	
0=L00 [[.	
(1)(11 [[;	
$"%$"11& [[84tcU+4tc3Z0	
11& [[G Gq! G  #	
##r   r6   zfreq,freq_depr))r   2ME)r  2QE)z2Q-FEBz2QE-FEB)r  2YE)2Y-MARz2YE-MAR)r   2me)r  2qe)r  z2ye-marc                     d|dd   d|dd   d}| }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nzfor Period, please use 'r   z' instead of 'r  rC   ru   rv   r  rG   )rO   r    r  r0   rP   s        r   .test_resample_frequency_ME_QE_YE_error_messager    sX     %T!"XJnYqr]O1
MC
C	z	-  Y     s   AAc                      | ddd      d d }d}t        j                  t        |      5  |j                  d      j	                         }d d d        t              dk(  sJ y # 1 sw Y   xY w)	Nz2007-01z2010-05r   r   r   r   rC   r   )rK   rL   r(   rG   r   r-   )r4   len0ptsr0   rS   s       r   test_corner_cases_periodr  2  sl    (ICH!LG
7C		#	#M	= 2!!'*//12v;!2 2s    A%%A.r  )2BME2CBME2SMEz2BQE-FEBz2BYE-MARc                     d|dd   }| }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)NzInvalid frequency: r   rC   r  )rO   r  r0   rP   s       r   $test_resample_frequency_invalid_freqr  <  sJ      	!"
/C
C	z	-  Y     s   AA
),r   r$   r  numpyr)   ru   r   pandas._libs.tslibs.ccalendarr   r   pandas._libs.tslibs.periodr   pandas.errorsr   pandasrr   r   r	   r
   pandas._testing_testingrK   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   r   pandas.core.resampler   pandas.tseriesr   r   r'   
pytestmarkfixturer   r   r4   r6   r  r  r  r  r   r   r   <module>r'     s         = +  
  4 
 9 "[[''F

     ' '(T# T#n 	   	 	 r   