
    Mh?                        S SK rS SKrS SKrS SKJrJr  S SKJr	  \R                  R                  S/ SQ5      \R                  R                  S/ SQ/ SQ4/ SQ/ S	Q4/ SQ/ S	Q4/ S
Q/ SQ4S\R                  S\R                  S/S\R                  S\R                  S/4\R                  S\R                  S\R                  /\R                  S\R                  S\R                  /4\R                  " SSSS9\R                  " SSSS9SSS2   4\R                  " SSSS9R                  S5      \R                  " SSSS9SSS2   R                  S5      4\R                  /S-  \R                  /S-  4/	5      \R                  R                  S/ SQ5      S 5       5       5       rS rS rS rS r\R                  R                  SSS /5      \R                  R                  S!S /S S"//5      \R                  R                  SS#S$//5      S% 5       5       5       rS& rS' rS( r\R                  R                  S)S\R                  S\R                  /\" S*5      SS/S+S/4S\R                  SS/\" S*5      SS/S+S,/4S-S.S.\R                  /\" S*5      S-S./S S//4S /S0/S /S1/4/ / \R2                  " / S2S39\R2                  " / S2S394/5      S4 5       r\R                  R                  S5\R2                  " / S6QS7-  S8S39\R2                  " / S9QS7-  S:S39/5      \R                  R                  SS#/ S;Q/5      S< 5       5       r\R                  R                  SS#/ S;Q/5      \R                  R                  S=S>S?/5      S@ 5       5       rSA rSB r\R                  R                  SC/ SDQ5      SE 5       r\R                  R                  SSFSG/5      SH 5       r \R                  R                  SISJSK/5      SL 5       r!SM r"SN r#SO r$SP r%SQ r&g)R    N)	DataFrameIndexinterpolation)linearlowerhighernearestmidpointza_vals,b_vals)               )r   r   r   r   r   )r   r   r   r   r   r   r   r   )      ?       @      @      @      @)r   r   r   r   r   r   r   r   r   r   z1/1/18Dr   )freqperiodssq)r         ?      ?      ?r   c           	      ^   U S:X  aO  US:X  aI  [        U[        5      (       a4  U/ SQ:X  a,  UR                  [        R                  R                  SS95        [        R                  " [        R                  " U5      [        R                  " U5      /5      n[        R                  " U5      R                  X0S9n[        R                  " U5      R                  X0S9n[        S/[        U5      -  S/[        U5      -  -   US	.5      n[        Xg/S
/[        SS/SS9S9n	UR                  R                  S:X  aB  U	R                  R                   S   R                  S:X  a  U	R#                  UR                  5      n	UR%                  S5      R                  X0S9n
[&        R(                  " X5        g )Nr	   r   r   zBUnclear numpy expectation for nearest result with equidistant data)reason)r   abkeyvalr%   r$   name)columnsindexMr   )
isinstancelistapplymarkerpytestmarkxfailpdconcatSeriesquantiler   lenr   dtypekinddtypesvaluesastypegroupbytmassert_frame_equal)r   a_valsb_valsr   requestall_vals
a_expected
b_expecteddfexpectedresults              \/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_quantile.pytest_quantilerH      sk   > 	"Hvt$$l"KK/  	
 yy"))F+RYYv->?@H6"++A+KJ6"++A+KJ	C53v;.#V1DDXV	WB	 5'SzPU9VH ~~c!hoo&<&<Q&?&D&D&K ??8>>2ZZ'''GF&+    c                     [        S/ SQ05      n [        R                  " / SQ[        R                  S9nU R	                  U5      R                  S/5      n[        R                  R                  SS/S//5      n[        SSS/0US	9n[        R                  " X$5        [        / S
Q/ SQS.5      n [        R                  R                  SS/SS//5      n[        R                  " / SQ[        R                  S9nU R	                  U5      R                  SS/5      n[        / SQ/ SQS.US	9n[        R                  " X$5        g )NAr   r   r   r   r   )r   r   r   r   r   r6   r   r   r         @r)   )r   r   r   r   )r   r         rK   Br   )r   r   r   r   )r   r   g      @g      @)g      @g      @g      @g      @r   nparrayint64r;   r4   r1   
MultiIndexfrom_productr<   r=   )rD   r$   rF   r)   rE   s        rG   test_quantile_arrayrZ   I   s   	C)	*B
((?"((
3CZZ_%%tf-FMM&&A'78E#d|,E:H&+	L9	:BMM&&At'=>E
((<rxx
0CZZ_%%tTl3F&-EFeH &+rI   c                  ~   [         R                  R                  S5      R                  SSS[         R                  S9n [        U [        S5      S9nUR                  S5      R                  S	S
/5      n[        / SQ/ SQS.[        R                  R                  / SQS	S
//SS /S9S9n[        R                  " X#5        g )Nr   r   r   )
   r   )sizer6   ABCr(   rK   333333?ffffff?)
r   r   gffffff@g@r`   ra   g	@r   r`   ra   )
r   r   gffffff?g@r`   ra   @r   333333?gffffff@)rS   CrL   namesrO   )rU   randomdefault_rngintegersrW   r   r,   r;   r4   r1   rX   rY   r<   r=   )arrrD   rF   rE   s       rG   test_quantile_array2rk   ^   s    
))


"
+
+Aqwbhh
+
OC	3U	,BZZ_%%sCj1FCR	
 mm((sCj)#t ) 
H &+rI   c                     [        / SQ/ SQS.5      n [        R                  " / SQ[        R                  S9nU R	                  USS9R                  / SQ5      n[        / S	Q/ S
QS.[        R                  R                  SS// SQ/5      S9n[        R                  " X#5        U R	                  USS9R                  SS/5      n[        / SQ/ SQS.[        R                  R                  SS/SS//5      S9n[        R                  " X#5        g )Nr   r   r   r   r   r   rR   )r   r   r   rM   F)sort)r   r   r   )r   r         ?r   r   r   )      @r         @r   r   r   r   r   rO   r   r   )rp   r   r   r   )rr   rq   r   r   rT   )rD   r$   rF   rE   s       rG   test_quantile_array_no_sortrs   o   s    	3	4B
((9BHH
-CZZ%Z(112CDF,3QRmm((1a&2C)DEH &+ZZ%Z(114,?F")=>mm((1a&4,)?@H &+rI   c                     [        / SQ/ SQ/ SQ/ SQS.5      n U R                  SS/5      R                  SS	/5      n[        R                  R                  / S
Q/ SQS9n[        / SQ/ SQS.US9n[        R                  " X5        g )Nrm   rn   )r!   r!   r!   )r!   r!   r"   )rK   rS   cdru   rv   r   r   ))r!   r!   r   )r!   r!   r   )r!   r"   r   )r!   r"   r   )ru   rv   Nre   )r   r   r   r   )g      
@g      @r   r   rR   rO   )r   r;   r4   r1   rX   from_tuplesr<   r=   )rD   rF   r)   rE   s       rG   #test_quantile_array_multiple_levelsrx      s    	ioOT
B ZZc
#,,dD\:FMM%%P & E $+AB%H &+rI   
frame_size)r   r   )d   r\   r;   r   r   g333333?c           
         U u  p4[        [        R                  " [        U5       Vs/ s H  oTUS-  /-  PM     sn5      [        U5      S9n[        R                  " [        US5      5      /[        U5      -  U/-   n[        [        US5      5       VVs/ s H  o  H  oXPM     M     snn/[        U5      -  [        [        [        U5      5      5      [        US5      -  /-   n	[        R                  " XyUS /-   S9n
[        [        US5      5       VVs/ s H'  o  H  n[        U5      /U[        U5      -
  -  PM      M)     nnn[        U5       Vs/ s H  oU;  d  M
  UPM     nn[        XUS9nUR                  U5      R                  U5      n[        R                  " X5        g s  snf s  snnf s  snnf s  snf )Nr   r_   )levelscodesrf   r)   r(   )r   rU   rV   rangearangeminr5   r,   r1   rX   floatr;   r4   r<   r=   )ry   r;   r   nrowncol_rD   
idx_levelsx	idx_codesexpected_indexexpected_valuesexpected_columnsrE   rF   s                  rG   6test_groupby_quantile_with_arraylike_q_and_int_columnsr      s   
 JD	288U4[A[QUG^[ABERVK	XB))CaL)*S\9QC?J"3tQ<0<0!Q!!!0<=GLU3q6]c$l*P I ]]'TF2BN 5:#dA,4G4GqQRAq
dS\)*QR*4G   $);C;a72B;C7GH ZZ ))!,F&+% B = Ds   F+F0.F6	F<"F<c                      [        SS/SS/SS//SS/S9n [        R                  " [        SS	9   U R	                  S5      R                  5         S S S 5        g ! , (       d  f       g = f)
Nfoor!   r"   ru   r$   r%   r_   z+cannot be performed against 'object' dtypesmatch)r   r.   raises	TypeErrorr;   r4   )rD   s    rG   test_quantile_raisesr      sV    	UCL5#,=u~	VB	y(U	V


5""$ 
W	V	Vs    A
A&c                  l   [        / SQ[        S5      S.5      n U R                  / SQ5      n[        R                  " [
        SS9   UR                  S5        S S S 5        [        R                  " [
        SS9   UR                  S5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)	N)r   r   r   r   r   r   rP   r!   r"   zGot '50.0' insteadr   2   zGot '-1.0' insteadr   )r   r   r;   r.   r   
ValueErrorr4   )rD   gs     rG   $test_quantile_out_of_bounds_q_raisesr      sz    	+%(;	<B


%&A	z)=	>	

2 
? 
z)=	>	

2 
?	> 
?	> 
?	>s   B9B%
B"%
B3c                      [         R                  " S[         R                  S/5      n [        U [	        S5      S.5      nUR                  S5      n[	        S5       H  nUR                  5         M     g )Nr   r   r#   r$   rz   )rU   rV   nanr   r   r;   r4   )datarD   grpr   s       rG   /test_quantile_missing_group_values_no_segfaultsr      sU    88S"&&#&'D	4a1	2B **U
C3Z rI   z$key, val, expected_key, expected_valr           rN   r!   r"   rp   *   g      E@float64rM   c                    [        XS.5      n[        U[        USS9S/S9nUR                  S5      nUR                  S5      n[        R
                  " Xu5        UR                  5       n[        R
                  " Xu5        g )Nr#   r$   r&   r%   r~   r   )r   r   r;   r4   r<   r=   )r$   r%   expected_keyexpected_valrD   rE   r   rF   s           rG   2test_quantile_missing_group_values_correct_resultsr      sp     
3+	,BE,U;eWH **U
C\\#F&+\\^F&+rI   r9   )r   r   Nr   Int64)TFNbooleanr   r   r   c                 v   [        S/S-  S/S-  -   U S.5      nUR                  S5      S   R                  U5      n[        U[        5      (       a)  [
        R                  R                  SS/U4SS /S9n/ SQnO[        SS/SS	9nS
/n[
        R                  " US-  USSS9n[        R                  " X65        g )Nr   r   yr   r!   r"   re   r   r&   r   r   Float64r)   r'   r6   )r   r;   r4   r+   r,   r1   rX   rY   r   r3   r<   assert_series_equal)r9   r   rD   rF   idxtrue_quantilesrE   s          rG   $test_groupby_quantile_nullable_arrayr      s     
#cUQY.V<	=BZZ_S!**1-F!Tmm((3*ad(L(S#JS)yy!+3S	RH6,rI   numeric_onlyTFc                    [        S/S/S/S.5      nU(       aY  UR                  S5      R                  XS9nUR                  S5      S/   R                  U 5      n[        R                  " X45        g [
        R                  " [        SS	9   UR                  S5      R                  XS9  S S S 5        g ! , (       d  f       g = f)
Nr   r   r   )r!   r"   ru   r!   )r   r"   z7'quantile' cannot be performed against 'object' dtypes!r   )r   r;   r4   r<   r=   r.   r   r   )r   r   rD   rF   rE   s        rG   -test_groupby_quantile_raises_on_invalid_dtyper      s     
!C5u5	6BC))!)G::c?C5)2215
f/]]V
 JJsO$$Q$B
 
 
s   B44
Cc                     [        SS/S[        R                  /S.U S9nUR                  S5      S   R	                  S5      n[        S/U SS	9nU S
;   a  U nOS n[        R                  " S/XCSS9n[        R                  " X%5        UR                  S5      S   R	                  SS/5      n[        R                  " S/S-  [        R                  R                  USS/4SS /S9SUS9n[        R                  " X%5        g )Nr   皙?r   r   rM   r   r   r   r   )r6   r'   )Float32r   r6   r)   r'   r   r   re   r   )r   rU   r   r;   r4   r   r1   r3   r<   r   rX   rY   )any_float_dtyperD   rF   	exp_indexexpected_dtyperE   s         rG   test_groupby_quantile_NA_floatr     s    	!QsBFFm4O	LBZZ_S!**3/Fse?=I00(yy#nCPH6,ZZ_S!**C;7Fyy		mm(()c4[)A#t(U	H 6,rI   c           
      v   [        SS/SS/S.U S9nUR                  S5      S   R                  S5      n[        R                  " S	/S
[        S/SU S9SS9n[        R                  " X25        UR                  S5      R                  S5      n[        SS	0S
[        S/SU S9S9n[        R                  " X#5        g )Nr   r   r   r   rM   r   r   r   rq   r   )r'   r6   r   r6   r)   )	r   r;   r4   r1   r3   r   r<   r   r=   )any_int_ea_dtyperD   rF   rE   s       rG   test_groupby_quantile_NA_intr   $  s    	!Qq!f-5E	FBZZ_S!**3/Fyy	QCc)9:	H 8,ZZ_%%c*F	c
)5!3FV+WH &+rI   zinterpolation, val1, val2))r   r   r   )r   r   r   )r	   r   r   c                 z   [        / SQSSS[        R                  /S.US9nUR                  S5      R	                  SS	/U S
9n[        SX[        R                  [        R                  /0U[        R
                  R                  [        R                  " / SQUS9/ SQ/SS /S9S9n[        R                  " XV5        g )Nr   r   r   r   r   r   r   r   rM   r!   r   ra   r   r   r"   r   r   r   r   )r   ra   r   ra   re   r   
r   r1   NAr;   r4   rX   from_arraysr3   r<   r=   )r   val1val2any_numeric_ea_dtyperD   rF   rE   s          rG   )test_groupby_quantile_all_na_group_maskedr   7  s     
!Q255!12:N
B ZZ_%%c
-%PF	t255"%%()"mm''YY|+?@BVW+ ( 
H &+rI   r
   r   c                    [        / SQSSS[        R                  /S.US9nUR                  S5      R	                  SS	/U S
9nUS:X  a  UnOSn[        SSS[        R                  [        R                  /0U[        R
                  R                  [        R                  " / SQUS9/ SQ/SS /S9S9n[        R                  " X55        g )Nr   r   r   r   r   rM   r!   r   r   r   r   r   r"   r   rN   r   )r   r   r   r   re   r   r   )r   r   rD   rF   r   rE   s         rG   0test_groupby_quantile_all_na_group_masked_interpr   M  s    
 
!Q255!12:N
B ZZ_%%d=%QFy(-"	sC&'mm''		,.BC& + ( 

H &+rI   r6   r   r   c           	      8   [        SS/[        R                  /S-  S.U S9nUR                  S5      S   R	                  S5      n[        R
                  " [        R                  /U [        S/U S9SS	9nSUR                  l
        [        R                  " X25        g )
Nr   r   r   rM   r   r   r   r   r   )r   r1   r   r;   r4   r3   rU   r   r   r)   r'   r<   r   )r6   rD   rF   rE   s       rG   "test_groupby_quantile_allNA_columnr   j  s     
!Qruugk2%	@BZZ_S!**3/Fyy	UC5%>SH HNN8,rI   c                  ^   [        [        R                  " [        R                  " S5      SS9/ SQS.5      n U R                  S5      R                  S5      n[        S[        R                  " S	5      [        R                  " S
5      /0[        SS/SS9S9n[        R                  " X5        g )Nr   r   )unitr   )valuegroupr   gGz?r   z0 days 00:00:00.990000z0 days 00:00:02.990000r   r   r&   rO   )r   r1   to_timedeltarU   r   r;   r4   	Timedeltar   r<   r=   )rD   rF   rE   s      rG   test_groupby_timedelta_quantiler   v  s    	//"))A,S9LQ
B ZZ ))$/F5656	
 QF)H &+rI   c            	         [        [        R                  " S5      R                  SS5      [	        S5      [
        R                  " [	        S5      SS9S9n S	n[        R                  " [        US
9   U R                  SSS9nS S S 5        WR                  SS/S9n[        / SQ/ SQ/ SQ/[	        S5      [
        R                  R                  / SQSS /S9S9n[        R                  " X45        g ! , (       d  f       Ns= f)N   r   r   XYZABABcolr&   r~   z+DataFrame.groupby with axis=1 is deprecatedr   r   )axis皙?r   )r   )g?g?rb   gffffff?)gffffff@g@gffffff@g@)g333333#@g @g333333%@g"@)rK   r   rK   r   rS   r   rS   r   re   )r   rU   r   reshaper,   r1   r3   r<   assert_produces_warningFutureWarningr;   r4   rX   rw   r=   )rD   msggbrF   rE   s        rG   test_columns_groupby_quantiler     s    	
		"a$5k		$v,U3
B
 8C		#	#M	=ZZAZ& 
>[[C:[&F  !	

 5k))<UDM * 

H &+ 
>	=s   0C..
C<c           
         [         R                  " SSSSU S9R                  S5      n[        U[	        [        SS5      5      [	        [        SS	5      5      S
.5      nUR                  S5      R                  SS/5      n[         R                  R                  US S S2   SS//SS9n[        SSS.SSS.SSS.SSS./US9n[        R                  " X55        g )Nz2020-04-19 00:00:001minrz   UTC)startr   r   tzr   1hr   e      )	timestampcategoryr   r   r   r   c   )r   Nre   g)@g333333\@)r   r   gH@gfffffb@g333333Q@ge@gW@gfffffh@rO   )r1   
date_rangefloorr   r,   r   r;   r4   rX   rY   r<   r=   )r   dtirD   rF   mirE   s         rG   test_timestamp_groupby_quantiler     s    
--#&#%deDk  
U1c]+%S/*	

B ZZ$--sCj9F		#	#S2Yc
$;CV	#	WB....		
 H &+rI   c                     [         R                  " SSS9n [         R                  " U 5      R                  5       R	                  5       nU R                  S5      US'   U R                  S5      US'   X S   -
  US	'   [         R                  UR                  S
'   [        R                  " [        R                  " S5      S5      nUR                  U5      nUR                  S5      n[        S5       Vs0 s H$  oUUR                  US S2   R                  S5      _M&     nn[        U5      R                   R#                  5       nUR$                  R'                  [(        5      Ul        [*        R,                  " XG5        g s  snf )Nz
2016-01-01i  )r   z
US/Pacificr   r   r   r   r   r   r      r   )r1   r   r3   to_framecopytz_localize	to_periodNaTilocrU   tiler   r;   r4   r   r   Tinfer_objectsr)   r:   intr<   r=   )r   rD   byr   rF   iexprE   s           rG   #test_groupby_quantile_dt64tz_periodr    s   
--d
3C	3	 	 	"	'	'	)BOOL)BqEMM#BqEa&LBqE&&BGGBK	1s	#B	BB[[F 498
<8abggaddm$$S))8C
<~--/H^^**3/HN&+	 =s   1+E<c                  ,   [         R                  R                  / SQ/ SQS9n [         R                  " [	        S5      U S9nUR                  SSS9R                  S	S
/5      n[         R                  R                  / SQSS /S9n[         R                  " / SQUS9n[        R                  " X$5        [         R                  R                  R                  R                  SS/S	S
//5      n[        R                  " UR                  R                  U5        g )N))r   r!   rS   )r   r!   rK   )r   r"   rS   )r   r"   rK   )r   r!   rS   )r   r!   rK   )r   r"   rS   )r   r"   rK   )samplecat0cat1re      rO   r  F)levelro   r   r   )r   r   r   r   )rc   g333333@g@g333333@rS   rK   )r1   rX   rw   r3   r   r;   r4   r<   r   coreindexesfrozen
FrozenListassert_equalr)   r|   )indserrF   qindrE   expected_levelss         rG   +test_groupby_quantile_nonmulti_levels_orderr    s    
--
#
#		
 ) $ C ))E!HC
(C[[vE[2;;S#JGF==$$8 % D yy-T:H6, ggoo,,77#sc3Z8PQOOOFLL''9rI   )'numpyrU   r.   pandasr1   r   r   pandas._testing_testingr<   r/   parametrizer   r   as_unitrH   rZ   rk   rs   rx   r   r   r   r   r   rV   r   r   r   r   r   r   r   r   r   r   r   r  r   rI   rG   <module>r     sY       I  
/*	|$	,'	"$=>
rvvsBFFC	(3RVVS*IJ
&&#rvvsBFF	+bffc2663-OP MM(a8MM(a82>	

 MM(a8@@EMM(a82>FFsK	

 &&Ax!|$)2 56, 73:,@,*,",$, 	':;aS1a&M2Szl+, , 3 <,0% *
rvvsBFF	#U1XSzC:F
rvvsC	 %(S#Jc
C
sC	 %(S#JCA
rdQC$ 	R"I.90MN	,	,& 
!1
$q(	: sO45- 6-  sO45$7
C 8 6
C-0,& !W,,& :x*@A, B,8 9i"89- :-,$,4,:,,:rI   