
    A>i*<                        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%g)Q    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           	         [         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[	        XV/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 )N)r   abkeyvalr#   r"   name)columnsindexMr   )pdconcatSeriesquantiler   lenr   dtypekinddtypesvaluesastypegroupbytmassert_frame_equal)
r   a_valsb_valsr   all_vals
a_expected
b_expecteddfexpectedresults
             i/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/groupby/methods/test_quantile.pytest_quantiler?      s   < 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   r.   r   r   r         @r'   )r   r   r   r   )r   r         rB   Br   )r   r   r   r   )r   r   g      @g      @)g      @g      @g      @g      @r   nparrayint64r3   r,   r)   
MultiIndexfrom_productr4   r5   )r;   r"   r=   r'   r<   s        r>   test_quantile_arrayrQ   =   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 &+r@   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   )sizer.   ABCr&   rB   333333?ffffff?)
r   r   gffffff@g@rW   rX   g	@r   rW   rX   )
r   r   gffffff?g@rW   rX   g@r   333333?gffffff@)rJ   CrC   namesrF   )rL   randomdefault_rngintegersrN   r   listr3   r,   r)   rO   rP   r4   r5   )arrr;   r=   r<   s       r>   test_quantile_array2rb   R   s    
))


"
+
+Aqwbhh
+
OC	3U	,BZZ_%%sCj1FCR	
 mm((sCj)#t ) 
H &+r@   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   rI   )r   r   r   rD   F)sort)r   r   r   )r   r         ?r   r   r   )      @r         @r   r   r   r   r   rF   r   r   )rg   r   r   r   )ri   rh   r   r   rK   )r;   r"   r=   r<   s       r>   test_quantile_array_no_sortrj   c   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 &+r@   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 )Nrd   re   )r   r   r   )r   r   r    )rB   rJ   cdrl   rm   r   r   ))r   r   r   )r   r   r   )r   r    r   )r   r    r   )rl   rm   Nr[   )r   r   r   r   )g      
@g      @r   r   rI   rF   )r   r3   r,   r)   rO   from_tuplesr4   r5   )r;   r=   r'   r<   s       r>   #test_quantile_array_multiple_levelsro   u   s    	ioOT
B ZZc
#,,dD\:FMM%%P & E $+AB%H &+r@   
frame_size)r   r   )d   rS   r3   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                  " Xy/ UQS P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   rV   )levelscodesr\   r'   r&   )r   rL   rM   rangearangeminr-   r`   r)   rO   floatr3   r,   r4   r5   )rp   r3   r   nrowncol_r;   
idx_levelsx	idx_codesexpected_indexexpected_valuesexpected_columnsr<   r=   s                  r>   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 ]]2BG2BT2B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 Sn[        R                  " [        US	9   U R	                  S5      R                  5         S S S 5        g ! , (       d  f       g = f)
Nfoor   r    rl   r"   r#   rV   z:dtype '(object|str)' does not support operation 'quantile'match)r   pytestraises	TypeErrorr3   r,   )r;   msgs     r>   test_quantile_raisesr      sY    	UCL5#,=u~	VB
FC	y	,


5""$ 
-	,	,s    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   rG   r   r    zGot '50.0' insteadr   2   zGot '-1.0' insteadr   )r   rv   r3   r   r   
ValueErrorr,   )r;   gs     r>   $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"   rq   )rL   rM   nanr   rv   r3   r,   )datar;   grpr|   s       r>   /test_quantile_missing_group_values_no_segfaultsr      sU    88S"&&#&'D	4a1	2B **U
C3Z r@   z$key, val, expected_key, expected_valr           rE   r   r    rg   *   g      E@float64rD   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#   ru   r   )r   r   r3   r,   r4   r5   )r"   r#   expected_keyexpected_valr;   r<   r   r=   s           r>   2test_quantile_missing_group_values_correct_resultsr      sp     
3+	,BE,U;eWH **U
C\\#F&+\\^F&+r@   r1   )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    r[   r   r$   r   r   Float64r'   r%   r.   )r   r3   r,   
isinstancer`   r)   rO   rP   r   r+   r4   assert_series_equal)r1   r   r;   r=   idxtrue_quantilesr<   s          r>   $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,r@   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 Sn[
        R                  " [        US	9   UR                  S5      R                  XS9  S S S 5        g ! , (       d  f       g = f)
Nr   r   r~   )r   r    rl   r   )r   r    z0dtype '.*' does not support operation 'quantile'r   )r   r3   r,   r4   r5   r   r   r   )r   r   r;   r=   r<   r   s         r>   -test_groupby_quantile_raises_on_invalid_dtyper      s     
!C5u5	6BC))!)G::c?C5)2215
f/@]]9C0JJsO$$Q$B 100s   B66
Cc                    [         R                  " / U S9R                  n[        U[        R                  5      (       a  [        R
                  O[         R                  n[        SS/SU/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/XeSS9n[        R                  " XG5        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                  " XG5        g )NrD   r   皙?r~   r   r~   r   r   r   )r.   r%   )Float32r   r.   r'   r%   r   r   r[   r   )r)   r+   r.   r   rL   r   NAr   r3   r,   r   r4   r   rO   rP   )any_float_dtyper.   itemr;   r=   	exp_indexexpected_dtyper<   s           r>   test_groupby_quantile_NA_floatr      s$   IIb066Erxx00266beeD	!QsDk2/	JBZZ_S!**3/Fse?=I00(yy#nCPH6,ZZ_S!**C;7Fyy		mm(()c4[)A#t(U	H 6,r@   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   rD   r~   r   r   rh   r   )r%   r.   r   r.   r'   )	r   r3   r,   r)   r+   r   r4   r   r5   )any_int_ea_dtyper;   r=   r<   s       r>   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 &+r@   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   rD   r   r   rX   r   r   r    r   r   r   r   )r   rX   r   rX   r[   r   
r   r)   r   r3   r,   rO   from_arraysr+   r4   r5   )r   val1val2any_numeric_ea_dtyper;   r=   r<   s          r>   )test_groupby_quantile_all_na_group_maskedr   -  s     
!Q255!12:N
B ZZ_%%c
-%PF	t255"%%()"mm''YY|+?@BVW+ ( 
H &+r@   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   rD   r   r   r   r   r   r   r    r   rE   r   )r   r   r   r   r[   r   r   )r   r   r;   r=   r   r<   s         r>   0test_groupby_quantile_all_na_group_masked_interpr   C  s    
 
!Q255!12:N
B ZZ_%%d=%QFy(-"	sC&'mm''		,.BC& + ( 

H &+r@   r.   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   rD   r~   r   r   r   r   )r   r)   r   r3   r,   r+   r   r'   r%   r4   r   )r.   r;   r=   r<   s       r>   "test_groupby_quantile_allNA_columnr   `  s     
!Qruugk2%	@BZZ_S!**3/Fyy	uE3%u$=CH HNN8,r@   c                     [         R                  " [        R                  " S5      SS9R	                  S5      n [        U / 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   )unitusr   )valuegroupr   gGz?r   z0 days 00:00:00.990000z0 days 00:00:02.990000r   r   r$   rF   )r)   to_timedeltarL   rw   as_unitr   r3   r,   	Timedeltar   r4   r5   )tdir;   r=   r<   s       r>   test_groupby_timedelta_quantiler   l  s    
//"))A,S
1
9
9$
?C	S<8	9BZZ ))$/F5656	
 QF)H &+r@   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1minrq   UTC)startr   r   tzr   1hr   e      )	timestampcategoryr   r   r   皙?c   )r   Nr[   g)@g333333\@)r   r   gH@gfffffb@g333333Q@ge@gW@gfffffh@rF   )r)   
date_rangefloorr   r`   rv   r3   r,   rO   rP   r4   r5   )r   dtir;   r=   mir<   s         r>   test_timestamp_groupby_quantiler   }  s    
--#&#%deDk  
U1c]+%S/*	

B ZZ$--sCj9F		#	#S2Yc
$;CV	#	WB....		
 H &+r@   c                     [         R                  " S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  ns)r   r   z
US/Pacificr   r   r   r   r   r   r      r   )r)   r   r+   to_framecopytz_localize	to_periodNaTilocrL   tilerw   r3   r,   rv   r   Tinfer_objectsr'   r2   intr4   r5   )r   r;   bygbr=   iexpr<   s           r>   #test_groupby_quantile_dt64tz_periodr     s!   
--d
>C	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   2+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   rJ   )r   r   rB   )r   r    rJ   )r   r    rB   )r   r   rJ   )r   r   rB   )r   r    rJ   )r   r    rB   )samplecat0cat1r[      rF   r   F)levelrf   r   r   ))rJ   r   )rJ   r   )rB   r   )rB   r   )rY   g333333@g@g333333@rJ   rB   )r)   rO   rn   r+   rv   r3   r,   r4   r   coreindexesfrozen
FrozenListassert_equalr'   rs   )indserr=   qindr<   expected_levelss         r>   +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''9r@   )&numpyrL   r   pandasr)   r   r   pandas._testing_testingr4   markparametrizer   r   r   r?   rQ   rb   rj   ro   r   r   r   r   rv   rM   r   r   r   r   r   r   r   r   r   r   r   r   r@   r>   <module>r     sS       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-4,& !W,,& :x*@A, B,8 9i"89- :-,",:,,:r@   