o
    i/^                     @   s  d dl Zd dlZd dlm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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'ejd?g d@ejdg dAejdBdCdDgejdEdCdDgejdFg dGdHdI Z(dJdK Z)dLdM Z*dNdO Z+dPdQ Z,dRdS Z-dTdU Z.ejjdVdWej/fdXdYdZ fd[d\dZ fd]d^dZ fgg d_d`dadb Z0ejjdVdWej/fdXej1fd[ej2fd]ej3fgg d_d`dcdd Z4dedf Z5dgdh Z6ejdidjdZ dkdZ gdldm Z7ejdidndZ dodZ dpdZ dqdZ drdZ dsdZ dtdZ dudZ dvdZ dwdZ dxdZ dydZ dzdZ d{dZ d|dZ gd}d~ Z8dd Z9dd Z:dd Z;dd Z<dd Z=dd Z>dd Z?dd Z@ejdddgejddCdDgdd ZAejdeBeCgdd ZDejdddgejddCdDgejdeBeCgdd ZEdS )    N)UnsupportedFunctionCall)	DataFrameDatetimeIndexIndex
MultiIndexSeriesisnanotna)	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   ]/var/www/edux/Edux_v2/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}d|  }tjt|d( tjt|d t|| ddd W d    n1 s2w   Y  W d    n1 sAw   Y  d|  }tjt|d1 tjt|d t|| t	j
d	 W d    n1 snw   Y  W d    d S W d    d S 1 sw   Y  d S )
N)r   r      z2numpy operations are not valid with window objectsz%Passing additional args to Expanding.r$   r   r      z'Passing additional kwargs to Expanding.dtype)r
   r   tmassert_produces_warningFutureWarningr&   r'   r   getattrr   float64)r+   e	error_msgwarn_msgr   r   r   test_numpy_compat9   s"   

"r=   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   r5   assert_frame_equalr   )r>   expectedresultr   r   r   test_empty_df_expandingJ   s   rG   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   r5   assert_series_equal)xrF   rE   r   r   r   test_missing_minp_zeroe   s   
rJ   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>z       z2test_expanding_axis.<locals>.<dictcomp>.<listcomp>r2      )r   r   r   rP   ir   r   r   
<dictcomp>z   s   . z'test_expanding_axis.<locals>.<dictcomp>rL   r   c                 S   rM   r   rN   rU   r   r   r   rR   ~   rS   z'test_expanding_axis.<locals>.<listcomp>r2      rK   axis)
r   r   ones_get_axis_numberr   r   r   r   r5   rD   )
axis_framer   rZ   rE   rF   r   r   r   test_expanding_axiss   s   
*r^   c                 C   s>   | t djdd }| tjtjdddg}t|| d S )Nr   r2   r         @      @      @r   r   countr   r   r5   assert_equalr   rF   rE   r   r   r   %test_expanding_count_with_min_periods   s   rf   c                 C   sD   dddt jdddg}g d}| |  }| |}t|| d S )Nr   r   r2   r   r   r1   )      ?r"   r_   r_   r`   ra   g      @)r   r   r   rc   r5   rd   )r   valuesexpected_countsrF   rE   r   r   r   9test_expanding_count_default_min_periods_with_null_values   s
   rj   c                 C   sD   | t djdd }| tjtjtjtjtjg}t|| d S )Nr   r1   r   rb   re   r   r   r   =test_expanding_count_with_min_periods_exceeding_series_length   s   rk   zdf,expected,min_periodsr   r   r2   )r   r   r1   )Ar   r   r   r   r   r   r2   r1   rg   c                 C   8   dd |D }t || |D ]
\}}t|| qd S )Nc                 S      g | ]
\}}t ||d qS rB   )r   rP   rh   rC   r   r   r   rR          z1test_iter_expanding_dataframe.<locals>.<listcomp>)zipr   r5   rD   )r   rE   r   actualr   r   r   test_iter_expanding_dataframe   s   ?rv   zser,expected,min_periodsint64r3   c                 C   ro   )Nc                 S   rp   rq   )r   rr   r   r   r   rR      rs   z.test_iter_expanding_series.<locals>.<listcomp>)rt   r   r5   rH   )serrE   r   ru   r   r   r   test_iter_expanding_series   s   ry   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   r5   r6   r7   r   r   r   r   r   test_center_deprecate_warning   s   
"rz   c                 C   sV   | g d}|   }t|trt|d j}ttjgdgd  }t	|| d S )Nrn   r   g۞?r   )
r   sem
isinstancer   r   rh   r   r   r5   rH   )r   objrF   rE   r   r   r   test_expanding_sem  s   
r~   skewkurtc                 C   sL   t tjd}t|d|  }|d }t|d|  }t|| d S )NrK   r2   i  )r   r   randomrandr8   r   r5   rH   )r+   srE   rF   r   r   r   ,test_expanding_skew_kurt_numerical_stability  s
   r   window)r   r2   rK   rL   )r/   r.   averagepctTF	ascending	test_data)default
duplicatesnansc           	   	      s   d}|dkrt tj|d}n'|dkrt tjd|d}n|dkr7t tjddd	tjtjtj g|d}||  fd
d}|| j	 d}t
|| d S )NrL   r   )datar   r2   r   rg   g      ?g      ?c                    s   | j  djd S )Nr+   r   r   )rankilocrI   r   r+   r   r   r   <lambda>&      ztest_rank.<locals>.<lambda>r   )r   r   r   r   choicer   infr   applyr   r5   rH   )	r   r+   r   r   r   lengthrx   rE   rF   r   r   r   	test_rank  s    
r   c                 C   sZ   |   }|tjt| d d }| |}|jt|dd|}t	|| d S Nr   r   r   )
dropnar   r   randnlenr   corrrollingr5   assert_almost_equalseriesrm   r   rF   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   rc   r5   r   r   r   )r   rF   r   r   r   test_expanding_count8  s   r   c                 C   s6   |   d}| jt| ddd}t|| d S )N      ?r   r   )r   quantiler   r   r5   r   )r   rF   r   r   r   r   test_expanding_quantile?  s   r   c                 C   sV   | }|t jt| d d }| |}|jt|dd|}t|| d S r   )	r   r   r   r   r   covr   r5   r   r   r   r   r   test_expanding_covG  s
   r   c                 C   2   |    }| jt| dd }t|| d S Nr   r   )r   r   r   r   r5   rD   framerF   r   r   r   r   test_expanding_cov_pairwiseR  s   r   c                 C   r   r   )r   r   r   r   r5   rD   r   r   r   r   test_expanding_corr_pairwiseZ  s   r   zfunc,static_compr   r-   c                 C      t j| ddS Nr   rY   r   r-   r   r   r   r   r   e      r   r.   c                 C   r   r   )r   r.   r   r   r   r   r   f  r   r/   c                 C   r   r   )r   r/   r   r   r   r   r   g  r   )r   r-   r.   r/   )idsc                 C   s   |t ttdt jgd  }t|jddd|  }t||s#J ||d d }|tu r9t	
|d | d S t	j|jd |dd d S )NrK   r   r   r   rZ   rT   Fcheck_names)r   arraylistr   r   r8   r   r|   r   r5   r   rH   r   )funcstatic_compr   r   rF   rE   r   r   r   test_expanding_funca  s   "r   c                 C   sL  t tjd}t|jddd|  }|d d   sJ t	|j
d ||d d  t|jddd|  }t|j
d sBJ t|j
d	 sKJ t tjd
}t|jddd|  }t|d sfJ t|d snJ t|jddd|  }t|jddd|  }t	|| t|jddd|  }t	|j
d ||d d  d S )N2      r   r      r            rL   r   r2   r   r   )r   r   r   r   r8   r   r   allr5   r   r   r	   )r   r   rx   rF   ser2result0result1r   r   r   test_expanding_min_periodsw  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 )NrK   r   r   c                 S      |   S Nr-   r   r   r   r   r         z&test_expanding_apply.<locals>.<lambda>rawengine	   rT   r   rY   Fr   )r   r   r   r   r   r   r   r|   r   r5   r   r-   rH   r   )engine_and_rawr   r   r   r   rF   r   r   r   test_expanding_apply  s   "
&
r   c                 C   s|  | \}}t tj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 sMJ t|j
d sVJ t tjd}|jddjdd ||d}t|d stJ 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   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   rL   r   c                 S   r   r   r   r   r   r   r   r     r   r2   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   r   r   r   r   r   r   r5   r   r   r-   r	   )r   r   r   rx   rF   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t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columnsrC   r9   rC   r   )names)rC   r   r4   )	r   r   astyper   from_productrC   r   r5   rD   )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   rc   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   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   r-   r   r   r   r   r     r   c                 C   r   r   )r   r,   r   r   r   r   r     r   c                 C   r   r   )r   r0   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   s   | j dddS )Nr   r   r   )r   r   r   r   r   r   r     s    c                 C   r   r   )r   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 )Nr3   r   r   r9   )r   r   r9   r   r   r5   rH   rD   )
r   r   
s_expectedr   r   r   r   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 )Nr3   c                 S   r   r   r   r   r   r   r   r     r   z3test_expanding_apply_empty_series.<locals>.<lambda>r   )r   r   r9   r5   rH   r   r   )r   r   r   rx   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   )rg   r"   r_   )r   r   r   r5   rH   )r   r   r   r   rF   rE   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 )Nrl   rn   rB   r   r2   r   r   )NNr"   r   Nr2         rK   r   r   r2   r   r   rK   r   r   r2   )NNNg      @)r   r   r   r5   rH   s1s2rF   rE   s2ar   r   r   test_expanding_cov_diff_index#     r	  c                  C   r   )Nrl   rn   rB   r   r2   r   r   )NNrg   r   r   r  r  r  )NNNrg   )r   r   r   r5   rH   r  r   r   r   test_expanding_corr_diff_index6  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   r2   r   r   rm   r   r#   r   r   r   r   r1   XYTr   g      g      g      g      $r   )r   r   r   r   locr5   rD   	r   df1ar   df2ar   result2result3result4rE   r   r   r   'test_expanding_cov_pairwise_diff_lengthI  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   r2   r   rm   r   r   r   r   r   r   r   r1   r  r  Tr   g      )r   r   r   r   r   r  r5   rD   r  r   r   r   (test_expanding_corr_pairwise_diff_lengthf  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   )rI   constr   r   r   
mean_w_arg  s   z4test_expanding_apply_args_kwargs.<locals>.mean_w_argrL   r2   )r   r   g      4@)rL   )r   r   argsr  )r   kwargs)	r   r   r   r   r   r   r-   r5   rD   )r   r  r   r   r   rE   rF   r   r   r    test_expanding_apply_args_kwargs  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   r2   r   br   r   numeric_onlyr   r  Tdrop)r   r   objectr   r8   aggreset_indexrO   r   r   r5   rD   )	arithmetic_win_operatorsr  kernelr   r   oprF   r   rE   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 )
Nrl   r   r2   r  r   r   r  r   r  )r   r   r"  r   r8   rO   r5   rD   )r&  r  r)  r   argr   r'  rF   r   r   arg2
expanding2op2rE   r   r   r    test_numeric_only_corr_cov_frame  s   

r.  r4   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   r3   
Expanding.  does not implement numeric_onlyr$   r  Tr   )r   r   r8   r"  r&   r'   NotImplementedErrorr#  r$  r   rO   r5   rH   )
r%  r  r4   r&  rx   r   r'  r)   rF   rE   r   r   r   test_numeric_only_series  s   
"
r2  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 )Nrl   r3   r   r/  r0  r$   r  )r   r   r8   r"  r&   r'   r1  r   rO   r5   rH   )r&  r)  r  r4   rx   r*  r   r'  r)   rF   r   r+  r,  r-  rE   r   r   r   !test_numeric_only_corr_cov_series  s    
"

r3  )Fnumpyr   r&   pandas.errorsr   pandasr   r   r   r   r   r   r	   pandas._testing_testingr5   pandas.core.windowr
   r   markfilterwarningsr    parametrizer   r*   r=   paramxfailrG   rJ   r^   rf   rj   rk   r   rv   ry   rz   r~   r   r   r   r   r   r   r   r   r   r   r-   r.   r/   r   r   r   r   r   r   r   r	  r  r  r  r  r(  r.  intr"  r2  r3  r   r   r   r   <module>   sZ   $	





	 
 
 
=666(.


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

"
'

	
