
    A>i T              *          S SK J r   S SKrS SKrS SKrS SKJrJrJrJ	r	  S SK
Jr  S rS r\R                  R!                  SS/SS//5      \R                  R!                  S	S
 V s/ s H  n \R#                  / SQU S9PM     sn \R$                  " S5      \R$                  " S5      \R$                  " S5      \R$                  " S5      \R$                  " S5      /\R$                  " SSS9\R$                  " SSS9\R$                  " SSS9\R$                  " SSS9\R$                  " SSS9/\R$                  " S5      \R$                  " S 5      -
  \R$                  " S5      \R$                  " S 5      -
  \R$                  " S5      \R$                  " S 5      -
  \R$                  " S5      \R$                  " S 5      -
  \R$                  " S5      \R$                  " S 5      -
  /\R$                  " S5      R'                  S5      \R$                  " S5      R'                  S5      \R$                  " S5      R'                  S5      \R$                  " S5      R'                  S5      \R$                  " S5      R'                  S5      //-   S S9\R                  R!                  SSSS/ SQ4SSS/ SQ4SSS/ SQ4SSS/ SQ4SSS/ SQ4SSS/ SQ4SSS/ S Q4SSS/ S!Q4S"SS/ S#Q4S"SS/ S$Q4S"SS/ S%Q4S"SS/ S&Q4S'SS/ S(Q4S'SS/ S)Q4S'SS/ S*Q4S'SS/ S+Q4S,SS/ S-Q4S,SS/ S.Q4S,SS/ S Q4S,SS/ S/Q4/5      S0 5       5       5       r\R                  R!                  SS/SS//5      \R                  R!                  S	\R*                  * \R*                  * \R,                  S1\R,                  \R*                  \R*                  //5      \R                  R!                  S2SSS3S4S4\R,                  S5\R,                  S6S6/4SSS7/ S8Q4SSS9/ S:Q4SSS3S6S6\R,                  S5\R,                  S4S4/4SSS7/ S;Q4SSS9/ S<Q4SSS3S1S1\R,                  S=\R,                  S>S>/4SSS7/ S?Q4SSS9/ S@Q4SSS3S>S>\R,                  S=\R,                  S1S1/4SSS7/ SAQ4SSS9/ SBQ4S"SS3SCSC\R,                  S=\R,                  SDSD/4S"SS7/ SEQ4S"SS9/ SFQ4S"SS3SDSD\R,                  S=\R,                  SCSC/4S"SS7/ SGQ4S"SS9/ SHQ4S'SS3S1SC\R,                  S=\R,                  S>SD/4S'SS7/ SIQ4S'SS9/ SJQ4S'SS3S>SD\R,                  S=\R,                  S1SC/4S'SS7/ SKQ4S'SS9/ SLQ4S,SS3S1S1\R,                  SC\R,                  S=S=/4S,SS7/ SMQ4S,SS9/ SNQ4S,SS3S=S=\R,                  SC\R,                  S1S1/4S,SS7/ SOQ4S,SS9/ SPQ4/5      SQ 5       5       5       r\R                  R!                  SS/SS//5      \R                  R!                  S	SR V s/ s H9  n \R#                  SSSS\R,                  STSSSU\R,                  \R,                  /U S9PM;     sn \R$                  " S5      \R$                  " S5      \R,                  \R$                  " S5      \R$                  " S5      \R$                  " S5      \R,                  \R,                  /\R$                  " SSS9\R$                  " SSS9\R,                  \R$                  " SSS9\R$                  " SSS9\R$                  " SSS9\R,                  \R,                  /\R$                  " S5      \R$                  " S 5      -
  \R$                  " S5      \R$                  " S 5      -
  \R,                  \R$                  " S5      \R$                  " S 5      -
  \R$                  " S5      \R$                  " S 5      -
  \R$                  " S5      \R$                  " S 5      -
  \R,                  \R,                  /\R$                  " S5      R'                  S5      \R$                  " S5      R'                  S5      \R,                  \R$                  " S5      R'                  S5      \R$                  " S5      R'                  S5      \R$                  " S5      R'                  S5      \R,                  \R,                  //-   SV S9\R                  R!                  SW/ SSS3SSCSC\R,                  SDSCS>\R,                  \R,                  /4PSSS3SSXSX\R,                  S1SXSY\R,                  \R,                  /4PSSS3SS>S>\R,                  S1S>SC\R,                  \R,                  /4PSSS3SSYSY\R,                  SZSYSX\R,                  \R,                  /4PSSS3SS1S1\R,                  SDS1S>\R,                  \R,                  /4PSSS3SSZSZ\R,                  S1SZSY\R,                  \R,                  /4PSSS3SS=S=\R,                  S1S=SC\R,                  \R,                  /4PSSS3SS[S[\R,                  SZS[SX\R,                  \R,                  /4PS"SS3SS=S=\R,                  SDS=S>\R,                  \R,                  /4PS"SS3SS[S[\R,                  S1S[SY\R,                  \R,                  /4PS"SS3SSDSD\R,                  S1SDSC\R,                  \R,                  /4PS"SS3SS1S1\R,                  SZS1SX\R,                  \R,                  /4PS'SS3SS1SC\R,                  SDS=S>\R,                  \R,                  /4PS'SS3SSZSX\R,                  S1S[SY\R,                  \R,                  /4PS'SS3SS=S>\R,                  S1SDSC\R,                  \R,                  /4PS'SS3SS[SY\R,                  SZS1SX\R,                  \R,                  /4PS,SS3SS1S1\R,                  S=S1SC\R,                  \R,                  /4PS,SS3SS\S\\R,                  S1S\S]\R,                  \R,                  /4PS,SS3SS=S=\R,                  S1S=SC\R,                  \R,                  /4PS,SS3SS1S1\R,                  S\S1S]\R,                  \R,                  /4PSSS9S/ S^Q4PSSS9S/ S_Q4PSSS9S/ S`Q4PSSS9S/ SaQ4PSSS9S/ SbQ4PSSS9S/ ScQ4PSSS9S/ SdQ4PSSS9S/ SeQ4PS"SS9S/ SfQ4PS"SS9S/ SgQ4PS"SS9S/ ShQ4PS"SS9S/ SiQ4PS'SS9S/ SjQ4PS'SS9S/ SkQ4PS'SS9S/ SlQ4PS'SS9S/ SmQ4PS,SS9S/ SnQ4PS,SS9S/ SoQ4PS,SS9S/ SpQ4PS,SS9S/ SqQ4P5      Sr 5       5       5       r\R                  R!                  SsS/ StQ4S/ SuQ4/5      Sv 5       r\R                  R!                  Sw/ SxQ5      \R                  R!                  SySS/5      Sz 5       5       r\R                  R!                  S{/ S|Q5      \R                  R!                  S}SS/5      \R                  R!                  S	/ S~QS\R,                  S\R,                  S//5      S 5       5       5       r\R                  R!                  S{/ SQ5      \R                  R!                  S}SS/5      \R                  R!                  S	/ S~QS\R,                  S\R,                  S/S\R,                  SS\R,                  S5//5      S 5       5       5       rS r\R                  R!                  SSSS/SS/S1S1/4/ SQ/ SQ/ SQ4/ SQSSSS\R,                  /SS1S1\R,                  /4/ SQSSS\R,                  /SS1\R,                  /4/5      S 5       rS r\R                  R!                  SSS/5      S 5       r S r!S r"\R                  R!                  S{S7S9/5      S 5       r#gs  sn f s  sn f )    )datetimeN)	DataFrameNaTSeriesconcatc                     [         R                  " / SS9n [        U 5      nUR                  5       nSnUR	                  U SS9n[
        R                  " [        US9   UR                  5         S S S 5        UR	                  U SS9n[
        R                  " [        US9   UR                  5         S S S 5        g ! , (       d  f       NQ= f! , (       d  f       g = f)NForderedz0Cannot perform rank with non-ordered Categorical)observedmatch)	pdCategoricalr   to_framegroupbypytestraises	TypeErrorrank)catserdfmsggbgb2s         e/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_rank.py)test_rank_unordered_categorical_typeerrorr      s    
..U
+C
+C	B
<C	S5	)B	y	,
	 
- **S5*
)C	y	,
 
-	,	 
-	, 
-	,s   B8C	8
C	
Cc                     [         R                  " S/S-  [        S9n [         R                  " S/S-  [        S9n[         R                  R	                  S5      R                  SSS[        S	9n[         R                  R	                  S5      R                  SSS[        S	9n[        [         R                  R	                  S5      R                  S5      U R                  U5      UR                  U5      S
.5      nUR                  SS/5      R                  R                  5       nUR                  SS/5       VVs/ s H  u  pgUR                  R                  5       PM!     nnn[        USS9nUR                  UR                  5      n[         R"                  " XX5        UR                  SS/5      R                  R                  SS9nUR                  SS/5       VVs/ s H  u  pgUR                  R                  SS9PM      nnn[        USS9nUR                  UR                  5      n[         R"                  " XX5        g s  snnf s  snnf )N
aaaaaaaaaad   dtype
bbbbbbbbbb      r   i  )sizer"   )valuekey1key2r(   r)   )axisTpct)nparrayobjectrandomdefault_rngintegersintr   standard_normaltaker   r'   r   r   reindexindextmassert_series_equal)	lev1lev2lab1lab2r   resultkeypieceexpecteds	            r   test_rank_applyrB   !   s   88XJ$F3D88XJ$F3D99  #,,Q#S,ID99  #,,Q#S,ID	YY**1-==cBIIdOIIdO	

B ZZ()//446F57ZZ@P5QR5Qzs  "5QHRhQ'H-H6,ZZ()//444>F 68ZZ@P5Q5QzsT"5Q   hQ'H-H6, Ss   ;&I%I	grpsquxquuxvals)i8i4i2i1u8u4u2u1f8f4f2)r%   r%      r%      r!   z
2018-01-02z
2018-01-08z
2018-01-06z
US/PacifictzDc                     [        U S   5      $ Nr   typexs    r   <lambda>r]   e       $qt*    )idszties_method,ascending,pct,expaverageTF)       @rb         @rb         @)皙?re         ?re   皙?)rd   rd   rf   rd   rb   )rg   rg   皙?rg   re   min)rf   rf   rc   rf   rd   )rh   rh   rf   rh   rg   )      @rj   rf   rj   rb   )333333?rk   rh   rk   re   max)rj   rj   rc   rj   rd   )rk   rk   rf   rk   rg   )rc   rc   rf   rc   rb   )rf   rf   rh   rf   re   first)rf   rb   rc   rj   rd   )rh   re   rf   rk   rg   )rj   rd   rf   rc   rb   )rk   rg   rh   rf   re   dense)rf   rf   rj   rf   rb   )UUUUUU?ro   rf   ro   UUUUUU?)rf   rf   ro   rf   rp   c                    [         R                  " U [        U5      5      nUn[        U5      [        U 5      -  n[	        U[         R
                  5      (       a  [         R                  " XR                  S9n[        XaS.5      nUR                  S5      R                  X#US9n	[        U[        U 5      -  S/S9n
[        R                  " X5        g )Nr!   r?   valr?   )method	ascendingr,   rs   columnsr-   repeatlenlist
isinstancendarrayr.   r"   r   r   r   r8   assert_frame_equal)rC   rF   ties_methodru   r,   expr?   	orig_valsr   r>   exp_dfs              r   test_rank_argsr   @   s    B ))D#d)
$CI:D	!D)RZZ((xxOO4	3,	-BZZ##;QT#UFsSY8F&)r_   rf   z#ties_method,ascending,na_option,expkeep      ?         @top)      @r   r   rc   r         @r   bottom)r   r   r   rj   r   r   r   )r   r   r   rc   r   r   r   )r   r   r   rj   r   r   r   rj   rd   )rj   rj   rf   rc   rf         @r   )rf   rf   r   rj   r   rd   rd   )r   r   rf   rc   rf   rj   rj   )rd   rd   r   rj   r   rf   rf   rb   rc   )rd   rd   rb   rc   rb         @r   )rb   rb   r   rj   r   rc   rc   )r   r   rb   rc   rb   rd   rd   )rc   rc   r   rj   r   rb   rb   )rj   rd   rf   rc   rb   r   r   )rf   rb   r   rj   r   rd   rc   )r   r   rf   rc   rb   rj   rd   )rd   rc   r   rj   r   rf   rb   )rb   rb   rf   rj   rf   rd   rd   )rf   rf   rd   rb   rd   rj   rj   )rd   rd   rf   rj   rf   rb   rb   )rj   rj   rd   rb   rd   rf   rf   c                    [         R                  " U [        U5      5      nU[        U 5      -  n[        XaS.5      nUR	                  S5      R                  X#US9n[        U[        U 5      -  S/S9n	[        R                  " X5        g )Nrr   r?   )rt   ru   	na_optionrs   rv   )r-   ry   rz   r   r   r   r8   r~   )
rC   rF   r   ru   r   r   r?   r   r>   r   s
             r   test_infs_n_nansr      s}    R ))D#d)
$C#d)D	3,	-BZZ##9 $ F sSY8F&)r_   )rO   rP   rQ   r%   rR   rS   c                     [        U S   5      $ rX   rY   r[   s    r   r]   r]      r^   r_   z'ties_method,ascending,na_option,pct,expre   rg   rh   rk   ro   rp   )rb   rb   r   rc   rb   rd   r   r   )      ?r         ?      ?r         ?r   r   )rd   rd   r   rf   rd   rb   r   r   )r   r   r         ?r   r   r   r   )rf   rf   r   rc   rf   rd   r   r   )r   r         ?r   r   r   r   r   )rj   rj   r   rf   rj   rb   r   r   )      ?r   r   r   r   r   r   r   )rj   rj          @rc   rj   rd   r   r   )r   r   rf   r   r   r   rf   rf   )rc   rc   r   rf   rc   rb   r   r   )r   r   rf   r   r   r   rf   rf   )rf   rb   r   rc   rj   rd   r   r   )r   r   r   r   r   r   r   rf   )rj   rd   r   rf   rc   rb   r   r   )r   r   r   r   r   r   r   rf   )rf   rf   rd   rj   rf   rb   rd   rd   )r   r   rf   r   r   r   rf   rf   )rj   rj   rd   rf   rj   rb   rd   rd   )r   r   rf   r   r   r   rf   rf   c                    [         R                  " U [        U5      5      nUn[        U5      [        U 5      -  n[	        U[         R
                  5      (       a  [         R                  " XR                  S9n[        XqS.5      n	U	R                  S5      R                  X#XES9n
[        U[        U 5      -  S/S9n[        R                  " X5        g )Nr!   rr   r?   rt   ru   r   r,   rs   rv   rx   )rC   rF   r   ru   r   r,   r   r?   r   r   r>   r   s               r   test_rank_args_missingr      s    b ))D#d)
$CI:D	!D)RZZ((xxOO4	3,	-BZZ##9 $ F sSY8F&)r_   zpct,exp)rj   rj   rj   rj   rj   )rk   rk   rk   rk   rk   c                     [        / SQS/S-  S.5      nUR                  S5      R                  U S9n[        US-  S/S	9n[        R                  " X45        g )
N)
ar   r   r   r   br   r   r   r      
   rr   r?   r+   r%   rs   rv   r   r   r   r8   r~   )r,   r   r   r>   r   s        r   test_rank_resets_each_groupr     s[     
BA3QS8T
B ZZ###,FsQw0F&)r_   r"   )int64int32uint64uint32float64float32upperc                    U(       a+  U S   R                  5       U SS  -   n U R                  SS5      n [        S/S-  S/S-  S.5      nUS   R                  U 5      US'   US   R                  U :X  d   eUR                  S	5      R                  5       n[        / S
QS/S9nU(       a  UR                  S5      n[        R                  " X45        g )Nr   r   UiUIr      rr   rs   r?   )      @r   r   r   rv   Float64)	r   replacer   astyper"   r   r   r8   r~   )r"   r   r   r>   r   s        r   test_rank_avg_even_valsr     s    
 a 59,dD)	C519aS1W5	6B5	  'BuIe9??e###ZZ##%F+eW=Fy)&)r_   r   )r   r   r   r,   )barr   foor   bazr   r   r   c                    [        S/S-  US.5      nUS   R                  5       nUR                  S5      nUR                  XX#S9nUR	                  5       (       a4  [        S/S-  S[
        R                  S[
        R                  S	/S.5      n	O[        S/S-  / S
QS.5      n	U	R                  S5      n
U
R                  XX#S9n[        R                  " X5        g )Nr      rr   rs   r?   r   r   r%   r   )r   r   r%   r   r   )	r   isnar   r   anyr-   nanr8   r~   )rank_methodru   r   r,   rF   r   maskr   resdf2r   alts               r   test_rank_object_dtyper     s     
E7Q;t4	5Be9>>D	E	B
''Y'
XC xxzz!Q26614MNO!ODE
++e
C
((9  C ##r_   )Tbadr   r   c                     [        S/S-  US.5      nSn[        R                  " [        US9   UR	                  S5      R                  XX#S9  S S S 5        g ! , (       d  f       g = f)Nr   r   rr   z3na_option must be one of 'keep', 'top', or 'bottom'r   r?   r   )r   r   r   
ValueErrorr   r   )r   ru   r   r,   rF   r   r   s          r   test_rank_naoption_raisesr     sY     
E7Q;t4	5B
?C	z	-


5y 	 	
 
.	-	-s    A
A%c                     Sn [        / SQS[        R                  S/S.5      nUR                  U 5      R                  R                  SS9n[        S[        R                  S/S	S
9n[        R                  " X#5        UR                  U 5      R                  SS9n[        S	S[        R                  S/05      n[        R                  " X#5        g )NA)r   r   r   rf   rb   r   BTr+   r   r   name)
r   r-   r   r   r   r   r   r8   r9   r~   )columnr   r>   rA   s       r   test_rank_empty_groupr     s    F	#rvvs);<	=BZZ!!&&4&0FsBFFC(s3H6,ZZ$$$.F#RVVS123H&+r_   z"input_key,input_value,output_value)r   r   r%   r%   )r   r%   r   r%   )r   rf   r   rf   r   r   r   r%   c                     [        XS.5      nUR                  S5      R                  SSS9n[        SU05      n[        R                  " XE5        g )Nr   r   rn   Trt   r,   r   r   )	input_keyinput_valueoutput_valuer   r>   rA   s         r   test_rank_zero_divr     sK     
5	6BZZ_!!d!;F#|,-H&+r_   c            
      (   [        / SQ[        R                  " [        R                  5      R                  [        R                  " [        R                  5      R
                  [        R                  " [        R                  5      R                  /[        [        SSS5      [        /S.5      n U R                  S5      R                  5       n[        / SQ[        R                  S[        R                  /S.5      n[        R                  " X5        g )	Nr   i  r   )grpint_coldatetimeliker   )rf   rb   rf   rf   )r   r   )r   r-   iinfor   ri   rl   r   r   r   r   r   r8   r~   r   r>   rA   s      r   test_rank_min_intr   1  s    	"&&"&&"&&
 !(4A"6<	


B ZZ##%F#bffc2665JKH &+r_   use_nanc                 T   U (       a  [         R                  OSn[        SS/SS/SU/SU//SS/S9nUR                  S/5      S   R	                  SS	S
9nU (       a+  [        SS[         R                  [         R                  /SS9nO[        / SQSS9n[        R                  " X45        g )Nr   r   r%   grouprs   rv   rn   Tr   r   r   )ro   rp   r   r   )r-   r   r   r   r   r   r8   r9   )r   
fill_valuer   r>   rA   s        r   .test_rank_pct_equal_values_on_group_transitionr   G  s     #J	GG
O		
 % 
B ZZ	"5).. / F 32662662?.U;6,r_   c                  n   [        SSS[        R                  /SS.[        R                  " SSS9/S-  S	9n U R                  U R                  S
/5      R                  R                  SSS9n[        SSS[        R                  /[        R                  " SSS9/S-  SS9n[        R                  " X5        g )Nrf   rb   rj   )r   r'   20170101z
US/EasternrT   r   )r7   r   T)ru   r,   r'   )r7   r   )r   r-   r   r   	Timestampr   r7   r'   r   r   r8   r9   r   s      r   test_non_unique_indexr   `  s    	Cbff%4||J<89A=
B ZZ3(..33d3MF	c3||J<89A=H
 6,r_   c                     [         R                  " SSS[        R                  SS/SS9n [         R                  " SSS[        R                  S	S
/SS9n[	        / SQXS.5      nUR                  S5      nUR                  5       nUR                  [        5      R                  S5      R                  5       n[        R                  " XE5        g )Nr   r   cTr	   r   r%   r   r   r   )r   r   r   r   r   r   )col1col2col3r   )r   r   r-   r   r   r   r   r   r/   r8   r~   )r   cat2r   r   r   rA   s         r   test_rank_categoricalr   o  s    
..#sCc:D
IC>>1aBFFAq14@D	.J	KB	F	B
'')Cyy ((0557H#(r_   c                     [        SS /0SS9nUR                  SSS9S   R                  SU S9n[        S/SUR                  S	9n[
        R                  " X#5        g )
Nr\   r   r!   F)dropnari   )rt   r   rf   )r"   r   )r   r   r   r   r   r8   r9   )r   r   r>   rA   s       r   test_groupby_op_with_nullablesr   }  s_     
C$=		2BZZEZ*3/44EY4WFse96;;?H6,r_   )$r   numpyr-   r   pandasr   r   r   r   r   pandas._testing_testingr8   r   rB   markparametrizer.   r   	to_periodr   infr   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   s   0r   <module>r      s=        "-> 5'E6?!;<
 XWE 	.W LL&LL&LL&LL&LL&	
 LL,7LL,7LL,7LL,7LL,7	
 LL&a8LL&a8LL&a8LL&a8LL&a8	
 LL&005LL&005LL&005LL&005LL&005	
-	!D 	I  %L #	D%!:;	D$ 9:	E5";<	E4!:;	e67	d56	u78	t67	e67	d56	u78	t67	$89	$78	% 9:	%89	$89	$UV	% 9:	%VW)2*3M% =@* 5'E6?!;<
rvvgwRVVRVVRVVDE )	D&3RVVQS"IJ	D%!DE	D($GH	E6Cbffac#JK	E5"EF	E8%HI	fsCbffc3GH	e@A	h CD	vS"&&#rvvsCHI	uAB	x!DE	fsCbffc3GH	e@A	h CD	vS"&&#rvvsCHI	uAB	x!DE	$c2663S IJ	$BC	$"EF	%#sBFFCc!JK	% CD	%#FG	$c2663S IJ	$BC	$"EF	%#sBFFCc!JK	% CD	%#FG="F	*G" =N	* 5'E6?!;<
 ('E 	!Q1a8F' LL&LL&FFLL&LL&LL&FFFF		
 LL,7LL,7FFLL,7LL,7LL,7FFFF		
 LL&a8LL&a8FFLL&a8LL&a8LL&a8FFFF		
 LL&005LL&005FFLL&005LL&005LL&005FFFF		
?)	-\ 	a  1d -y#rvvsCbffbff=	
y #rvvsCbffbff=	
y  #rvvsCbffbff=	
y. #rvvsCbffbff=	
-y: 
fec3S#rvvrvv%VW;y< 
fdS#rvvsCbffbff$UV=y@ #rvvsCbffbff=	
?yL 
vtc3S#rvvrvv%VWMyN 
fec3S#rvvrvv%VWOyP 
fdS#rvvsCbffbff$UVQyT #rvvsCbffbff=	
Sy` 
vtc3S#rvvrvv%VWayd #rvvsCbffbff=	
cyr #rvvsCbffbff=	
qy@ #rvvsCbffbff=	
yN #rvvsCbffbff=	
My\ #rvvsCbffbff=	
[yj 		
iyJ #rvvsCbffbff=	
IyX 		
Wyv 
D(E+STwyz ?	
yyF 
E8U,TUGyJ =	
IyV 
h'OPWyZ ?	
Yyf 
x(PQgyj @	
iyv 
h'OPwyx 
h&VWyyz 
x(PQ{y~ =	
}yJ 
$%)QRKyN >	
MyZ 
%5*RS[y^ >	
]yj 
$%)QRkyl 
$$(TUmyn 
%5*RSoyp 
%4)UVqy|z*{|e1 =`*" 12T;T4UV** I 4-0* 1*  &?@u.
05"&&%QV2WX$ / A
$* &67u.
+	rvvu-	
BFFArvvq!
 / 8
, (
Q!Q#s$	|%9:	1a(3S"&&*AB	Q266NS#rvv$67	,,,, T5M2- 3-0-) uh&78- 9-wDs   %}4.A }9