o
    dK                     @   s  d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	Z
d dl	mZmZmZmZmZ d dlmZ d dlmZ edgd d	gd
  dgd  eddedddddZe dd Zdd Zdd Zdd Zdd Zdd Zdd  Zejd!g d"d#d$ Z d%d& Z!ejd!d'd(gd)d* Z"d+d, Z#d-d. Z$d/d0 Z%d1d2 Z&d3d4 Z'd5d6 Z(d7d8 Z)d9d: Z*d;d< Z+ejd=d>gd>d?ggd@dA Z,ejdBdCdDgdEdF Z-dGdH Z.ejd=d>gd>d?ggdIdJ Z/dKdL Z0dMdN Z1dOdP Z2dQdR Z3dSdT Z4dS )U    )dedentN)is_platform_windows)
async_mark)	DataFrameIndexSeriesTimedeltaIndex	Timestamp)
date_range                  (   AB1/1/2000sfreqperiodsindexc              	      s   ddl m} td}| |I d H  td . |d t| jdd W d    n1 s1w   Y  W d    d S W d    d S 1 sIw   Y  d S )Nr   )provisionalcompleterzZ    import pandas._testing as tm
    s = tm.makeTimeSeries()
    rs = s.resample("D")
    ignorezrs.r   )	ZIPython.core.completerr   r   Zrun_codetmZassert_produces_warninglistZ	CompleterZcompletions)ipr   code r"   `/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/resample/test_resampler_grouper.py"test_tab_complete_ipython6_warning   s   
"r$   c                  C   s   g dg dg dg dg dg dg dg dg d	g d
g
} t | g dd}t|j|_dd }|d|}|ddd }t	
|| t tddddg dg ddd}dd }|d|}|dd }t	
|| d S )N)
2010-01-01r   r   )z
2010-01-02r   r   )z
2010-01-05r   r   )z
2010-01-10r      )z
2010-01-13r   r   )r%   r      )z
2010-01-03r   r   )z
2010-01-04r   r   )z
2010-01-11r   r&   )z
2010-01-14r   r   )dateidZscorecolumnsc                 S   s   |  dd S )Nr(   D)	set_indexresampleasfreqxr"   r"   r#   f_0A      z'test_deferred_with_groupby.<locals>.f_0r)   r(   r,   
2016-01-01   W)startr   r   )r   r   r   r   )r'      r&   r   r(   groupvalc                 S      |  d S )N1D)r.   ffillr0   r"   r"   r#   f_1P      z'test_deferred_with_groupby.<locals>.f_1r:   r=   )r   pdto_datetimer(   groupbyapplyr-   r.   r/   r   assert_frame_equalr
   r>   )datadfr2   expectedresultr?   r"   r"   r#   test_deferred_with_groupby.   s:   rJ   c                  C   sr   t d} | jdd }| dj }t|| | jd }t|| | d j}t|| d S )Nr   c                 S   r<   N2s)r.   meanr0   r"   r"   r#   <lambda>[       ztest_getitem.<locals>.<lambda>rL   )
test_framerC   r   rD   r.   rM   r   assert_series_equal)grH   rI   r"   r"   r#   test_getitemX   s   
rS   c                  C   s   ddddddg} t | tdddd}|d	d
}|d  }tddgtjjdt	dfdt	dfgd	d gddd}t
|| |d  }t
|| d S )Nr   r   )r)   buyerr   r   r4   r   r   r)   r=   rT   z
2016-01-02names)r   name)r   r
   rC   r.   countr   rA   
MultiIndexfrom_tuplesr	   r   rQ   )rF   rG   rrI   rH   r"   r"   r#   test_getitem_multipleg   s   r]   c                  C   sf   t tdtddddd} | ddd	d
  }| djd	ddd
  }t|| d S )NZaabbbz1-1-2016r'   rU   r   )r)   r(   rF   r(   r)   2DrF   on)	r   r   r
   r-   rC   r.   sumr   rQ   )rG   exprI   r"   r"   r#   )test_groupby_resample_on_api_with_getitem|   s   rc   c                  C   sr  d} d\}}d}t ||dd}ttjt||d}||| }tj| d}||	d}||| }||	d}	t
jtdd	 t|j|	j W d    n1 sWw   Y  td
}
tj| |
d}||	d}||| }||	d}t|| td
tdd  }tj| |d}||	d}||| }||	d}t|| t|| d S )NZ1399min)z1/1/2000 00:00:00z1/31/2000 00:00z1/15/2000 00:00:00Z1231minr   r   rY   zIndex are differentmatchr   )r   origini0u  )r
   r   nprandomrandnlenrA   GrouperrC   aggpytestraisesAssertionErrorr   assert_index_equalr   r	   rQ   Z	Timedelta)r   r7   endmiddlerngtsZts2Zsimple_grouperZcount_tsZ	count_ts2rg   Zadjusted_grouperZadjusted_count_tsZadjusted_count_ts2Zorigin_futureZadjusted_grouper2Zadjusted2_count_tsZadjusted2_count_ts2r"   r"   r#   test_groupby_with_origin   s4   rv   c                  C   sX   t dddd} ttd| dd }tg dtjg dd	d
dd}t|| d S )Nr   r   Tr   r   r   Z20s)r   r   r   r   r   r   r   )z2000-01-01 00:00:00z2000-01-01 00:00:20z2000-01-01 00:00:40z2000-01-01 00:01:00z2000-01-01 00:01:20z2000-01-01 00:01:40z2000-01-01 00:02:00zdatetime64[ns]Z20S)dtyper   )	r
   r   ranger.   nearestrA   ZDatetimeIndexr   rQ   )r   rI   rH   r"   r"   r#   test_nearest   s   	r|   f)firstlastmedianZsemra   rM   minmaxsizerY   r{   Zbfillr>   r/   Zohlcc                    sB   t d}|d}t|  }| fdd}t|| d S )Nr   rL   c                    s   t | d  S rK   getattrr.   r0   r}   r"   r#   rN      s    ztest_methods.<locals>.<lambda>)rP   rC   r.   r   rD   r   Zassert_equalr}   rR   r\   rI   rH   r"   r   r#   test_methods   s
   

r   c                  C   s>   t d} | d}|j }| jdd }t|| d S )Nr   rL   c                 S   r<   rK   )r.   nuniquer0   r"   r"   r#   rN      rO   z&test_methods_nunique.<locals>.<lambda>)rP   rC   r.   r   r   rD   r   rQ   )rR   r\   rI   rH   r"   r"   r#   test_methods_nunique   s
   


r   Zstdvarc                    sF   t d}|d}t| dd}| fdd}t|| d S )Nr   rL   r   Zddofc                    s   t | d ddS )NrL   r   r   r   r0   r   r"   r#   rN      s    z&test_methods_std_var.<locals>.<lambda>)rP   rC   r.   r   rD   r   rE   r   r"   r   r#   test_methods_std_var   s
   

r   c                  C   sl   t d} | d}| d }dd }||}t|| dd }| |}|d}t|| d S )Nr   rL   c                 S   r<   rK   )r.   ra   r0   r"   r"   r#   r2      r@   ztest_apply.<locals>.f_0c                 S   s   |  ddd S )NrL   c                 S   s   |   S Nra   )yr"   r"   r#   rN     s    z)test_apply.<locals>.f_1.<locals>.<lambda>)r.   rD   r0   r"   r"   r#   r?     r3   ztest_apply.<locals>.f_1int64)rP   rC   r.   ra   rD   r   rE   Zastype)rR   r\   rH   r2   rI   r?   r"   r"   r#   
test_apply   s   




r   c                  C   s   t dddd} tdtjt| i| d}dd }|tjd	d	|}|
d		|}t|| |d jtjd	dd
d	|}|d 
d		|}t|| d S )Nz1-1-2015z12-31-15r,   rd   col1rF   r   c                 S   s   t ddgddgd}|S )Nr   r   abr   )r   )r1   r   r"   r"   r#   r}     s   z(test_apply_with_mutated_index.<locals>.fMF)Z
group_keys)r
   r   rh   ri   Zrandrk   rC   rA   rl   rD   r.   r   rE   rQ   )r   rG   r}   rH   rI   r"   r"   r#   test_apply_with_mutated_index  s    r   c                     s   t jddg} tdddd}ttdgd dd	|| d
}dd |jD  |	d
 fdd}td	ddgg tddd	dt jddgd
}t|| d S )N)r   r    one)r   r   itwoz
2017-01-01Z15Minr   )r7   r   r   r      r   r   r+   c                 S   s&   i | ]}||d  dkrt jnt jqS )r   r   )rh   ra   rM   ).0colr"   r"   r#   
<dictcomp>&  s   & z1test_apply_columns_multilevel.<locals>.<dictcomp>Hc                    s    | j  | S r   rX   r0   Zagg_dictr"   r#   rN   '  rO   z/test_apply_columns_multilevel.<locals>.<lambda>g        Z1H)rA   rZ   r[   r
   r   rh   arrayZreshaper+   r.   rD   r   rE   )colsindrG   rI   rH   r"   r   r#   test_apply_columns_multilevel!  s   "r   c                  C   s   t dddd} t| g dg ddd}|d	jd
dd }tjg dtjdt	tg dg}tj
j|d	d gd}tg dg dd|d}t|| d S )Nz
2000-01-01r^   r'   r   )r   r   r   r   r   )r   r   r   r   r   )col0r   )r   rF   r   Z1Wleft)label)r   r   r   r   ry   )z
1999-12-26
2000-01-02r   r   rV   )r   r   r   r   )r   r   r   r   r   )r
   r   rC   r.   ra   rh   r   r   rA   rB   rZ   from_arraysr   rE   )r   rG   rI   miZmindexrH   r"   r"   r#    test_resample_groupby_with_label2  s   r   c                  C   s   t } tg ddd}| dd }|jjdksJ t|jj	d | | d
d }|jjdks8J t|jj	d | d S )N)r   r   r   r   r   rL   r   r   r   )rP   r   rC   r.   rM   r   Znlevelsr   rq   levelsZrolling)rG   rH   rI   r"   r"   r#   test_consistency_with_windowF  s   r   c                  C   sl   t tjddtdtddddd} |  }g d|_|d		 }| d		 }|j|_t
|| d S )
Nr   r   Zaaa
2012-01-01r   rx   r+   r   )r   r   cZ5s)r   rh   ri   rj   r   r
   copyr+   r.   r   r   rE   )rG   df2rH   rI   r"   r"   r#   test_median_duplicate_columnsS  s   
r   c                  C   s   t tdtdddtddddd} | dd	d
 }tg dtddddd}t|| | ddd
 }t|| d S )N
   r   )r   r   r   Z20minrx   r   r   c                 S   s
   | j  S r   )r   ra   r:   r"   r"   r#   rN   k  s   
 z0test_apply_to_one_column_of_df.<locals>.<lambda>)r   r      	   r5   c                 S   s   | d   S )Nr   r   r   r"   r"   r#   rN   r  s    )r   rz   r
   r.   rD   r   r   rQ   rG   rI   rH   r"   r"   r#   test_apply_to_one_column_of_dfc  s   r   c                  C   sn   t g dg dg dd} t| d | d< | djddd}|d	g  }|d	d
i}t|| d S )N)cat_1r   cat_2r   r   r   r   r   )r'   r      r   r5      r   2   )z2019-2-1z
2018-02-03	2020-3-112019-2-2r   z	2018-12-4r   z
2020-12-12)catnumr(   r(   r   Yr_   r   ra   )	r   rA   rB   rC   r.   ra   rm   r   rE   )rG   	resampledrH   rI   r"   r"   r#   test_resample_groupby_aggv  s   
r   c                  C   s   t d} tdgdgdt| gddd}|dd	d
 }|ddg}tddggtjjd| fgddgdddgd}t	
|| d S )Nz2021-02-28 00:00:00betaE   )classvaluer(   r   r   r   r   r   ra   r   r   rV   r   )r	   r   r   rC   r.   rm   rA   rZ   r[   r   rE   )ru   rG   r   rI   rH   r"   r"   r#   "test_resample_groupby_agg_listlike  s    r   keysr   r   c                 C   s   t g ddgtg d}|| jtdd }t ddgdj| ddjtg d	d
}t| dkr8| d |j	_
t|| d S )Nr   r   r   00:00:01ruler*   FdropT)appendr   r   )r   r   rC   r.   rA   to_timedeltarM   r-   rk   r   rX   r   rE   r   rG   rI   rH   r"   r"   r#   
test_empty  s   
r   consolidateTFc                 C   s   t dddd}td|tddd}td|tdd	}tj||gd
d}| r+| }|dgjddd }tj	j
dgd dgd  tg dd gddgd}tdgd dgd  g dd dgd tjgd  d|d}t|| d S )Nz
2020-01-01   r,   rx   r   r;   )keyr(   r   
col_objectr   )r   r(   r   T)Zignore_indexr   r6   r(   r_   r   )z
2020-01-05z
2020-01-12z
2020-01-19r   rV   )r   r'   r   )r   r   r   r   )r
   r   rz   rA   concatZ_consolidaterC   r.   r   rZ   r   rB   rh   nanr   rE   )r   datesZdf1r   rG   rI   idxrH   r"   r"   r#   .test_resample_groupby_agg_object_dtype_all_nan  s*   
r   c               	   C   s   t tdddg dg ddd} | djd	d
ddg  }t dg ditdtdfdtdfdtdfdtdfgddd}t|| d S )Nr4   r   r7   r   r   r   r   r   r   r   r   r   )r   r&   r'   r   r   r   r'   r   r9   )rF   r:   r^   r(   r_   r;   )      @g      @g      @g      @r   
2016-01-03r   
2016-01-05
2016-01-07r:   r(   rF   rX   r   )	r   r
   rC   r.   rM   r   r	   r   rE   r   r"   r"   r#   'test_groupby_resample_with_list_of_keys  s(   




r   c                 C   s   t g g dd}t|d |d< |d}|| jtdd }t g ddj| dd}t|d |d< |jdddd	}t| d
krM| d |j	_
t|| d S )N)r   r   r(   r*   r(   r   r   Fr   T)r   r   r   r   )r   rA   rB   r-   rC   r.   r   rM   rk   r   rX   r   rE   r   r"   r"   r#   test_resample_no_index  s   
r   c                  C   s   t ttg dddd} | g djtdd }tg d}t tjt	j
d	d
gt	jd|gg dg dgd dgdd}tj||t  d d S )N)2018-01-01 00:00:002018-01-01 12:00:002018-01-02 00:00:00r(   r   r   )r   r   r   z06:00:00r   )r   z2018-01-01 06:00:00r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   codesrW   )Zcheck_index_type)r   r   rA   rB   rC   r.   r   rM   rZ   rh   r   Zintpr   rE   r   )rG   rI   r   rH   r"   r"   r#   test_resample_no_columns  s(    	r   c               	   C   s   t dgd dgd  dgd  dgd  tddtddddd	} | d
d }tdtj	j
dtdfdtdfdtdfdtdfgd
d gdd	}t|| d S )Nr   r   r   r   r   z31/12/2000 18:00r   r   r   r   r,   z
2000-12-31z
2001-01-01rV   )r   rh   aranger
   rC   r.   r   r   rA   rZ   r[   r	   r   rQ   r   r"   r"   r#   )test_groupby_resample_size_all_index_same   s"   2



r   c               	   C   s   t g dg ddttdddddd	} | d
ddg  }t dg ditdtdfdtdfdtdfdtdfgddd	}t	|| d S )Nr   r   r   r5   r   r'   r   r   r8   r:   r;   r4   r   r   r(   r   r   r:   r^   r;   g       @g      @g      @r   r   r   r   r   r   r   r   
r   r   r
   rC   r.   rM   r   r	   r   rE   r   r"   r"   r#   0test_groupby_resample_on_index_with_list_of_keys6  s.   





r   c               	   C   s   t g dg dg dg ddttdddd	d
d} | ddddg  }t g dg ddtdtdfdtdfdtdfdtdfgddd}t	|| d S )Nr   r   )r   r&   r   r   r   r   r   r   )r   r5   r   r5   r   r   r   r'   )r:   	first_val
second_valZ	third_valr4   r   r   r(   r   r   r:   r^   r   r   r   )      @r   g      @r   )r   r   r   r   r   r   r   r   r   r   r   r"   r"   r#   >test_groupby_resample_on_index_with_list_of_keys_multi_columnsT  s4   




r   c                  C   sx   t g dg ddttdddddd	} tjtd
d | dddg   W d    d S 1 s5w   Y  d S )Nr   r   r   r4   r   r   r(   r   r   zColumns not foundre   r:   r^   Zval_not_in_dataframe)	r   r   r
   rn   ro   KeyErrorrC   r.   rM   )rG   r"   r"   r#   ?test_groupby_resample_on_index_with_list_of_keys_missing_columnu  s   

"r   )5textwrapr   numpyrh   rn   Zpandas.compatr   Zpandas.util._test_decoratorsr   ZpandasrA   r   r   r   r   r	   Zpandas._testingZ_testingr   Zpandas.core.indexes.datetimesr
   r   rP   r$   rJ   rS   r]   rc   rv   r|   markZparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r"   r"   r#   <module>   sd    (
*
)
		
$


!