a
    Pf^                     @   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
 d dlmZ dd Zdd Zejddd	ed
g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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d)d* Zejd+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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 d,d-g d
fgd.d/ Zd0d1 Zd2d3 Z ejd4d5d6gd7d8 Z!ejd9g d:ejd4g d;ejd<d=d>gejd?d=d>gejd@g dAdBdC Z"dDdE Z#dFdG Z$dHdI Z%dJdK Z&dLdM Z'dNdO Z(ejjdPdQej)fdRdSdT fdUdVdT fdWdXdT fgg dYdZd[d\ Z*ejjdPdQej)fdRej+fdUej,fdWej-fgg dYdZd]d^ Z.d_d` Z/dadb Z0ejdcdddT dedT gdfdg Z1ejdcdhdT didT djdT dkdT dldT dmdT dndT dodT dpdT dqdT drdT dsdT dtdT dudT dvdT gdwdx Z2dydz Z3d{d| Z4d}d~ Z5dd Z6dd Z7dd Z8dd Z9dd Z:ejdddgejdd=d>gdd Z;ejde<e=gdd Z>ejdddgejdd=d>gejde<e=gdd Z?dd Z@dS )    N)	DataFrameDatetimeIndexIndex
MultiIndexSeriesisnanotnac                  C   s.   t ddddtjdgi} |  | d  d S )NBr            )r   npnan	expandingsumdf r   [/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/window/test_expanding.pytest_doc_string   s    r   c                 C   s   | t dj}|dd d S )N   r
   min_periods)ranger   )frame_or_seriescr   r   r   test_constructor   s    r   w       @foor   c                 C   sN   | t dj}d}tjt|d ||d W d    n1 s@0    Y  d S )Nr   zmin_periods must be an integermatchr   )r   r   pytestraises
ValueError)r   r   r   msgr   r   r   test_constructor_invalid   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   )r'   expectedresultr   r   r   test_empty_df_expanding)   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_zeroD   s    
r2   c                 C   s   t td}|| }|dkr<d}t dd tdD }n.d}t tjgd d	d
 tddD  gd }tjt|d" |j	d| d
 }W d    n1 s0    Y  t|| d S )N)
      r   z7The 'axis' keyword in DataFrame.expanding is deprecatedc                 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>Z       z2test_expanding_axis.<locals>.<dictcomp>.<listcomp>      )r   r   r   r7   ir   r   r   
<dictcomp>Z   r:   z'test_expanding_axis.<locals>.<dictcomp>r4   z7Support for axis=1 in DataFrame.expanding is deprecatedr   c                 S   s   g | ]}t |qS r   r5   r=   r   r   r   r9   _   r:   z'test_expanding_axis.<locals>.<listcomp>r;      r3   r    axis)r   r   ZonesZ_get_axis_numberr   r   r+   assert_produces_warningFutureWarningr   r   r,   )Z
axis_framer   rB   r%   r-   r.   r   r   r   test_expanding_axisR   s    
*0rE   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_periodsf   s    rM   c                 C   sD   dddt jdddg}g d}| |  }| |}t|| d S )Nr
   r   r;   r   r      )      ?r   rF   rF   rG   rH   g      @)r   r   r   rJ   r+   rK   )r   valuesZexpected_countsr.   r-   r   r   r   9test_expanding_count_default_min_periods_with_null_valuesm   s
    rQ   c                 C   sD   | t djdd }| tjtjtjtjtjg}t|| d S )Nr   rN   r   rI   rL   r   r   r   =test_expanding_count_with_min_periods_exceeding_series_lengthw   s    rR   zdf,expected,min_periodsr
   r   r;   )r   r   rN   )Ar	   r   r   r   r
   r   r;   rN   rO   c                 C   s8   dd |D }t || |D ]\}}t|| qd S )Nc                 S   s   g | ]\}}t ||d qS r)   )r   r7   rP   r*   r   r   r   r9      r:   z1test_iter_expanding_dataframe.<locals>.<listcomp>)zipr   r+   r,   )r   r-   r   actualr   r   r   test_iter_expanding_dataframe~   s    ?rZ   zser,expected,min_periodsZint64dtypec                 C   s8   dd |D }t || |D ]\}}t|| qd S )Nc                 S   s   g | ]\}}t ||d qS rV   )r   rW   r   r   r   r9      r:   z.test_iter_expanding_series.<locals>.<listcomp>)rX   r   r+   r0   )serr-   r   rY   r   r   r   test_iter_expanding_series   s    r^   c                  C   sD   t  } tjtdd | jdd W d    n1 s60    Y  d S )Nz.* got an unexpected keywordr    T)center)r   r"   r#   	TypeErrorr   r   r   r   r   test_center_invalid   s    ra   c                 C   sV   | g d}|   }t|tr0t|d j}ttjgdgd  }t	|| d S )NrU   r   g۞?r   )
r   Zsem
isinstancer   r   rP   r   r   r+   r0   )r   objr.   r-   r   r   r   test_expanding_sem   s    
rd   methodskewkurtc                 C   sR   t tjdd}t|d|  }|d }t|d|  }t|| d S )Nr   r3   r;   i  )r   r   randomdefault_rnggetattrr   r+   r0   )re   sr-   r.   r   r   r   ,test_expanding_skew_kurt_numerical_stability   s
    rl   window)r
   r;   r3   r4   )minmaxZaveragepctTF	ascending	test_data)default
duplicatesnansc           	   	      s   d}|dkr&t tjd|d}nZ|dkrJt tjdd|d}n6|dkrt tjddd	d
tjtjtj g|d}||  fdd}|| j	 d}t
|| d S )Nr4   rs   r   )datart   r;   ru   rO   g      ?g      ?c                    s   | j  djd S )Nre   rp   rq   )rankilocr1   rq   re   rp   r   r   <lambda>  r:   ztest_rank.<locals>.<lambda>rw   )r   r   rh   ri   choicer   infr   applyry   r+   r0   )	rm   re   rp   rq   rr   lengthr]   r-   r.   r   r|   r   	test_rank   s     
r   c                 C   s`   |   }|tjdt| d d }| |}|jt|dd|}t	
|| d S Nr   r
   rm   r   )Zdropnar   rh   ri   standard_normallenr   corrrollingr+   assert_almost_equalseriesrT   r	   r.   rolling_resultr   r   r   test_expanding_corr  s
    "r   c                 C   s2   | j dd }t|| jt| dd  d S )Nr   r   r   )r   rJ   r+   r   r   r   )r   r.   r   r   r   test_expanding_count  s    r   c                 C   s6   |   d}| jt| ddd}t|| d S )N      ?r
   r   )r   quantiler   r   r+   r   )r   r.   r   r   r   r   test_expanding_quantile  s    r   c                 C   s\   | }|t jdt| d d }| |}|jt|dd|}t	|| d S r   )
r   rh   ri   r   r   r   covr   r+   r   r   r   r   r   test_expanding_cov%  s
    "r   c                 C   s2   |    }| jt| dd }t|| d S Nr
   r   )r   r   r   r   r+   r,   framer.   r   r   r   r   test_expanding_cov_pairwise0  s    r   c                 C   s2   |    }| jt| dd }t|| d S r   )r   r   r   r   r+   r,   r   r   r   r   test_expanding_corr_pairwise8  s    r   zfunc,static_compr   meanc                 C   s   t j| ddS Nr   rA   r   r   r{   r   r   r   r}   C  r:   r}   ro   c                 C   s   t j| ddS r   )r   ro   r{   r   r   r   r}   D  r:   rn   c                 C   s   t j| ddS r   )r   rn   r{   r   r   r   r}   E  r:   )r   r   ro   rn   )Zidsc           	      C   s  |t ttdt jgd  }d}tjt|d |jddd}W d    n1 sX0    Y  t	||  }t
||s|J d}d }|tu r|t ju rt}tj||dd	  ||d d
 }W d    n1 s0    Y  |tu rt|d | ntj|jd |dd d S )Nr3   z@The 'axis' keyword in (Series|DataFrame).expanding is deprecatedr    r
   r   r   rB   z:The behavior of DataFrame.sum with axis=None is deprecatedF)r!   Zcheck_stacklevelr<   Zcheck_names)r   arraylistr   r   r+   rC   rD   r   rj   rb   r   r   r   r   r0   rz   )	funcstatic_compr   rv   r%   rc   r.   warnr-   r   r   r   test_expanding_func?  s    ",.r   c                 C   s|  t tjdd}d}tjt|d& t|j	ddd|  }W d    n1 sT0    Y  |d d 
  svJ t|jd	 ||d d  tjt|d& t|j	d
dd|  }W d    n1 s0    Y  t
|jd sJ t|jd sJ t tjdd}tjt|d& t|j	ddd|  }W d    n1 sN0    Y  t
|d sjJ t|d s|J tjt|d& t|j	ddd|  }W d    n1 s0    Y  tjt|d& t|j	ddd|  }W d    n1 s0    Y  t|| tjt|d& t|j	ddd|  }W d    n1 sP0    Y  t|jd	 ||d d  d S )Nr   2   z4The 'axis' keyword in Series.expanding is deprecatedr       r   r      rx            r4   r   r;   r   r
   )r   r   rh   ri   r   r+   rC   rD   rj   r   r   allr   rz   r   )r   r   r]   r%   r.   ser2result0result1r   r   r   test_expanding_min_periods^  s.    446666r   c                 C   s   | \}}|t ttdt jgd  }|jddjdd ||d}t||sTJ |tu rt	
|d t j|d d d	d
 n(t	j|jd t j|d d d	d
dd d S )Nr3   r
   r   c                 S   s   |   S Nr   r{   r   r   r   r}     r:   z&test_expanding_apply.<locals>.<lambda>rawengine	   r<   r   rA   Fr   )r   r   r   r   r   r   r   rb   r   r+   r   r   r0   rz   )engine_and_rawr   r   r   rv   r.   r   r   r   test_expanding_apply  s    "
$r   c                 C   s  | \}}t tjdd}|jddjdd ||d}|d d   sRJ t	
|jd	 t|d d  |jd
djdd ||d}t|jd sJ t|jd sJ t tjdd}|jddjdd ||d}t|d sJ t|d sJ |jddjdd ||d}|jddjdd ||d}t	
|| |jddjdd ||d}t	
|jd	 t|d d  d S )Nr   r   r   r   c                 S   s   |   S r   r   r{   r   r   r   r}     r:   z2test_expanding_min_periods_apply.<locals>.<lambda>r   r   rx   r   c                 S   s   |   S r   r   r{   r   r   r   r}     r:   r   r   r4   r   c                 S   s   |   S r   r   r{   r   r   r   r}     r:   r;   r   r   c                 S   s   |   S r   r   r{   r   r   r   r}     r:   r
   c                 S   s   |   S r   r   r{   r   r   r   r}     r:   c                 S   s   |   S r   r   r{   r   r   r   r}     r:   )r   r   rh   ri   r   r   r   r   r   r+   r   rz   r   r   )r   r   r   r]   r.   r   r   r   r   r   r    test_expanding_min_periods_apply  s:    
 




r   fc                 C   s   | j ddj| ddS Nr   r   Tpairwiser   r   r{   r   r   r   r}     r:   c                 C   s   | j ddj| ddS r   r   r   r{   r   r   r   r}     r:   c                 C   s   t  }t tdgddtg ddd}|d d|d< t t|j|jgd}t tj|j|jgddgdtdgdddd	}| |}t|| | |}t|| d S )
Nar   namebarcolumnsr*   float64r)   )names)r*   r   r\   )	r   r   astyper   Zfrom_productr*   r   r+   r,   )r   df1df2df1_expecteddf2_expected
df1_result
df2_resultr   r   r   *test_moment_functions_zero_length_pairwise  s    r   c                 C   s   |    S r   )r   rJ   r{   r   r   r   r}     r:   c                 C   s   | j ddj| ddS Nr   r   Fr   r   r{   r   r   r   r}     r:   c                 C   s   | j ddj| ddS r   r   r{   r   r   r   r}     r:   c                 C   s   | j dd S Nr   r   )r   ro   r{   r   r   r   r}     r:   c                 C   s   | j dd S r   )r   rn   r{   r   r   r   r}     r:   c                 C   s   | j dd S r   )r   r   r{   r   r   r   r}     r:   c                 C   s   | j dd S r   )r   r   r{   r   r   r   r}     r:   c                 C   s   | j dd S r   )r   Zstdr{   r   r   r   r}     r:   c                 C   s   | j dd S r   )r   varr{   r   r   r   r}     r:   c                 C   s   | j dd S r   )r   rf   r{   r   r   r   r}     r:   c                 C   s   | j dd S r   )r   rg   r{   r   r   r   r}     r:   c                 C   s   | j dddS )Nr   r   r   )r   r   r{   r   r   r   r}     r:   c                 C   s   | j dd S r   )r   Zmedianr{   r   r   r   r}     r:   c                 C   s   | j ddjtddS )Nr   r   Fr   r   r   r   r{   r   r   r   r}     r:   c                 C   s   | j ddjtddS )Nr   r   Tr   r   r{   r   r   r   r}     r:   c           
      C   s|   t tjd}|}t }|}tdgd}|d d|d< |}| |}t|| | |}t|| | |}	t|	| d S )Nr[   r   r   r   )r   r   r   r   r   r+   r0   r,   )
r   rk   Z
s_expectedr   r   r   r   Zs_resultr   r   r   r   r   !test_moment_functions_zero_length  s    r   c                 C   s:   | \}}t g tjd}t|| jdd ||d d S )Nr[   c                 S   s   |   S r   r   r{   r   r   r   r}     r:   z3test_expanding_apply_empty_series.<locals>.<lambda>r   )r   r   r   r+   r0   r   r   )r   r   r   r]   r   r   r   !test_expanding_apply_empty_series  s
    r   c                 C   sL   | \}}t g d}|jddjdd ||d}t g d}t|| d S )N)NNNr   r   c                 S   s   t | S r   )r   r{   r   r   r   r}   	  r:   z4test_expanding_apply_min_periods_0.<locals>.<lambda>r   )rO   r   rF   )r   r   r   r+   r0   )r   r   r   rk   r.   r-   r   r   r   "test_expanding_apply_min_periods_0  s
    r   c                  C   s   t g dg dd} t ddgddgd}|  |}t g d}t|| t g d	g dd}|  |}t|| t g d
g dd} t g dg dd}|  |}t g d}t|| d S )NrS   rU   r)   r
   r;   r   r   )NNr   r
   Nr;         r3   r   r
   r;   r   r   r3   r   r   r;   )NNNg      @)r   r   r   r+   r0   s1s2r.   r-   Zs2ar   r   r   test_expanding_cov_diff_index  s    r   c                  C   s   t g dg dd} t ddgddgd}|  |}t g d}t|| t g d	g dd}|  |}t|| t g d
g dd} t g dg dd}|  |}t g d}t|| d S )NrS   rU   r)   r
   r;   r   r   )NNrO   r   r   r   r   r   )NNNrO   )r   r   r   r+   r0   r   r   r   r   test_expanding_corr_diff_index!  s    r   c            	      C   sn  t ddgddgddggtddgdd	d
} t ddgddggddgtddgdd	d}t ddgd d gddggtddgdd	d
}t ddgddggddgtddgdd	d}|  j|ddjd }|  j|ddjd }| j|ddjd }| j|ddjd }t ddgddggtddgdd	tddgdd	d}t|| t|| t|| t|| d S )Nr
   r   r;   r   r   rT   r	   r   r   r   r   r*   r   rN   XYTr   g      g      g      g      $r   )r   r   r   r   locr+   r,   	r   Zdf1ar   Zdf2ar   Zresult2Zresult3Zresult4r-   r   r   r   'test_expanding_cov_pairwise_diff_length4  s.    *"""r   c            	      C   sn  t ddgddgddggddgttdddd	} t ddgddggtd
dgddddgd}t ddgd d gddggddgttdddd	}t ddgddggtd
dgddddgd}|  j|ddjd }|  j|ddjd }| j|ddjd }| j|ddjd }t ddgddggddgtddgd	}t|| t|| t|| t|| d S )Nr
   r   r;   r   rT   r	   r   r   r   r   r   r   rN   r   r   Tr   g      )r   r   r   r   r   r   r+   r,   r   r   r   r   (test_expanding_corr_pairwise_diff_lengthQ  s2    (""r   c                 C   s   dd }| \}}t tjdd}| jtj||dd }| j|||dd}t|| | j||d	d
id}t|| d S )Nc                 S   s   t | | S r   r   )r1   constr   r   r   
mean_w_argo  s    z4test_expanding_apply_args_kwargs.<locals>.mean_w_argr   )r4   r;   )r   r   g      4@)r4   )r   r   argsr   r4   )r   kwargs)	r   r   rh   ri   r   r   r   r+   r,   )r   r   r   r   r   r-   r.   r   r   r    test_expanding_apply_args_kwargsn  s    r   c           	      C   s   | }t dgddd}|d t|d< | }t||d }|d ur||d}|rZddgng d}|| |gjd	d
t}t|j	|ksJ t
|| d S )Nr
   r   r;   r   br   r   numeric_onlyr   r   TZdrop)r   r   objectr   rj   aggreset_indexr6   r   r   r+   r,   )	arithmetic_win_operatorsr   kernelr   r   opr.   r   r-   r   r   r   test_numeric_only_frame  s    
r   r   r   r   use_argc                 C   s   t g dddd}|d t|d< |r0|fnd}| }t|| }||d|i}|r`dd	gng d}|| t}	|r|	fnd}
|	 }t|| }||
d|i}t|| d S )
NrS   r   r;   r   r   r   r   r   r   )r   r   r   r   rj   r6   r+   r,   )r   r   r   r   argr   r   r.   r   r   arg2
expanding2op2r-   r   r   r    test_numeric_only_corr_cov_frame  s    

r  r\   c           
      C   s   | }t dg|d}| }t||}|rv|tu rvd| d}tjt|d ||d W d    q1 sj0    Y  n0||d}||gjdd	t
}	t||	 d S )	Nr
   r[   
Expanding.  does not implement numeric_onlyr    r   Tr   )r   r   rj   r   r"   r#   NotImplementedErrorr   r   r   r6   r+   r0   )
r   r   r\   r   r]   r   r   r%   r.   r-   r   r   r   test_numeric_only_series  s    
*
r  c                 C   s   t g d|d}|r|fnd}| }t|| }|r|tu rd|  d}tjt|d ||d|i W d    q1 sz0    Y  nR||d|i}	|t}
|r|
fnd}|
 }t|| }||d|i}t	
|	| d S )NrS   r[   r   r  r  r    r   )r   r   rj   r   r"   r#   r  r   r6   r+   r0   )r   r   r   r\   r]   r   r   r   r%   r.   r   r   r   r   r-   r   r   r   !test_numeric_only_corr_cov_series  s    
.

r  c                  C   sJ   t g d} tt  |  jdd W d    n1 s<0    Y  d S )N)r
   r   r;   r   r   )r   )r   r+   rC   rD   r   r   )r]   r   r   r    test_keyword_quantile_deprecated  s    r  )Anumpyr   r"   Zpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr+   r   r   markZparametrizer   r&   paramZxfailr/   r2   rE   rM   rQ   rR   r   rZ   r^   ra   rd   rl   r   r   r   r   r   r   r   r   r   r   ro   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r  intr   r  r  r  r   r   r   r   <module>   sF  $		
	



	 
 
 =
666(.


	




"
!'

	
