
    OwgF                        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j0                  d        Z ej0                  d ej4                  dd	d
dej6                  dddej6                  d	g
      gd ej4                  ddddej6                  dddej6                  dg
      gd ej4                  ddddej6                  dddej6                  dg
      gd ej4                  ddddej6                  dddej6                  dg
      gd ej4                  ddddej6                  dddej6                  dg
      gg      d        Z ej0                  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jB                  jE                  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jB                  jE                  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jB                  jE                  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jB                  jE                  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jB                  jE                  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jB                  jP                  dF        Z)y)G    )chainN)InfinityNegInfinity)NANaTSeries	Timestamp
date_range)CategoricalDtypec                  d    t        ddddt        j                  dddt        j                  dg
      S )N               )r   npnan     \/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/series/methods/test_rank.pyserr      s*    1aArvvq!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                  j                  dde	g      d        Z
ej                  j                  ddd	g      ej                  j                  d
g d      ej                  j                  dg d      ej                  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                  j                  d
g d      ej                  j                  dej.                  dgej.                  dgej0                  dgg      d               Zej                  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y),TestSeriesRankc                 
   t        j                  d      }t        j                  |d d d<   d|d dd<   |j	                         }|j                  d      j	                         }t        j                  ||       t        j                  |      }|j                  t        j                        }t        |j                  |      |j                  d      }t        j                  ||<   t        j                  ||       t        t        j                  d	      j                  d            }|j	                         }	|j                  t               j	                         }t        j                  |	|       t        t        j                  d	            d
z   }|dz  }|j	                  d      }	t        j                  |	|       t        t        j                  dd            }t        t        j                  dd            }|j	                  d      }	t        j                  |	|       |j                  d      }t        j                  |d<   t        t        j                  dd            }t        j                  |d<   |j	                  d      }	t        j                  |	|       t        t        j                  d	            d
z   }t        j                  |d<   |dz  }|j	                  d      }	t        j                  |	|       t        t        j                  t        j                  d            }|j#                         }|j	                  d      }	t        j                  |	|       t        t        j                  d	      d      dz   }t        j                  |d<   |dz  }|j	                  d      }	t        j                  |	|       t%        dd	      }
t        t        j                  d	      |
d      dz   }t        j                  |j&                  d<   |dz  }|j	                  d      }	t        j                  |	|       t        g d      }t        g d      }|j	                         }	t        j                  |	|       t        dddt(        gd      }t        dddt        j                  g      }|j	                         }	t        j                  |	|       t        j*                  g dd      }t        j,                  j/                  d      j1                  t3        |            }t        ||         }t        |d
z   d      }|j	                         }	t        j                  |	|       y )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:   s2   &&}5!vv!!$A$$& '',113
uf-xx( ''/ X&&v.fllNFFD	
uc*1,,Q/0nnU#((*
vs+1&,m$'
vs+1c*+RYYuc*+$'
vs+ ..)VV
RYY{C01A$'
vs+1&,VV
m$'
vs+2663/0lln$'
vs+ 1W59VV
m$'
vs+Q/1s':Q>&&Qm$'
vs+JK)*
vs+ ';#>hOaArvv&'
vs+L
 yy,,Q/;;CKH-.\C'y9
vs+r   c           	         t        g d      }t        g d      }t        g d      j                  t        g dd            }t        j                  |j                         |       t        j                  |j                  d      |       t        g d      j                  t        g dd            }t        g d      }|j                         }t        j                  ||       t        g d	      j                  t        g d	d            }t        g d      }|j                         }	t        j                  |	|       t        d
dddddt        j                  g      j                  t        g dd            }
t        g d      }t        g d      }t        ddddddt        j                  g      }t        j                  |
j                  d      |       t        j                  |
j                  d      |       t        j                  |
j                  d      |       t        g d      }t        g d      }t        ddddddt        j                  g      }t        j                  |
j                  dd      |       t        j                  |
j                  dd      |       t        j                  |
j                  dd      |       d }t        j                  t        |!      5  |
j                  d"d       d d d        t        j                  t        |!      5  |
j                  dd       d d d        t        d
dddt        j                  g      j                  t        g d#d            }
t        g d$      }t        g d%      }t        d&d'd(dt        j                  g      }t        j                  |
j                  dd)      |       t        j                  |
j                  dd)      |       t        j                  |
j                  dd)      |       y # 1 sw Y   (xY w# 1 sw Y   xY w)*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   s    3489D

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

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

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

&S
 	 <=<=3S#sC@A
v{{U{;WE
v{{X{>H
v{{V{<hG <=<=3S#sC@A
v{{Ue{LgV
KK(eK<g	
 	v{{Vu{MxX D]]:S1 	:KK%5K9	: ]]:S1 	9KK$%K8	9 (GXrvvFGNNCTJ
 23234dC89
v{{U{EwO
v{{X4{H'R
v{{V{FQ#	: 	:	9 	9s   8P2/P?2P<?Qc                     t        ddg      }|j                  d       d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)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   sQ    Aq6N	i <]]:S1 	FF9	 	 	s   AA!r3   Nc                     |\  }}||n|j                  |      }|j                  |      }t        j                  |t	        |             y )Nr   )rM   rL   rN   rO   r   )r]   r   r(   r3   r   rd   results          r   test_rank_tie_methodsz$TestSeriesRank.test_rank_tie_methods   sC    ]c

5(9(
vvc{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   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}n1|dk(  r|d   |d   |d   g}n|d   t        j                  g|	z  |d   g}|r|n|d d d   }t        t        j                  |            }|j                  |||      }t        j                  |t        ||             y )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-!9i8y)4y)4I6I6
	 &!1XuQxq2E("1XuQxq2E1Xx%/q:E%552;++H56VyIV
vvhi'HIr   c                 
   t        dt        j                  t        j                  t        j                   dg      }|j	                  d      }t        dt        j                  dddgd	      }t        j                  ||       y )
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/  sb     !RVVRVVbffWb9:.aAq);
vs+r   z	op, valuer   g    .Agư>c                    t        j                  d      }t        j                  j	                  d      j                  d      }t        j                  t        ddd      D cg c]  }||d  	 c}      }t        j                  j	                  d      j                  |       t        t        |            D cg c]  }t        t        d      |z          }} |||      }t        ||      }	|	j                  |      }
|j                  ||dk7  r|nd	      }t        ||      j                  d
      }t!        j"                  |
|       y c c}w c c}w )Nr7   r   r   r   a)r<   r   r   ordinalr*   )rJ   rK   r   rY   rZ   standard_normalconcatenaterangeshuffler\   chrordr   rL   rS   rM   rN   rO   )r]   r   opvaluer_   xsir<   valsr;   r   sprankr   s                r   test_rank_methods_seriesz'TestSeriesRank.test_rank_methods_series7  s    &&}5YY""1%55a8^^U1a^<RV<=
		a ((,,1#b'N;qSX\";;"e}D&'""46W3D)T&.55i@
vx0 = <s   "E9E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        |      j                  |      }|j                  d      }t        |      j                  |j                        }t	        j
                  ||       y )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  sP     3Ku%w'#;%%fll3
vx0r   c                    |\  }}d|v r|j                         }n|j                  |      }|j                  d      }|j                         |z
  j                         }t	        j
                  ||       |j                         |z
  j                  |      }|j                  |d      }	t	        j
                  |	|       y )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    	%<

A

5!Affuf%EEGaK%%'
sH-EEGaK%%V%4vvVuv5
tX.r   c                     |\  }}|j                         j                  d      }|j                  |      }t        |      j                         }|j                  |_        t        j                  ||       y )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  s^    JJL%v&#;%%'
vx0r   c                    t        t        j                  gdz        j                  t              j                  d       t        t        j                  gdz        j                  t              j                  d       y )N    Tru   F)r   r   r   rM   r)   rL   )r]   s    r   test_rank_object_bugz#TestSeriesRank.test_rank_object_bugz  sZ     	x"}$$V,11D1Ax"}$$V,11E1Br   c                     t        t        d      t        g      }|j                         }|j	                          |}t        j                  ||       y )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  sB     I:;SAB668	
vx0r   c                     t        dddt        dgd      }|j                  d      }t        d	d
dt        j                  dg      }t        j                  ||       y )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  sX    =-]K
 '1aBFFA./
vx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   s7   Y,vVRp [[WtVn54 64 [[[4-8[[X'RS[[[*CD[[+tXZ70BFFRVVG,FLL"#bmmI.		
 J E T 9$ JD, [[X'RS[[\\1\\3\\4 	
1 T1 [[S1#JS1#JS1#JVaV	"	"o.!?3		
11/1C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        |      j                  |       }|j                  dd      }t        |      j                  |j                        }t	        j
                  ||       y )Nr    Tr   rA   r   r3   r   rd   r   r   r   s         r   test_rank_dense_pctr     R     	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        |      j                  |       }|j                  dd      }t        |      j                  |j                        }t	        j
                  ||       y )Nr   Tr   r   r   s         r   test_rank_min_pctr     R     	s5!AVV5dV+Fc{!!&,,/H68,r   )r   r>   r>   )r   r   r>   r>   r   c                     t        |      j                  |       }|j                  dd      }t        |      j                  |j                        }t	        j
                  ||       y )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        |      j                  |       }|j                  dd      }t        |      j                  |j                        }t	        j
                  ||       y )Nr   Tr   r   r   s         r   test_rank_average_pctr     sR     	s5!AVV9$V/Fc{!!&,,/H68,r   )r   r   r   r>   r   )r   r   r   r   r   r>   c                     t        |      j                  |       }|j                  dd      }t        |      j                  |j                        }t	        j
                  ||       y )Nr   Tr   r   r   s         r   test_rank_first_pctr     r   r   c                      t        t        j                  d            } | j                  d      j	                         }|dk(  sJ y )Ni  Tr@   r   )r   r   rT   rL   r   )r   r   s     r   test_pct_max_many_rowsr     s<     	ryy#$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
     s       * )   - < < 	HBHHc3S"&&#sCQTUVW	!Q1bffaArvvqABC	!Q1bffaArvvqABC	("((Aq!Q1aCDE	("((Aq!Q1aCDE '}r}}Y/GH%]R]]9-EF

Z1 Z1@ 
se
Q'7#$
Q#s	/0	/0	/0	GH	ST	LM
-- 
se
Q'7#$
Q'7#$	/0	/0	/0	GH	ST	LM
-- 
se
Q'7#$
Q#s	/0	/0	/0	GH	ST	LM
-- 
se
Q'7#$
Q'7#$	/0	/0	/0	GH	ST	LM
-- 
se
Q'7#$
Q'9%&	/0	/0	/0	GH	ST	LM
--  r   