
    A>i"              	       j   S SK r S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S rS rS rS rS	 rS
 r S r!S r"S r#\RH                  RK                  S/ SQ5      S 5       r&\RH                  RK                  S/ SQ\'" \(" S5      5      /5      S 5       r)\RH                  RK                  S/ SQ/ SQ4\'" \(" S5      5      / SQ4/5      S 5       r*\RH                  RK                  SSS0S40 S4SS0S4SS0S4/5      S 5       r+\RH                  RK                  S/ S Q5      \RH                  RK                  S!S"S#/5      \RH                  RK                  SSS$/5      S% 5       5       5       r,\RH                  RK                  S&\" S'\
S(/5      \" S)\
S*/5      /S+ S,9S- 5       r-\RH                  RK                  S.S\R\                  " S S"S/5      /5      S0 5       r/\RH                  RK                  S1\" S2SS39\" / S4Q5      /\" S'SS39\" / S5Q5      //5      S6 5       r0\RH                  RK                  S.S7S8/5      \RH                  RK                  S9\\Rb                  4\Rd                  \Rf                  4\'\Rh                  4/5      S: 5       5       r5\RH                  RK                  S;/ S<Q5      S= 5       r6\RH                  RK                  S>/ S?Q5      \RH                  RK                  S;/ S@Q5      \RH                  RK                  SA/ SBQ5      SC 5       5       5       r7g)D    N)CategoricalDatetimeIndexIntervalIntervalIndexNaTSeries	TimedeltaTimedeltaIndex	Timestampcut
date_rangeisnaqcuttimedelta_range)CategoricalDtype)Dayc                     [         R                  R                  S5      R                  S5      n [	        U SSS9u  p[         R
                  " U / SQ5      nUR                  R                  R                  n[         R                  " XCS S SS	9(       d   eUR                  R                  R                  n[         R                  " XCS
S  SS	9(       d   e[        XSS9n[        R                  " X5        g )N        Tretbinsr   g      ?g      ?g      ?      ?g{Gz?)atol   )include_lowest)nprandomdefault_rngstandard_normalr   quantile
categoriesleftvaluesallcloserightr   tmassert_categorical_equal)arrlabels_ex_binsresult	ex_levelss         ]/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/tests/reshape/test_qcut.py	test_qcutr2      s    
))


"
2
24
8C S!T*IFkk#89G##**F;;vs|$777$$++F;;vqr{666C6I2    c                      [         R                  R                  S5      R                  S5      n [	        U SSS9n[        [         R                  " U5      5      S:X  d   eg )Nr   r   
   Fr,   )r   r    r!   r"   r   lenunique)r+   factors     r1   test_qcut_boundsr:   /   sK    
))


"
2
24
8C#r%(Fryy !R'''r3   c                      [         R                  R                  S5      R                  S5      n [	        U / SQ5      n[	        U S5      n[
        R                  " X5        g )Nr   d   r   r   )r   r    r!   r"   r   r)   r*   )r+   r9   expecteds      r1   test_qcut_specify_quantilesr>   6   sG    
))


"
2
23
7C#01FC|H1r3   c                      [         R                  " [        SS9   [        / SQS5        S S S 5        g ! , (       d  f       g = f)Nzedges.*uniquematch)
r   r   r   r   r   r   r   r   r   r      )pytestraises
ValueErrorr    r3   r1   test_qcut_all_bins_samerG   >   s'    	z	9+Q/ 
:	9	9s	   2
A c            	          [         R                  " S5      n [        U S5      n[        [	        SS5      [	        SS5      [	        SS5      [	        SS5      /5      n[
        R                  " UR                  U5        g )Nr5   r   MbPg      @g      @g      @	   )r   aranger   r   r   r)   assert_index_equalr$   )r&   iir0   s      r1   test_qcut_include_lowestrN   C   sg    YYr]F	faBVT"T3S$T1		
I "--3r3   c                      [         R                  R                  S5      R                  S5      n [         R                  U S S& [        U S5      n[        US S 5      R                  5       (       d   eg )Nr   r<      r   )r   r    r!   r"   nanr   r   all)r+   r/   s     r1   test_qcut_nasrS   R   s[    
))


"
2
23
7CvvCH#q\Fs  """"r3   c                      [        SS/S5      n [        SS5      [        SS5      /n[        USS9n[        R                  " X5        g )Nr   r   rI   r   Tordered)r   r   r   r)   r*   )r/   	intervalsr=   s      r1   test_qcut_indexrX   Z   sB    1a&!_F&!$hq!n5I9d3H1r3   c                 `   U " [         R                  R                  SSS5      5      n[        R                  " U5      n[        US5      nUR                  R                  nUR                  R                  nXE:  R                  5       (       d   eUSS  US S :*  R                  5       (       d   eg )Nreshapedatazcut_data.csvrP   r   r   )
ospathjoinr   loadtxtr   r$   r%   r(   rR   )datapathcut_filer+   r/   startsendss         r1   test_qcut_binning_issuesrd   b   s    YGHH
**X
C#r]F##F""DM    12J$s)#((****r3   c                  8   [        / SQ5      n [        U / SQ5      n[        R                  " [	        SS5      [	        SS5      [	        SS5      /5      n[        UR                  / SQ5      5      R                  [        SS	95      n[        R                  " X5        g )
N)	r   r   r   rB   r               )r   gZd;O?gZd;O?r   rI   gZd;O@gZd;O@ri   )	r   r   r   r   r   r   r   r   r   TrU   )
r   r   r   arrayr   takeastyper   r)   assert_series_equal)serres
exp_levelsexps       r1   test_qcut_return_intervalsrr   n   s    
,
-C
s(
)C	&%	 (5%"8(5!:LMJ !<=
>
E
E&C 3$r3   r,   )foor   Tc                     [        S5      nSn[        R                  " [        US9   [	        USU S9  S S S 5        g ! , (       d  f       g = f)Nrf   zJBin labels must either be False, None or passed in as a list-like argumentr@   r   r6   rangerC   rD   rE   r   r,   r&   msgs      r1   test_qcut_incorrect_labelsry   {   s8     1XF
VC	z	-VQv& 
.	-	-	   <
A
)abcrB   c                     [        S5      nSn[        R                  " [        US9   [	        USU S9  S S S 5        g ! , (       d  f       g = f)Nr5   z9Bin labels must be one fewer than the number of bin edgesr@   r   r6   ru   rw   s      r1   test_qcut_wrong_length_labelsr      s8     2YF
EC	z	-VQv& 
.	-	-rz   zlabels, expected)r   r   r   c                 p    [        S5      n[        USU S9n[        USS9n[        R                  " X15        g )NrB   r6   TrU   )rv   r   r   r)   r*   )r,   r=   r&   r/   s       r1   test_qcut_list_like_labelsr      s5     1XF&!F+F8T2H1r3   z
kwargs,msg
duplicatesdropzBin edges must be uniqueraisers   z(invalid value for 'duplicates' parameterc                 2   / SQnUb0  [         R                  " [        US9   [        US40 U D6  S S S 5        g [        US40 U D6n[	        [        SS5      [        SS5      /5      n[        R                  " UR                  U5        g ! , (       d  f       g = f)N)r   r   r   r   r   r   rB   r@   rB   rI   r   )	rC   rD   rE   r   r   r   r)   rL   r$   )kwargsrx   r&   r/   r=   s        r1   test_qcut_duplicates_binr      s     #F
]]:S1%f% 21 fa*6* (61"5x1~!FG
f//: 21s   B
Bzdata,start,end))      "@gsh|!@r   )        rI   r   )      "gn "r   lengthr   r   Fc                    [        U /U-  5      n[        USUS9nUc9  [        [        X5      /U-  SS9n[        U5      R	                  [        SS95      nO[        S/U-  [        R                  S9n[        R                  " Xh5        g )	Nr   r6   r(   )closedTrU   r   dtype)
r   r   r   r   rl   r   r   intpr)   rm   )	r[   startendr   r,   rn   r/   rW   r=   s	            r1   test_single_quantiler      s     $&
!C#q(F~!8E#7"86"A'R	)$++,<T,JK1#,bgg66,r3   rn   2018010120180103z0 days2 daysc                 ,    [        U R                  5      $ )N)strr   )xs    r1   <lambda>r      s    #agg,r3   )idsc                    [        U 5      n U R                  R                  U5      n [        SUS9R                  U5      n[        U S   U-
  [        R
                  U S   [        5       -
  /U R                  S9n[        U S   [        5       -
  [        R
                  U S   /U R                  S9n[        R                  " X45      n[        [        USS95      n[        U S5      n[        R                  " Xv5        g )Nr   )unitr   r   r   TrU   )r   dtas_unitr	   r   rQ   r   r   r   from_arraysr   r   r)   rm   )rn   r   tdr%   r(   rW   r=   r/   s           r1   test_qcut_natr      s     +C
&&..
C	14	 	(	(	.B3q6B;A7syyIDCFSUNBFFCF3399EE))$6Ik)T:;H#q\F6,r3   binsr   c                 j   Sn[        [        SSUSS95      n[        X 5      n[        [        [	        [        SUS9[        SUS95      [	        [        SUS9[        S	US95      [	        [        S	US9[        S
US95      /5      5      R                  [        SS95      n[        R                  " X45        g )Nz
US/Eastern20130101rB   ns)periodstzr   z2012-12-31 23:59:59.999999999)r   z2013-01-01 16:00:00z2013-01-02 08:00:00z2013-01-03 00:00:00TrU   )
r   r   r   r   r   r   rl   r   r)   rm   )r   r   rn   r/   r=   s        r1   test_datetime_tz_qcutr      s     
B
JbtD
EC#_F="E3; 3;3; 3;3;	
" fd+,# $ 6,r3   zarg,expected_bins1day)r   )z1 daysr   z3 days)z
2018-01-01z
2018-01-02z
2018-01-03c                     U R                  U5      n UR                  U5      n[        U 5      n[        USSS9u  pE[        R                  " XQ5        g )Nr   Tr   )r   r   r   r)   rL   )argexpected_binsr   rn   r/   result_binss         r1   test_date_like_qcut_binsr      sJ     ++d
C!))$/M
+CsAt4F+5r3   rg   rh   zbox, comparec                 p    U" / SQS-  5      nU" / SQS-  5      n[        X0SS9n[        X@SS9nU" Xe5        g )N)r   r   r   r   r   r5   )FTTFTr   )r   )r   )r   boxcomparedata_expecteddata_resultr=   r/   s          r1   test_qcut_bool_coercion_to_intr     sC     ",-M6;<KMF;H+7FFr3   q)r   rf   r5   c                    [         R                  " [        R                  " S5      US9n[         R                  US S S2'   [        X 5      n[        UR                  [        5      U 5      n[        R                  " X45        g )Nr<   r   r   )
pdrj   r   rK   NAr   rl   floatr)   r*   )r   any_numeric_ea_dtyper+   r/   r=   s        r1   test_qcut_nullable_integerr      sX    
((299S>)=
>CuuC!H#\FCJJu%q)H1r3   scale)r   gUUUUUU?g      1@)rB   rh   rJ   	precision)r   rB      c                     U [         R                  " US-   5      -  R                  U5      n[        X1US9n[	        X45       H  u  pVXV;   a  M   e   g )Nr   )r   )r   rK   roundr   zip)r   r   r   r+   r/   valuebuckets          r1   test_qcut_containsr   +  sM    
 299QU##
*
*9
5C#I.FS) *r3   )8r\   numpyr   rC   pandasr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr)   pandas.api.typesr   pandas.tseries.offsetsr   r2   r:   r>   rG   rN   rS   rX   rd   rr   markparametrizery   listrv   r   r   r   r   r   linspacer   r   rm   rj   r*   assert_equalr   r   r   rF   r3   r1   <module>r      s   	         - &3$(20
4#2	+
% #34' 5' OT%(^#DE' F' 	/*	eAh#22 
	&	'(
	 "<=
	 JK	
;
; S Aq6*D%=1- 2 +
- 	z3
34#x01 	  -- !R[[Aq%9!:;- <-6  FA.9:	

 z1-DE	
	66 !Q(	''(	2../	r ) j)2 *2 "45i(j1 2 ) 6r3   