U
    -eX                     @   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dd
d gd!d"d#gd$dgd!gd$d gfdd
gd!d"gd$d dgfdd
d gd!d"d#gd$d dd
gfgd fedd
d gd!d"d#gd$dgd!gd$d gfdd
gd!d"gd$d dgfdd
d gd!d"d#gd$d dd
gfgd
fedd
d gd!d"d#gd$dgd!gd$d gfdd
gd!d"gd$d dgfdd
d gd!d"d#gd$d dd
g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$d dd
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$d dd
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$d dd
gfgdfgd&d' Zejd(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
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 d)d*g d
fgd+d, Zd-d. Zd/d0 Z ejd1d2d3gd4d5 Z!ejd6dd d7d8gejd1d9d:d;gejd<d=d>gejd?d=d>gejd@dAdBdCgdDdE Z"dFdG Z#dHdI Z$dJdK Z%dLdM Z&dNdO Z'dPdQ Z(ejjdRdSej)fdTdUdV fd:dWdV fd9dXdV fgdSdTd:d9gdYdZd[ Z*ejjdRdSej)fdTej+fd:ej,fd9ej-fgdSdTd:d9gdYd\d] Z.d^d_ Z/d`da Z0ejdbdcdV dddV gdedf Z1ejdbdgdV dhdV didV djdV dkdV dldV dmdV dndV dodV dpdV dqdV drdV dsdV dtdV dudV gdvdw Z2dxdy Z3dzd{ 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?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   c/var/www/html/Darija-Ai-Train/env/lib/python3.8/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   s:   | t dj}d}tjt|d ||d W 5 Q R X 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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>Y   s     z2test_expanding_axis.<locals>.<dictcomp>.<listcomp>      )r   r   r   r7   ir   r   r   
<dictcomp>Y   s      z'test_expanding_axis.<locals>.<dictcomp>r4   r   c                 S   s   g | ]}t |qS r   r5   r<   r   r   r   r9   ]   s     z'test_expanding_axis.<locals>.<listcomp>r:      r3   axis)
r   r   ZonesZ_get_axis_numberr   r   r   r   r+   r,   )Z
axis_framer   rA   r-   r.   r   r   r   test_expanding_axisR   s    
*rB   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_periodsc   s    rJ   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   rC   rD   rE   g      @)r   r   r   rG   r+   rH   )r   valuesZexpected_countsr.   r-   r   r   r   9test_expanding_count_default_min_periods_with_null_valuesj   s
    rN   c                 C   sD   | t djdd }| tjtjtjtjtjg}t|| d S )Nr   rK   r   rF   rI   r   r   r   =test_expanding_count_with_min_periods_exceeding_series_lengtht   s    rO   zdf,expected,min_periodsr:   r   r   rK   )Ar	   rL   c                 C   s8   dd |D }t || |D ]\}}t|| qd S )Nc                 S   s   g | ]\}}t ||d qS r)   )r   r7   rM   r*   r   r   r   r9      s     z1test_iter_expanding_dataframe.<locals>.<listcomp>)zipr   r+   r,   )r   r-   r   actualr   r   r   test_iter_expanding_dataframe{   s    ?rU   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 rQ   )r   rR   r   r   r   r9      s     z.test_iter_expanding_series.<locals>.<listcomp>)rS   r   r+   r0   )serr-   r   rT   r   r   r   test_iter_expanding_series   s    rY   c               	   C   s0   t  } tjtdd | jdd W 5 Q R X d S )Nz.* got an unexpected keywordr    T)center)r   r"   r#   	TypeErrorr   r   r   r   r   test_center_invalid   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   rM   r   r   r+   r0   )r   objr.   r-   r   r   r   test_expanding_sem   s    
r_   methodskewkurtc                 C   sL   t tjd}t|d|  }|d }t|d|  }t|| d S )Nr3   r:   i  )r   r   randomrandgetattrr   r+   r0   )r`   sr-   r.   r   r   r   ,test_expanding_skew_kurt_numerical_stability   s
    rg   windowr3   r4   minmaxZaveragepctTF	ascending	test_datadefault
duplicatesnansc           	   	      s   d}|dkr t tj|d}nN|dkr>t tjd|d}n0|dkrnt tjddd	tjtjtj g|d}||  fd
d}|| j	 d}t
|| d S )Nr4   rn   )dataro   r:   rp   rL   g      ?g      ?c                    s   | j  djd S )Nr`   rk   rl   )rankilocr1   rl   r`   rk   r   r   <lambda>       ztest_rank.<locals>.<lambda>rr   )r   r   rc   rd   choicer   infr   applyrt   r+   r0   )	rh   r`   rk   rl   rm   lengthrX   r-   r.   r   rw   r   	test_rank   s     
r~   c                 C   sZ   |   }|tjt| d d }| |}|jt|dd|}t	|| d S Nr
   rh   r   )
Zdropnar   rc   randnlenr   corrrollingr+   assert_almost_equalseriesrP   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   rG   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   sV   | }|t jt| d d }| |}|jt|dd|}t|| d S r   )	r   rc   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_pairwise+  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_pairwise3  s    r   zfunc,static_compr   meanc                 C   s   t j| ddS Nr   r@   r   r   rv   r   r   r   rx   >  ry   rx   c                 C   s   t j| ddS r   )r   rj   rv   r   r   r   rx   ?  ry   c                 C   s   t j| ddS r   )r   ri   rv   r   r   r   rx   @  ry   )Zidsc                 C   s   |t ttdt jgd  }t|jddd|  }t||sFt||d d }|t	krpt
|d | nt
j|jd |dd d S )Nr3   r
   r   r   rA   r;   FZcheck_names)r   arraylistr   r   re   r   r]   AssertionErrorr   r+   r   r0   ru   )funcstatic_compr   rq   r.   r-   r   r   r   test_expanding_func:  s    "r   c                 C   sL  t tjd}t|jddd|  }|d d   s>tt	
|jd ||d d  t|jddd|  }t|jd stt|jd	 stt tjd
}t|jddd|  }t|d stt|d st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      rs            r4   r   r:   r   r
   )r   r   rc   r   re   r   r   allr   r+   r   ru   r   )r   r   rX   r.   ser2result0result1r   r   r   test_expanding_min_periodsP  s     r   c                 C   s   | \}}|t ttdt jgd  }|jddjdd ||d}t||sTt|t	k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   rv   r   r   r   rx   s  ry   z&test_expanding_apply.<locals>.<lambda>rawengine	   r;   r   r@   Fr   )r   r   r   r   r   r   r|   r]   r   r   r+   r   r   r0   ru   )engine_and_rawr   r   r   rq   r.   r   r   r   test_expanding_applyo  s    "  $  r   c                 C   s|  | \}}t tjd}|jddjdd ||d}|d d   sLtt	
|jd t|d d  |jd	djd
d ||d}t|jd stt|jd stt tjd}|jddjdd ||d}t|d stt|d st|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   s   |   S r   r   rv   r   r   r   rx     ry   z2test_expanding_min_periods_apply.<locals>.<lambda>r   r   rs   r   c                 S   s   |   S r   r   rv   r   r   r   rx     ry   r   r   r4   r   c                 S   s   |   S r   r   rv   r   r   r   rx     ry   r:   r   r   c                 S   s   |   S r   r   rv   r   r   r   rx     ry   r
   c                 S   s   |   S r   r   rv   r   r   r   rx     ry   c                 S   s   |   S r   r   rv   r   r   r   rx     ry   )r   r   rc   r   r   r|   r   r   r   r+   r   ru   r   r   )r   r   r   rX   r.   r   r   r   r   r   r    test_expanding_min_periods_apply  sR                 r   fc                 C   s   | j ddj| ddS Nr   r   Tpairwiser   r   rv   r   r   r   rx     ry   c                 C   s   | j ddj| ddS r   r   r   rv   r   r   r   rx     ry   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   rW   )	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   rG   rv   r   r   r   rx     ry   c                 C   s   | j ddj| ddS Nr   r   Fr   r   rv   r   r   r   rx     ry   c                 C   s   | j ddj| ddS r   r   rv   r   r   r   rx     ry   c                 C   s   | j dd S Nr   r   )r   rj   rv   r   r   r   rx     ry   c                 C   s   | j dd S r   )r   ri   rv   r   r   r   rx     ry   c                 C   s   | j dd S r   )r   r   rv   r   r   r   rx     ry   c                 C   s   | j dd S r   )r   r   rv   r   r   r   rx     ry   c                 C   s   | j dd S r   )r   Zstdrv   r   r   r   rx     ry   c                 C   s   | j dd S r   )r   varrv   r   r   r   rx     ry   c                 C   s   | j dd S r   )r   ra   rv   r   r   r   rx     ry   c                 C   s   | j dd S r   )r   rb   rv   r   r   r   rx     ry   c                 C   s   | j dddS )Nr   r   r   )r   r   rv   r   r   r   rx     ry   c                 C   s   | j dd S r   )r   Zmedianrv   r   r   r   rx     ry   c                 C   s   | j ddjtddS )Nr   r   Fr   r   r|   r   rv   r   r   r   rx     ry   c                 C   s   | j ddjtddS )Nr   r   Tr   r   rv   r   r   r   rx     ry   c           
      C   s|   t tjd}|}t }|}tdgd}|d d|d< |}| |}t|| | |}t|| | |}	t|	| d S )NrV   r   r   r   )r   r   r   r   r   r+   r0   r,   )
r   rf   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 )NrV   c                 S   s   |   S r   r   rv   r   r   r   rx     ry   z3test_expanding_apply_empty_series.<locals>.<lambda>r   )r   r   r   r+   r0   r   r|   )r   r   r   rX   r   r   r   !test_expanding_apply_empty_series  s     r   c                 C   sP   | \}}t d d d g}|jddjdd ||d}t dddg}t|| d S )	Nr   r   c                 S   s   t | S r   )r   rv   r   r   r   rx     ry   z4test_expanding_apply_min_periods_0.<locals>.<lambda>r   rL   r   rC   )r   r   r|   r+   r0   )r   r   r   rf   r.   r-   r   r   r   "test_expanding_apply_min_periods_0  s
    r   c                  C   s   t dddgdddgd} t ddgddgd}|  |}t d d dg}t|| t dd dgdddgd}|  |}t|| t ddd	gdddgd} t dd
d	gdddgd}|  |}t d d d dg}t|| d S )Nr
   r   r:   r   r)   r         r3   r   g      @)r   r   r   r+   r0   s1s2r.   r-   Zs2ar   r   r   test_expanding_cov_diff_index  s    r   c                  C   s   t dddgdddgd} t ddgddgd}|  |}t d d dg}t|| t dd dgdddgd}|  |}t|| t ddd	gdddgd} t dd
d	gdddgd}|  |}t d d d dg}t|| d S )Nr
   r   r:   r   r)   rL   r   r   r3   r   )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   rP   r	   r   r   r   r   r*   r   rK   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_length  s8    *     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   rP   r	   r   r   r   r   r   r   rK   r   r   Tr   g      )r   r   r   r   r   r   r+   r,   r   r   r   r   (test_expanding_corr_pairwise_diff_length<  sB            
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_argZ  s    z4test_expanding_apply_args_kwargs.<locals>.mean_w_argr4   r:   )r   r   g      4@)r4   )r   r   argsr   )r   kwargs)	r   r   rc   rd   r   r|   r   r+   r,   )r   r   r   r   r   r-   r.   r   r   r    test_expanding_apply_args_kwargsY  s    r   c           	      C   s   | }t dgddd}|d t|d< | }t||d }|d k	r||d}|rZddgndddg}|| |gjd	d
t}t|j	|kst
t|| d S )Nr
   r   r:   r   br   r   numeric_onlyr   r   TZdrop)r   r   objectr   re   aggreset_indexr6   r   r   r   r+   r,   )	arithmetic_win_operatorsr   kernelr   r   opr.   r   r-   r   r   r   test_numeric_only_framej  s    
r   r   r   r   use_argc                 C   s   t dddgddd}|d t|d< |r2|fnd}| }t|| }||d|i}|rbdd	gndd	dg}|| t}	|r|	fnd}
|	 }t|| }||
d|i}t|| d S )
Nr
   r   r:   r   r   r   r   r   r   )r   r   r   r   re   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   rW   c           
   	   C   s   | }t dg|d}| }t||}|rb|tkrbd| d}tjt|d ||d W 5 Q R X n0||d}||gjdd	t
}	t||	 d S )	Nr
   rV   
Expanding.  does not implement numeric_onlyr    r   Tr   )r   r   re   r   r"   r#   NotImplementedErrorr   r   r   r6   r+   r0   )
r   r   rW   r   rX   r   r   r%   r.   r-   r   r   r   test_numeric_only_series  s    

r   c              	   C   s   t dddg|d}|r|fnd}| }t|| }|rt|tkrtd|  d}tjt|d ||d	|i W 5 Q R X nR||d	|i}	|t}
|r|
fnd}|
 }t|| }||d	|i}t	
|	| d S )
Nr
   r   r:   rV   r   r   r   r    r   )r   r   re   r   r"   r#   r   r   r6   r+   r0   )r   r   r   rW   rX   r   r   r   r%   r.   r   r   r   r   r-   r   r   r   !test_numeric_only_corr_cov_series  s    


r   )@numpyr   r"   Zpandasr   r   r   r   r   r   r   Zpandas._testingZ_testingr+   r   r   markZparametrizer   r&   paramZxfailr/   r2   rB   rJ   rN   rO   r   rU   rY   r\   r_   rg   r~   r   r   r   r   r   r   r   r   r   rj   ri   r   r   r   r   r   r   r   r   r   r   r   r   r   r   intr   r   r   r   r   r   r   <module>   sD  $		
	



	"
"
"=
<<<(.


	





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