U
    -eK                     @   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!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0gd1d2 Z d3d4 Z!ejd!d5d6gd7d8 Z"d9d: Z#d;d< Z$d=d> Z%d?d@ Z&dAdB Z'dCdD Z(dEdF Z)dGdH Z*dIdJ Z+ejdKdLgdLdMggdNdO Z,ejdPdQdRgdSdT Z-dUdV Z.ejdKdLgdLdMggdWdX Z/dYdZ Z0d[d\ Z1d]d^ Z2d_d` Z3dadb Z4dS )c    )dedentN)is_platform_windows)
async_mark)	DataFrameIndexSeriesTimedeltaIndex	Timestamp)
date_range                  (   AB1/1/2000sfreqperiodsindexc              
      sd   ddl m} td}| |I d H  td , |d t| jdd W 5 Q R X W 5 Q R X 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"   m/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pandas/tests/resample/test_resampler_grouper.py"test_tab_complete_ipython6_warning   s    
r$   c                  C   s  dddgdddgdddgddd	gd
ddgdddgdddgdddgddd	gdddgg
} t | dddgd}t|j|_dd }|d|}|ddd }t	
|| t tddddddddgddd	dgdd}dd  }|d!|}|d!d" }t	
|| d S )#Nz
2010-01-01r   r   z
2010-01-02r   z
2010-01-05r   z
2010-01-10   z
2010-01-13r      z
2010-01-03z
2010-01-04r   z
2010-01-11z
2010-01-14dateidZscorecolumnsc                 S   s   |  dd S )Nr'   D)	set_indexresampleasfreqxr"   r"   r#   f_0A   s    z'test_deferred_with_groupby.<locals>.f_0r+   
2016-01-01   W)startr   r      r'   groupvalc                 S   s   |  d S )N1D)r-   ffillr/   r"   r"   r#   f_1P   s    z'test_deferred_with_groupby.<locals>.f_1r8   r:   )r   pdto_datetimer'   groupbyapplyr,   r-   r.   r   assert_frame_equalr
   r;   )datadfr1   expectedresultr<   r"   r"   r#   test_deferred_with_groupby.   s:    

rF   c                  C   sr   t d} | jdd }| dj }t|| | jd }t|| | d j}t|| d S )Nr   c                 S   s   |  d S N2s)r-   meanr/   r"   r"   r#   <lambda>[       ztest_getitem.<locals>.<lambda>rH   )
test_framer?   r   r@   r-   rI   r   assert_series_equal)grD   rE   r"   r"   r#   test_getitemX   s    
rO   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   r2   r   r   r(   r:   rP   z
2016-01-02names)r   name)r   r
   r?   r-   countr   r=   
MultiIndexfrom_tuplesr	   r   rM   )rB   rC   rrE   rD   r"   r"   r#   test_getitem_multipleg   s    rY   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&   rQ   r   )r(   r'   rB   r'   r(   2DrB   on)	r   r   r
   r,   r?   r-   sumr   rM   )rC   exprE   r"   r"   r#   )test_groupby_resample_on_api_with_getitem|   s    r_   c               	   C   s^  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 5 Q R X 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   rU   zIndex are differentmatchr   )r   origini0u  )r
   r   nprandomrandnlenr=   Grouperr?   aggpytestraisesAssertionErrorr   assert_index_equalr   r	   rM   Z	Timedelta)r   r5   endmiddlerngtsZts2Zsimple_grouperZcount_tsZ	count_ts2rc   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   s2    rr   c               
   C   sl   t dddd} ttd| dd }tdddddd	d	gtjd
ddddddgdddd}t|| d S )Nr   r   Tr   r   r   Z20sr   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-   nearestr=   ZDatetimeIndexr   rM   )r   rE   rD   r"   r"   r#   test_nearest   s$    	rx   ffirstlastmedianZsemr]   rI   minmaxsizerU   rw   Zbfillr;   r.   Zohlcc                    sB   t d}|d}t|  }| fdd}t|| d S )Nr   rH   c                    s   t | d  S rG   getattrr-   r/   ry   r"   r#   rJ      rK   ztest_methods.<locals>.<lambda>)rL   r?   r-   r   r@   r   Zassert_equalry   rN   rX   rE   rD   r"   r   r#   test_methods   s
    

r   c                  C   s>   t d} | d}|j }| jdd }t|| d S )Nr   rH   c                 S   s   |  d S rG   )r-   nuniquer/   r"   r"   r#   rJ      rK   z&test_methods_nunique.<locals>.<lambda>)rL   r?   r-   r   r   r@   r   rM   )rN   rX   rE   rD   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   rH   r   Zddofc                    s   t | d ddS )NrH   r   r   r   r/   r   r"   r#   rJ      rK   z&test_methods_std_var.<locals>.<lambda>)rL   r?   r-   r   r@   r   rA   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   rH   c                 S   s   |  d S rG   )r-   r]   r/   r"   r"   r#   r1      s    ztest_apply.<locals>.f_0c                 S   s   |  ddd S )NrH   c                 S   s   |   S Nr]   )yr"   r"   r#   rJ     rK   z)test_apply.<locals>.f_1.<locals>.<lambda>)r-   r@   r/   r"   r"   r#   r<     s    ztest_apply.<locals>.f_1int64)rL   r?   r-   r]   r@   r   rA   Zastype)rN   rX   rD   r1   rE   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+   r`   col1rB   r   c                 S   s   t ddgddgd}|S )Nr   r   abr   )r   )r0   r   r"   r"   r#   ry     s    z(test_apply_with_mutated_index.<locals>.fMF)Z
group_keys)r
   r   rd   re   Zrandrg   r?   r=   rh   r@   r-   r   rA   rM   )r   rC   ry   rD   rE   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   )r5   r   r   r      r   r   r*   c                 S   s&   i | ]}||d  dkrt jnt jqS )r   r   )rd   r]   rI   ).0colr"   r"   r#   
<dictcomp>&  s      z1test_apply_columns_multilevel.<locals>.<dictcomp>Hc                    s    | j  | S r   rT   r/   Zagg_dictr"   r#   rJ   '  rK   z/test_apply_columns_multilevel.<locals>.<lambda>g        Z1H)r=   rV   rW   r
   r   rd   arrayZreshaper*   r-   r@   r   rA   )colsindrC   rE   rD   r"   r   r#   test_apply_columns_multilevel!  s    "r   c               	   C   s   t dddd} t| dddddgdddddgdd	}|d
jddd }tjddddgtjdt	tddddgg}tj
j|d
d gd}tddddgddddgd|d}t|| d S )Nz
2000-01-01rZ   r&   r   r   r   r   )col0r   )r   rB   r   Z1Wleft)labelru   z
1999-12-26z
2000-01-02rR   r   )r
   r   r?   r-   r]   rd   r   r   r=   r>   rV   from_arraysr   rA   )r   rC   rE   miZmindexrD   r"   r"   r#    test_resample_groupby_with_label2  s    & r   c                  C   s   t } tdddgdd}| dd }|jjdks:tt	|jj
d | | dd }|jjdksrtt	|jj
d | d S )	Nr   r   r   r   r   rH   r   r   )rL   r   r?   r-   rI   r   Znlevelsrl   r   rm   levelsZrolling)rC   rD   rE   r"   r"   r#   test_consistency_with_windowF  s    r   c                  C   sn   t tjddtdtddddd} |  }dd	d
g|_|d	 }| d	 }|j|_t
|| d S )Nr   r   Zaaa
2012-01-01r   rt   r*   r   r   r   cZ5s)r   rd   re   rf   r   r
   copyr*   r-   r|   r   rA   )rC   df2rD   rE   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ddddgtddddd}t|| | ddd
 }t|| d S )N
   r   )r   r   r   Z20minrt   r   r   c                 S   s
   | j  S r   )r   r]   r8   r"   r"   r#   rJ   k  rK   z0test_apply_to_one_column_of_df.<locals>.<lambda>r   r      	   r3   c                 S   s   | d   S )Nr   r   r   r"   r"   r#   rJ   r  rK   )r   rv   r
   r-   r@   r   r   rM   rC   rE   rD   r"   r"   r#   test_apply_to_one_column_of_dfc  s    
 r   c                  C   s   t ddddddddgddddddd	d
gddddddddgd} t| d | d< | djddd}|dg  }|ddi}t|| d S )NZcat_1Zcat_2r&   r      r   r3      r   2   z2019-2-1z
2018-02-03z	2020-3-11z2019-2-2z	2018-12-4z
2020-12-12)catnumr'   r'   r   Yr[   r   r]   )	r   r=   r>   r?   r-   r]   ri   r   rA   )rC   	resampledrD   rE   r"   r"   r#   test_resample_groupby_aggv  s6    
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   r]   r   r   rR   r   )r	   r   r   r?   r-   ri   r=   rV   rW   r   rA   )rq   rC   r   rE   rD   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rp| d |j	_
t|| d S )Nr   r   r   00:00:01ruler)   FdropT)appendr   r   )r   r   r?   r-   r=   to_timedeltarI   r,   rg   r   rT   r   rA   r   rC   rE   rD   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}| rV| }|dgjddd }tj	j
dgd dgd  tdddgd gddgd}tdgd dgd  dddgd dgd tjgd  d|d}t|| d S )Nz
2020-01-01   r+   rt   r   r9   )keyr'   r   
col_objectr   )r   r'   r   T)Zignore_indexr   r4   r'   r[   r   z
2020-01-05z
2020-01-12z
2020-01-19r   rR   r   r&   r   )r   r   r   r   )r
   r   rv   r=   concatZ_consolidater?   r-   r}   rV   r   r>   rd   nanr   rA   )r   datesZdf1r   rC   rE   idxrD   r"   r"   r#   .test_resample_groupby_agg_object_dtype_all_nan  s*    r   c                  C   s   t tdddddddddddgddddd	d
ddgdd} | djddddg  }t dddddg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 )Nr2   r   r5   r   r   r   r%   r&   r   r   r   r7   )rB   r8   rZ   r'   r[   r9         @g      @g      @g      @
2016-01-03
2016-01-05
2016-01-07r8   r'   rB   rT   r   )	r   r
   r?   r-   rI   r   r	   r   rA   r   r"   r"   r#   'test_groupby_resample_with_list_of_keys  s*    
 




r   c                 C   s   t g dddgd}t|d |d< |d}|| jtdd }t dddgdj| dd}t|d |d< |jdd	d	d
}t| dkr| d |j	_
t|| d S )Nr   r   r'   r)   r   r   Fr   T)r   r   r   r   )r   r=   r>   r,   r?   r-   r   rI   rg   r   rT   r   rA   r   r"   r"   r#   test_resample_no_index  s    
r   c                  C   s   t ttdddgddd} | dddgjtd	d
 }tddddg}t tjt	j
ddgt	jd|gddddgddddggd dgdd}tj||t  d d S )Nz2018-01-01 00:00:00z2018-01-01 12:00:00z2018-01-02 00:00:00r'   r   r   r   r   z06:00:00r   z2018-01-01 06:00:00r   r   r   )r   codesrS   )Zcheck_index_type)r   r   r=   r>   r?   r-   r   rI   rV   rd   r   Zintpr   rA   r   )rC   rE   r   rD   r"   r"   r#   test_resample_no_columns  s0    "	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-01rR   )r   rd   aranger
   r?   r-   r   r   r=   rV   rW   r	   r   rM   r   r"   r"   r#   )test_groupby_resample_size_all_index_same   s"    2



r   c               
   C   s   t ddddddddgddddddddgd	ttd
ddddd} | dddg  }t dddddg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   r3   r&   r   r   r6   r8   r9   r2   r   r   r'   r   r   r8   rZ   r9          @      @      @r   r   r   r   r   r   
r   r   r
   r?   r-   rI   r   r	   r   rA   r   r"   r"   r#   0test_groupby_resample_on_index_with_list_of_keys6  s0    

 




r   c                  C   s   t ddddddddgddddddddgdd	dd
dd
dd
gddddddddgdttdd
dddd} | ddddg  }t ddddgddddg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   r3   r&   r   r   r6   r%   r   )r8   	first_val
second_valZ	third_valr2   r   r'   r   r   r8   rZ   r   r   r   r   r   r   g      @g      @)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   sz   t ddddddddgddddddddgd	ttd
ddddd} tjtdd  | dddg   W 5 Q R X d S )Nr   r   r   r3   r&   r   r   r6   r   r2   r   r   r'   r   r   zColumns not foundra   r8   rZ   Zval_not_in_dataframe)	r   r   r
   rj   rk   KeyErrorr?   r-   rI   )rC   r"   r"   r#   ?test_groupby_resample_on_index_with_list_of_keys_missing_columnu  s    

r   )5textwrapr   numpyrd   rj   Zpandas.compatr   Zpandas.util._test_decoratorsr   Zpandasr=   r   r   r   r   r	   Zpandas._testingZ_testingr   Zpandas.core.indexes.datetimesr
   r   rL   r$   rF   rO   rY   r_   rr   rx   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>   s   (
*
)
		
$


!