
    dFY              *          d dl m Z  d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d Zd Zej                            ddgddgg          ej                            d	d
 dD              ej        d           ej        d           ej        d           ej        d           ej        d          g ej        dd           ej        dd           ej        dd           ej        dd           ej        dd          g ej        d           ej        d           z
   ej        d           ej        d           z
   ej        d           ej        d           z
   ej        d           ej        d           z
   ej        d           ej        d           z
  g ej        d                              d           ej        d                              d           ej        d                              d           ej        d                              d           ej        d                              d          ggz   d           ej                            ddddg dfdddg dfdddg dfdddg dfdddg dfdddg dfdddg dfdddg d fd!ddg d"fd!ddg d#fd!ddg d$fd!ddg d%fd&ddg d'fd&ddg d(fd&ddg d)fd&ddg d*fd+ddg d,fd+ddg d-fd+ddg dfd+ddg d.fg          d/                                     Zej                            ddgddgg          ej                            d	ej         ej         ej        d0ej        ej        ej        gg          ej                            d1ddd2d3d3ej        d4ej        d5d5gfddd6g d7fddd8g d9fddd2d5d5ej        d4ej        d3d3gfddd6g d:fddd8g d;fddd2d0d0ej        d<ej        d=d=gfddd6g d>fddd8g d?fddd2d=d=ej        d<ej        d0d0gfddd6g d@fddd8g dAfd!dd2dBdBej        d<ej        dCdCgfd!dd6g dDfd!dd8g dEfd!dd2dCdCej        d<ej        dBdBgfd!dd6g dFfd!dd8g dGfd&dd2d0dBej        d<ej        d=dCgfd&dd6g dHfd&dd8g dIfd&dd2d=dCej        d<ej        d0dBgfd&dd6g dJfd&dd8g dKfd+dd2d0d0ej        dBej        d<d<gfd+dd6g dLfd+dd8g dMfd+dd2d<d<ej        dBej        d0d0gfd+dd6g dNfd+dd8g dOfg          dP                                     Zej                            ddgddgg          ej                            d	dQ dRD              ej        d           ej        d          ej         ej        d           ej        d           ej        d          ej        ej        g ej        dd           ej        dd          ej         ej        dd           ej        dd           ej        dd          ej        ej        g ej        d           ej        d           z
   ej        d           ej        d           z
  ej         ej        d           ej        d           z
   ej        d           ej        d           z
   ej        d           ej        d           z
  ej        ej        g ej        d                              d           ej        d                              d          ej         ej        d                              d           ej        d                              d           ej        d                              d          ej        ej        ggz   dS           ej                            dTg ddd2ddBdBej        dCdBd=ej        ej        gfddd2ddUdUej        d0dUdVej        ej        gfddd2dd=d=ej        d0d=dBej        ej        gfddd2ddVdVej        dWdVdUej        ej        gfddd2dd0d0ej        dCd0d=ej        ej        gfddd2ddWdWej        d0dWdVej        ej        gfddd2dd<d<ej        d0d<dBej        ej        gfddd2ddXdXej        dWdXdUej        ej        gfd!dd2dd<d<ej        dCd<d=ej        ej        gfd!dd2ddXdXej        d0dXdVej        ej        gfd!dd2ddCdCej        d0dCdBej        ej        gfd!dd2dd0d0ej        dWd0dUej        ej        gfd&dd2dd0dBej        dCd<d=ej        ej        gfd&dd2ddWdUej        d0dXdVej        ej        gfd&dd2dd<d=ej        d0dCdBej        ej        gfd&dd2ddXdVej        dWd0dUej        ej        gfd+dd2dd0d0ej        d<d0dBej        ej        gfd+dd2ddYdYej        d0dYdZej        ej        gfd+dd2dd<d<ej        d0d<dBej        ej        gfd+dd2dd0d0ej        dYd0dZej        ej        gfddd8dg d[fddd8dg d\fddd8dg d]fddd8dg d^fddd8dg d_fddd8dg d`fddd8dg dafddd8dg dbfd!dd8dg dcfd!dd8dg ddfd!dd8dg defd!dd8dg dffd&dd8dg dgfd&dd8dg dhfd&dd8dg difd&dd8dg djfd+dd8dg dkfd+dd8dg dlfd+dd8dg dmfd+dd8dg dnf          do                                     Zej                            dpdg dqfdg drfg          ds             Zej                            dtg du          ej                            dvddg          dw                         Zej                            dxg dy          ej                            dzddg          ej                            d{g d|          ej                            d}ddg          ej                            d	g d~dej        dej        dgg          d                                                             Zej                            d{g d          ej                            dxg dy          ej                            dzddg          ej                            d}ddg          ej                            d	g d~dej        dej        dgdej        dej        d4gg          d                                                             Zd Zej                            dddgddgd0d0gfg dg dg dfg ddddej        gdd0d0ej        gfg dddej        gdd0ej        gfg          d             Zd Zej                            dddg          d             Zd Z d Z!d Z"d Z#d Z$dS )    )datetimeN)	DataFrameNaTSeriesconcatc                     t          j        g d          } t          |           }|                                }d}|                    |           }t          j        t          |          5  |                                 d d d            n# 1 swxY w Y   |                    |           }t          j        t          |          5  |                                 d d d            d S # 1 swxY w Y   d S )NForderedz0Cannot perform rank with non-ordered Categoricalmatch)	pdCategoricalr   to_framegroupbypytestraises	TypeErrorrank)catserdfmsggbgb2s         Z/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/groupby/test_rank.py)test_rank_unordered_categorical_typeerrorr      sR   
.U
+
+
+C
++C	B
<C	S		B	y	,	,	,  
			               **S//C	y	,	,	,  


                 s$   ,BBBC**C.1C.c                     t          j        dd          } t          j        dd          }t          j                            ddd          }t          j                            ddd          }t          t          j                            d          |                     |          |                    |          d          }|                    dd	g          j	        
                                }d
 |                    dd	g          D             }t          |d          }|                    |j                  }t          j        ||           |                    dd	g          j	        
                    d          }d |                    dd	g          D             }t          |d          }|                    |j                  }t          j        ||           d S )N
   d      r   i  )size)valuekey1key2r#   r$   c                 F    g | ]\  }}|j                                         S  r"   r   .0keypieces      r   
<listcomp>z#test_rank_apply.<locals>.<listcomp>1   s*    RRRzsE  ""RRR    axisTpctc                 J    g | ] \  }}|j                             d           !S )Tr0   r'   r(   s      r   r,   z#test_rank_apply.<locals>.<listcomp>8   s<       '1sET""  r-   )tmrands_arraynprandomrandintr   randntaker   r"   r   r   reindexindexassert_series_equal)lev1lev2lab1lab2r   resultexpecteds          r   test_rank_applyrC   !   s   >"c""D>"c""D9Q#..D9Q#..D	Y__S))IIdOOIIdOO	
 	

 
B ZZ())/4466FRRRZZ@P5Q5QRRRHhQ'''H--H68,,,ZZ())/444>>F 57ZZ@P5Q5Q  H hQ'''H--H68,,,,,r-   grpsquxquuxvalsc                 >    g | ]}t          j        g d |          S ))   rI      rI      dtype)r5   arrayr)   rM   s     r   r,   r,   C   s;        	...  r-   )i8i4i2i1u8u4u2u1f8f4f2z
2018-01-02z
2018-01-08z
2018-01-06z
US/PacifictzDc                 ,    t          | d                   S Nr   typexs    r   <lambda>rd   e       $qt** r-   )idszties_method,ascending,pct,expaverageTF)       @rh         @rh         @)皙?rk         ?rk   皙?)rj   rj   rl   rj   rh   )rm   rm   皙?rm   rk   min)rl   rl   ri   rl   rj   )rn   rn   rl   rn   rm   )      @rp   rl   rp   rh   )333333?rq   rn   rq   rk   max)rp   rp   ri   rp   rj   )rq   rq   rl   rq   rm   )ri   ri   rl   ri   rh   )rl   rl   rn   rl   rk   first)rl   rh   ri   rp   rj   )rn   rk   rl   rq   rm   )rp   rj   rl   ri   rh   )rq   rm   rn   rl   rk   dense)rl   rl   rp   rl   rh   )UUUUUU?ru   rl   ru   UUUUUU?)rl   rl   ru   rl   rv   c                    t          j        | t          |                    }|}t          |          t          |           z  }t	          |t           j                  rt          j        ||j                  }t          ||d          }|	                    d          
                    |||          }	t          |t          |           z  dg          }
t          j        |	|
           d S )NrL   r*   valr*   )method	ascendingr1   ry   columnsr5   repeatlenlist
isinstancendarrayrN   rM   r   r   r   r3   assert_frame_equal)rD   rG   ties_methodr{   r1   expr*   	orig_valsr   rA   exp_dfs              r   test_rank_argsr   @   s    B )D#d))
$
$CI::D		!D)RZ(( 5xIO444	3t,,	-	-BZZ##;)QT#UUFsSYY888F&&)))))r-   rl   z#ties_method,ascending,na_option,expkeep      ?         @top)      @r   r   ri   r         @r   bottom)r   r   r   rp   r   r   r   )r   r   r   ri   r   r   r   )r   r   r   rp   r   r   r   rp   rj   )rp   rp   rl   ri   rl         @r   )rl   rl   r   rp   r   rj   rj   )r   r   rl   ri   rl   rp   rp   )rj   rj   r   rp   r   rl   rl   rh   ri   )rj   rj   rh   ri   rh         @r   )rh   rh   r   rp   r   ri   ri   )r   r   rh   ri   rh   rj   rj   )ri   ri   r   rp   r   rh   rh   )rp   rj   rl   ri   rh   r   r   )rl   rh   r   rp   r   rj   ri   )r   r   rl   ri   rh   rp   rj   )rj   ri   r   rp   r   rl   rh   )rh   rh   rl   rp   rl   rj   rj   )rl   rl   rj   rh   rj   rp   rp   )rj   rj   rl   rp   rl   rh   rh   )rp   rp   rj   rh   rj   rl   rl   c                 V   t          j        | t          |                    }|t          |           z  }t          ||d          }|                    d                              |||          }t          |t          |           z  dg          }	t          j        ||	           d S )Nrx   r*   )rz   r{   	na_optionry   r|   )r5   r   r   r   r   r   r3   r   )
rD   rG   r   r{   r   r   r*   r   rA   r   s
             r   test_infs_n_nansr      s    R )D#d))
$
$C#d))D	3t,,	-	-BZZ##i9 $  F sSYY888F&&)))))r-   c                     g | ]>}t          j        d d t           j        dd dt           j        t           j        g|          ?S )rI   rJ   rK   rL   )r5   rN   nanrO   s     r   r,   r,      sN        	!Q1a8FFF  r-   )rX   rY   rZ   c                 ,    t          | d                   S r_   r`   rb   s    r   rd   rd      re   r-   z'ties_method,ascending,na_option,pct,exprk   rm   rn   rq   ru   rv   )rh   rh   r   ri   rh   rj   r   r   )      ?r         ?      ?r         ?r   r   )rj   rj   r   rl   rj   rh   r   r   )r   r   r         ?r   r   r   r   )rl   rl   r   ri   rl   rj   r   r   )r   r         ?r   r   r   r   r   )rp   rp   r   rl   rp   rh   r   r   )      ?r   r   r   r   r   r   r   )rp   rp          @ri   rp   rj   r   r   )r   r   rl   r   r   r   rl   rl   )ri   ri   r   rl   ri   rh   r   r   )r   r   rl   r   r   r   rl   rl   )rl   rh   r   ri   rp   rj   r   r   )r   r   r   r   r   r   r   rl   )rp   rj   r   rl   ri   rh   r   r   )r   r   r   r   r   r   r   rl   )rl   rl   rj   rp   rl   rh   rj   rj   )r   r   rl   r   r   r   rl   rl   )rp   rp   rj   rl   rp   rh   rj   rj   )r   r   rl   r   r   r   rl   rl   c                    t          j        | t          |                    }|}t          |          t          |           z  }t	          |t           j                  rt          j        ||j                  }t          ||d          }	|		                    d          
                    ||||          }
t          |t          |           z  dg          }t          j        |
|           d S )NrL   rx   r*   rz   r{   r   r1   ry   r|   r~   )rD   rG   r   r{   r   r1   r   r*   r   r   rA   r   s               r   test_rank_args_missingr      s    b )D#d))
$
$CI::D		!D)RZ(( 5xIO444	3t,,	-	-BZZ##i9# $  F sSYY888F&&)))))r-   zpct,exp)rp   rp   rp   rp   rp   )rq   rq   rq   rq   rq   c                     t          g ddgdz  d          }|                    d                              |           }t          |dz  dg	          }t          j        ||           d S )
N)
ar   r   r   r   br   r   r   r      r   rx   r*   r0   rI   ry   r|   r   r   r   r3   r   )r1   r   r   rA   r   s        r   test_rank_resets_each_groupr     s     
BBBA3QS8TT
 
B ZZ###,,FsQw000F&&)))))r-   rM   )int64int32uint64uint32float64float32upperc                    |r;| d                                          | dd          z   } |                     dd          } t          dgdz  dgdz  d          }|d                             |           |d<   |d         j        | k    sJ |                    d	                                          }t          g d
dg          }|r|                    d          }t          j        ||           d S )Nr   r   UiUIr      rx   ry   r*   )      @r   r   r   r|   Float64)	r   replacer   astyperM   r   r   r3   r   )rM   r   r   rA   r   s        r   test_rank_avg_even_valsr     s    
  *a  59,dD))	C519aS1W55	6	6B5	  ''BuIe9?e####ZZ##%%F+++eW===F *y))&&)))))r-   r   )rg   ro   rr   rs   rt   r{   r   )r   r   r   r1   )barr   foor   bazr   r   r   c                     t          dgdz  |d          }|d                                         }|                    d          }|                    | |||          }|                                r0t          dgdz  dt
          j        dt
          j        d	gd          }	nt          dgdz  g d
d          }	|	                    d          }
|
                    | |||          }t          j        ||           d S )Nr      rx   ry   r*   r   r   rI   r   )r   r   rI   r   r   )	r   isnar   r   anyr5   r   r3   r   )r   r{   r   r1   rG   r   maskr   resdf2r   alts               r   test_rank_object_dtyper     s    
E7Q;t44	5	5Be9>>D	E		B
''	YTW'
X
XC xxzz F!Q2614MNNOO!OOODDEE
++e

C
((i9#   C #s#####r-   )Tbadr   r   rI   c                     t          dgdz  |d          }d}t          j        t          |          5  |                    d                              | |||           d d d            d S # 1 swxY w Y   d S )Nr   r   rx   z3na_option must be one of 'keep', 'top', or 'bottom'r   r*   r   )r   r   r   
ValueErrorr   r   )r   r{   r   r1   rG   r   r   s          r   test_rank_naoption_raisesr     s     
E7Q;t44	5	5B
?C	z	-	-	- 
 



5)yc 	 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   -A..A25A2c                     d} t          g ddt          j        dgd          }|                    |           j                            d          }t          dt          j        dgd	
          }t          j        ||           |                    |                               d          }t          d	dt          j        dgi          }t          j	        ||           d S )NA)r   r   r   rl   rh   r   BTr0   r   r   name)
r   r5   r   r   r   r   r   r3   r<   r   )columnr   rA   rB   s       r   test_rank_empty_groupr     s    F	#rvs);<<	=	=BZZ!&&4&00FsBFC(s333H68,,,ZZ$$$..F#RVS1233H&(+++++r-   z"input_key,input_value,output_value)r   r   rI   rI   )r   rI   r   rI   )r   rl   r   rl   r   r   r   rI   c                     t          | |d          }|                    d                              dd          }t          d|i          }t          j        ||           d S )Nr   r   rt   Trz   r1   r   r   )	input_keyinput_valueoutput_valuer   rA   rB   s         r   test_rank_zero_divr   #  sf     
55	6	6BZZ__!!d!;;F#|,--H&(+++++r-   c            
         t          g dt          j        t          j                  j        t          j        t          j                  j        t          j        t          j                  j        gt          t          ddd          t          gd          } |                     d          	                                }t          g dt          j
        dt          j
        gd          }t          j        ||           d S )	Nr   i  r   )grpint_coldatetimeliker   )rl   rh   rl   rl   )r   r   )r   r5   iinfor   ro   rr   r   r   r   r   NaNr3   r   r   rA   rB   s      r   test_rank_min_intr   5  s    	99""&""&""&
 !(4A"6"6<	
 	


 

B ZZ##%%F#OObfc265JKK H &(+++++r-   use_nanc                 n   | rt           j        nd}t          ddgddgd|gd|ggddg          }|                    dg          d                             dd	
          }| r*t          ddt           j        t           j        gd          }nt          g dd          }t          j        ||           d S )Nr   r   rI   groupry   r|   rt   Tr   r   r   )ru   rv   r   r   )r5   r   r   r   r   r   r3   r<   )r   
fill_valuer   rA   rB   s        r   .test_rank_pct_equal_values_on_group_transitionr   K  s     #)J	GG
O		
 % 
 
 
B ZZ	""5).. /  F  <326262???...U;;;68,,,,,r-   c                     t          t          ddgddgd          t          ddgdd	gd
          dd          } |                     dd          }|                    d          }t          | d                             d          | d                             d          gdddg          }t	          j        ||           d S )Nr   r   r   rI   )col1col2r   rK      rJ   )col3col4)r   r   r.   r   levelr/   r   r   )r/   keys)r   r   r   r   r3   r   )r   r   rA   rB   s       r   test_rank_multiindexr   d  s    	QFQF;;<<QFQF;;<<	
 	
 
 
 
B 
!!	$	$BWW!W__FsGLLaL  sGLLaL  	
 3Z  H &(+++++r-   c                     t          g dg dg ddg d          } |                     dd          }|                    d	
          }t          | j        d                             d	
          | j        d                             d	
          gd
          }t          j        ||           |                    d
          }|                    |          rJ d S )Nr   r   r   r   rI   r   rK   rJ   r   r   g      @g      @r   r   rI   r   r   r   r   r;   r   r   r   r.   r   r   )r   r   r   r   locr3   r   equals)r   r   r   rB   r   s        r   test_groupby_axis0_rank_axis1r   |  s    	LL\\\.B.B.BCC"""
 
 
B 
!!	$	$B
''q'//C rvc{''Q'//1A1Aq1A1I1IJQRSSSH#x((( ''q'//Czz(#######r-   c                  (   t          g dg dg ddg d          } |                     dd          }|                    d	
          }| dd	g                             t          j                  }|d	         |d<   t          j        ||           d S )Nr   r   r   r   r   r   r   r   r   r.   rI   )r   r   cummaxr   r5   r   r3   r   )r   r   cmaxrB   s       r   test_groupby_axis0_cummax_axis1r     s     
LL\\\.B.B.BCC"""
 
 
B 
!!	$	$B99!9D1a&z  ,,H1+HQK$)))))r-   c                     t          dddt          j        gddt          j        dd          gdz  	          } |                     | j        d
g          j                            dd          }t          dddt          j        gt          j        dd          gdz  d          }t          j        ||           d S )Nrl   rh   rp   )r   r"   20170101z
US/Easternr[   r   r   r   T)r{   r1   r"   )r;   r   )r   r5   r   r   	Timestampr   r;   r"   r   r   r3   r<   r   s      r   test_non_unique_indexr    s    	Cbf%44|J<8889A=
 
 
B ZZ3((.33d3MMF	c3|J<8889A=  H
 68,,,,,r-   c                     t          j        dddt          j        ddgd          } t          j        dddt          j        d	d
gd          }t	          g d| |d          }|                    d          }|                                }|                    t                                        d                                          }t          j
        ||           d S )Nr   r   cTr	   r   rI   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r5   r   r   r   r   r   objectr3   r   )r   cat2r   r   r   rB   s         r   test_rank_categoricalr    s    
.#sCc:D
I
I
IC>1aBFAq14@@@D	...TJJ	K	KB	F		B
''))Cyy  ((005577H#x(((((r-   )%r   numpyr5   r   pandasr   r   r   r   r   pandas._testing_testingr3   r   rC   markparametrizer  	to_periodr   infr   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r&   r-   r   <module>r     s}                                    "- - -> 5'E6?!;<<
 W   BL&&BL&&BL&&BL&&BL&&	
 BL,777BL,777BL,777BL,777BL,777	
 BL&&a8BL&&a8BL&&a8BL&&a8BL&&a8	
 BL&&0055BL&&0055BL&&0055BL&&0055BL&&0055	
-	!D 	I  % %L #	D%!:!:!:;	D$ 9 9 9:	E5";";";<	E4!:!:!:;	e6667	d5556	u7778	t6667	e6667	d5556	u7778	t6667	$8889	$7778	% 9 9 9:	%8889	$8889	$UUUV	% 9 9 9:	%VVVW) 2* *3 M% % =<@* 5'E6?!;<<
rvgwRVRVRVDE  )	D&3RVQS"IJ	D%!D!D!DE	D($G$G$GH	E6Cbfac#JK	E5"E"E"EF	E8%H%H%HI	fsCbfc3GH	e@@@A	h C C CD	vS"&#rvsCHI	uAAAB	x!D!D!DE	fsCbfc3GH	e@@@A	h C C CD	vS"&#rvsCHI	uAAAB	x!D!D!DE	$c263S IJ	$BBBC	$"E"E"EF	%#sBFCc!JK	% C C CD	%#F#F#FG	$c263S IJ	$BBBC	$"E"E"EF	%#sBFCc!JK	% C C CD	%#F#F#FG=" "F	* 	*G" "  =<N	* 5'E6?!;<<
 '   BL&&BL&&FBL&&BL&&BL&&FF		
 BL,777BL,777FBL,777BL,777BL,777FF		
 BL&&a8BL&&a8FBL&&a8BL&&a8BL&&a8FF		
 BL&&0055BL&&0055FBL&&0055BL&&0055BL&&0055FF		
?)	-\ 	a  1 1d -y#rvsCbfbf=	
y #rvsCbfbf=	
y  #rvsCbfbf=	
y. #rvsCbfbf=	
-y: 
fec3S#rvrv%VW;y< 
fdS#rvsCbfbf$UV=y@ #rvsCbfbf=	
?yL 
vtc3S#rvrv%VWMyN 
fec3S#rvrv%VWOyP 
fdS#rvsCbfbf$UVQyT #rvsCbfbf=	
Sy` 
vtc3S#rvrv%VWayd #rvsCbfbf=	
cyr #rvsCbfbf=	
qy@ #rvsCbfbf=	
yN #rvsCbfbf=	
My\ #rvsCbfbf=	
[yj 		
iyJ #rvsCbfbf=	
IyX 		
Wyv 
D(E+S+S+STwyz ???	
yyF 
E8U,T,T,TUGyJ ===	
IyV 
h'O'O'OPWyZ ???	
Yyf 
x(P(P(PQgyj @@@	
iyv 
h'O'O'OPwyx 
h&V&V&VWyyz 
x(P(P(PQ{y~ ===	
}yJ 
$%)Q)Q)QRKyN >>>	
MyZ 
%5*R*R*RS[y^ >>>	
]yj 
$%)Q)Q)QRkyl 
$$(T(T(TUmyn 
%5*R*R*RSoyp 
%4)U)U)UVqy| |z* *{| |e1 1 =<`*" 1112T;T;T;T4UV * * * III  4-00* * 10 *  (S(S(STTtUm44&?&?&?@@u..
0005"&%QV2WX $ $  /. A@ 54 UT$* &6&6&677(S(S(STTtUm44u..
+++	rvu-	
BFArvq! 
 
  /. 54 UT 87
, , , (
Q!Q#s$	|||%9%9%9:	1a(3S"&*AB	Q26NS#rv$67	 , , ,, , ,, T5M22- - 32-0, , ,0$ $ $(* * * - - -) ) ) ) )r-   