o
    i<                     @   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s7J |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randomrandnrollingtmassert_index_equal_selected_objcolumnsname)r   framer r   W/var/www/edux/Edux_v2/venv/lib/python3.10/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 s(w   Y  tjtdd	 |dd
g  W d    d S 1 sFw   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   sz   t ddggddgd} | jdd}t|j |d   d}tjt|d	 |j	 W d    d S 1 s6w   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   "r4   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   r0   r   nanlistr   assert_frame_equalr   r,   r   resultexpectedr   r   r   tests_skip_nuisance<   s   $rF   c                 C   s   t tdtdddd}|jd| d}d}tjt|d | }W d    n1 s,w   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   r5   r6   r7   r   r   zGnuisance columns.*Dropped columns were Index\(\['C'\], dtype='object'\)r&   r8   r9   r:   r;   r<   r=   r>   r$   )r   r?   r   r   assert_produces_warningFutureWarningr0   r   r@   rA   rB   )r   r,   r   r3   rD   rE   r   r   r   test_skip_sum_object_raisesH   s   
$rI   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 sw   Y  tjt|
d |ddddddd W d    n1 sw   Y  |ddgddgd}t||||gd
d}	g d}t	||	_tj||	dd d S )Nr   r   r5   r!   r=   r   r   r"   r#   r   axismeanstdT
check_liker"   rL   r"   rM   r0   nested renamer is not supportedr&   )rL   r0   )mean2sum2)rP   rQ   )r#   rL   )r#   rM   )r   r?   r   rL   rM   r0   	aggregater   r
   r   from_productr   r   rB   from_tuplesr)   r*   r   )r   r,   r   a_meana_stda_sumb_meanb_stdrD   rE   r3   exp_colsr   r   r   test_aggV   sH   
r^   funcminrL   maxbr0   prodmedian)rb   cc                 C   sh   t g dg dg dd}|jddd}tjtdd	 ||  W d    d S 1 s-w   Y  d S )
N)r   r   r!   )r      r   )r8         )arb   re   r   r   )r   rK   z"axis other than 0 is not supportedr&   )r   r   r)   r*   NotImplementedErroragg)r_   r,   r   r   r   r   test_multi_axis_1_raises   s
   "rl   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   r5   r!   r=   r   r%   r"   c                 S      t j| ddS Nr   )ddofr   rM   xr   r   r   <lambda>       z test_agg_apply.<locals>.<lambda>r#   c                 S   rm   rn   rp   rq   r   r   r   rs      rt   )rawr   rJ   TrN   )
r   r?   r   r0   rk   r   applyr
   r   rB   )ru   r,   r   rZ   rD   rcustomrE   r   r   r   test_agg_apply   s   rx   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   r5   r!   r=   r   r   r>   r0   rL   r"   )r"   r0   rP   )r   r?   r   rk   r   r0   rL   r   r   rV   rA   r   r   r   rW   rC   r   r   r   test_agg_consistency   s   ry   c                  C   sf  t tdtdddd} | jdd}d}tjt|d	 |d
ddgidddgid W d    n1 s7w   Y  t|d
  |d
 	 |d  |d 	 gdd}t
g d|_tjt|d	 |d
dg dddgidddgid W d    n1 sw   Y  tjt|d	 |dddgidddgid W d    d S 1 sw   Y  d S )Nr   r   r5   r!   r=   r   r%   rR   r&   r"   rL   r0   r#   )r1r2r   rJ   ))rarL   )r|   rM   )rbrL   )r}   rM   r|   rM   r}   )r   r?   r   r)   r*   r   rU   r
   rL   rM   r   rW   r   rk   )r,   r   r3   rE   r   r   r   test_agg_nested_dicts   s$   ",*""r~   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periodsfl_inffl_nanstr_nandt_natperiods_nat2017010120170203r   r!   r   )g      @g      @g      @abcr   )r   z1 ss)r   freqz2012-01z2012-02z2012-03      ?       @aabbr$   )r   r   r   )r   r   r   r!   r   r   min_periodsr   r   )r   r   )r	   r   rA   r   r   r   r   InfNaNr   countr   rB   notnaastyper   )r   cols
dt_nat_colr,   rE   rD   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s%J d S )Nd   r6   )r         )r   r   aranger   r0   r   )r   s2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
| }|r,||}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"   r5   r   )r"   r   r   )r"   r   (   )r#   r5   r   )r#   r   r   )r#   r   r   )r#   r   Z   )stocklowhighr$   r   ))r"   r   )r"   r   )r"   r!   )r#   r   )r#   rf   )r#   r   )r#   r8   )names))r   rL   )r   ra   )r   rL   )r   r`   )indexr   rL   ra   r`   )r   r   )r   getattrgroupbyr   rW   rk   r   rB   )
r_   window_sizeexpected_valsr,   fr   r   r   rE   rD   r   r   r   test_multiple_agg_funcs  s2   !	
r   c                  C   sL   t tdd} tt | jrJ W d    d S 1 sw   Y  d S Nr   )r   r?   r   r   rG   rH   is_datetimeliker   r   r   r   test_is_datetimelike_deprecatedW  s   "r   c                  C   sR   t tdd} tt |  d u sJ W d    d S 1 s"w   Y  d S r   )r   r?   r   r   rG   rH   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                       i | ]}|t  |qS r   r   .0attrroll_objr   r   
<dictcomp>k      z=test_dont_modify_attributes_after_methods.<locals>.<dictcomp>c                    r   r   r   r   r   r   r   r   m  r   )r   r?   r   _attributesr   )arithmetic_win_operatorsr   r   r   r   rE   rD   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 t tdjddd| d  W d    n1 s4w   Y  ttd	jddd| d  ttd	jddd| d  d
}tjt|d ttd	jddd| d  W d    d S 1 s~w   Y  d S )Nr5   r   Tr   )r   r   rK   r   z&No axis named 1 for object type Seriesr&   r   )r5   r5   z)No axis named 2 for object type DataFramer!   )	r   r   onesr   rL   r)   r*   
ValueErrorr   )r   r3   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    d S 1 sGw   Y  d S )
Nr   r!   r   rf   r   r   r   r   !min_periods 5 must be <= window 3r&   r   r   r   )r   r   r`   r   r   lenr   r/   r)   r*   r   r   ri   rD   rE   r3   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    d S 1 sCw   Y  d S )Nr   )dtyper   r   r   r   r&   r   r   r   )
r   r   float64r   ra   r   assert_almost_equalr)   r*   r   r   r   r   r   test_rolling_max_min_periods  s   "r   zroll_type, class_name))r   Rolling)r   	Expanding)ewmExponentialMovingWindowzkernel, has_args, raises))r0   TT)ra   TT)r`   TT)rL   TT)rd   FF)rM   TT)varTT)skewFF)semTT)kurtFF)quantileFF)rankFF)covFF)corrFFc           	   	   C   s  t tg d| d}d}|dkrd}nd}| dkrA|dvrAtjtd	| d
d t || W d    d S 1 s:w   Y  d S d| d| }tjt|d8 |rvtjt|d t |||dt	j
i W d    n1 spw   Y  nt |||dt	j
i W d    n1 sw   Y  |rkd| d| }tjt|dN |r| dks|dkrtjt|d t ||g |ddddR   W d    n1 sw   Y  nt ||g |ddddR   W d    n1 sw   Y  d| d| }tjt|dY |r:tjt|d t ||g |ddddR dt	j
i W d    n	1 s4w   Y  nt ||g |ddddR dt	j
i W d    d S W d    d S 1 sdw   Y  d S d S )N)r!   rf   r8   r!   z2numpy operations are not valid with window objectsr   )g      ?r   r   )r0   rL   rM   r   r   r   zhas no attribute ''r&   zPassing additional kwargs to .r   zPassing additional args to r   r   r   r   rf   z&Passing additional args and kwargs to )r   r   r)   r*   r1   r   rG   rH   r   r   r   )		roll_type
class_namekernelhas_argsr*   r   	error_msgrequired_argswarn_msgr   r   r   test_args_kwargs_depr  sT   	"&$..$ r   )+numpyr   r)   pandas.errorsr   r   pandasr   r   r   r   r   r	   r
   r   r   pandas._testing_testingr   r    r.   r4   rF   rI   r^   markparametrizerl   rx   ry   r~   r   r   r@   r   r   r   filterwarningsr   r   r   r   r   r   r   r   r   <module>   s~    ,
0
C

#



