o
    g                     @   s  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g d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g d'g d(d)dgd*gd)d gfddgd*d+gd)d dgfg d'g d(d)g d,fgd-feg d'g d(d)dgd*gd)d gfddgd*d+gd)d dgfg d'g d(d)g d,fgdfeg d'g d(d)dgd*gd)d gfddgd*d+gd)d dgfg d'g d(d)g d,fgdfedgd*gd)g dfe i g fgdfedejd-gejd+d.gd)d/gejgd)d gfdejgejd+gd)d dgfdejd-gejd+d.gd)g d,fgd-fedejd-gejd+d.gd)d/gejgd)d gfdejgejd+gd)d dgfdejd-gejd+d.gd)g d,fgdfedejd-gejd+d.gd)d/gejgd)d gfdejgejd+gd)d dgfdejd-gejd+d.gd)g d,fgdfgd0d1 Zejd2eg d'dgd gfddgd dgfg d'g d,fgd-feg d'dgd gfddgd dgfg d'g d,fgdfeg d'dgd gfddgd dgfg d'g d,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 d3d4g dfgd5d6 Z d7d8 Z!d9d: Z"ejdd;d<gd=d> Z#dS )?    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   `/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/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       @foor	   c                 C   s   | t dj}d}tjt|d ||d W d    n1 s w   Y  d}tjt|d |d|d W d    d S 1 s@w   Y  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&   method)stdmeanr   maxminvarc                 C   s   t tg d}d}tjt|d t|| ddd W d    n1 s%w   Y  tjt|d t|| tjd W d    d S 1 sFw   Y  d S )N)r	   r
      z2numpy operations are not valid with window objectsr    r   r	      dtype)r   r   r"   r#   r   getattrr   float64)r'   er%   r   r   r   test_numpy_compat5   s   "r4   expanderr   lsz,GH#16425 expanding with offset not supported)reason)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   )r5   expectedresultr   r   r   test_empty_df_expandingB   s   r?   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   r;   assert_series_equal)xr>   r=   r   r   r   test_missing_minp_zero]   s   
rB   c                 C   s   t td}|| }|dkrt 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      g | ]}t |qS r   float).0jr   r   r   
<listcomp>r       z2test_expanding_axis.<locals>.<dictcomp>.<listcomp>r.      )r   r   r   rH   ir   r   r   
<dictcomp>r   s   . z'test_expanding_axis.<locals>.<dictcomp>rD   r	   c                 S   rE   r   rF   rM   r   r   r   rJ   v   rK   z'test_expanding_axis.<locals>.<listcomp>r.      rC   )axis)
r   r   ones_get_axis_numberr   r   r   r   r;   r<   )
axis_framer   rQ   r=   r>   r   r   r   test_expanding_axisk   s   
*rU   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   r;   assert_equalr   r>   r=   r   r   r   %test_expanding_count_with_min_periods|   s   r]   c                 C   sD   dddt jdddg}g d}| |  }| |}t|| d S )Nr   r	   r.   r
   r   r-   )      ?r   rV   rV   rW   rX   g      @)r   r   r   rZ   r;   r[   )r   valuesexpected_countsr>   r=   r   r   r   9test_expanding_count_default_min_periods_with_null_values   s
   ra   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   rY   r\   r   r   r   =test_expanding_count_with_min_periods_exceeding_series_length   s   rb   zdf,expected,min_periods)r   r	   r.   )r
   r   r-   )Ar   r
   r   r   r   r	   r.   r-   r^   c                 C   8   dd |D }t || |D ]
\}}t|| qd S )Nc                 S      g | ]
\}}t ||d qS r9   )r   rH   r_   r:   r   r   r   rJ          z1test_iter_expanding_dataframe.<locals>.<listcomp>)zipr   r;   r<   )r   r=   r   actualr   r   r   test_iter_expanding_dataframe   s   ?rl   zser,expected,min_periodsint64r/   c                 C   re   )Nc                 S   rf   rg   )r   rh   r   r   r   rJ      ri   z.test_iter_expanding_series.<locals>.<listcomp>)rj   r   r;   r@   )serr=   r   rk   r   r   r   test_iter_expanding_series   s   ro   c                  C   s   t  } tt | jdd W d    n1 sw   Y  tt | jdd W d    n1 s4w   Y  td  |   W d    d S 1 sNw   Y  d S )NT)r   F)r   r;   assert_produces_warningFutureWarningr   r   r   r   r   test_center_deprecate_warning   s   
"rr   c                 C   sV   | g d}|   }t|trt|d j}ttjgdgd  }t	|| d S )Nrd   r   g۞?r	   )
r   sem
isinstancer   r   r_   r   r   r;   r@   )r   objr>   r=   r   r   r   test_expanding_sem   s   
rv   skewkurtc                 C   sL   t tjd}t|d|  }|d }t|d|  }t|| d S )NrC   r.   i  )r   r   randomrandr1   r   r;   r@   )r'   sr=   r>   r   r   r   ,test_expanding_skew_kurt_numerical_stability  s
   r|   )$numpyr   r"   pandas.errorsr   pandasr   r   r   pandas._testing_testingr;   pandas.core.windowr   r   markfilterwarningsr   parametrizearrayr&   r4   paramxfailr?   rB   rU   r]   ra   rb   r   rl   ro   rr   rv   r|   r   r   r   r   <module>   s    





	 
 
 
=666(.

