o
    թZh^                     @   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   Y/var/www/html/lang_env/lib/python3.10/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   sP   | t dj}d}tjt|d ||d W d    d S 1 s!w   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 sPw   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      g | ]}t |qS r   float).0jr   r   r   
<listcomp>Z       z2test_expanding_axis.<locals>.<dictcomp>.<listcomp>      )r   r   r   r8   ir   r   r   
<dictcomp>Z   s   . z'test_expanding_axis.<locals>.<dictcomp>r4   z7Support for axis=1 in DataFrame.expanding is deprecatedr   c                 S   r5   r   r6   r>   r   r   r   r:   _   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   rC   r%   r-   r.   r   r   r   test_expanding_axisR   s   
*rF   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   rN   c                 C   sD   dddt jdddg}g d}| |  }| |}t|| d S )Nr
   r   r<   r   r      )      ?r   rG   rG   rH   rI   g      @)r   r   r   rK   r+   rL   )r   valuesZexpected_countsr.   r-   r   r   r   9test_expanding_count_default_min_periods_with_null_valuesm   s
   rR   c                 C   sD   | t djdd }| tjtjtjtjtjg}t|| d S )Nr   rO   r   rJ   rM   r   r   r   =test_expanding_count_with_min_periods_exceeding_series_lengthw   s   rS   zdf,expected,min_periodsr
   r   r<   )r   r   rO   )Ar	   r   r   r   r
   r   r<   rO   rP   c                 C   8   dd |D }t || |D ]
\}}t|| qd S )Nc                 S      g | ]
\}}t ||d qS r)   )r   r8   rQ   r*   r   r   r   r:          z1test_iter_expanding_dataframe.<locals>.<listcomp>)zipr   r+   r,   )r   r-   r   actualr   r   r   test_iter_expanding_dataframe~   s   ?r^   zser,expected,min_periodsZint64dtypec                 C   rW   )Nc                 S   rX   rY   )r   rZ   r   r   r   r:      r[   z.test_iter_expanding_series.<locals>.<listcomp>)r\   r   r+   r0   )serr-   r   r]   r   r   r   test_iter_expanding_series   s   rb   c                  C   sF   t  } tjtdd | jdd W d    d S 1 sw   Y  d S )Nz.* got an unexpected keywordr    T)center)r   r"   r#   	TypeErrorr   r   r   r   r   test_center_invalid   s   "re   c                 C   sV   | g d}|   }t|trt|d j}ttjgdgd  }t	|| d S )NrV   r   g۞?r   )
r   Zsem
isinstancer   r   rQ   r   r   r+   r0   )r   objr.   r-   r   r   r   test_expanding_sem   s   
rh   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   )ri   sr-   r.   r   r   r   ,test_expanding_skew_kurt_numerical_stability   s
   rp   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}n-|dkr%t tjdd|d}n|dkr@t tjddd	d
tjtjtj g|d}||  fdd}|| j	 d}t
|| d S )Nr4   rw   r   )datarx   r<   ry   rP   g      ?g      ?c                    s   | j  djd S )Nri   rt   ru   )rankilocr1   ru   ri   rt   r   r   <lambda>      ztest_rank.<locals>.<lambda>r{   )r   r   rl   rm   choicer   infr   applyr}   r+   r0   )	rq   ri   rt   ru   rv   lengthra   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
   rq   r   )Zdropnar   rl   rm   standard_normallenr   corrrollingr+   assert_almost_equalseriesrU   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   rK   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   rl   rm   r   r   r   covr   r+   r   r   r   r   r   test_expanding_cov%  s
   "r   c                 C   2   |    }| 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   r   r   )r   r   r   r   r+   r,   r   r   r   r   test_expanding_corr_pairwise8  s   r   zfunc,static_compr   meanc                 C      t j| ddS Nr   rB   r   r   r   r   r   r   r   C      r   rs   c                 C   r   r   )r   rs   r   r   r   r   r   D  r   rr   c                 C   r   r   )r   rr   r   r   r   r   r   E  r   )r   r   rs   rr   )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 s,w   Y  t	||  }t
||s>J d}d }|tu rM|t ju rMt}tj||dd	 ||d d
 }W d    n1 shw   Y  |tu r{t|d | d S tj|jd |dd d S )Nr3   z@The 'axis' keyword in (Series|DataFrame).expanding is deprecatedr    r
   r   r   rC   z:The behavior of DataFrame.sum with axis=None is deprecatedF)r!   Zcheck_stacklevelr=   Zcheck_names)r   arraylistr   r   r+   rD   rE   r   rn   rf   r   r   r   r   r0   r~   )	funcstatic_compr   rz   r%   rg   r.   warnr-   r   r   r   test_expanding_func?  s"   "r   c                 C   sr  t tjdd}d}tjt|d t|j	ddd|  }W d    n1 s*w   Y  |d d 
  s;J t|jd	 ||d d  tjt|d t|j	d
dd|  }W d    n1 sgw   Y  t
|jd suJ t|jd s~J t tjdd}tjt|d t|j	ddd|  }W d    n1 sw   Y  t
|d sJ t|d sJ tjt|d t|j	ddd|  }W d    n1 sw   Y  tjt|d t|j	ddd|  }W d    n1 sw   Y  t|| tjt|d t|j	ddd|  }W d    n	1 s#w   Y  t|jd	 ||d d  d S )Nr   2   z4The 'axis' keyword in Series.expanding is deprecatedr       r   r      r|            r4   r   r<   r   r
   )r   r   rl   rm   r   r+   rD   rE   rn   r   r   allr   r~   r   )r   r   ra   r%   r.   ser2result0result1r   r   r   test_expanding_min_periods^  s:   "r   c                 C   s   | \}}|t ttdt jgd  }|jddjdd ||d}t||s*J |tu rAt	
|d t j|d d d	d
 d S t	j|jd t j|d d d	d
dd d S )Nr3   r
   r   c                 S      |   S Nr   r   r   r   r   r         z&test_expanding_apply.<locals>.<lambda>rawengine	   r=   r   rB   Fr   )r   r   r   r   r   r   r   rf   r   r+   r   r   r0   r~   )engine_and_rawr   r   r   rz   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   s)J t	
|jd	 t|d d  |jd
djdd ||d}t|jd sPJ t|jd sYJ t tjdd}|jddjdd ||d}t|d szJ t|d sJ |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   r   r   r   r   r   r   r   r     r   z2test_expanding_min_periods_apply.<locals>.<lambda>r   r   r|   r   c                 S   r   r   r   r   r   r   r   r     r   r   r   r4   r   c                 S   r   r   r   r   r   r   r   r     r   r<   r   r   c                 S   r   r   r   r   r   r   r   r     r   r
   c                 S   r   r   r   r   r   r   r   r     r   c                 S   r   r   r   r   r   r   r   r     r   )r   r   rl   rm   r   r   r   r   r   r+   r   r~   r   r   )r   r   r   ra   r.   r   r   r   r   r   r    test_expanding_min_periods_apply  s:   
 




$r   fc                 C      | j ddj| ddS Nr   r   Tpairwiser   r   r   r   r   r   r     r   c                 C   r   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   rK   r   r   r   r   r     s    c                 C   r   Nr   r   Fr   r   r   r   r   r   r     r   c                 C   r   r   r   r   r   r   r   r     r   c                 C      | j dd S Nr   r   )r   rs   r   r   r   r   r         c                 C   r   r   )r   rr   r   r   r   r   r     r   c                 C   r   r   )r   r   r   r   r   r   r     r   c                 C   r   r   )r   r   r   r   r   r   r     r   c                 C   r   r   )r   Zstdr   r   r   r   r     r   c                 C   r   r   )r   varr   r   r   r   r     r   c                 C   r   r   )r   rj   r   r   r   r   r     r   c                 C   r   r   )r   rk   r   r   r   r   r     r   c                 C   s   | j dddS )Nr   r   r   )r   r   r   r   r   r   r     s    c                 C   r   r   )r   Zmedianr   r   r   r   r     r   c                 C      | j ddjtddS )Nr   r   Fr   r   r   r   r   r   r   r   r     r   c                 C   r   )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   ro   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   r   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   ra   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   )rP   r   rG   )r   r   r   r+   r0   )r   r   r   ro   r.   r-   r   r   r   "test_expanding_apply_min_periods_0  s
   r   c                  C      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 )NrT   rV   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     r   c                  C   r   )NrT   rV   r)   r
   r<   r   r   )NNrP   r   r   r   r   r   )NNNrP   )r   r   r   r+   r0   r   r   r   r   test_expanding_corr_diff_index!  r   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   rU   r	   r   r   r   r   r*   r   rO   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   rU   r	   r   r   r   r   r   r   rO   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   rl   rm   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rQ||d}|r-ddgng d}|| |gjd	d
t}t|j	|ksIJ t
|| d S d S )Nr
   r   r<   r   br   r   numeric_onlyr   r  TZdrop)r   r   objectr   rn   aggreset_indexr7   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< |r|fnd}| }t|| }||d|i}|r0dd	gng d}|| t}	|r@|	fnd}
|	 }t|| }||
d|i}t|| d S )
NrT   r   r<   r   r   r   r  r   r  )r   r   r  r   rn   r7   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||}|r=|tu r=d| d}tjt|d ||d W d    d S 1 s6w   Y  d S ||d}||gjdd	t
}	t||	 d S )	Nr
   r_   
Expanding.  does not implement numeric_onlyr    r  Tr  )r   r   rn   r  r"   r#   NotImplementedErrorr  r  r   r7   r+   r0   )
r  r  r`   r	  ra   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|| }|rE|tu rEd|  d}tjt|d ||d|i W d    d S 1 s>w   Y  d S ||d|i}	|t}
|rV|
fnd}|
 }t|| }||d|i}t	
|	| d S )NrT   r_   r   r  r  r    r  )r   r   rn   r  r"   r#   r  r   r7   r+   r0   )r	  r  r  r`   ra   r  r   r
  r%   r.   r   r  r  r  r-   r   r   r   !test_numeric_only_corr_cov_series  s    
"

r  c                  C   sL   t g d} tt |  jdd W d    d S 1 sw   Y  d S )N)r
   r   r<   r   r   )r   )r   r+   rD   rE   r   r   )ra   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   rF   rN   rR   rS   r   r^   rb   re   rh   rp   r   r   r   r   r   r   r   r   r   r   rs   rr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  intr  r  r  r  r   r   r   r   <module>   sH   $		
	



	 
 
 
=666(.


	




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