a
    dS                     @   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j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%d& Z%d'd( Z&d)d* Z'd+d, Z(d-d. Z)d/d0 Z*d1d2 Z+d3d4 Z,ejd5d6gd6d7ggd8d9 Z-ejd:d;d<gd=d> Z.d?d@ Z/ejd5d6gd6d7ggdAdB Z0dCdD Z1dEdF Z2dGdH Z3dIdJ Z4dKdL Z5ejdMdNdOgdPdQ Z6dS )R    )dedentN)is_platform_windows)
async_mark)	DataFrameIndexSeriesTimedeltaIndex	Timestamp)
date_rangec                   C   s<   t dgd dgd  dgd  tddtd	d
dddS )N                  (   AB1/1/2000sfreqperiodsindex)r   nparanger
    r   r   u/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/resample/test_resampler_grouper.py
test_frame   s    (r    c              	      s   ddl m} td}| |I d H  tjd ddJ |d" t| jdd W d    n1 sd0    Y  W d    n1 s0    Y  d S )	Nr   )provisionalcompleterzZ    import pandas._testing as tm
    s = tm.makeTimeSeries()
    rs = s.resample("D")
    F)Zraise_on_extra_warningsignorezrs.r   )	ZIPython.core.completerr!   r   Zrun_codetmZassert_produces_warninglistZ	CompleterZcompletions)ipr!   coder   r   r   "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_0D   s    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   s   |  d S )N1D)r1   ffillr3   r   r   r   f_1S   s    z'test_deferred_with_groupby.<locals>.f_1r<   r>   )r   pdto_datetimer+   groupbyapplyr0   r1   r2   r#   assert_frame_equalr
   r?   )datadfr5   expectedresultr@   r   r   r   test_deferred_with_groupby1   s:    rJ   c                 C   sr   |  d}|jdd }|dj }t|| |jd }t|| |d j}t|| d S )Nr   c                 S   s   |  d S N2s)r1   meanr3   r   r   r   <lambda>^       ztest_getitem.<locals>.<lambda>rL   )rC   r   rD   r1   rM   r#   assert_series_equal)r    grH   rI   r   r   r   test_getitem[   s    
rR   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   r6   r   r   r,   r>   rS   z
2016-01-02namesr   name)r   r
   rC   r1   countr   rA   
MultiIndexfrom_tuplesr	   r#   rP   )rF   rG   rrI   rH   r   r   r   test_getitem_multiplej   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*   rT   r   )r,   r+   rF   r+   r,   2DrF   on)	r   r$   r
   r0   rC   r1   sumr#   rP   )rG   exprI   r   r   r   )test_groupby_resample_on_api_with_getitem   s    rc   c                  C   s  d} d\}}d}t d|dd}ttjdt||d}|t|d  }||| }td	}tj	| |d
}	|
|	d}
|
|| }
|
|	d}t|
|||  t ||dd}ttjdt||d}||| }tj	| d}|
|d}||| }|
|d}tjtdd  t|j|j W d    n1 sT0    Y  t |ddd}ttjdt||d}|t|d  }||| }td	tdd  }tj	| |d
}|
|d}||| }|
|d}t|| d S )NZ1399min)z1/1/2000 00:00:00z1/31/2000 00:00z1/15/2000 00:00:00z1970-01-01 00:00:00Z1231minr   r   r   r   )r   originrY   zIndex are differentmatchz2049-10-18 20:00:00i0u  )r
   r   r   randomdefault_rngstandard_normallenr	   rA   GrouperrC   aggr#   rP   pytestraisesAssertionErrorassert_index_equalr   Z	Timedelta)r   r9   endZmiddlerngtsZ	middle_tsZts2re   Zadjusted_grouperZadjusted_count_tsZadjusted_count_ts2Zsimple_grouperZcount_tsZ	count_ts2Zorigin_futureZadjusted_grouper2Zadjusted2_count_tsZadjusted2_count_ts2r   r   r   test_groupby_with_origin   s@    0ru   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   ranger1   nearestrA   DatetimeIndexr#   rP   )r   rI   rH   r   r   r   test_nearest   s    	r|   f)firstlastmedianZsemra   rM   minmaxsizerY   rz   Zbfillr?   r2   Zohlcc                    sB   | d}|d}t|  }| fdd}t|| d S )Nr   rL   c                    s   t | d  S rK   getattrr1   r3   r}   r   r   rN      rO   ztest_methods.<locals>.<lambda>)rC   r1   r   rD   r#   Zassert_equalr}   r    rQ   r\   rI   rH   r   r   r   test_methods   s
    

r   c                 C   s>   |  d}|d}|j }|jdd }t|| d S )Nr   rL   c                 S   s   |  d S rK   )r1   nuniquer3   r   r   r   rN      rO   z&test_methods_nunique.<locals>.<lambda>)rC   r1   r   r   rD   r#   rP   )r    rQ   r\   rI   rH   r   r   r   test_methods_nunique   s
    


r   Zstdvarc                    sF   | 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   r3   r   r   r   rN      rO   z&test_methods_std_var.<locals>.<lambda>)rC   r1   r   rD   r#   rE   r   r   r   r   test_methods_std_var   s
    

r   c                 C   sl   |  d}|d}|d }dd }||}t|| dd }||}|d}t|| d S )Nr   rL   c                 S   s   |  d S rK   )r1   ra   r3   r   r   r   r5     s    ztest_apply.<locals>.f_0c                 S   s   |  ddd S )NrL   c                 S   s   |   S Nra   )yr   r   r   rN     rO   z)test_apply.<locals>.f_1.<locals>.<lambda>)r1   rD   r3   r   r   r   r@     s    ztest_apply.<locals>.f_1int64)rC   r1   ra   rD   r#   rE   Zastype)r    rQ   r\   rH   r5   rI   r@   r   r   r   
test_apply   s    




r   c                  C   s   t dddd} tdtjd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   col1r   rF   r   c                 S   s   t ddgddgd}|S )Nr   r   abr   )r   )r4   r   r   r   r   r}     s    z(test_apply_with_mutated_index.<locals>.fMF)Z
group_keys)r
   r   r   rh   ri   rk   rC   rA   rl   rD   r1   r#   rE   rP   )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   iZtwoz
2017-01-01Z15Minr   )r9   r   r   r      r   r   r.   c                 S   s&   i | ]}||d  dkrt jnt jqS )r   r   )r   ra   rM   ).0colr   r   r   
<dictcomp>1  rO   z1test_apply_columns_multilevel.<locals>.<dictcomp>Hc                    s    | j  | S r   rX   r3   Zagg_dictr   r   rN   2  rO   z/test_apply_columns_multilevel.<locals>.<lambda>g        Z1H)rA   rZ   r[   r
   r   r   arrayZreshaper.   r1   rD   r#   rE   )colsindrG   rI   rH   r   r   r   test_apply_columns_multilevel,  s    "r   c                  C   s|   dd } t ddddd}tg d|d	}tg d
|d	}|dj| |dd}t ddddd}tdg|d	}t|| d S )Nc                 S   s>   |   } || jd }|jd | }| ||k jd S )Nr   )Zsort_valuesZreindexr   ZfillnacumsumZiloc)Zseriesweightsqr   cutoffr   r   r   weighted_quantile>  s    z5test_apply_non_naive_index.<locals>.weighted_quantilez2017-6-23 18:00r   Z15TUTC)r   r   tz)      ?r   r   r   r   r   r   r   r   )g      d@[   A   +      
   r   r   r/   g      ?)r   r   z2017-06-23 00:00:00+00:00)r   r   r   )r
   r   r1   rD   r#   rP   )r   timesrF   r   rI   r   rH   r   r   r   test_apply_non_naive_index=  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   rx   )z
1999-12-26
2000-01-02r   r   rU   )r   r   r   r   )r   r   r   r   r   )r
   r   rC   r1   ra   r   r   r   rA   rB   rZ   from_arraysr#   rE   )r   rG   rI   miZmindexrH   r   r   r    test_resample_groupby_with_labelP  s    r   c                 C   s   | }t g ddd}|dd }|jjdks8J t|jjd | |d	d }|jjdkspJ t|jjd | d S )N)r   r   r   r   r   rL   r   r   r   )
r   rC   r1   rM   r   Znlevelsr#   rq   levelsZrolling)r    rG   rH   rI   r   r   r   test_consistency_with_windowd  s    r   c                  C   sp   t tjddtdtddddd} |  }g d	|_|	d

 }| 	d

 }|j|_t|| d S )Nr   )r   r   Zaaa
2012-01-01r   r   rw   r.   r   )r   r   cZ5s)r   r   rh   ri   rj   r$   r
   copyr.   r1   r   r#   rE   )rG   df2rH   rI   r   r   r   test_median_duplicate_columnsq  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 )Nr   r   )r   r   r   Z20minrw   r   r   c                 S   s
   | j  S r   )r   ra   r<   r   r   r   rN     rO   z0test_apply_to_one_column_of_df.<locals>.<lambda>)r   r      	   r7   c                 S   s   | d   S )Nr   r   r   r   r   r   rN     rO   )r   ry   r
   r1   rD   r   r#   rP   rG   rI   rH   r   r   r   test_apply_to_one_column_of_df  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   r7      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   r1   ra   rm   r#   rE   )rG   	resampledrH   rI   r   r   r   test_resample_groupby_agg  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   rU   r   )r	   r   r   rC   r1   rm   rA   rZ   r[   r#   rE   )rt   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rp| d |j	_
t|| d S )Nr   r   r   00:00:01Zruler-   FdropT)appendr   r   )r   r   rC   r1   rA   to_timedeltarM   r0   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}| rV| }|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/   rw   r   r=   )keyr+   r   
col_objectr   )r   r+   r   T)Zignore_indexr   r8   r+   r_   r   )z
2020-01-05z
2020-01-12z
2020-01-19r   rU   )r   r*   r   )r   r   r   r   )r
   r   ry   rA   concatZ_consolidaterC   r1   r   rZ   r   rB   r   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 )Nr6   r   r9   r   r   r   r   r   r   r   r   r   )r   r)   r*   r   r   r   r*   r   r;   )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   r1   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r| d |j	_
t|| d S )N)r   r   r+   r-   r+   r   r   Fr   T)r   r   r   r   )r   rA   rB   r0   rC   r1   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   codesrV   )Zcheck_index_type)r   r   rA   rB   rC   r1   r   rM   rZ   r   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-01rU   )r   r   r   r
   rC   r1   r   r   rA   rZ   r[   r	   r#   rP   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   r7   r   r*   r   r   r:   r<   r=   r6   r   r   r+   r   r   r<   r^   r=   g       @g      @g      @r   r   r   r   r   r   r   r   
r   r   r
   rC   r1   rM   r   r	   r#   rE   r   r   r   r   0test_groupby_resample_on_index_with_list_of_keysT  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   r7   r   r7   r   r   r   r*   )r<   	first_val
second_valZ	third_valr6   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_columnsr  s4    




r  c                  C   sv   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    n1 sh0    Y  d S )Nr   r   r  r6   r   r   r+   r   r   zColumns not foundrf   r<   r^   Zval_not_in_dataframe)	r   r   r
   rn   ro   KeyErrorrC   r1   rM   )rG   r   r   r   ?test_groupby_resample_on_index_with_list_of_keys_missing_column  s    

r
  kinddatetimeperiodc                 C   s   t tg dg dg dd}|d}|dd jd| d	 }td
dg}| dkrj|jdd}tj	j
ddg|gddgd}tg d|dd}t|| d S )N)z20181101 1100z20181101 1200z20181102 1300z20181102 1400)r   r   r   r   )r   r   r   r7   )r  r<   r   r  r<   r   r/   )r  z
2018-11-01z
2018-11-02r  rd   r   r   rU   )r   r   r   r7   rW   )r   rA   rB   r0   rC   r1   r   r{   Z	to_periodrZ   Zfrom_productr   r#   rP   )r  rG   rI   Zdt_levelZexpected_indexrH   r   r   r   test_groupby_resample_kind  s&    	

r  )7textwrapr   numpyr   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
   Zfixturer    r'   rJ   rR   r]   rc   ru   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   r   r   <module>   sd   

*
/
		
$


!