a
    þd¸F  ã                   @   s„  d dl mZ d dlZd dlZd dlZd dlmZmZ d dl	m
  mZ d dlmZmZmZmZmZ d dlmZ d dlmZ ejdd„ ƒZejde d	d
ddejdd	dejd
g
¡gde ddddejdddejdg
¡gde ddddejdddejdg
¡gde ddddejdddejdg
¡gde ddddejdddejdg
¡ggddd„ ƒZejdddd d!ejd"e d#¡d$ejd%e d#¡d$gdd&d'„ ƒZG d(d)„ d)ƒZ ej! "d*dgd+gfddgd,d+gfddgd+d+gfg d-¢g d.¢fg d/¢g d0¢fg d1¢g d2¢fg d3¢g d4¢fg d5¢g d6¢fg d7¢g d8¢fg	¡d9d:„ ƒZ#ej! "d*dgd+gfddgd,d+gfddgd,d,gfg d-¢g d.¢fg d/¢g d;¢fg d1¢g d2¢fg d3¢g d<¢fg d5¢g d=¢fg d7¢g d8¢fg	¡d>d?„ ƒZ$ej! "d*dgd+gfddgd,d+gfddgd+d+gfg d-¢g d.¢fg d/¢g d@¢fg d1¢g d2¢fg d3¢g dA¢fg d5¢g d6¢fg d7¢g d8¢fg	¡dBdC„ ƒZ%ej! "d*dgd+gfddgd,d+gfddgdDdDgfg d-¢g d.¢fg d/¢g dE¢fg d1¢g d2¢fg d3¢g dF¢fg d5¢g dG¢fg d7¢g d8¢fg	¡dHdI„ ƒZ&ej! "d*dgd+gfddgd,d+gfddgd,d+gfg d-¢g d.¢fg d/¢g d.¢fg d1¢g d2¢fg d3¢g dJ¢fg d5¢g dK¢fg d7¢g d8¢fg	¡dLdM„ ƒZ'ej!j(dNdO„ ƒZ)dS )Pé    )ÚchainN)ÚInfinityÚNegInfinity)ÚNAÚNaTÚSeriesÚ	TimestampÚ
date_range)ÚCategoricalDtypec                   C   s    t ddddtjdddtjdg
ƒS )Né   é   é   é   é   )r   ÚnpÚnan© r   r   ún/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/series/methods/test_rank.pyÚser   s    r   Úaverageg      ø?g      @ç      @g      @g       @Úminr   r   é   r   é   Úmaxr   é   r   ÚfirstÚdense)Úparamsc                 C   s   | j S ©N©Úparam©Úrequestr   r   r   Úresults   s    
r$   ÚobjectÚfloat64Úint64ÚFloat64ZInt64úfloat64[pyarrow]Úpyarrow©Zmarkszint64[pyarrow]c                 C   s   | j S r   r    r"   r   r   r   Údtype*   s    r,   c                   @   sÂ  e Zd Zdd„ Zdd„ Zdd„ Zej dde	g¡d	d
„ ƒZ
ej dddg¡ej dg d¢¡ej dg d¢¡ej dddeƒ eƒ fdejejej fdeejej fejdeejej e d¡dg¡dd„ ƒƒƒƒZdd„ Zej dg d¢¡ej dejdgejdgejd gg¡d!d"„ ƒƒZej d#d$gd$gfd%gd$gfdgd$gfd%d%gd$d$gfg d&¢g d&¢fg d'¢g d(¢fg d)¢g d*¢fg d+¢g d,¢fg¡d-d.„ ƒZd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ ZdS )9ÚTestSeriesRankc                 C   s2  t  d¡}tj|d d d…< d|d dd…< | ¡ }| d¡ ¡ }t ||¡ t |¡}| 	tj
¡}t| |¡|jdd}tj||< t ||¡ tt d	¡ d¡ƒ}| ¡ }	| t¡ ¡ }t |	|¡ tt d	¡ƒd
 }|d }|jdd}	t |	|¡ tt dd¡ƒ}tt dd¡ƒ}|jdd}	t |	|¡ | d¡}tj|d< tt dd¡ƒ}tj|d< |jdd}	t |	|¡ tt d	¡ƒd
 }tj|d< |d }|jdd}	t |	|¡ tt tjd¡ƒ}| ¡ }|jdd}	t |	|¡ tt d	¡ddd }tj|d< |d }|jdd}	t |	|¡ tdd	d}
tt d	¡|
ddd }tj|jd< |d }|jdd}	t |	|¡ tg d¢ƒ}tg d¢ƒ}| ¡ }	t |	|¡ tdddtgdd}tdddtjgƒ}| ¡ }	t |	|¡ tjg d¢dd}tj d¡ t|ƒ¡}t|| ƒ}t|d
 dd}| ¡ }	t |	|¡ d S )Núscipy.statsr   ç      @é
   r   ÚOÚts)ÚindexÚnamer   ç      ð?ç      @T©Úpctr   éd   g)\Âõ(à?Úfloatg¥@­_)à?r   ©r,   z1/1/1990)Zperiods)g¸ÔJzî5g0Žä.ÿ++ç#B’¡œÇ;g{®Gáz„?gIfœ¡œÇ;gš™™™™™¹?)r   r   r   r   r   ç      @z3 dayz	1 day 10mz-2 dayzm8[ns])iÎÿÿÿéÿÿÿÿg#B’¡œÇ»gÙ}ÚõÐò¾ºg¸ÔJzîµr   gœWw'&l¡7r<   g»½×Ùß|Û=r   é(   r&   )ÚpytestÚimportorskipr   r   ÚrankÚastypeÚtmÚassert_series_equalÚisnanZfillnaÚinfr   Úrankdatar3   ÚarangeÚrepeatr:   Úcopyr	   Zilocr   ÚarrayÚrandomÚdefault_rngZpermutationÚlen)ÚselfZdatetime_seriesÚsp_statsÚranksZoranksÚmaskZfilledÚexpÚiseriesZiranksÚrngÚvaluesZrandom_orderr   r   r   Ú	test_rank:   s„    







þzTestSeriesRank.test_rankc                 C   sð  t g d¢ƒ}t g d¢ƒ}t g d¢ƒ tg d¢dd¡}t | ¡ |¡ t |jdd|¡ t g d¢ƒ tg d¢dd¡}t g d¢ƒ}| ¡ }t ||¡ t g d	¢ƒ tg d	¢dƒ¡}t g d¢ƒ}| ¡ }	t |	|¡ t d
dddddtjgƒ tg d¢dƒ¡}
t g d¢ƒ}t g d¢ƒ}t ddddddtjgƒ}t |
jdd|¡ t |
jdd|¡ t |
jdd|¡ t g d¢ƒ}t g d¢ƒ}t ddddddtjgƒ}t |
jddd|¡ t |
jddd|¡ t |
jddd|¡ d }tj	t
|d! |
jd"dd W d   ƒ n1 s0    Y  tj	t
|d! |
jddd W d   ƒ n1 sP0    Y  t d
dddtjgƒ tg d#¢dƒ¡}
t g d$¢ƒ}t g d%¢ƒ}t d&d'd(dtjgƒ}t |
jddd)|¡ t |
jddd)|¡ t |
jddd)|¡ d S )*N)r5   ç       @ç      @r/   r6   r=   )r=   r6   r/   rZ   rY   r5   )r   ÚsecondÚthirdÚfourthÚfifthÚsixthT)Ú
categoriesÚorderedF©Ú	ascending)rY   r/   r=   rZ   r5   r6   )r   r   r   r   r   r   r   r[   r\   r]   r^   r_   )r   r[   r\   r]   r^   r_   Zseventh)rY   rZ   r/   r6   r=   r   r5   )r5   rY   rZ   r/   r6   r=   r   r5   rY   rZ   r/   r6   r=   Útop)Ú	na_optionÚbottomÚkeep)r   r=   r6   r/   rZ   rY   r5   )r=   r6   r/   rZ   rY   r5   r   )re   rc   z3na_option must be one of 'keep', 'top', or 'bottom'©ÚmatchÚbad)r   r[   r\   r]   )çš™™™™™Ù?ç333333ã?çš™™™™™é?r5   çš™™™™™É?©rn   rk   rl   rm   r5   ç      Ð?ç      à?ç      è?)re   r8   )r   rC   r
   rD   rE   rB   r   r   r@   ÚraisesÚ
ValueError)rP   rT   Zexp_descra   Ú	unorderedZexp_unorderedÚresZ
unordered1Zexp_unordered1Zres1Zna_serZexp_topZexp_botZexp_keepÚmsgr   r   r   Útest_rank_categorical•   s‚    ÿþýÿþýÿÿþý	ÿ..ÿz$TestSeriesRank.test_rank_categoricalc                 C   sX   t ddgƒ}|jdd d}tjt|d | d¡ W d   ƒ n1 sJ0    Y  d S )Nr   r   r   ©Úmethodz,No axis named average for object type Seriesrh   )r   rB   r@   rs   rt   )rP   Úsrw   r   r   r   Útest_rank_signatureí   s
    z"TestSeriesRank.test_rank_signaturer,   Nc                 C   s>   |\}}|d u r|n|  |¡}|j|d}t |t|ƒ¡ d S )Nry   )rC   rB   rD   rE   r   )rP   r   r$   r,   rz   rT   Úresultr   r   r   Útest_rank_tie_methodsô   s    z$TestSeriesRank.test_rank_tie_methodsrc   TFrz   ©r   r   r   r   r   re   )rd   rf   rg   z!dtype, na_value, pos_inf, neg_infr%   r&   r(   r)   r*   r+   c                 C   st  t  d¡ |dkr&|dkr d}q*d}nd}d}	|g|	 |g|	  |g|	  }
t|
|d}g d¢g d	¢g d
¢fg d¢g d¢g d¢fg d¢g d¢g d¢fg d¢g d¢g d¢fg d¢g d¢g d¢fdœ}|| }|dkrê|d |d |d g}n<|dkr|d |d |d g}n|d tjg|	 |d g}|r0|n|d d d… }tt |¡ƒ}|j|||d}t	 
|t||d¡ d S )NZscipyr)   r   zuint64[pyarrow]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€   r€   ©r   r   r   )r   r   r   )r   r   r€   r   rd   r   r   r   rf   r>   )rz   re   rc   )r@   rA   r   r   r   Úlistr   Úfrom_iterablerB   rD   rE   )rP   rz   re   rc   r,   Zna_valueZpos_infZneg_infZ	exp_dtypeÚchunkZin_arrrU   Z	exp_ranksrR   ÚorderÚexpectedr}   r   r   r   Ú"test_rank_tie_methods_on_infs_nansû   s2    
û
z1TestSeriesRank.test_rank_tie_methods_on_infs_nansc                 C   sN   t dtjtjtj dgƒ}|jdd}t dtjdddgdd	}t ||¡ d S )
Nr   é   Frb   r   r   r   r&   r;   )r   r   r   rG   rB   rD   rE   )rP   rU   r}   rT   r   r   r   Útest_rank_desc_mix_nans_infs/  s    z+TestSeriesRank.test_rank_desc_mix_nans_infsz	op, valuer   g    €„.Agíµ ÷Æ°>c                    sÀ   t  d¡}tj d¡ d¡‰ t ‡ fdd„tdddƒD ƒ¡‰ tj d¡ ˆ ¡ dd„ tt	ˆ ƒƒD ƒ}|ˆ |ƒ}t
||d}|j|d	}| ||d
kr˜|nd¡}	t
|	|d d¡}
t ||
¡ d S )Nr.   r   r€   c                    s   g | ]}ˆ |d … ‘qS r   r   ©Ú.0Úi©Úxsr   r   Ú
<listcomp>D  ó    z;TestSeriesRank.test_rank_methods_series.<locals>.<listcomp>r   c                 S   s   g | ]}t td ƒ| ƒ‘qS )Úa)ÚchrÚordrŠ   r   r   r   r   G  r   )r3   ry   r   Zordinalr&   )r@   rA   r   rM   rN   Zstandard_normalZconcatenateÚrangeÚshufflerO   r   rB   rH   rC   rD   rE   )rP   rz   ÚopÚvaluerQ   r3   Úvalsr2   r}   Zsprankr†   r   r   r   Útest_rank_methods_series7  s    

 
z'TestSeriesRank.test_rank_methods_seriesúser, expr   r   r   ©r   r   r   )r   r   r   ©r   r   r   r   r   )r   r   r   r   r   ©éûÿÿÿéüÿÿÿéýÿÿÿéþÿÿÿr>   )r   r   r   r   r   c                 C   s:   t |ƒ |¡}|jdd}t |ƒ |j¡}t ||¡ d S )Nr   ry   ©r   rC   rB   r,   rD   rE   )rP   r,   r   rT   r{   r}   r†   r   r   r   Útest_rank_dense_methodO  s    z%TestSeriesRank.test_rank_dense_methodc           
      C   s~   |\}}d|v r|  ¡ }n
| |¡}|jdd}| ¡ |  ¡ }t ||¡ | ¡ | j|d}|j|dd}	t |	|¡ d S )NrŒ   Frb   ry   )rz   rc   )ÚdropnarC   rB   r   rD   rE   )
rP   r   r$   r,   rz   Ú_r{   rv   r†   Zres2r   r   r   Útest_rank_descendingb  s    

z#TestSeriesRank.test_rank_descendingc                 C   sF   |\}}|  ¡  d¡}|j|d}t|ƒ  ¡ }|j|_t ||¡ d S )NÚi8ry   )r¤   rC   rB   r   r3   rD   rE   )rP   r   r$   rz   rT   r{   r}   r†   r   r   r   Útest_rank_intq  s    zTestSeriesRank.test_rank_intc                 C   s@   t tjgd ƒ t¡jdd t tjgd ƒ t¡jdd d S )Né    Trb   F)r   r   r   rC   r%   rB   )rP   r   r   r   Útest_rank_object_bugz  s    z#TestSeriesRank.test_rank_object_bugc                 C   s4   t tdƒtgƒ}| ¡ }| ¡  |}t ||¡ d S )Nz2017-01-05 10:20:27.569000)r   r   r   rK   rB   rD   rE   )rP   r{   r†   r}   r   r   r   Útest_rank_modify_inplace  s
    z'TestSeriesRank.test_rank_modify_inplacec                 C   sF   t dddtdgdd}|jdd}t d	d
dtjdgƒ}t ||¡ d S )Ng¶*"¨¾Fg¦3Ø!äÇ»g{èQÁí ½:g1AÙ;Æ-:r(   r;   r   ry   r   r   r   r   )r   r   rB   r   r   rD   rE   )rP   r   r}   r†   r   r   r   Útest_rank_ea_small_values‹  s    þz(TestSeriesRank.test_rank_ea_small_values) Ú__name__Ú
__module__Ú__qualname__rX   rx   r|   r@   ÚmarkÚparametrizer%   r~   r   r   r   r   rG   r   r!   ÚtdÚ
skip_if_nor‡   r‰   ÚoperatorÚaddÚmulr™   r£   r¦   r¨   rª   r«   r¬   r   r   r   r   r-   9   sf   [X
ûüþ"ýþ


øþ
	
r-   rš   r5   rq   r   )çUUUUUUÕ?çUUUUUUå?r5   )r   r   r   )rq   r5   r5   r›   )r5   r¸   r·   rœ   )r·   r·   r5   r5   r¸   )r   r   r   r   r   r   )r·   r·   r¸   r¸   r5   r5   r   ro   c                 C   s<   t |ƒ | ¡}|jddd}t |ƒ |j¡}t ||¡ d S )Nr   T©rz   r8   r¢   ©r,   r   rT   r{   r}   r†   r   r   r   Útest_rank_dense_pct™  s    r»   )r·   r¸   r¸   )rn   rn   rm   rm   rl   )çUUUUUUÅ?r¼   rq   rq   ç«ªªªªªê?r½   c                 C   s<   t |ƒ | ¡}|jddd}t |ƒ |j¡}t ||¡ d S )Nr   Tr¹   r¢   rº   r   r   r   Útest_rank_min_pct®  s    r¾   )r·   r5   r5   )rk   rk   r5   r5   rl   c                 C   s<   t |ƒ | ¡}|jddd}t |ƒ |j¡}t ||¡ d S )Nr   Tr¹   r¢   rº   r   r   r   Útest_rank_max_pctÃ  s    r¿   rr   )r·   r½   r½   )ç333333Ó?rÀ   çÍÌÌÌÌÌì?rÁ   rl   )rp   rp   ç«ªªªªªâ?rÂ   çUUUUUUí?rÃ   c                 C   s<   t |ƒ | ¡}|jddd}t |ƒ |j¡}t ||¡ d S )Nr   Tr¹   r¢   rº   r   r   r   Útest_rank_average_pctØ  s    rÄ   )rn   rk   rm   r5   rl   )r¼   r·   rq   r¸   r½   r5   c                 C   s<   t |ƒ | ¡}|jddd}t |ƒ |j¡}t ||¡ d S )Nr   Tr¹   r¢   rº   r   r   r   Útest_rank_first_pctí  s    rÅ   c                  C   s.   t t d¡ƒ} | jdd ¡ }|dks*J ‚d S )Ni  Tr7   r   )r   r   rI   rB   r   )r{   r}   r   r   r   Útest_pct_max_many_rows  s    rÆ   )*Ú	itertoolsr   r´   Únumpyr   r@   Zpandas._libs.algosr   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr²   Zpandasr   r   r   r   r	   Zpandas._testingZ_testingrD   Zpandas.api.typesr
   Zfixturer   rL   r   r$   r!   r³   r,   r-   r°   r±   r»   r¾   r¿   rÄ   rÅ   Z
single_cpurÆ   r   r   r   r   Ú<module>   sÒ   
$$$$$ûÿ	
ùÿ
  b
÷þ

÷þ

÷þ

÷þ

÷þ
