
    Mh!                        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SS94\'" \(" S5      5      \" / SQSS9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      5      \" \" S+\
S,/5      5      /S- S.9S/ 5       r-\RH                  RK                  S0S\R\                  " S S$S15      /5      S2 5       r/\RH                  RK                  S3\" S4SS59\" / S6Q5      /\" S)SS59\" / S7Q5      //5      S8 5       r0\RH                  RK                  S0S9S:/5      \RH                  RK                  S;\\Rb                  4\Rd                  \Rf                  4\'\Rh                  4/5      S< 5       5       r5\RH                  RK                  S=/ S>Q5      S? 5       r6g)@    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      ?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         P/var/www/html/env/lib/python3.13/site-packages/pandas/tests/reshape/test_qcut.py	test_qcutr1      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     r0   test_qcut_boundsr9   /   sK    
))


"
2
24
8C#r%(Fryy !R'''r2   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*   r8   expecteds      r0   test_qcut_specify_quantilesr=   6   sG    
))


"
2
23
7C#01FC|H1r2   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    r2   r0   test_qcut_all_bins_samerF   >   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 )Nr4   r   MbPg      @g      @g      @	   )r   aranger   r   r   r(   assert_index_equalr#   )r%   iir/   s      r0   test_qcut_include_lowestrM   C   sg    YYr]F	faBVT"T3S$T1		
I "--3r2   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     r0   test_qcut_nasrR   R   s[    
))


"
2
23
7CvvCH#q\Fs  """"r2   c                      [        SS/S5      n [        SS5      [        SS5      /n[        USS9n[        R                  " X5        g )Nr   r   rH   r   Tordered)r   r   r   r(   r)   )r.   	intervalsr<   s      r0   test_qcut_indexrW   Z   sB    1a&!_F&!$hq!n5I9d3H1r2   c           	         U " [         R                  R                  SSS5      5      n[        R                  " U5      n[        US5      n/ n/ n[        R                  " U5       HV  nUR                  nUR                  nXx:w  d   eUR                  [        U5      5        UR                  [        U5      5        MX     [        [        US S USS  5      [        US S USS  5      5       H  u  u  pu  pX:  d   eX:  d   eX::  a  M   e   g )Nreshapedatazcut_data.csvrO   r   r   )ospathjoinr   loadtxtr   r7   r$   r'   appendfloatzip)datapathcut_filer*   r.   startsendslevsespsnepens                r0   test_qcut_binning_issuesrm   b   s    YGHH
**X
C#r]FFDyy HHIIvveAhE!H ! "F3BK$c$s)T!"X&>(2 wwwwxxr2   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   rA   r               )r   gZd;O?gZd;O?r   rH   gZd;O@gZd;O@rr   )	r   r   r   r   r   r   r   r   r   TrT   )
r   r   r   arrayr   takeastyper   r(   assert_series_equal)serres
exp_levelsexps       r0   test_qcut_return_intervalsr{   {   s    
,
-C
s(
)C	&%	 (5%"8(5!:LMJ !<=
>
E
E&C 3$r2   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)Nro   zJBin labels must either be False, None or passed in as a list-like argumentr?   r   r5   rangerB   rC   rD   r   r+   r%   msgs      r0   test_qcut_incorrect_labelsr      s8     1XF
VC	z	-VQv& 
.	-	-	   <
A
)abcrA   c                     [        S5      nSn[        R                  " [        US9   [	        USU S9  S S S 5        g ! , (       d  f       g = f)Nr4   z9Bin labels must be one fewer than the number of bin edgesr?   r   r5   r~   r   s      r0   test_qcut_wrong_length_labelsr      s8     2YF
EC	z	-VQv& 
.	-	-r   zlabels, expectedTrT   )r   r   r   c                 \    [        S5      n[        USU S9n[        R                  " X15        g )NrA   r5   )r   r   r(   r)   )r+   r<   r%   r.   s       r0   test_qcut_list_like_labelsr      s)     1XF&!F+F1r2   z
kwargs,msg
duplicatesdropzBin edges must be uniqueraiser|   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   rA   r?   rA   rH   r   )	rB   rC   rD   r   r   r   r(   rK   r#   )kwargsr   r%   r.   r<   s        r0   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   )        rH   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   r5   r'   )closedTrT   r   dtype)
r   r   r   r   ru   r   r   intpr(   rv   )	rZ   startendr   r+   rw   r.   rV   r<   s	            r0   test_single_quantiler      s     $&
!C#q(F~!8E#7"86"A'R	)$++,<T,JK1#,bgg66,r2   rw   2018010120180103z0 days2 daysc                 ,    [        U R                  5      $ )N)strr   )xs    r0   <lambda>r      s    #agg,r2   )idsc                    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   TrT   )dtas_unitr	   r   r   rP   r   r   r   from_arraysr   r   r(   rv   )rw   r   tdr$   r'   rV   r<   r.   s           r0   test_qcut_natr      s     &&..
C	14	 	(	(	.B3q6B;A7syyIDCFSUNBFFCF3399EE))$6Ik)T:;H#q\F6,r2   binsr   c                 h   Sn[        [        SSU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20130101rA   )periodstzz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:00TrT   )
r   r   r   r   r   r   ru   r   r(   rv   )r   r   rw   r.   r<   s        r0   test_datetime_tz_qcutr      s     
B
Jb9
:C#_F="E3; 3;3; 3;3;	
" fd+,# $ 6,r2   zarg,expected_bins1day)r   )z1 daysr   z3 days)z
2018-01-01z
2018-01-02z
2018-01-03c                 `    [        U 5      n[        USSS9u  p4[        R                  " XA5        g )Nr   Tr   )r   r   r(   rK   )argexpected_binsrw   r.   result_binss        r0   test_date_like_qcut_binsr     s,     +CsAt4F+5r2   rp   rq   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   r4   )FTTFTr   )r   )r   )r   boxcomparedata_expecteddata_resultr<   r.   s          r0   test_qcut_bool_coercion_to_intr     sC     ",-M6;<KMF;H+7FFr2   q)r   ro   r4   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   )
pdrs   r   rJ   NAr   ru   r`   r(   r)   )r   any_numeric_ea_dtyper*   r.   r<   s        r0   test_qcut_nullable_integerr   )  sX    
((299S>)=
>CuuC!H#\FCJJu%q)H1r2   )7r[   numpyr   rB   pandasr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr(   pandas.api.typesr   pandas.tseries.offsetsr   r1   r9   r=   rF   rM   rR   rW   rm   r{   markparametrizer   listr   r   r   r   r   r   linspacer   r   rv   rs   r)   assert_equalr   r   rE   r2   r0   <module>r      sU   	         - &3$(20
4#22
% #34' 5' OT%(^#DE' F' 	+otDE	eAhY=>22 
	&	'(
	 "<=
	 JK	
;
; S Aq6*D%=1- 2 +
- 	}j#z:;<~xh789 	  -- !R[[Aq%9!:;- <-6  FA.9:	

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