
    PiIU                     \   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           d             Z ej        ddddd  ej        d! ej        d"          #           ej        d$ ej        d"          #           ej        d% ej        d"          #          d&d'g
(          d)             ZdNd+Z  G d, d-          Z!ej"        #                    d.dgd/gfddgd0d/gfddgd/d/gfg d1g d2fg d3g d4fg d5g d6fg d7g d8fg d9g d:fg d;g d<fg	          d=             Z$ej"        #                    d.dgd/gfddgd0d/gfddgd0d0gfg d1g d2fg d3g d>fg d5g d6fg d7g d?fg d9g d@fg d;g d<fg	          dA             Z%ej"        #                    d.dgd/gfddgd0d/gfddgd/d/gfg d1g d2fg d3g dBfg d5g d6fg d7g dCfg d9g d:fg d;g d<fg	          dD             Z&ej"        #                    d.dgd/gfddgd0d/gfddgdEdEgfg d1g d2fg d3g dFfg d5g d6fg d7g dGfg d9g dHfg d;g d<fg	          dI             Z'ej"        #                    d.dgd/gfddgd0d/gfddgd0d/gfg d1g d2fg d3g d2fg d5g d6fg d7g dJfg d9g dKfg d;g d<fg	          dL             Z(ej"        j)        dM             Z*dS )O    )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     y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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densec                     | d         S )Nr   r   )xs    r   <lambda>r#   %   s
    !A$ r   )paramsidsc                     | j         S Nparamrequests    r   resultsr,      s     =r   objectfloat64int64Float64Int64float64[pyarrow]pyarrowmarksint64[pyarrow]string[pyarrow]zstring[python]str)r$   c                     | j         S r'   r(   r*   s    r   dtyper:   +   s     =r   Fc                 ^    d}| dv rd}n#| dv r|dk    s|rd}nd}n| dv r|dk    s|rd}nd	}|S )
Nr.   )r7   r0   )r2   r6   r   zdouble[pyarrow]uint64[pyarrow])r0   r1   UInt64r   )r:   methodpct	exp_dtypes       r   expected_dtyperA   =   sr    I###			8	8	8Y#)II)II	&	&	&Y#!II Ir   c                      e Zd Zd Zd Zd Zd Zd Z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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                              t1          |                    }t          ||                   }t          |d
z   d          }|                                }	t          j        |	|           d S )Nscipy.statsr         @
   r   Ots)indexnamer         ?      @Tr?   r   d   g)\(?floatg@_)?r   r:   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'&l7rS   g|=r   (   r.   )pytestimportorskipr   r   rankastypetmassert_series_equalisnanfillnainfr   rankdatarJ   arangerepeatrP   r
   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_rankQ   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$''
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)rL          @      @rF   rM   rT   )rT   rM   rF   ry   rx   rL   )r   secondthirdfourthfifthsixthT)
categoriesorderedF	ascending)rx   rF   rT   ry   rL   rM   )r   r   r   r   r   r   r   rz   r{   r|   r}   r~   )r   rz   r{   r|   r}   r~   seventh)rx   ry   rF   rM   rT   r   rL   )rL   rx   ry   rF   rM   rT   r   rL   rx   ry   rF   rM   rT   top	na_optionbottomkeep)r   rT   rM   rF   ry   rx   rL   )rT   rM   rF   ry   rx   rL   r   )r   r   z3na_option must be one of 'keep', 'top', or 'bottom'matchbad)r   rz   r{   r|   )皙?333333?皙?rL   皙?r   r   r   r   rL         ?      ?      ?)r   r?   )r   rZ   r   r[   r\   rY   r   r   rW   raises
ValueError)ri   rp   exp_descr   	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          g dd          }|                    d          }t          g dd          }t          j        ||           d S )N)Nr   Nr   r   r   r   r   r1   rQ   r   r   )N      @NrM   rM   r   rM   rL   r0   )r   rY   r[   r\   )ri   rp   resultexpecteds       r   test_rank_nullable_integerz)TestSeriesRank.test_rank_nullable_integer  s`    3337CCCF++DDDIVVV
vx00000r   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   r>   z,No axis named average for object type Seriesr   )r   rY   rW   r   r   )ri   sr   s      r   test_rank_signaturez"TestSeriesRank.test_rank_signature  s    Aq6NN	i   <]:S111 	 	FF9	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A((A,/A,c                    |\  }}|dk    s|dv r|r|s|dk    rt          j        d           ||n|                    |          }|dv r|s}t          |t	          j        |                    t          j        t          j                            <   t	          j        |          }|                    t                    }t          ||<   |
                    |          }	|dk    r:|s8t	          j        |          }|                    t                    }t          ||<   t          |t          ||          	          }
t          j        |	|
           d S )
Nr/   )r6   r<   r1   r8   zint64/str does not support NaNr2   r0   )r:   na_valuer   r7   rQ   )rW   skiprZ   r   r   r]   to_numpyr.   r   r-   rY   r   rA   r[   r\   )ri   r   r,   r:   using_infer_stringusing_nan_is_nar>   rp   rn   r   r   s              r   test_rank_tie_methodsz$TestSeriesRank.test_rank_tie_methods  sO    W GGG' H ' H ,1E>>K8999]cc

5(9(9333O3MOCBJHHIIJ8C==D**V$$CCI((%%%o%8C==D**V$$CCI#^E6%B%BCCC
vx00000r   r   )r   r   r   z!dtype, na_value, pos_inf, neg_infr-   Nr.   r0   r2   r3   r4   c	                    t          j        d           |dk    r|dk    rd}	nd}	n|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v r|s|d         t          g|
z  |d         g}n|d         t          j        g|
z  |d         g}|r|n
|d d d         }t          t          j        |                    }|	                    |||          }t          ||		          }t          j        ||           d S )Nscipyr2   r   r<   r0   r=   r.   r   rQ   )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   r    r   r   r   r   r   r   rU   )r>   r   r   )rW   rX   r   r   r   r   listr   from_iterablerY   r[   r\   )ri   rank_methodr   r   r:   r   pos_infneg_infr   r@   chunkin_arrrq   	exp_ranksrl   orderr   r   exp_sers                      r   "test_rank_tie_methods_on_infs_nansz1TestSeriesRank.test_rank_tie_methods_on_infs_nans5  s4   6 	G$$$&&&i''.		-		ii''%		$		!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555o51Xte|U1X6EE1Xx%/q:E%65552;+H5566)y  
 
 333
vw/////r   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      Fr   r   r   r   r.   rQ   )r   r   r   r_   rY   r[   r\   )ri   rq   r   rp   s       r   test_rank_desc_mix_nans_infsz+TestSeriesRank.test_rank_desc_mix_nans_infsz  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 )NrE   r   r   c                 $    g | ]}|d          S r'   r   ).0ixss     r   
<listcomp>z;TestSeriesRank.test_rank_methods_series.<locals>.<listcomp>  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>  s*    ;;;qSXX\"";;;r   )rJ   r   r   ordinalr.   )rW   rX   r   re   rf   standard_normalconcatenaterangeshufflerh   r   rY   r`   rZ   r[   r\   )ri   r   opvaluerk   rJ   valsrI   r   sprankr   r   s              @r   test_rank_methods_seriesz'TestSeriesRank.test_rank_methods_series  s@    &}55Y""1%%55a88^<<<<U1a^^<<<==
	a  ((,,,;;E#b''NN;;;r"e}}D&&&,,""!7!7++Y
 
 &...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   rU   )r   r   r   r   r   c                 X   |d         dk     r |                     d          r|d d d         }t          |                              |          }|                    d          }t          |                              t	          |d                    }t          j        ||           d S )Nr   r8   rU   r    r   
startswithr   rZ   rY   rA   r[   r\   )ri   r:   r   rp   r   r   r   s          r   test_rank_dense_methodz%TestSeriesRank.test_rank_dense_method  s     q6A::%**511:ddd)C3KKu%%w''#;;%%nUG&D&DEE
vx00000r   c           	         |\  }}|dk    s|dv r|r|s.|dk    r(|                                                     |          }n|                    |          }|                    d          }	|                    d          rP|                    d                                          |                    d          z
                                  }
n)|                                |z
                                  }
|dk    r'|s%|
                    t          j        t                    }
t          j
        |	|
                    t          |d                               |                    d          rR|                    d                                          |                    d          z
                      |	          }
n+|                                |z
                      |	          }
|                    |d
          }|dk    r'|s%|
                    t          j        t                    }
t          j
        ||
                    t          ||                               d S )Nr/   )r6   r1   r0   r8   Fr   r.   r7   r   r   )r>   r   )dropnarZ   rY   r   r   replacer   r   r   r[   r\   rA   )ri   r   r,   r:   r   r   r>   _r   r   r   res2s               r   test_rank_descendingz#TestSeriesRank.test_rank_descending  s+    	W????& @+0E>>

##E**AA

5!!Affuf%%E"" 	,++//11AHHY4G4GGMMOOHH!))++H%%%o%''33H
sHOON5)4T4T$U$UVVVE"" 	9++//11AHHY4G4GGMM N  HH !)))88HvvVuv55%%%o%''33H
tX__^E65R5R%S%STTTTTr   c                    |\  }}|                                                     d          }|                    |          }t          |                                           }|j        |_        t          j        ||           d S )Ni8r   )r   rZ   rY   r   rJ   r[   r\   )ri   r   r,   r>   rp   r   r   r   s           r   test_rank_intzTestSeriesRank.test_rank_int  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    Tr   F)r   r   r   rZ   r-   rY   )ri   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   copyrY   r[   r\   )ri   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          dgd          }t          j        ||           d S )Ng*"Fg3!ǻg{Q :g1A;-:r0   rQ   r   r   r   r   r   r   r=   )r   r   rY   r[   r\   )ri   r   r   r   s       r   test_rank_ea_small_valuesz(TestSeriesRank.test_rank_ea_small_values  sr    =-]K
 
 
 ''1aB*(;;;
vx00000r   ) __name__
__module____qualname__rv   r   r   r   r   rW   markparametrizer   r   r   r   r_   r   r)   td
skip_if_nor   r   operatoraddmulr   r   r   r   r   r   r   r   r   r   rC   rC   P   s       Y, Y, Y,vVR VR VRp1 1 1  1 1 1B [[*C*C*CDD[+tXXZZ70BFRVG,FL"#bmI..  		
 30 30  ED 30j, , , [\1\3\4 	
 1 1 1" [S1#JS1#JS1#JVaVYY			"YY			"__ooo.!!!???3		
 1 1 1U U UB1 1 1C C C1 1 11 1 1 1 1r   rC   r   rL   r   r   )UUUUUU?UUUUUU?rL   )r   r   r   )r   rL   rL   r   )rL   r  r  r   )r  r  rL   rL   r  )r   r   r   r   r   r   )r  r  r  r  rL   rL   r   r   c                 ^   |d         dk     r |                      d          r|d d d         }t          |                              |           }|                    dd          }t          |                              t	          | dd                    }t          j        ||           d S )Nr   r8   rU   r    Tr>   r?   rN   r   r:   r   rp   r   r   r   s         r   test_rank_dense_pctr         1vzze&&u--z$$B$is5!!AVV7V--Fc{{!!.T"J"J"JKKH68,,,,,r   )r  r  r  )r   r   r   r   r   )UUUUUU?r  r   r   竪?r	  c                 ^   |d         dk     r |                      d          r|d d d         }t          |                              |           }|                    dd          }t          |                              t	          | dd                    }t          j        ||           d S )Nr   r8   rU   r   Tr  rN   r   r  s         r   test_rank_min_pctr         1vzze&&u--z$$B$is5!!AVV5dV++Fc{{!!.4"H"H"HIIH68,,,,,r   )r  rL   rL   )r   r   rL   rL   r   c                 ^   |d         dk     r |                      d          r|d d d         }t          |                              |           }|                    dd          }t          |                              t	          | dd                    }t          j        ||           d S )Nr   r8   rU   r   Tr  rN   r   r  s         r   test_rank_max_pctr  '  r  r   r   )r  r	  r	  )333333?r  ?r  r   )r   r   竪?r  UUUUUU?r  c                 ^   |d         dk     r |                      d          r|d d d         }t          |                              |           }|                    dd          }t          |                              t	          | dd                    }t          j        ||           d S )Nr   r8   rU   r   Tr  rN   r   r  s         r   test_rank_average_pctr  >  s     1vzze&&u--z$$B$is5!!AVV9$V//Fc{{!!.	t"L"L"LMMH68,,,,,r   )r   r   r   rL   r   )r  r  r   r  r	  rL   c                 ^   |d         dk     r |                      d          r|d d d         }t          |                              |           }|                    dd          }t          |                              t	          | dd                    }t          j        ||           d S )Nr   r8   rU   r   Tr  rN   r   r  s         r   test_rank_first_pctr  U  r  r   c                      t          t          j        d                    } |                     d                                          }|dk    sJ d S )Ni  TrN   r   )r   r   ra   rY   r   )r   r   s     r   test_pct_max_many_rowsr  l  sK     	ry##$$AVVV!!##FQ;;;;;;r   )F)+	itertoolsr   r   numpyr   rW   pandas._libs.algosr   r   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   r   r	   r
   pandas._testing_testingr[   pandas.api.typesr   fixturer   rd   r   r,   r)   r   r:   rA   rC   r   r   r  r  r  r  r  
single_cpur  r   r   r   <module>r%     s                      * ) ) ) ) ) ) ) )                    - - - - - - < < < 	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&mbmI.F.FGGG       &c1 c1 c1 c1 c1 c1 c1 c1R 
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   