a
    j=ic<                     @   s  d dl Zd dlZd dlmZm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 Zdd Zdd	 Zd
d Zdd Zdd Zejddgddgddidddgdd Zdd Zdd Zdd  Zd!d" Zd#d$ Z ejd%d&d'ej!ej!ej!ej!gg d(g d)ej!ej!ej!ej!gg d*g d+g d,gfd-dg d.g d(g d/g d0g d*g d1g d2gfgd3d4 Z"d5d6 Z#d7d8 Z$ej%d9d:d; Z&d<d= Z'd>d? Z(d@dA Z)ejdBg dCejdDg dEdFdG Z*dS )H    N)SpecificationErrorUnsupportedFunctionCall)		DataFrameIndex
MultiIndexPeriodSeries	Timestampconcat
date_rangetimedelta_rangec                 C   s   t tjdd}|jd| d}t|jj|d d |  j |jd| dd }|jj	|d d |  jd ksnJ |jd| dd }t|jj|d d |  jddg  |jd| dddg }t|jj|d d |  jddg  d S )N   windowstep   )r      r   )
r   nprandomZrandnrollingtmassert_index_equalZ_selected_objcolumnsname)r   framer r   m/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pandas/tests/window/test_api.pytest_getitem   s     $r   c                  C   s   t ddggddgd} | jdd}tjtdd	 |d
g  W d    n1 sP0    Y  tjtdd	 |dd
g  W d    n1 s0    Y  d S )Nr      ABr   r   r   zColumns not found: 'C'matchCz^[^A]+$)r   r   pytestraisesKeyError)dfgr   r   r   test_select_bad_cols'   s    (r,   c                  C   sx   t ddggddgd} | jdd}t|j |d   d}tjt|d	 |j	 W d    n1 sj0    Y  d S )
Nr   r   r    r!   r"   r   r#   z%'Rolling' object has no attribute 'F'r$   )
r   r   r   assert_series_equalr    sumr'   r(   AttributeErrorF)r*   r   msgr   r   r   test_attribute_access2   s    r2   c                 C   s   t tdtdddd}|jd| d}|ddg  }t tjtjdd	d
gtjtjdddgdtddd d |  }t|| d S )Nr   
   foor    r!   r&   r   r   r    r!      	            r    r!   ABr"   )	r   ranger   r.   r   nanlistr   assert_frame_equalr   r*   r   resultexpectedr   r   r   tests_skip_nuisance<   s    $rD   c                 C   s   t tdtdddd}|jd| d}d}tjt|d | }W d    n1 sX0    Y  t tjtjdd	d
gtjtjdddgdt	ddd d |  }t
|| d S )Nr   r3   r4   r5   r   r   zGnuisance columns.*Dropped columns were Index\(\['C'\], dtype='object'\)r$   r6   r7   r8   r9   r:   r;   r<   r"   )r   r=   r   r   assert_produces_warningFutureWarningr.   r   r>   r?   r@   )r   r*   r   r1   rB   rC   r   r   r   test_skip_sum_object_raisesH   s    &$rG   c                 C   s@  t tdtdddd}|jd| d}|d  }|d  }|d  }|d	  }|d	  }|tjtjg}t||||gd
d}	t	
dd	gddgg|	_t||	 |tjtjd}t||gd
d}	tj||	dd |dddgi}t||gd
d}	t	ddg|	_t||	 |d ddg}t||gd
d}	ddg|	_t||	 d}
tjt|
d$ |ddddi W d    n1 s0    Y  tjt|
d, |ddddddd W d    n1 s0    Y  |ddgddgd}t||||gd
d}	g d}t	||	_tj||	dd d S )Nr   r   r3   r   r;   r   r   r    r!   r   axismeanstdTZ
check_liker    rJ   r    rK   r.   nested renamer is not supportedr$   )rJ   r.   )Zmean2Zsum2)rM   rN   )r!   rJ   )r!   rK   )r   r=   r   rJ   rK   r.   	aggregater   r
   r   from_productr   r   r@   from_tuplesr'   r(   r   )r   r*   r   Za_meanZa_stda_sumZb_meanZb_stdrB   rC   r1   Zexp_colsr   r   r   test_aggV   sD    
4$rT   funcminrJ   maxbr.   prodmedian)rX   cc                 C   sf   t g dg dg dd}|jddd}tjtdd	 ||  W d    n1 sX0    Y  d S )
N)r   r   r   )r      r   )r6         )arX   r[   r   r   )r   rI   z"axis other than 0 is not supportedr$   )r   r   r'   r(   NotImplementedErroragg)rU   r*   r   r   r   r   test_multi_axis_1_raises   s    rb   c                 C   s   t tdtdddd}|jdd}|d  }|tjd	d
 d}|d jdd
 | d}t||gdd}tj	||dd d S )Nr   r   r3   r   r;   r   r#   r    c                 S   s   t j| ddS Nr   )Zddofr   rK   xr   r   r   <lambda>       z test_agg_apply.<locals>.<lambda>r!   c                 S   s   t j| ddS rc   rd   re   r   r   r   rg      rh   )rawr   rH   TrL   )
r   r=   r   r.   ra   r   applyr
   r   r@   )ri   r*   r   rS   rB   ZrcustomrC   r   r   r   test_agg_apply   s    rk   c                 C   s   t tdtdddd}|jd| d}|tjtjgj}t	t
dd	d
gg}t|| |d tjtjgj}td	d
g}t|| |dtjtjgij}tddg}t|| d S )Nr   r   r3   r   r;   r   r   r<   r.   rJ   r    )r    r.   rM   )r   r=   r   ra   r   r.   rJ   r   r   rQ   r?   r   r   r   rR   rA   r   r   r   test_agg_consistency   s    rl   c                  C   sh  t tdtdddd} | jdd}d}tjt|d	0 |d
ddgidddgid W d    n1 sn0    Y  t|d
  |d
 	 |d  |d 	 gdd}t
g d|_tjt|d	8 |d
dg dddgidddgid W d    n1 s
0    Y  tjt|d	0 |dddgidddgid W d    n1 sZ0    Y  d S )Nr   r   r3   r   r;   r   r#   rO   r$   r    rJ   r.   r!   )r1r2r   rH   ))rarJ   )ro   rK   )rbrJ   )rp   rK   ro   rK   rp   )r   r=   r   r'   r(   r   rP   r
   rJ   rK   r   rR   r   ra   )r*   r   r1   rC   r   r   r   test_agg_nested_dicts   s    >,Hrq   c                 C   sR  g d}t dt dt d g}tg dg dtdtdddtd	dd
dtdtdtdgddtjgddtjgddtjg|tdtdtd gd|d}tg dg dg dg dg dg dg dg dg dg dg dd|dd d |  }|j	dd| d
 }t|| |j	dd| d
 }| td d |  }t|| d S )N)intfloatstringdatetime	timedeltaperiodsZfl_infZfl_nanZstr_nanZdt_natZperiods_natZ20170101Z20170203r   r   r   )g      @g      @g      @abcr   )rw   z1 ss)rw   freqz2012-01z2012-02z2012-03      ?       @ZaaZbbr"   )r|   r}   r}   )r|   r}   r|   r   r   r   min_periodsr   r   )r   r   )r	   r   r?   r   r   r   r   ZInfNaNr   countr   r@   ZnotnaZastypers   )r   colsZ
dt_nat_colr*   rC   rB   r   r   r   test_count_nonnumeric_types   sZ    



r   c                  C   sN   t tddd} | d }| d }|jdks<J |jdksJJ d S )Nd   r4   )r         )r   r   Zaranger   r.   r   )rz   s2Zs3r   r   r   test_preserve_metadata  s
    r   zfunc,window_size,expected_valsr   r   )g      .@      4@      9@r   )r         >@     A@r   )r   r   r   r   )r         D@      N@r   )r         T@g     @U@P   	expanding)      $@r   r   r   )r   r   r   r   )r   r   r   r   )gRB:@r   g      I@r   )r   r   r   r   c           
   	   C   s   t g dg dg dg dg dg dg dgg dd	}t|d
| }|rX||}n| }tjg dd
d gd}tg d}t |||d}|ddgddgd}	t|	| d S )N)r    r3   r   )r    r   r   )r    r   (   )r!   r3   r   )r!   r   r   )r!   r   r   )r!   r   Z   )stocklowhighr"   r   ))r    r   )r    r   )r    r   )r!   r   )r!   r\   )r!   r   )r!   r6   )names))r   rJ   )r   rW   )r   rJ   )r   rV   )indexr   rJ   rW   rV   )r   r   )r   getattrgroupbyr   rR   ra   r   r@   )
rU   Zwindow_sizeZexpected_valsr*   fr   r   r   rC   rB   r   r   r   test_multiple_agg_funcs  s2    !	
r   c                  C   sJ   t tdd} tt | jr(J W d    n1 s<0    Y  d S Nr   )r   r=   r   r   rE   rF   Zis_datetimelikerz   r   r   r   test_is_datetimelike_deprecatedW  s    r   c                  C   sP   t tdd} tt  |  d u s.J W d    n1 sB0    Y  d S r   )r   r=   r   r   rE   rF   validater   r   r   r   test_validate_deprecated]  s    r   z ignore:min_periods:FutureWarningc                    s`   t tdjd||||d  fdd jD }t |    fdd jD }||ks\J d S )Nr   )centerclosedr   r   c                    s   i | ]}|t  |qS r   r   .0attrZroll_objr   r   
<dictcomp>k  rh   z=test_dont_modify_attributes_after_methods.<locals>.<dictcomp>c                    s   i | ]}|t  |qS r   r   r   r   r   r   r   m  rh   )r   r=   r   _attributesr   )Zarithmetic_win_operatorsr   r   r   r   rC   rB   r   r   r   )test_dont_modify_attributes_after_methodsc  s    
r   c                 C   s  t tdjddd| d  d}tjt|d0 t tdjddd| d  W d    n1 sh0    Y  ttd	jddd| d  ttd	jddd| d  d
}tjt|d0 ttd	jddd| d  W d    n1 s0    Y  d S )Nr3   r   Tr   )r   r   rI   r   z&No axis named 1 for object type Seriesr$   r   )r3   r3   z)No axis named 2 for object type DataFramer   )	r   r   onesr   rJ   r'   r(   
ValueErrorr   )r   r1   r   r   r   test_centered_axis_validationq  s      >

r   c                 C   s   t g d}|jdd| d }t tt|d d |  }t|| d}tj	t
|d, t g djdd	| d  W d    n1 s0    Y  d S )
Nr   r   r   r\   r   r   r   r~   !min_periods 5 must be <= window 3r$   rx   r   r   )r   r   rV   r   r   lenr   r-   r'   r(   r   r   r_   rB   rC   r1   r   r   r   test_rolling_min_min_periods  s    r   c                 C   s   t g dtjd}|jdd| d }|d d |  }t|| d}tjt	|d, t g djd	d
| d  W d    n1 s0    Y  d S )Nr   )dtyper   r   r~   r   r$   rx   r   r   )
r   r   float64r   rW   r   Zassert_almost_equalr'   r(   r   r   r   r   r   test_rolling_max_min_periods  s    r   zroll_type, class_name))r   ZRolling)r   Z	Expanding)ewmZExponentialMovingWindowzkernel, has_args, raises))r.   TT)rW   TT)rV   TT)rJ   TT)rZ   FF)rK   TT)varTT)ZskewFF)semTT)ZkurtFF)quantileFF)ZrankFF)covFF)corrFFc           	   	   C   s  t tg d| d}d}|dkr(d}nd}| dkr|dvrtjtd	| d
d t || W d    n1 sr0    Y  nJd| d| }tjt|dp |rtjt|d& t |||dt	j
i W d    n1 s0    Y  nt |||dt	j
i W d    n1 s0    Y  |rd| d| }tjt|d |r| dks`|dkrtjt|d4 t ||g |ddddR   W d    n1 s0    Y  n$t ||g |ddddR   W d    n1 s0    Y  d| d| }tjt|d |r~tjt|d< t ||g |ddddR dt	j
i W d    n1 sr0    Y  n,t ||g |ddddR dt	j
i W d    n1 s0    Y  d S )N)r   r\   r6   r   z2numpy operations are not valid with window objectsr   )g      ?r   r   )r.   rJ   rK   r   r   r   zhas no attribute ''r$   zPassing additional kwargs to .r   zPassing additional args to r   r   r   r   r\   z&Passing additional args and kwargs to )r   r   r'   r(   r/   r   rE   rF   r   r   r   )	Z	roll_type
class_nameZkernelZhas_argsr(   r   	error_msgZrequired_argsZwarn_msgr   r   r   test_args_kwargs_depr  s6    	,66FDNr   )+numpyr   r'   Zpandas.errorsr   r   Zpandasr   r   r   r   r   r	   r
   r   r   Zpandas._testingZ_testingr   r   r,   r2   rD   rG   rT   markZparametrizerb   rk   rl   rq   r   r   r>   r   r   r   filterwarningsr   r   r   r   r   r   r   r   r   <module>   s|   ,
0
C

#



