a
    j=ic%                     @   sb  d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlm  m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ejddddigddgg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/d0d1 Z'd2d3 Z(d4d5 Z)d6d7 Z*dS )8    N)		DataFrameIndex
MultiIndexSeries	Timestampconcat
date_rangeisnanotnac                 C   sN   t  2 t jddtd | t|   W  d    S 1 s@0    Y  d S )Nignorez.*(empty slice|0 for slice).*)messagecategory)warningscatch_warningsfilterwarningsRuntimeWarningnpisfinitemeanx r   o/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pandas/tests/window/test_apply.pyf   s    
r   bad_raw)N   r   c                 C   sN   t jtdd, ttddjt| d W d    n1 s@0    Y  d S )Nz'raw parameter must be `True` or `False`match   r   raw)pytestraises
ValueErrorr   rangerollingapplylen)r   r   r   r   test_rolling_apply_invalid_raw"   s    r(   c                 C   sx   | \}}t g d}|djtj||d}|  s<J |jdddjtj||d}t g dtd}t	|| d S )N)r      r      
   enginer    r   min_periods)r   r      r+   Zdtype)
r   r%   r&   r   sumr	   allfloattmassert_almost_equal)engine_and_rawr-   r    valsresultexpectedr   r   r    test_rolling_apply_out_of_bounds(   s    r;   windowr)   2sc                    s   t tjdtjjdddddtddddd	  fd
d} | j|dd} jdd  	 }t
|| t
t$  | j|dd W d    n1 s0    Y  d S )N   r   r+   )sizeAB20130101sZperiodsfreq)indexc                    s$   | j d  j d krtjS | jd S )Nr   )rG   r   nanilocr   dfr   r   r   @   s    z1test_rolling_apply_with_pandas_objects.<locals>.fFr   r)   T)r   r   randomrandnrandintr   r%   r&   rJ   Zreindex_liker5   assert_frame_equalZexternal_error_raisedAttributeError)r<   r   r9   r:   r   rK   r   &test_rolling_apply_with_pandas_objects6   s    rR   c                 C   s   | \}}t g dd}|jd|djdd ||d}t|| t g d}|jd	d
|djdd ||d}t g dd d | }t|| |jd	d
|djt||d}t|| d S )Nfloat64r1   r+   )stepc                 S   s   |   S N)r   r   r   r   r   <lambda>R       z$test_rolling_apply.<locals>.<lambda>r,   )NNNr)   r   r/   rT   c                 S   s   t | S rU   )r'   r   r   r   r   rV   Y   rW   )      ?       @rZ   )r   r%   r&   r5   assert_series_equalr'   )r7   rT   r-   r    r:   r9   rD   r   r   r   test_rolling_applyM   s    

r\   c                 C   s~   | \}}t tddddtdddd }|jdd	}|jd
d	}|jdd ||d}|jdd ||d}t|| d S )NrC   r>   rD   rE   r@   rA   r)   r   )r<   1sc                 S   s   dS Nr   r   r   r   r   r   rV   n   rW   z test_all_apply.<locals>.<lambda>r,   c                 S   s   dS r^   r   r   r   r   r   rV   o   rW   )r   r   r$   Z	set_indexr%   r&   r5   rP   )r7   r-   r    rL   Zerrr9   r:   r   r   r   test_all_applyb   s    r`   c                 C   s   | \}}t dtdi}tdtdtdtdtdg|_dd	 }|jd
ddj|||d}| }d|d< t|| |jdddj|||d}| }d|d< t|| |jdddj|||d}| }d|d< t|| d S )NrB   r>   z20130101 09:00:00z20130101 09:00:02z20130101 09:00:03z20130101 09:00:05z20130101 09:00:06c                 S   s   dS r^   r   r   r   r   r   rV      rW   z#test_ragged_apply.<locals>.<lambda>r]   r   r<   r/   r,   rY   r=   Z5s)	r   r$   r   rG   r%   r&   copyr5   rP   )r7   r-   r    rL   r   r9   r:   r   r   r   test_ragged_applys   s*    rc   c                   C   sR   t jtdd0 ttddjdd dd W d    n1 sD0    Y  d S )Nz)engine must be either 'numba' or 'cython'r   r   c                 S   s   | S rU   r   r   r   r   r   rV      rW   z%test_invalid_engine.<locals>.<lambda>foo)r-   r!   r"   r#   r   r$   r%   r&   r   r   r   r   test_invalid_engine   s    rf   c                   C   sX   t jtdd6 ttddjdd dddid	 W d    n1 sJ0    Y  d S )
Nz+cython engine does not accept engine_kwargsr   r   c                 S   s   | S rU   r   r   r   r   r   rV      rW   z3test_invalid_engine_kwargs_cython.<locals>.<lambda>cythonZnopythonF)r-   Zengine_kwargsre   r   r   r   r   !test_invalid_engine_kwargs_cython   s    rh   c                   C   sT   t jtdd2 ttddjdd ddd W d    n1 sF0    Y  d S )	Nz.raw must be `True` when using the numba enginer   r   c                 S   s   | S rU   r   r   r   r   r   rV      rW   z(test_invalid_raw_numba.<locals>.<lambda>FZnumba)r    r-   re   r   r   r   r   test_invalid_raw_numba   s    ri   args_kwargsparr+   )r+   c                 C   s   dd }t ddgddgd}tddg}t ddgdd	gg|d
}|dj|| d | d d}t|| tjddgdd gd}tdd	g|dd}|	dd d}|j|| d | d d}t
|| d S )Nc                 S   s   t | | S rU   )r   r2   )r   rk   r   r   r   rd      s    z+test_rolling_apply_args_kwargs.<locals>.foor   r)   )grarl   rm   g      &@g      (@)columnsr   )argskwargs)r   r   )r   r   )names)rG   name)r   r   r%   r&   r5   rP   r   from_tuplesr   groupbyr[   )rj   rd   rL   idxr:   r9   ZmidxZ
gb_rollingr   r   r   test_rolling_apply_args_kwargs   s    rv   c                 C   sR  t tjd}tj|d d< tj|dd < |jdddjt| d}t	|j
d t|dd  |jdd	djt| d}t|j
d
 sJ t|j
d rJ t|j
d rJ t|j
d sJ t tjd}|jdddjt| d}t|j
d sJ t|j
d sJ |jdddjt| d}|jdddjt| d}t	|| d S )N2   r+      r.   r   rH               ir>   r   r*   r   r   )r   r   rM   rN   NaNr%   r&   r   r5   r6   rJ   r   r	   r
   )r    objr9   obj2Zresult0Zresult1r   r   r   	test_nans   s"     r   c                 C   s   t tjd}tj|d d< tj|dd < |jddddjt| d}t|t tjgd	 gjddd
jt| dj	d	d  j
dd}t|| d S )Nrw   r+   rx   rz   r{   T)r/   centerr   	   r.   )Zdrop)r   r   rM   rN   r   r%   r&   r   r   rJ   Zreset_indexr5   r[   )r    r   r9   r:   r   r   r   test_center   s    r   c                 C   sF   | djt| d}t|ts"J t|jd t	|dd   d S )Nrw   r   rH   )
r%   r&   r   
isinstancer   r5   r6   rJ   r   r   )r    seriesr9   r   r   r   test_series   s    r   c                 C   sd   | djt| d}t|ts"J tj|jdd d f |jdd d d f jtj	d| ddd d S )	Nrw   r   rH   r   r   )axisr    FZcheck_names)
r%   r&   r   r   r   r5   r[   rJ   r   r   )r    framer9   r   r   r   
test_frame   s    "r   c           	      C   s   d}d}|d d d  d }|j||djt| d}|jd }|dt   }|d d d ||}t	
|d t| d S )	N   r+   r)   rB   ra   r   rH   r}   )resampler   r%   r&   r   rG   offsetsBDaytruncater5   r6   r   )	r    r   winminpZserZseries_result	last_date	prev_dateZtrunc_seriesr   r   r   test_time_rule_series   s    
r   c           	      C   s   d}d}|d d d  d }|j||djt| d}|jd }|dt   }|d d d ||}t	j
|||jtj| dd	d
 d S )Nr   r+   r)   rB   ra   r   rH   r}   Fr   )r   r   r%   r&   r   rG   r   r   r   r5   r[   Zxsr   )	r    r   r   r   frmZframe_resultr   r   Ztrunc_framer   r   r   test_time_rule_frame   s    
r   r   )r   c   d   c                 C   sv   |j t|d ||djt| d}|j t|||djt| d}t|}t|t| | }t|| ||  d S )Nr   rX   r   )r%   r'   r&   r   r	   r5   r[   r6   )r    r   r   rT   r9   r:   Znan_maskr   r   r   test_min_periods  s    r   c                 C   sv   dd t dD }d}|t|j| jd|djt| dd|j}|jd|d	d
jt| d}t	|| d S )Nc                 S   s   g | ]}d |dqS r   dr   .0r   r   r   r   
<listcomp>!  rW   z.test_center_reindex_series.<locals>.<listcomp>   r+   r   ra   r   Tr<   r/   r   )
r$   reindexlistrG   r%   r&   r   shiftr5   r[   )r    r   rD   r   Z	series_xpZ	series_rsr   r   r   test_center_reindex_series  s     r   c                 C   sv   dd t dD }d}|t|j| jd|djt| dd|j}|jd|d	d
jt| d}t	|| d S )Nc                 S   s   g | ]}d |dqS r   r   r   r   r   r   r   3  rW   z-test_center_reindex_frame.<locals>.<listcomp>r   r+   r   ra   r   r   Tr   )
r$   r   r   rG   r%   r&   r   r   r5   rP   )r    r   rD   r   Zframe_xpZframe_rsr   r   r   test_center_reindex_frame1  s    r   c                 C   sB   t ddg}|jdddjtj| d}t ddg}t|| d S )Nr   r)   )r<   r   r   rY   rZ   )r   r%   r&   r   r2   r5   rP   )r    rL   r9   r:   r   r   r   
test_axis1A  s    r   )+r   numpyr   r!   Zpandasr   r   r   r   r   r   r   r	   r
   Zpandas._testingZ_testingr5   Zpandas.tseries.offsetsZtseriesr   r   markZparametrizer(   r;   rR   r\   r`   rc   rf   rh   ri   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s<   ,




