
    [6gF                        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     d/var/www/surfInsights/venv3-11/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d Zd Zd Zej                            dde	g          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j        d                    g          d                                                 Zd Z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+ ZdS ),TestSeriesRankc                    t          j        d          }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                            d                              t3          |                    }t          ||                   }t          |d
z   d          }|                                }	t          j        |	|           d S )Nscipy.statsr         @
   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'&l7rF   g|=r   (   r*   )pytestimportorskipr   r   rankastypetmassert_series_equalisnanfillnainfr   rankdatar<   arangerepeatrC   copyr
   ilocr   arrayrandomdefault_rngpermutationlen)selfdatetime_seriessp_statsranksoranksmaskfilledexpiseriesiranksrngvaluesrandom_orders                r   	test_rankzTestSeriesRank.test_rank:   s   &}55!v!!$A$$&& '',,1133
uf---x(( ''// X&&v..flNNN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,,Q//;;CKKHH-..\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>          @      @r8   r?   rG   )rG   r?   r8   rm   rl   r>   )r   secondthirdfourthfifthsixthT)
categoriesorderedF	ascending)rl   r8   rG   rm   r>   r?   )r   r   r   r   r   r   r   rn   ro   rp   rq   rr   )r   rn   ro   rp   rq   rr   seventh)rl   rm   r8   r?   rG   r   r>   )r>   rl   rm   r8   r?   rG   r   r>   rl   rm   r8   r?   rG   top)	na_optionbottomkeep)r   rG   r?   r8   rm   rl   r>   )rG   r?   r8   rm   rl   r>   r   )ry   rv   z3na_option must be one of 'keep', 'top', or 'bottom'matchbad)r   rn   ro   rp   )皙?333333?皙?r>   皙?r   r   r   r   r>         ?      ?      ?)ry   rA   )r   rM   r   rN   rO   rL   r   r   rJ   raises
ValueError)r]   rd   exp_descrt   	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 Seriesr|   )r   rL   rJ   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   rd   results          r   test_rank_tie_methodsz$TestSeriesRank.test_rank_tie_methods   sV    ]cc

5(9(9((
vvc{{33333r   rv   TFr   r   r   r   r   r    ry   )rx   rz   r{   z!dtype, na_value, pos_inf, neg_infr)   r*   r,   r.   r/   r0   c                    t          j        d           |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 )Nscipyr.   r   zuint64[pyarrow]r*   r   rD   )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   rx   r   r   r   rz   rH   )r   ry   rv   )rJ   rK   r   r   r   listr   from_iterablerL   rN   rO   )r]   r   ry   rv   r3   na_valuepos_infneg_inf	exp_dtypechunkin_arrre   	exp_ranksr`   orderexpectedr   s                    r   "test_rank_tie_methods_on_infs_nansz1TestSeriesRank.test_rank_tie_methods_on_infs_nans   s   * 	G$$$&&&"".		-		!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      Fru   r   r   r   r*   rD   )r   r   r   rR   rL   rN   rO   )r]   re   r   rd   s       r   test_rank_desc_mix_nans_infsz+TestSeriesRank.test_rank_desc_mix_nans_infs/  so     !RVRVbfWb9::..aAq);;;
vs+++++r   z	op, valuer   g    .Agư>c                    t          j        d          }t          j                            d                              d          t          j        fdt          ddd          D                       t          j                            d                                         d t          t                              D             } ||          }t          ||          }|                    |          }|                    ||d	k    r|nd
          }	t          |	|                              d          }
t          j        ||
           d S )Nr7   r   r   c                 $    g | ]}|d          S r#   r   ).0ixss     r   
<listcomp>z;TestSeriesRank.test_rank_methods_series.<locals>.<listcomp>D  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>G  s*    ;;;qSXX\"";;;r   )r<   r   r   ordinalr*   )rJ   rK   r   rY   rZ   standard_normalconcatenaterangeshuffler\   r   rL   rS   rM   rN   rO   )r]   r   opvaluer_   r<   valsr;   r   sprankr   r   s              @r   test_rank_methods_seriesz'TestSeriesRank.test_rank_methods_series7  s9    &}55Y""1%%55a88^<<<<U1a^^<<<==
	a  ((,,,;;E#b''NN;;;r"e}}D&&&''""46W3D3D)TT&...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   rH   )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   rd   r   r   r   s          r   test_rank_dense_methodz%TestSeriesRank.test_rank_dense_methodO  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   Fru   r   )r   rv   )dropnarM   rL   r   rN   rO   )
r]   r   r(   r3   r   _r   r   r   res2s
             r   test_rank_descendingz#TestSeriesRank.test_rank_descendingb  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   rd   r   r   r   s           r   test_rank_intzTestSeriesRank.test_rank_intq  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    Tru   F)r   r   r   rM   r)   rL   )r]   s    r   test_rank_object_bugz#TestSeriesRank.test_rank_object_bugz  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   rV   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   c                     t          dddt          dgd          }|                    d          }t          d	d
dt          j        dg          }t          j        ||           d S )Ng*"Fg3!ǻg{Q :g1A;-:r,   rD   r   r   r   r   r   r   )r   r   rL   r   r   rN   rO   )r]   r   r   r   s       r   test_rank_ea_small_valuesz(TestSeriesRank.test_rank_ea_small_values  so    =-]K
 
 
 ''1aBFA.//
vx00000r   ) __name__
__module____qualname__rj   r   r   rJ   markparametrizer)   r   r   r   r   r   rR   r   r%   td
skip_if_nor   r   operatoraddmulr   r   r   r   r   r   r   r   r   r   r5   r5   9   s       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D, , , [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 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   rA   r   r3   r   rd   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  Tr@   r   )r   r   rT   rL   r   )r   r   s     r   test_pct_max_many_rowsr    sK     	ry##$$AVVV!!##FQ;;;;;;r   )*	itertoolsr   r   numpyr   rJ   pandas._libs.algosr   r   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   r   r	   r
   pandas._testing_testingrN   pandas.api.typesr   fixturer   rX   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
 
 
 
 
Z1 Z1 Z1 Z1 Z1 Z1 Z1 Z1@ 
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   