U
    *if.                     @   s  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Z 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d Zdd Zdd Zejdddejejejejgddddgdd d!d gejejejejgdd d!d gd!d"d#d"gd#d$d%d&ggfd'dd(d(ddgddddgdd d dgd(d(d d gdd d!d gd)d"d*d gd"d$d#d ggfgd+d, Z d-d. Z!d/d0 Z"ej#d1d2d3 Z$d4d5 Z%d6d7 Z&d8d9 Z'dS ):    N)		DataFrameIndex
MultiIndexPeriodSeries	Timestampconcat
date_rangetimedelta_range)SpecificationErrorc                  C   s   t tjdd} | jdd}t|jj| j | jddd }|jj	| jd ksVt
| jddd }t|jj| jddg  | jddddg }t|jj| jddg  d S )N   window   )r      r   )r   nprandomZrandnrollingtmassert_index_equalZ_selected_objcolumnsnameAssertionError)framer r   O/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/window/test_api.pytest_getitem   s    r   c               	   C   sp   t ddggddgd} | jdd}tjtdd	 |d
g  W 5 Q R X tjtdd	 |dd
g  W 5 Q R X 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   sd   t ddggddgd} | jdd}t|j |d   d}tjt|d	 |j	 W 5 Q R X 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_access.   s    r0   c                  C   sx   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}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   resultexpectedr   r   r   tests_skip_nuisance8   s    $rB   c               	   C   s   t tdtdddd} | jdd}d}tjt|d | }W 5 Q R X t tjtjdd	d
gtjtjdddgdt	dd}t
|| d S )Nr   r1   r2   r3   r   r   zGnuisance columns.*Dropped columns were Index\(\['C'\], dtype='object'\)r"   r4   r5   r6   r7   r8   r9   r:   r!   )r   r;   r   r   assert_produces_warningFutureWarningr,   r   r<   r=   r>   )r(   r   r/   r@   rA   r   r   r   test_skip_sum_object_raisesD   s    $rE   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 5 Q R X tjt|	d" |ddddddd W 5 Q R X |ddgddgd}t||||gd
d}ddddg}
t	|
|_tj||dd d S )Nr   r   r1   r   r9   r   r   r   r    r   axismeanstdTZ
check_liker   rH   )r   rI   r,   nested renamer is not supportedr"   )rH   r,   )Zmean2Zsum2)r    rH   )r    rI   )r   r;   r   rH   rI   r,   	aggregater   r   r   from_productr   r   r>   from_tuplesr%   r&   r   )r(   r   Za_meanZa_stda_sumZb_meanZb_stdr@   rA   r/   Zexp_colsr   r   r   test_aggR   sD    
rQ   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   r1   r   r9   r   r   r   c                 S   s   t j| ddS Nr   )Zddofr   rI   xr   r   r   <lambda>       z test_agg_apply.<locals>.<lambda>r    c                 S   s   t j| ddS rR   rS   rT   r   r   r   rV      rW   )rawr   rF   TrJ   )
r   r;   r   r,   aggr   applyr   r   r>   )rX   r(   r   rP   r@   ZrcustomrA   r   r   r   test_agg_apply   s    r[   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   r1   r   r9   r   r   r:   r,   rH   r   )r   r,   rK   )r   r;   r   rY   r   r,   rH   r   r   rN   r=   r   r   r   rO   r?   r   r   r   test_agg_consistency   s    r\   c               	   C   s,  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 5 Q R X t|d
  |d
 	 |d  |d 	 gdd}t
ddddg|_tjt|d	. |d
dg dddgidddgid W 5 Q R X tjt|d	& |dddgidddgid W 5 Q R X d S )Nr   r   r1   r   r9   r   r   rL   r"   r   rH   r,   r    )r1r2r   rF   )rarH   )r_   rI   )rbrH   )r`   rI   r_   rI   r`   )r   r;   r   r%   r&   r   rM   r   rH   rI   r   rO   r   rY   )r(   r   r/   rA   r   r   r   test_agg_nested_dicts   s     ** 
2ra   c                  C   sf  ddddddddd	d
dg} t dt dt d g}tdddgdddg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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dddgd | d!}|j	dd"d#
 }t|| |j	dd"d$
 }| t}t|| d S )%Nintfloatstringdatetime	timedeltaperiodsfl_inffl_nanstr_nandt_natperiods_natZ20170101Z20170203r   r   r   g      @g      @g      @abc)rg   z1 ss)rg   freqz2012-01z2012-02z2012-03g      ?g       @ZaaZbb)rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   r!   r   r   min_periods)rq   )r   r   r=   r	   r
   r   r   ZInfNaNr   countr   r>   ZnotnaZastyperc   )colsZ
dt_nat_colr(   rA   r@   r   r   r   test_count_nonnumeric_types   sl    



ru   c                  C   sN   t tddd} | d }| d }|jdks<t|jdksJtd S )Nd   r2   )r         )r   r   Zaranger   r,   r   r   )rn   s2Zs3r   r   r   test_preserve_metadata   s
    rz   zfunc,window_size,expected_valsr   r   g      .@g      4@g      9@g      >@g     A@g      D@g      N@g      T@g     @U@P   Z	expandingg      $@gRB:@g      I@c           
   
   C   s   t 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d	d
dgd}t|d	| }|rh||}n| }tjdddddddgd	d gd}tddddg}t |||d}|ddgddgd}	t|	| d S )Nr   r1   rx   rw   (   r    r{   Z   Zstocklowhighr!   )r   r   )r   r   )r   r   )r    r   )r       )r    r   )r    r4   )names)r~   rH   )r~   max)r   rH   )r   min)indexr   rH   r   r   )r~   r   )r   getattrgroupbyr   rO   rY   r   r>   )
funcZwindow_sizeZexpected_valsr(   fr   r   r   rA   r@   r   r   r   test_multiple_agg_funcs  s2    !	

r   c               	   C   s6   t tdd} tt | jr(tW 5 Q R X d S Nr   )r   r;   r   r   rC   rD   Zis_datetimeliker   rn   r   r   r   test_is_datetimelike_deprecatedH  s    r   c               	   C   s<   t tdd} tt |  d ks.tW 5 Q R X d S r   )r   r;   r   r   rC   rD   validater   r   r   r   r   test_validate_deprecatedN  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sZtd S )Nr   )centerclosedrq   c                    s   i | ]}|t  |qS r   r   .0attrZroll_objr   r   
<dictcomp>\  s      z=test_dont_modify_attributes_after_methods.<locals>.<dictcomp>c                    s   i | ]}|t  |qS r   r   r   r   r   r   r   ^  s      )r   r;   r   _attributesr   r   )Zarithmetic_win_operatorsr   r   rq   rA   r@   r   r   r   )test_dont_modify_attributes_after_methodsT  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 5 Q R X 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 5 Q R X d S )Nr1   r   Tr   )r   r   rG   z&No axis named 1 for object type Seriesr"   r   )r1   r1   z)No axis named 2 for object type DataFramer   )	r   r   onesr   rH   r%   r&   
ValueErrorr   )r/   r   r   r   test_centered_axis_validationb  s    (r   c               	   C   s   t dddddg} | jddd }t tt| }t|| d}tj	t
|d	" t dddgjddd  W 5 Q R X d S )
Nr   r   r   r   r   rv   rp   !min_periods 5 must be <= window 3r"   )r   r   r   r   r   lenr   r+   r%   r&   r   )ar@   rA   r/   r   r   r   test_rolling_min_min_periodsv  s    r   c               	   C   st   t dddddgtjd} | jddd }t| | d	}tjt	|d
" t dddgjddd  W 5 Q R X d S )Nr   r   r   r   r   )Zdtyperv   rp   r   r"   )
r   r   Zfloat64r   r   r   Zassert_almost_equalr%   r&   r   )r   br/   r   r   r   test_rolling_max_min_periods  s    r   )(numpyr   r%   Zpandasr   r   r   r   r   r   r   r	   r
   Zpandas._testingZ_testingr   Zpandas.core.baser   r   r*   r0   rB   rE   rQ   r[   r\   ra   ru   rz   markZparametrizer<   r   r   r   filterwarningsr   r   r   r   r   r   r   r   <module>   sb   ,
0C













#


