
    bMh!                     F   d dl Z d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d Zd Zd Zd Zd	 Zd
 Z d Z!d Z"d Z#ej$        %                    dg d          d             Z&ej$        %                    dg d e' e(d                    g          d             Z)ej$        %                    dg d eg dd          f e' e(d                     eg dd          fg          d             Z*ej$        %                    dddidfi dfddidfddidfg          d              Z+ej$        %                    d!g d"          ej$        %                    d#d$d%g          ej$        %                    ddd&g          d'                                     Z,ej$        %                    d( e ed)e
d*g                     e ed+e
d,g                    gd- .          d/             Z-ej$        %                    d0d ej.        d d$d1          g          d2             Z/ej$        %                    d3 ed4d5           eg d6          g ed)d5           eg d7          gg          d8             Z0ej$        %                    d0d9d:g          ej$        %                    d;eej1        fej2        ej3        fe'ej4        fg          d<                         Z5ej$        %                    d=g d>          d?             Z6dS )@    N)CategoricalDatetimeIndexIntervalIntervalIndexNaTSeries	TimedeltaTimedeltaIndex	Timestampcut
date_rangeisnaqcuttimedelta_range)CategoricalDtype)Dayc                     t           j                            d                              d          } t	          | dd          \  }}t          j        | g d          }|j        j        j        }t          j	        ||d d         d	          sJ |j        j
        j        }t          j	        ||d
d          d	          sJ t          | |d          }t          j        ||           d S )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         ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/reshape/test_qcut.py	test_qcutr1      s    
)


"
"
2
24
8
8C S!T***IFAk#88899G#*F;vwss|$777777$+F;vwqrr{666666C666I	22222    c                      t           j                            d                              d          } t	          | dd          }t          t          j        |                    dk    sJ d S )Nr   r   
   Fr+   )r   r   r    r!   r   lenunique)r*   factors     r0   test_qcut_boundsr9   /   sb    
)


"
"
2
24
8
8C#r%(((Fry  !!R''''''r2   c                      t           j                            d                              d          } t	          | g d          }t	          | d          }t          j        ||           d S )Nr   d   r   r   )r   r   r    r!   r   r(   r)   )r*   r8   expecteds      r0   test_qcut_specify_quantilesr=   6   sa    
)


"
"
2
23
7
7C#00011FC||H11111r2   c                      t          j        t          d          5  t          g dd           d d d            d S # 1 swxY w Y   d S )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	9	9 0 0+++Q///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   <A A c            	         t          j        d          } t          | d          }t          t	          dd          t	          dd          t	          dd          t	          dd          g          }t          j        |j        |           d S )Nr4   r   MbPg      @g      @g      @	   )r   aranger   r   r   r(   assert_index_equalr#   )r%   iir/   s      r0   test_qcut_include_lowestrM   C   s    Yr]]F	faBVT""T3S$T1		
 I "-33333r2   c                     t           j                            d                              d          } t           j        | d d<   t          | d          }t          |d d                                                   sJ d S )Nr   r;      r   )r   r   r    r!   nanr   r   all)r*   r.   s     r0   test_qcut_nasrR   R   so    
)


"
"
2
23
7
7CvCH#q\\Fss  """""""r2   c                      t          ddgd          } t          dd          t          dd          g}t          |d          }t          j        | |           d S )Nr   r   rH   r   Tordered)r   r   r   r(   r)   )r.   	intervalsr<   s      r0   test_qcut_indexrW   Z   sZ    1a&!__F&!$$hq!nn5I9d333H11111r2   c           	      l    | t           j                            ddd                    }t          j        |          }t          |d          }g }g }t          j        |          D ]\}|j        }|j        }||k    sJ |	                    t          |                     |	                    t          |                     ]t          t          |d d         |dd                    t          |d d         |dd                              D ]#\  \  }	}
\  }}|	|
k     sJ ||k     sJ ||
k    sJ $d S )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   sD   xYGGHHH
*X

C#r]]FFDy    HIAvvvveAhhE!HH!F3B3K$$c$ss)T!""X&>&>   R(2r BwwwwBwwwwRxxxxx r2   c                     t          g d          } t          | g d          }t          j        t	          dd          t	          dd          t	          dd          g          }t          |                    g d                                        t          d	                    }t          j	        ||           d S )
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"8(5!:L:LM J !<!<!<==
>
>
E
E&&& C 3$$$$$r2   r+   )foor   Tc                     t          d          }d}t          j        t          |          5  t	          |d|            d d d            d S # 1 swxY w Y   d S )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      s     1XXF
VC	z	-	-	- ' 'VQv&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '   AAA)abcrA   c                     t          d          }d}t          j        t          |          5  t	          |d|            d d d            d S # 1 swxY w Y   d S )Nr4   z9Bin labels must be one fewer than the number of bin edgesr?   r   r5   r~   r   s      r0   test_qcut_wrong_length_labelsr      s     2YYF
EC	z	-	-	- ' 'VQv&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'r   zlabels, expectedTrT   )r   r   r   c                 r    t          d          }t          |d|           }t          j        ||           d S )NrA   r5   )r   r   r(   r)   )r+   r<   r%   r.   s       r0   test_qcut_list_like_labelsr      s<     1XXF&!F+++F11111r2   z
kwargs,msg
duplicatesdropzBin edges must be uniqueraiser|   z(invalid value for 'duplicates' parameterc                 D   g d}|Dt          j        t          |          5  t          |dfi |  d d d            d S # 1 swxY w Y   d S t          |dfi | }t	          t          dd          t          dd          g          }t          j        |j        |           d S )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11 	& 	&%%f%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& fa**6** (61"5"5x1~~!FGG
f/:::::s   >AAzdata,start,end))      "@gsh|!@r   )        rH   r   )      "gn "r   lengthr   r   Fc                 d   t          | g|z            }t          |d|          }|Tt          t          ||          g|z  d          }t          |                              t          d                    }nt          dg|z  t          j                  }t          j	        ||           d S )	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~!8E3#7#7"86"A'RRR	)$$++,<T,J,J,JKK1#,bg66668,,,,,r2   rw   2018010120180103z0 days2 daysc                 *    t          | j                  S )N)strr   )xs    r0   <lambda>r      s    #ag,, r2   )idsc                 0   | j                             |          } t          d|                              |          }t          | d         |z
  t          j        | d         t                      z
  g| j                  }t          | d         t                      z
  t          j        | d         g| j                  }t          j	        ||          }t          t          |d                    }t          | d          }t          j        ||           d S )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7syIIIDCFSUUNBFCF339EEEE)$66Ik)T:::;;H#q\\F68,,,,,r2   binsr   c                    d}t          t          dd|                    }t          ||           }t          t          t	          t          d|          t          d|                    t	          t          d|          t          d|                    t	          t          d|          t          d	|                    g                                        t          d
                    }t          j	        ||           d S )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99
:
:C#t__F="EEE3;;;  3;;;3;;;  3;;;3;;; 	
 	
 " fd+++,,# $ 68,,,,,r2   zarg,expected_bins1day)r   )z1 daysr   z3 days)z
2018-01-01z
2018-01-02z
2018-01-03c                 x    t          |           }t          |dd          \  }}t          j        ||           d S )Nr   Tr   )r   r   r(   rK   )argexpected_binsrw   r.   result_binss        r0   test_date_like_qcut_binsr     sA     ++CsAt444FK+}55555r2   rp   rq   zbox, comparec                      |g ddz            } |g ddz            }t          || d          }t          || d          } |||           d S )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     sw     C",--M#666;<<KM4F;;;H+t777FGFHr2   q)r   ro   r4   c                    t          j        t          j        d          |          }t           j        |d d d<   t          ||           }t          |                    t                    |           }t          j	        ||           d S )Nr;   r   r   )
pdrs   r   rJ   NAr   ru   r`   r(   r)   )r   any_numeric_ea_dtyper*   r.   r<   s        r0   test_qcut_nullable_integerr   )  sq    
(29S>>)=
>
>
>CuC!H#q\\FCJJu%%q))H1111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      s   				                                                - - - - - - & & & & & &3 3 3$( ( (2 2 20 0 0
4 4 4# # #2 2 2  2
% 
% 
% #3#3#344' ' 54' OOOTT%%((^^#DEE' ' FE' 	++oootDDDE	eeAhhYYY===> 2 2 2 
	&	'(
	 "<=
	 JK	 
; 
; 
; SSS  Aq6**D%=11- - 21 +* 
- 	}}j#z:;;<<~~xh78899 	   - - - ![R[Aq%9%9!:;;- - <;-6  OFA...N999::	

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