
    d+E                        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
c 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             Z ej        d ej        dd	d
dej        dddej        d	g
          gd ej        ddddej        dddej        dg
          gd ej        ddddej        dddej        dg
          gd ej        ddddej        dddej        dg
          gd ej        ddddej        dddej        dg
          gg          d             Z ej        ddddd ej        d  ej        d!          "           ej        d# ej        d!          "          g          d$             Z 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 d.g d/fg d0g d1fg d2g d3fg d4g d5fg	          d6             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 d7fg d.g d/fg d0g d8fg d2g d9fg d4g d5fg	          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 d.g d/fg d0g d<fg d2g d3fg d4g d5fg	          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 d.g d/fg d0g d@fg d2g dAfg d4g d5fg	          dB             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 d.g d/fg d0g dCfg d2g dDfg d4g d5fg	          dE             Z'ej!        j(        dF             Z)dS )G    )chainN)InfinityNegInfinity)NANaTSeries	Timestamp
date_range)CategoricalDtypec                  \    t          ddddt          j        dddt          j        dg
          S )N               )r   npnan     a/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/series/methods/test_rank.pyserr      s)    1aArvq!Q:;;;r   averageg      ?g      @      @g      @g       @minr   r      r      maxr      r   firstdense)paramsc                     | j         S Nparamrequests    r   resultsr(      s     =r   objectfloat64int64Float64Int64float64[pyarrow]pyarrowmarkszint64[pyarrow]c                     | j         S r#   r$   r&   s    r   dtyper3   *   s     =r   c                   *   e Zd Zej        d             Zd Zd Zej	        
                    ddeg          d             Zej        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j        d                    g          d                                                             Zd Zej        ej	        
                    d
g d          ej	        
                    dej        dgej        dgej        dgg          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&             Zd' Zd( Zd) Zd* ZdS )+TestSeriesRankc                 L   ddl m} t          j        |d d d<   d|d dd<   |                                }|                    d                                          }t          j        ||           t          j        |          }|	                    t          j
                  }t           ||          |j        d	          }t          j        ||<   t          j        ||           t          t          j        d
                              d                    }|                                }	|                    t                                                    }t          j        |	|           t          t          j        d
                    dz   }|dz  }|                    d          }	t          j        |	|           t          t          j        dd                    }t          t          j        dd                    }|                    d          }	t          j        |	|           |                    d          }t          j        |d<   t          t          j        dd                    }t          j        |d<   |                    d          }	t          j        |	|           t          t          j        d
                    dz   }t          j        |d<   |dz  }|                    d          }	t          j        |	|           t          t          j        t          j        d                    }|                                }|                    d          }	t          j        |	|           t          t          j        d
          d          dz   }t          j        |d<   |dz  }|                    d          }	t          j        |	|           t#          dd
          }
t          t          j        d
          |
d          dz   }t          j        |j        d<   |dz  }|                    d          }	t          j        |	|           t          g d          }t          g d          }|                                }	t          j        |	|           t          dddt&          gd          }t          dddt          j        g          }|                                }	t          j        |	|           t          j        g dd          }t          j                            t/          |                    }t          ||                   }t          |dz   d          }|                                }	t          j        |	|           d S ) Nr   rankdatar         @
   r   Ots)indexnamer         ?      @Tpctr   d   g)\(?floatg@_)?r   r3   z1/1/1990)periods)gJz5g0.++#B;g{Gz?gIf;g?)r   r   r   r   r         @z3 dayz	1 day 10mz-2 dayzm8[ns])ig#Bǻg}gJzr   gWw'&l7rG   g|=r   (   r*   )scipy.statsr8   r   r   rankastypetmassert_series_equalisnanfillnainfr   r=   arangerepeatrD   copyr
   ilocr   arrayrandompermutationlen)selfdatetime_seriesr8   ranksoranksmaskfilledexpiseriesiranksrngvaluesrandom_orders                r   	test_rankzTestSeriesRank.test_rank:   s   ((((((!v!!$A$$&& '',,1133
uf---x(( ''// XXf%%V\EEEFD	
uc***1,,Q//00nnU##((**
vs+++1&&,m$''
vs+++1c**++RYuc**++$''
vs+++ ..))V
RY{C0011A$''
vs+++1&&,V
m$''
vs+++263//00llnn$''
vs+++ 1W5559V
m$''
vs+++Q///1s':::Q>&Qm$''
vs+++JJJKK)))**
vs+++ ';#>hOOOaArv&''
vs+++LLL
 
 
 y,,S[[99-..\C'y999
vs+++++r   c           	      	   t          g d          }t          g d          }t          g d                              t          g dd                    }t          j        |                                |           t          j        |                    d          |           t          g d                              t          g dd                    }t          g d          }|                                }t          j        ||           t          g d	                              t          g d	d                    }t          g d          }|                                }	t          j        |	|           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          |           t          j        |
                    d          |           t          j        |
                    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          |           d }t          j	        t          |!          5  |
                    d"d           d d d            n# 1 swxY w Y   t          j	        t          |!          5  |
                    dd           d d d            n# 1 swxY w 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)          |           t          j        |
                    dd)          |           t          j        |
                    dd)          |           d S )*N)r?          @      @r9   r@   rH   )rH   r@   r9   rj   ri   r?   )r   secondthirdfourthfifthsixthT)
categoriesorderedF	ascending)ri   r9   rH   rj   r?   r@   )r   r   r   r   r   r   r   rk   rl   rm   rn   ro   )r   rk   rl   rm   rn   ro   seventh)ri   rj   r9   r@   rH   r   r?   )r?   ri   rj   r9   r@   rH   r   r?   ri   rj   r9   r@   rH   top)	na_optionbottomkeep)r   rH   r@   r9   rj   ri   r?   )rH   r@   r9   rj   ri   r?   r   )rv   rs   z3na_option must be one of 'keep', 'top', or 'bottom'matchbad)r   rk   rl   rm   )皙?333333?皙?r?   皙?r   r|   r}   r~   r?         ?      ?      ?)rv   rB   )r   rM   r   rN   rO   rL   r   NaNpytestraises
ValueError)r[   ra   exp_descrq   	unorderedexp_unorderedres
unordered1exp_unordered1res1na_serexp_topexp_botexp_keepmsgs                  r   test_rank_categoricalz$TestSeriesRank.test_rank_categorical   sV    3334488899DDD
 

&SSS  
 
 	 	w||~~s333
w||e|<<hGGG DDD
 

&SSS  
 
 	 ===>>nn
sM222...//66///77
 

   > > >??  
t^444 h7GRVL
 

&SSS 
 
 	 <<<==<<<==3S#sC@AA
v{{U{;;WEEE
v{{X{>>HHH
v{{V{<<hGGG <<<==<<<==3S#sC@AA
v{{Ue{LLgVVV
KK(eK<<g	
 	
 	
 	v{{Vu{MMxXXX D]:S111 	: 	:KK%5K999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: ]:S111 	9 	9KK$%K888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 (GXrvFGGNNCCCTJJ
 
 22233222334dC899
v{{U{EEwOOO
v{{X4{HH'RRR
v{{V{FFQQQQQs$   "NN
N
,OOOc                     t          ddg          }|                    d           d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   methodz,No axis named average for object type Seriesry   )r   rL   r   r   r   )r[   sr   s      r   test_rank_signaturez"TestSeriesRank.test_rank_signature   s    Aq6NN	i   <]:S111 	 	FF9	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A((A,/A,r3   Nc                     |\  }}||n|                     |          }|                    |          }t          j        |t	          |                     d S )Nr   )rM   rL   rN   rO   r   )r[   r   r(   r3   r   ra   results          r   test_rank_tie_methodsz$TestSeriesRank.test_rank_tie_methods   sV    ]cc

5(9(9((
vvc{{33333r   rs   TFr   r   r   r   r   r    rv   )ru   rw   rx   z!dtype, na_value, pos_inf, neg_infr)   r*   r,   r.   r/   r0   c                    |dk    r|dk    rd}nd}nd}d}	|g|	z  |g|	z  z   |g|	z  z   }
t          |
|          }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|	z  |d         g}|r|n
|d d d         }t          t	          j        |                    }|                    |||          }t          j        |t          ||                     d S )Nr.   r   zuint64[pyarrow]r*   r   rE   )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   ru   r   r   r   rw   rI   )r   rv   rs   )	r   r   r   listr   from_iterablerL   rN   rO   )r[   r   rv   rs   r3   na_valuepos_infneg_inf	exp_dtypechunkin_arrrb   	exp_ranksr]   orderexpectedr   s                    r   "test_rank_tie_methods_on_infs_nansz1TestSeriesRank.test_rank_tie_methods_on_infs_nans   s   , &&&"".		-		!IU"hZ%%777)e:KKu---!		999iii8IIyyy)))4IIyyy)))4iiIII6iiIII6
 
	 &!1XuQxq2EE(""1XuQxq2EE1Xx%/q:E%65552;+H5566VyIVV
vvhi'H'H'HIIIIIr   c                    t          dt          j        t          j        t          j         dg          }|                    d          }t          dt          j        dddgd	          }t          j        ||           d S )
Nr      Frr   r   r   r   r*   rE   )r   r   r   rR   rL   rN   rO   )r[   rb   r   ra   s       r   test_rank_desc_mix_nans_infsz+TestSeriesRank.test_rank_desc_mix_nans_infs0  so     !RVRVbfWb9::..aAq);;;
vs+++++r   z	op, valuer   g    .Agư>c                 :   ddl m} t          j                            d          t          j        fdt          ddd          D                       t          j                                       d t          t                              D             } ||          }t          ||          }|
                    |          } |||d	k    r|nd
          }	t          |	|                              d          }
t          j        ||
           d S )Nr   r7   r   c                 $    g | ]}|d          S r#   r   ).0ixss     r   
<listcomp>z;TestSeriesRank.test_rank_methods_series.<locals>.<listcomp>F  s!    <<<RV<<<r   r   c                 L    g | ]!}t          t          d           |z             "S )a)chrord)r   r   s     r   r   z;TestSeriesRank.test_rank_methods_series.<locals>.<listcomp>I  s*    ;;;qSXX\"";;;r   )r=   r   r   ordinalr*   )rK   r8   r   rX   randnconcatenaterangeshufflerZ   r   rL   rM   rN   rO   )r[   r   opvaluer8   r=   valsr<   r   sprankr   r   s              @r   test_rank_methods_seriesz'TestSeriesRank.test_rank_methods_series8  s    	)(((((Y__Q^<<<<U1a^^<<<==
	";;E#b''NN;;;r"e}}D&&&''$&G*;*;KK&...55i@@
vx00000r   ser, expr   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   rI   )r   r   r   r   r   c                     t          |                              |          }|                    d          }t          |                              |j                  }t	          j        ||           d S )Nr    r   r   rM   rL   r3   rN   rO   )r[   r3   r   ra   r   r   r   s          r   test_rank_dense_methodz%TestSeriesRank.test_rank_dense_methodQ  sd     3KKu%%w''#;;%%fl33
vx00000r   c                    |\  }}d|v r|                                 }n|                    |          }|                    d          }|                                |z
                                  }t	          j        ||           |                                |z
                      |          }|                    |d          }	t	          j        |	|           d S )Nr   Frr   r   )r   rs   )dropnarM   rL   r   rN   rO   )
r[   r   r(   r3   r   _r   r   r   res2s
             r   test_rank_descendingz#TestSeriesRank.test_rank_descendingd  s    	%<<

AA

5!!Affuf%%EEGGaK%%''
sH---EEGGaK%%V%44vvVuv55
tX.....r   c                    |\  }}|                                                     d          }|                    |          }t          |                                           }|j        |_        t          j        ||           d S )Ni8r   )r   rM   rL   r   r=   rN   rO   )r[   r   r(   r   ra   r   r   r   s           r   test_rank_intzTestSeriesRank.test_rank_ints  sr    JJLL%%v&&#;;%%''
vx00000r   c                 *   t          t          j        gdz                                t                                        d           t          t          j        gdz                                t                                        d           d S )N    Trr   F)r   r   r   rM   r)   rL   )r[   s    r   test_rank_object_bugz#TestSeriesRank.test_rank_object_bug|  st     	x"}$$V,,11D1AAAx"}$$V,,11E1BBBBBr   c                     t          t          d          t          g          }|                                }|                                 |}t          j        ||           d S )Nz2017-01-05 10:20:27.569000)r   r	   r   rU   rL   rN   rO   )r[   r   r   r   s       r   test_rank_modify_inplacez'TestSeriesRank.test_rank_modify_inplace  sW     I:;;SABB6688	
vx00000r   ) __name__
__module____qualname__tdskip_if_no_scipyrg   r   r   r   markparametrizer)   r   r   r   r   r   rR   r   r%   
skip_if_nor   r   operatoraddmulr   r   r   r   r   r   r   r   r   r5   r5   9   s8       Y, Y, Y,vVR VR VRp   [WtVn554 4 654 [[4-88[X'R'R'RSS[[*C*C*CDD[+tXXZZ70BFRVG,FL"#bmI..  		
 J J  ED TS 98 &JB, , , [X'R'R'RSS[\1\3\4 	
 1 1  TS 1 [S1#JS1#JS1#JVaVYY			"YY			"__ooo.!!!???3		
 1 1 1/ / /1 1 1C C C1 1 1 1 1r   r5   r   r?   r   r   )UUUUUU?UUUUUU?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   c                     t          |                              |           }|                    dd          }t          |                              |j                  }t	          j        ||           d S )Nr    Tr   rB   r   r3   r   ra   r   r   r   s         r   test_rank_dense_pctr     f     	s5!!AVV7V--Fc{{!!&,//H68,,,,,r   )r   r   r   )r   r   r~   r~   r}   )UUUUUU?r   r   r   竪?r   c                     t          |                              |           }|                    dd          }t          |                              |j                  }t	          j        ||           d S )Nr   Tr   r   r   s         r   test_rank_min_pctr     f     	s5!!AVV5dV++Fc{{!!&,//H68,,,,,r   )r   r?   r?   )r|   r|   r?   r?   r}   c                     t          |                              |           }|                    dd          }t          |                              |j                  }t	          j        ||           d S )Nr   Tr   r   r   s         r   test_rank_max_pctr     r   r   r   )r   r   r   )333333?r   ?r   r}   )r   r   竪?r   UUUUUU?r   c                     t          |                              |           }|                    dd          }t          |                              |j                  }t	          j        ||           d S )Nr   Tr   r   r   s         r   test_rank_average_pctr     sf     	s5!!AVV9$V//Fc{{!!&,//H68,,,,,r   )r   r|   r~   r?   r}   )r   r   r   r   r   r?   c                     t          |                              |           }|                    dd          }t          |                              |j                  }t	          j        ||           d S )Nr   Tr   r   r   s         r   test_rank_first_pctr     r   r   c                      t          t          j        d                    } |                     d                                          }|dk    sJ d S )Ni  TrA   r   )r   r   rS   rL   r   )r   r   s     r   test_pct_max_many_rowsr     sK     	ry##$$AVVV!!##FQ;;;;;;r   )*	itertoolsr   r   numpyr   r   pandas._libs.algosr   r   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   r   r	   r
   pandas._testing_testingrN   pandas.api.typesr   fixturer   rW   r   r(   r%   r   r3   r5   r   r   r   r   r   r   r   
single_cpur   r   r   r   <module>r     sC                      * ) ) ) ) ) ) ) )                    - - - - - - < < < 	HBHc3S"&#sCQTUVVW	!Q1bfaArvqABBC	!Q1bfaArvqABBC	("(Aq!Q1aCDDE	("(Aq!Q1aCDDE     '}r}Y/G/GHHH%]R]9-E-EFFF
 
 
 
 
R1 R1 R1 R1 R1 R1 R1 R1p
 
se
Q'7#$
Q#s	///0	///0	///0	GGGH			SSST			LLLM
 - - - 
se
Q'7#$
Q'7#$	///0	///0	///0	GGGH			SSST			LLLM
 - - - 
se
Q'7#$
Q#s	///0	///0	///0	GGGH			SSST			LLLM
 - - - 
se
Q'7#$
Q'7#$	///0	///0	///0	GGGH			SSST			LLLM
 - - - 
se
Q'7#$
Q'9%&	///0	///0	///0	GGGH			SSST			LLLM
 - - -     r   