U
    f/e                     @   s4  d dl Zd dlZd dlmZ d dlmZmZmZ d dl	m
Z d dlmZ dd Zejddd	 Zejd
ddedggejddd Zejdddddddgdd Zejddejdejj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+eddd,gd-d.d/gd0dgd-gd0d gfddgd-d.gd0d dgfddd,gd-d.d/gd0d ddgfgd,feddd,gd-d.d/gd0dgd-gd0d gfddgd-d.gd0d dgfddd,gd-d.d/gd0d ddgfgdfeddd,gd-d.d/gd0dgd-gd0d gfddgd-d.gd0d dgfddd,gd-d.d/gd0d ddgfgdfedgd-gd0g dfe i g fgdfedejd,gejd.d/gd0d1gejgd0d gfdejgejd.gd0d dgfdejd,gejd.d/gd0d ddgfgd,fedejd,gejd.d/gd0d1gejgd0d gfdejgejd.gd0d dgfdejd,gejd.d/gd0d ddgfgdfedejd,gejd.d/gd0d1gejgd0d gfdejgejd.gd0d dgfdejd,gejd.d/gd0d ddgfgdfgd2d3 Zejd4eddd,gdgd gfddgd dgfddd,gd ddgfgd,feddd,gdgd gfddgd dgfddd,gd ddgfgdfeddd,gdgd gfddgd dgfddd,gd ddgfgdfeddgdgd gfddgd dgfgdfeejdgejgd gfejdgd dgfgdfeg d5d6g dfgd7d8 Z d9d: Z!d;d< Z"ejdd=d>gd?d@ Z#dS )A    N)UnsupportedFunctionCall)	DataFrameDatetimeIndexSeries)	Expandingc                  C   s.   t ddddtjdgi} |  | d  d S )NBr            )r   npnan	expandingsumdf r   F/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/window/test_expanding.pytest_doc_string   s    r   zIignore:The `center` argument on `expanding` will be removed in the futurec                 C   s4   | t dj}|dd |ddd |ddd d S )N   r   min_periodsTr   centerF)ranger   )frame_or_seriescr   r   r   test_constructor   s    
r   w       @Zfoor	   c              	   C   sd   | t dj}d}tjt|d ||d W 5 Q R X d}tjt|d |d|d W 5 Q R X d S )Nr   zmin_periods must be an integermatchr   zcenter must be a booleanr   r   )r   r   pytestraises
ValueError)r   r   r   msgr   r   r   test_constructor_invalid$   s    r%   methodZstdZmeanr   maxminvarc              	   C   sr   t tdddg}d}tjt|d t|| ddd W 5 Q R X tjt|d t|| tjd W 5 Q R X d S )	Nr	   r
      z2numpy operations are not valid with window objectsr   r      Zdtype)r   r   r!   r"   r   getattrr   Zfloat64)r&   er$   r   r   r   test_numpy_compat5   s    r/   expanderr   Zlsz,GH#16425 expanding with offset not supported)reason)Zmarksc                 C   sX   t  }t  |  }t|| t tg d}t tg d|  }t|| d S )Nindex)r   r   r   tmassert_frame_equalr   )r0   expectedresultr   r   r   test_empty_df_expandingB   s    r8   c                  C   s^   t tjg} | jdd }t dg}t|| | jdd }t tjg}t|| d S )Nr   r   g        r   )r   r   r   r   r   r4   assert_series_equal)xr7   r6   r   r   r   test_missing_minp_zero]   s    
r;   c                 C   s   t td}|| }|dkr8t dd tdD }n*t tjgd dd td	d
D  gd }|jd	| d }t	|| d S )N)
      r   c                 S   s.   i | ]&}|t jgd  dd tddD  qS )r	   c                 S   s   g | ]}t |qS r   float).0jr   r   r   
<listcomp>r   s     z2test_expanding_axis.<locals>.<dictcomp>.<listcomp>r+      )r   r   r   r@   ir   r   r   
<dictcomp>r   s      z'test_expanding_axis.<locals>.<dictcomp>r=   r	   c                 S   s   g | ]}t |qS r   r>   rD   r   r   r   rB   v   s     z'test_expanding_axis.<locals>.<listcomp>r+      r<   )axis)
r   r   ZonesZ_get_axis_numberr   r   r   r   r4   r5   )Z
axis_framer   rH   r6   r7   r   r   r   test_expanding_axisk   s    
*rI   c                 C   s>   | t djdd }| tjtjdddg}t|| d S )Nr   r+   r         @      @      @r   r   countr   r   r4   assert_equalr   r7   r6   r   r   r   %test_expanding_count_with_min_periods|   s    rQ   c                 C   sN   dddt jdddg}ddd	d	d
ddg}| |  }| |}t|| d S )Nr   r	   r+   r
   r   r*         ?r   rJ   rK   rL   g      @)r   r   r   rN   r4   rO   )r   valuesZexpected_countsr7   r6   r   r   r   9test_expanding_count_default_min_periods_with_null_values   s
    rT   c                 C   sD   | t djdd }| tjtjtjtjtjg}t|| d S )Nr   r*   r   rM   rP   r   r   r   =test_expanding_count_with_min_periods_exceeding_series_length   s    rU   zdf,expected,min_periodsr+   r
   r   r*   )Ar   rR   c                 C   s8   dd |D }t || |D ]\}}t|| qd S )Nc                 S   s   g | ]\}}t ||d qS r2   )r   r@   rS   r3   r   r   r   rB      s     z1test_iter_expanding_dataframe.<locals>.<listcomp>)zipr   r4   r5   )r   r6   r   actualr   r   r   test_iter_expanding_dataframe   s    ?r[   zser,expected,min_periodsZint64r,   c                 C   s8   dd |D }t || |D ]\}}t|| qd S )Nc                 S   s   g | ]\}}t ||d qS rW   )r   rX   r   r   r   rB      s     z.test_iter_expanding_series.<locals>.<listcomp>)rY   r   r4   r9   )Zserr6   r   rZ   r   r   r   test_iter_expanding_series   s    r\   c               	   C   sl   t  } tt | jdd W 5 Q R X tt | jdd W 5 Q R X td  |   W 5 Q R X d S )NT)r   F)r   r4   Zassert_produces_warningFutureWarningr   r   r   r   r   test_center_deprecate_warning   s    r^   c                 C   sX   | dddg}|   }t|tr2t|d j}ttjgdgd  }t	|| d S )Nr   r   r	   g۞?)
r   Zsem
isinstancer   r   rS   r   r   r4   r9   )r   objr7   r6   r   r   r   test_expanding_sem   s    
ra   ZskewZkurtc                 C   sL   t tjd}t|d|  }|d }t|d|  }t|| d S )Nr<   r+   i  )r   r   randomZrandr-   r   r4   r9   )r&   sr6   r7   r   r   r   ,test_expanding_skew_kurt_numerical_stability  s
    rd   )$Znumpyr   r!   Zpandas.errorsr   Zpandasr   r   r   Zpandas._testingZ_testingr4   Zpandas.core.windowr   r   markfilterwarningsr   Zparametrizearrayr%   r/   paramZxfailr8   r;   rI   rQ   rT   rU   r   r[   r\   r^   ra   rd   r   r   r   r   <module>   s   





	"
"
"=
<<<(.

