
    dˎ                         d dl Zd dlZd dlmZmZ d dlZd dlmZm	Z	m
Z
mZ d dlmZ  ej        ddgddggd 	          d
             Z G d d          Z G d d          ZdS )    N)np_percentile_argnamenp_version_under1p21)	DataFrameIndexSeries	Timestamplinearsinglenearesttablec                 ,    d                     |           S )N-)joinxs    d/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/frame/methods/test_quantile.py<lambda>r      s    sxxPQ{{     paramsidsc                     | j         S )z.(interpolation, method) arguments for quantile)param)requests    r   interp_methodr      s    
 =r   c                      e Zd Zej                            d e eej	        
                    ddg                     eej	        
                    ddg                    d           eddgd	
          g e eg dd                     edgd	
          gg          d             Zd Zd Zd Zd Zd Zd 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"d#dd	d#gd	dgg          d$             Zd% Zd& Zd' Zd( Z d) Z!d* Z"d+ Z#d, Z$d- Z%d. Z&d/ Z'd0S )1TestDataFrameQuantilezdf,expected            )r   r         ?      @      ?name)g        N      ?       @Sparse[float]dtyper'   c                     |                                 }|                    d          }t          j        ||           d S )Nr)   )quantileastypetmassert_series_equal)selfdfexpectedresults       r   test_quantile_sparsez*TestDataFrameQuantile.test_quantile_sparse   s;    * ???33
vx00000r   c                 8  	 |\  }}|		                     ddd||          }t          	fd	j        D             	j        d          }|dk    rt          j        ||           njt          j        |j        |j                   |j                            t          j
                            |d	                     |j        |j        k    sJ 	                     d
dd||          }t          	fd	j        D             	j        d
          }|dk    rt          j        ||           d S t          j        |j        |j                   |j                            t          j
                            |d	                     |j        |j        k    sJ d S )N皙?r   Taxisnumeric_onlyinterpolationmethodc                 F    g | ]}t          j        |         d           S )
   )np
percentile).0colr2   s     r   
<listcomp>z7TestDataFrameQuantile.test_quantile.<locals>.<listcomp>>   s)    >>>CR]2c7B''>>>r   indexr&   r	   z%Name set incorrectly for arraymanagerreason?r   c                 P    g | ]"}t          j        j        |         d           #S )Z   )r?   r@   loc)rA   dater2   s     r   rC   z7TestDataFrameQuantile.test_quantile.<locals>.<listcomp>R   s+    BBBR]26$<,,BBBr   )r-   r   columnsr/   r0   assert_index_equalrE   node
add_markerpytestmarkxfailr&   )
r1   datetime_framer   using_array_managerr   r;   r<   r4   r3   r2   s
            @r   test_quantilez#TestDataFrameQuantile.test_quantile5   s    !.vad-PV  
 
 >>>>2:>>>*
 
 

 H$$"684444!&,???L##!!'0W "    
 ;(-////ad-PV  
 
 BBBBBBB(
 
 

 H$$"6844444!&,???L##!!'0W "    
 ;(-//////r   c                     |\  }}t          g g d                              ddd||          }t          j        |d                   rt          j        |d                   sJ d S )Nr   yr7   r   Tr8   r   rY   )r   r-   r?   isnan)r1   r   r;   r<   qs        r   
test_emptyz TestDataFrameQuantile.test_emptyb   sw     -vBR(())22ad-PV 3 
 
 x#4BHQsV$4$444444r   c                    |\  }}t          g dg dd          }|                    dd||          }|                    d                              d          }|dk    r"|dz                       t
          j                  }|d	k    r:|r8|j                            t          j
                            d
                     t          j        ||           d S )N)Ar^   Br_   )r   r   r    r!   )col1col2r$   Tr:   r;   r<   r:   r   r   Axis name incorrectly set.rF   )r   r-   medianrenamer.   r?   int64rO   rP   rQ   rR   rS   r/   r0   )	r1   r   r   rU   r;   r<   r2   rsxps	            r   test_non_numeric_exclusionz0TestDataFrameQuantile.test_non_numeric_exclusioni   s     -v 4 4 4lllKKLL[[d-  
 
 YYDY))0055I%%s(""28,,BW!4L##!!)E!FF   	r2&&&&&r   c                    |\  }}t          g dg ddg d          }|                    dd||          }t          g dg dd	          }|d
k    r|                    t          j                  }|dk    r:|r8|j                            t          j	        
                    d                     t          j        ||           |                    ddgd||          }t          ddgddgddgdddg          }|d
k    rQ|j        dd d fxx         dz  cc<   |j        dd d fxx         dz  cc<   |                    t          j                  }t          j        ||d           d S )Nr   r   r    r   r    r!   r^   r_   rE   r$   r   r9   r;   r<   r"         @r#   rD   r   r   rd   rF         ?r"   g      ?rr   g      @r#   g      @r         ?T)check_index_type)r   r-   r   r.   r?   rg   rO   rP   rQ   rR   rS   r/   r0   ilocassert_frame_equal	r1   r   r   rU   r;   r<   r2   r4   r3   s	            r   	test_axiszTestDataFrameQuantile.test_axisx   s    -vYYYYYY77yyyIIISqfUU///EEEI%%rx00HW!4L##!!)E!FF   	vx000$Ka}V  
 
 ddd<<S$K
 
 
 I%%M!QQQ$3&M!QQQ$4'rx00H
fhFFFFFFr   c                    |\  }}t          g dg dg          }|                    ddd||          }t          ddgd	dgd
          }|dk    r|                    t          j                  }|dk    r:|r8|j                            t          j	        
                    d                     t          j        ||           d S )Nrl   )abr!   r$   r   Tr8         @      @r   rD   r   r   rd   rF   )r   r-   r   r.   r?   rg   rO   rP   rQ   rR   rS   r/   r0   rx   s	            r   test_axis_numeric_only_truez1TestDataFrameQuantile.test_axis_numeric_only_true   s     !.v			===122ad-PV  
 
 3*QF===I%%rx00HW!4L##!!)E!FF   	vx00000r   c                 z   |\  }}t          j        ddd          }t          |          }t          |          }|                    d||          }	t          dgdd	
          }
|dk    r:|r8|j                            t          j        	                    d                     t          j        |	|
           d S )N
2016-01-01r    
US/PacificperiodstzFrb   z2016-01-02 00:00:00r$   datetime64[ns, US/Pacific])r&   r+   r   rd   rF   )pd
date_ranger   r   r-   rO   rP   rQ   rR   rS   r/   r0   )r1   r   r   rU   r;   r<   dtiserr2   r4   r3   s              r   test_quantile_date_rangez.TestDataFrameQuantile.test_quantile_date_range   s     -vmL!EEESkks^^mF  
 
 "##5Q
 
 
 W!4L##!!)E!FF   	vx00000r   c                 "   |\  }}t          g dg dt          j        dd          g dd          }|                    dd	d
||          }t	          g dd          }|dk    r|dz  }|dk    r:|r8|j                            t          j        	                    d                     t          j        ||           d}	t          j        t          |	          5  |                    dd	d           d d d            d S # 1 swxY w Y   d S )Nrl   r(   r}   r~   20130101r    r   )foobarbaz)r^   r_   CDr$   r   Tr8   rq   r%   r   r   rd   rF   z>'<' not supported between instances of 'Timestamp' and 'float'matchFr9   r:   )r   r   r   r-   r   rO   rP   rQ   rR   rS   r/   r0   raises	TypeError
r1   r   r   rU   r;   r<   r2   r4   r3   msgs
             r   test_quantile_axis_mixedz.TestDataFrameQuantile.test_quantile_axis_mixed   s    -vYY$__]:q999***	 
 
 ad-PV  
 
 ///444I%%OHW!4L##!!)E!FF   	vx000 O]9C000 	9 	9KK!%K888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   DDDc                    |\  }}|dk    r:|r8|j                             t          j                            d                     t          g dg ddg d          }|                    dd	||
          }t          ddgddgd          }|dk    r|                    t          j
                  }t          j        ||           |                    dd||
          }|dk    r|                    t          j
                  }t          j        ||           |                    dd||
          }t          g dg dd          }|dk    r|                    t          j
                  }t          j        ||           |                    dd||
          }t          j        ||           d}	t          j        t          |	          5  |                    dd||
           d d d            n# 1 swxY w Y   d}	t          j        t          |	          5  |                    dd           d d d            d S # 1 swxY w Y   d S )Nr   rd   rF   rl   rm   rn   ro   r$   r   rp   r(   r}   r^   r_   rD   r   rE   r   rq   rM   z*No axis named -1 for object type DataFramer   r7   z.No axis named column for object type DataFramecolumnr9   )rO   rP   rQ   rR   rS   r   r-   r   r.   r?   rg   r/   r0   r   
ValueErrorr   s
             r   test_quantile_axis_parameterz2TestDataFrameQuantile.test_quantile_axis_parameter   s    -vW!4L##!!)E!FF   YYYYYY77yyyIIISqfUU3*S#JSAAAI%%rx00H
vx000;;g]6  
 
 I%%rx00H
vx000SqfUU///EEEI%%rx00H
vx000i}V  
 
 	vx000:]:S111 	R 	RKK"M&KQQQ	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R>]:S111 	, 	,KK(K+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s$   G66G:=G:II
Ic                    t          g dg ddg d          }|                    ddd          }t          g dg dd	          }t          j        ||           t          j        t          j        g dg dg          dfd
dit          di}t          |g ddd          }t          j        ||           t          g dg ddg d          }|                    ddd          }t          g dg dd	          }t          j        ||           t          j        t          j        g dg dg          dfd
dit          di}t          |g ddd          }t          j        ||           |                    ddgdd          }t          ddgddgddgdddg          }t          j	        ||           t          g g d          }|                    ddd          }t          j
        |d                   rt          j
        |d                   sJ t          g dg dg dgg d          }|                    d dgd!"          }t          g d#g d$gd dgg d%          }t          j	        ||           d S )&Nrl   rm   rn   ro   r$   r   r   r9   r;   rD   r9   r   rg   rE   r&   r+   r'   r(   r}   r   float64rs   lowerr'   r(   r}   rX   r7   higherr   rY   r   r   r   r   r   r   r    r    r    r{   r|   crM   rt   midpoint)r;   r"   r"   r"   r(   r(   r(   rE   rM   )r   r-   r   r/   r0   r?   r@   arrayr   rw   rZ   )r1   r2   r4   r3   expr[   s         r   test_quantile_interpolationz1TestDataFrameQuantile.test_quantile_interpolation   s)    YYYYYY77yyyIIISq	BB)))9993???
vx000 mHiii+,,
 
 
 %i0	
 
 #YYYSHHH
vx000 ___???CC999UUUSq	BB///EEE
vx000mHooo788
 
 
 %i0	
 
 #YYYS	JJJ
vx000 c4[qHHc
SzsCj99#t
 
 
 	fh/// Rb))**KK!8K<<x#4BHQsV$4$4444 			999iii8///RRRdC[
CC __ooo.+#OO
 
 

 	fh/////r   c                     |}|                     dddd          }|d         t          j        |d         d          k    sJ d S )Nr7   r   Tr	   )r9   r:   r;   r^   r>   )r-   r?   r@   )r1   rT   r2   r[   s       r   $test_quantile_interpolation_datetimez:TestDataFrameQuantile.test_quantile_interpolation_datetime7  sM     KK!$hKOOvr#w33333333r   c                 *   |}|                     d          }|d         t          j        |d         d          k    sJ |                     ddd          }|d         t          j        |d         d          k    sJ t          j        ||           d S )Nr7   r^   r>   r   r	   r   )r-   r?   r@   r/   r0   )r1   	int_framer2   r[   q1s        r   test_quantile_interpolation_intz5TestDataFrameQuantile.test_quantile_interpolation_int?  s     KKvr#w333333 [[1H[==#w"-3444444
q"%%%%%r   c                    |\  }}t          g dg dg dgg d          }|                    ddg||          }t          g d	g d
gddgg d          }|dk    r|                    t          j                  }|dk    r:|r8|j                            t          j        	                    d                     t          j        ||           d S )Nr   r   r   r   r   rt   r$   r;   r<   r   r   r   r   r   rd   rF   r   r-   r.   r?   rg   rO   rP   rQ   rR   rS   r/   rw   rx   s	            r   test_quantile_multiz)TestDataFrameQuantile.test_quantile_multiL  s     -v			999iii8///RRRdC[fUU__ooo.+#OO
 
 

 I%%rx00HW!4L##!!)E!FF   	fh/////r   c                    |\  }}t          g dg dg dgg d          }|                    ddgd||	          }t          g d
gdz  ddgg d          }|dk    r|                    t          j                  }|dk    r:|r8|j                            t          j        	                    d                     t          j        ||           d S )Nr   r   r   r   r   rt   r$   r   rp   r   r   )r   r   r   r   r   r   rd   rF   r   rx   s	            r   test_quantile_multi_axis_1z0TestDataFrameQuantile.test_quantile_multi_axis_1]  s    -v			999iii8///RRR3Ka}V  
 
 __!$iii
 
 
 I%%rx00HW!4L##!!)E!FF   	fh/////r   c                    |\  }}t          g g d                              ddgd||          }t          t          j        t          j        gt          j        t          j        gdddg          }t	          j        ||           d S )NrX   r7   rH   r   rp   ro   )r   r-   r?   nanr/   rw   )r1   r   r;   r<   r4   r3   s         r   test_quantile_multi_emptyz/TestDataFrameQuantile.test_quantile_multi_emptyn  s     -v"--..77#JQmF 8 
 
 626""&"&)9::3*
 
 
 	fh/////r   c                    t          t          j        ddg          ddgd          }|                    dd          }t	          d	gd
gd          }t          j        ||           |                    dd          }t	          t          d          d	gdd
gd          }t          j        ||           |                    dgd          }t          t          d          d	ggdgdd
g          }t          j        ||           t          j        ddg          |d<   |ddg                             ddd          }t	          t          d          t          d          gddgd          }t          j        ||           |ddg                             dgdd          }t          t          d          t          d          ggdgddg          }t          j        ||           |ddg                             dd          }t	          g g t          j
        d          }t          j        ||           |ddg                             dgd          }t          dgg           }t          j        ||           d S )N20102011r      r{   r|   r$   Trc   rr   r|   rD   Fz2010-07-02 12:00:00r{   r   2012r   r   r   z2011-07-02 12:00:00rE   r+   r&   )r   r   to_datetimer-   r   r/   r0   r   rw   r?   r   )r1   r2   r4   r3   s       r   test_quantile_datetimez,TestDataFrameQuantile.test_quantile_datetimex  s   R^VV,<==QFKKLL St443%u3777
vx000 Su55,--s3C:C
 
 
 	vx000 cU77-..45cUSRUJ
 
 
 	fh/// .&&!1223S#J((15(II,--y9N/O/OPa&
 
 

 	vx000S#J((#QU(KK-..	:O0P0PQR%F
 
 

 	fh/// S#J((4(@@"BbjsCCC
vx000S#J((#T(BBC5"555
fh/////r   r+   )datetime64[ns]r   timedelta64[ns]z	Period[D]c                 >   |\  }}t          ddg|          }|                    ddd||          }t          g g d|          }t          j        ||           |                    dgdd||          }t          dgg 	          }t          j        ||           d S )
Nr{   r|   rM   r+   r$   r   Fr8   r   r   )r   r-   r   r/   r0   rw   )r1   r+   r   r;   r<   r2   resr3   s           r   test_quantile_dt64_emptyz.TestDataFrameQuantile.test_quantile_dt64_empty  s     !.vSz777kkae=QW  
 
 "BS>>>
sH--- kkE'  
 
 C5"555
c8,,,,,r   invalidr   c                     d}|\  }}t          j        t          |          5  |                    |||           d d d            d S # 1 swxY w Y   d S )Nz2percentiles should all be in the interval \[0, 1\]r   r   )rQ   r   r   r-   )r1   r   rT   r   r   r;   r<   s          r   test_quantile_invalidz+TestDataFrameQuantile.test_quantile_invalid  s    D -v]:S111 	Y 	Y##G=QW#XXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Ys   A		AAc           	         |\  }}|dk    r:|r8|j                             t          j                            d                     t          t          d          t          d          t          d          gt          dd          t          dd          t          dd          gt          j        d	          t          j        d
          t          j        d          gd          }|	                    dd||          }t          t          d          t          dd          t          j        d
          gdg d          }t          j        ||           |	                    dgd||          }t          t          d          t          dd          t          j        d
          ggdgg d          }t          j        ||           d S )Nr   rd   rF   
2011-01-01
2011-01-02
2011-01-03
US/Easternr   1 days2 days3 daysr^   r_   r   r$   Frb   r&   rE   r   )rO   rP   rQ   rR   rS   r   r   r   	Timedeltar-   r   r/   r0   rw   	r1   r   r   rU   r;   r<   r2   r   r   s	            r   test_quantile_boxz'TestDataFrameQuantile.test_quantile_box  s    -vW!4L##!!)E!FF    l++l++l++ l|<<<l|<<<l|<<< L**L**L** 
 
( kke=  
 
 ,'',<888X&&
 !//
 
 
 	sC(((kkE]6  
 
  l++l|<<<L** %#OO

 

 

 	c3'''''r   c                    t          t          d          t          j        t          d          t          d          gt          d          t          d          t          j        t          d          gt          dd          t          j        t          dd          t          dd          gt          dd          t          dd          t          j        t          dd          gt          j        d          t          j        d          t          j        d          t          j        gt          j        t          j        d          t          j        d          t          j        d          gd	t          d
                    }|                    dd          }t          t          d          t          d          t          dd          t          dd          t          j        d          t          j        d          gdt          d
                    }t          j	        ||           |                    dgd          }t          t          d          t          d          t          dd          t          dd          t          j        d          t          j        d          ggdgt          d
                    }t          j
        ||           d S )Nr   r   r   r   r   r   r   r   )r^   r{   r_   r|   r   r   AaBbCcr   r$   Frc   r   r   )r   r   r   NaTr   listr-   r   r/   r0   rw   )r1   r2   r   r   s       r   test_quantile_box_natz+TestDataFrameQuantile.test_quantile_box_nat  s    l++Fl++l++	 l++l++Fl++	 l|<<<Fl|<<<l|<<<	 l|<<<l|<<<Fl|<<<	 L**L**L**F	 FL**L**L**	?% %L NNO(
 (
 (
T kk#Ek22,'','',<888,<888X&&X&& x..
 
 
 	sC(((kk3%ek44 l++l++l|<<<l|<<<L**L**	 %NN
 
 
 	c3'''''r   c                 b   |\  }}|dk    r:|r8|j                             t          j                            d                     t          t          j        dd          t          j        dd          d          }t          j        |j	        d<   |
                    d||	          }t          d
|dk    rdnd
gddgd          }t          j        ||           |
                    ddg||	          }t          d
dg|dk    rddgnd
dgdddg          }t          j        ||           |
                    dd||          }t          t          j        dd          d          }t          j        ||           |
                    ddgd||          }t          t          j        dd          gdz  ddg          }|dk    rt          j        |j	        d<   t          j        ||           t          j        |d<   |
                    d||	          }t          d
t          j        gddgd          }t          j        ||           |
                    ddg||	          }t          d
dgt          j        t          j        gdddg          }t          j        ||           d S )Nr   rd   rF   r   g      @r   )r   r   r$   r   r}   r	   rr   r{   r|   rD   rs   r~   g      
@ro   rp   r'   r%   r   r   )r   r   )rO   rP   rQ   rR   rS   r   r?   aranger   rv   r-   r   r/   r0   rw   r   s	            r   test_quantile_nanz'TestDataFrameQuantile.test_quantile_nanT  s    -vW!4L##!!)E!FF   RYq#..RYq#5F5FGGHHkk#]6kJJ(22##<S#JUX
 
 
 	sC(((kk3+]6kRR3Z$1X$=$=c4[[C:  +
 
 
 	c3'''kk#A]6kRRRYsC((s333
sC(((kk$Ka}V  
 
 3,,-1#tEEEI%% fCHUO
c3''' &3kk#]6kJJc26]3*3???
sC(((kk3+]6kRRsCj/?@@dTTT
c3'''''r   c                 T   |\  }}|dk    r:|r8|j                             t          j                            d                     t          dt          j        t          j        t          j        gi          }|                    dd||          }t          t          j        gdgd          }t          j        ||           |                    dgd||          }t          dt          j        gidg	          }t          j        ||           t          t          d
          t          d          t          d          gt          j        t          j        t          j        gd          }|                    dd||          }t          t          d          t          j        gddgd          }t          j        ||           |                    dgd||          }t          t          d          t          j        ggdgddg          }t          j        ||           d S )Nr   rd   rF   r{   r$   Frb   rD   ro   z
2012-01-01z
2012-01-02z
2012-01-03r   r|   r   )rO   rP   rQ   rR   rS   r   r   r   r-   r   r/   r0   rw   r   r   s	            r   test_quantile_natz'TestDataFrameQuantile.test_quantile_nat  s:    -vW!4L##!!)E!FF   bfbfbf5677kke=  
 
 bfXcU555
sC(((kkE]6  
 
 rvhu555
c3'''  l++l++l++
 fbfbf- 	
 	
 kke=  
 
 i--rv6sCjsSSS
sC(((kkE]6  
 
 %%rv./usCj
 
 
 	c3'''''r   c                    |\  }}t          ddgd          }|                    d||          }t          t          j        t          j        gddgd          }t          j        ||           |                    dg||          }t          t          j        t          j        ggddgdg          }t          j        ||           |                    dd	||
          }t          g g dd          }t          j        ||           |                    dgd	||
          }t          g dg          }t          j        ||           d S )Nr{   r|   r   r   r$   r   rD   )rM   rE   r   rp   r   )r   r-   r   r?   r   r/   r0   rw   r1   r   r;   r<   r2   r   r   s          r   "test_quantile_empty_no_rows_floatsz8TestDataFrameQuantile.test_quantile_empty_no_rows_floats  sI    -vSz;;;kk#]6kJJbfbf%c3ZcBBB
sC(((kk3%}VkLL"&"&)*S#JseLLL
c3'''kk#A]6kRRRr===
sC(((kk3%a}VkTT3%000
c3'''''r   c                     |\  }}t          ddgd          }|                    d||          }t          t          j        t          j        gddgd          }t          j        ||           d S )Nr{   r|   rg   r   r$   r   rD   )r   r-   r   r?   r   r/   r0   r   s          r    test_quantile_empty_no_rows_intsz6TestDataFrameQuantile.test_quantile_empty_no_rows_ints  ss     -vSz999kk#]6kJJbfbf%c3ZcBBB
sC(((((r   c                    |\  }}t          ddgd          }|                    dd||          }t          t          j        t          j        gddgdd          }t          j        ||           |d         j                            d	          |d<   |                    dd||          }|	                    t                    }t          j        ||           |d         j                            d	          |d<   |                    dd||          }|	                    |d         j                  }t          j        ||           d S )
Nr{   r|   r   r   r$   Frb   r   z
US/Central)r   r-   r   r   r   r/   r0   dttz_localizer.   objectr+   r   s          r    test_quantile_empty_no_rows_dt64z6TestDataFrameQuantile.test_quantile_empty_no_rows_dt64  s^    -vSz1ABBBkke=  
 
 VRVS#J6FS
 
 
 	sC((( S'*((663kke=  
 
 jj  
sC((( S'*((663kke=  
 
 jjC''
sC(((((r   c                    |\  }}t          t          j        dd                    }d|j        _        |                    dd||          }t          g g dt          j                  }d|j	        _        t          j        ||           |                    dgd||          }t          g dgg 	          }d|j        _        t          j        ||           d S )
Nz1/1/18r   r   zcaptain tightpantsr$   Trb   r   r   )r   r   r   rM   r&   r-   r   r?   r   rE   r/   r0   rw   )r1   r   r;   r<   r2   r4   r3   s          r   test_quantile_empty_no_columnsz4TestDataFrameQuantile.test_quantile_empty_no_columns  s     -vr}Xq999::.
d-  
 
 "BS
CCC2
vx000EM&  
 
 Rub999 4
fh/////r   c                    |\  }}t          t          j                            dd          g d          }|d         dz  |d<   |d         }|st	          |j        j                  dk    sJ |                    d||	           |r>d
|j        d<   |j        d         |d         d         k    sJ |j        d         d
k    sJ d S d
|j	        d<   |j        d         |d         d         k    sJ |j        d         d
k    sJ d S )Nr!   r    r   r   r^   r   r   Frb   c   r   )r   r   )
r   r?   randomrandnlen_mgrblocksr-   rv   values)r1   rU   r   using_copy_on_writer;   r<   r2   r   s           r   test_quantile_item_cachez.TestDataFrameQuantile.test_quantile_item_cache  s!    !.vryq!,,oooFFFS'A+3g" 	,rw~&&!++++
mFSSS 	'CHQK74=BsGAJ....74=B&&&&&&CJqM74=BsGAJ....74=B&&&&&&r   c                     t          j        t          d          5  t          t	          d                                        dd           d d d            d S # 1 swxY w Y   d S )NzInvalid method: foor   r   r$   r   )r<   rQ   r   r   r   ranger-   r1   s    r   test_invalid_methodz)TestDataFrameQuantile.test_invalid_method  s    ]:-BCCC 	< 	<eAhh((U(;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   2AA"Ac                     t          j        t          d          5  t          t	          d                                        ddd           d d d            d S # 1 swxY w Y   d S )NzInvalid interpolation: foor   r   r$   r   r   )r<   r;   r  r	  s    r    test_table_invalid_interpolationz6TestDataFrameQuantile.test_table_invalid_interpolation  s    ]:-IJJJ 	S 	SeAhh((WE(RRR	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	Ss   3AA #A N)(__name__
__module____qualname__rQ   rR   parametrizer   r   r   arraysSparseArrayr5   rV   r\   rj   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r   r   r   r   r      s        [ 	!6")"7"7A"?"?@@!6")"7"7A"?"?@@   Sz,,, 	&&!6!6!6oNNNOOu3'''	
 $1 1% $1+0 +0 +0Z5 5 5' ' 'G G G41 1 1$1 1 1(9 9 98(, (, (,T70 70 70r4 4 4& & &0 0 0"0 0 0"0 0 0/0 /0 /0b [	
 	
 	
 - - -, [YQb	C8(DEEY Y FEY7( 7( 7(rJ( J( J(X/( /( /(b-( -( -(^( ( (*) ) )) ) ):0 0 0&' ' ',< < <S S S S Sr   r   c                      e Zd Z ej         ej        ej                             e	d                    ej
                            d                     ej        ddd           ej        ddd	
           ej        dd           ej         ej        d          d           ej         ej        d          d          gd           d             Zej        d             Zd Zd Zd Zd Zd Zej
                            ddg g dgdg g dgdej        ej        gddgdgdej        ej        gddgdgg          d              Zej
                            d!d"g g dd"gd"ej        ej        gddgdd"gg          d#             Zej
                            d$ej        ej        g e	d%          dgg g dgg          d&             Zd'S )(TestQuantileExtensionDtyper>   z#raises when trying to add IntervalsrF   )marksr   	   r   )r   freqr   r   z1 Dayr   Int64r*   Float64c                 *    t          | j                  S )N)strr+   r   s    r   r   z#TestQuantileExtensionDtype.<lambda>0  s    c!'ll r   r   c                 "    |j         }d|_        |S Nr^   )r   r&   )r1   r   idxs      r   rE   z TestQuantileExtensionDtype.index$  s      m
r   c                 r     ||                                           }|t          u rd|_        ndg|_        |S r  )copyr   r&   rM   )r1   rE   frame_or_seriesobjs       r   r#  zTestQuantileExtensionDtype.obj8  sA     oe$$))++f$$CHH%CK
r   c                     t          |t                    r|                    |          }n|                    |d          }|S )NFrc   )
isinstancer   r-   )r1   r#  qsr4   s       r   compute_quantilez+TestQuantileExtensionDtype.compute_quantileC  sA    c6"" 	:\\"%%FF\\"5\99Fr   c                 f   t          j        t          |          t           j                  }t           j                            |           |j        |         }g d}|                     ||          }t          rM|j	        dk    rBd}t          j                            |t                    }|j                            |           |j	        }	|j	        dk    rd}	t!          |d         |d	         |d
         g|	|d          }
 t#          |          |
          }
t%          j        ||
           d S )Nr*   r$   r   r   r   Cfailed on Numpy 1.20.3; TypeError: data type 'Int64' not understoodrG   r   r  r  r!   r   r   r^   r+   rE   r&   )r?   r   r   intpr   shufflerv   r'  r   r+   rQ   rR   rS   r   rO   rP   r   typer/   assert_equalr1   r   r#  rE   indexerr&  r4   r   rR   	exp_dtyper3   s              r   test_quantile_eaz+TestQuantileExtensionDtype.test_quantile_eaJ  s"   )CJJbg666
	'"""hw[[&&sB// 	*EK3D$D$DWC;$$C	$BBDL##D)))K	;'!!!I 1XuQxr+9BS
 
 
 499X&&
)))))r   c                    |j         |j        d<   |j         |j        d<   t          j        t	          |          t          j                  }t          j                            |           |j        |         }g d}|                     ||          }t          |d         |d         |d         g|j
        |d	          } t          |          |          }t          j        ||           d S )
Nr   r   r*   r)  r!   r   r^   r,  )	_na_valuerv   r?   r   r   r-  r   r.  r'  r   r+   r/  r/   r0  )r1   r#  rE   r2  r&  r4   r3   s          r   test_quantile_ea_with_naz3TestQuantileExtensionDtype.test_quantile_ea_with_nae  s    o )CJJbg666
	'"""hw[[&&sB// 1XuQxr+5;bs
 
 
 499X&&
)))))r   c                    |j         |j        d d <   t          j        |j        |j        k              sJ t          j        t          |          t          j                  }t          j	        
                    |           |j        |         }g d}|                     ||          }|                    g dd|j                   }t          ||d          } t          |          |          }t          j        ||           d S )Nr*   r)  )r   r   r   T)
allow_fill
fill_valuer^   rD   )r7  rv   r?   alldtypesr+   r   r   r-  r   r.  r'  taker   r/  r/   r0  )r1   r   r#  rE   r2  r&  r4   r3   s           r   test_quantile_ea_all_naz2TestQuantileExtensionDtype.test_quantile_ea_all_nax  s    ovcjEK/00000 )CJJbg666
	'"""hw[[&&sB//::lllt:XX("3777499X&&
)))))r   c                 d   t          j        t          |          t           j                  }t           j                            |           |j        |         }d}|                     ||          }t          rM|j	        dk    rBd}t          j                            |t                    }|j                            |           |j	        }	|j	        dk    rd}	t!          d|d	         i|	d
          }
t#          |t                     r|
d         }
||
k    sJ d S t%          j        ||
           d S )Nr*   r$   r   r*  r+  r  r  r^   r!   )r+   r&   )r?   r   r   r-  r   r.  rv   r'  r   r+   rQ   rR   rS   r   rO   rP   r   r%  r/   r0   r1  s              r   test_quantile_ea_scalarz2TestQuantileExtensionDtype.test_quantile_ea_scalar  s&    )CJJbg666
	'"""hw&&sB// 	*EK3D$D$DWC;$$C	$BBDL##D)))K	;'!!!I3a/EEEc6"" 	5}HX%%%%%%"6844444r   z*dtype, expected_data, expected_index, axisr   r   rg   r{   r|   r   c                     t          ddg|          }|                    d|          }t          |dt          |          d          }t	          j        ||           d S )Nr{   r|   r   r$   r   r   r&   rE   r+   r   r-   r   r   r/   r0   )r1   r+   expected_dataexpected_indexr9   r2   r4   r3   s           r   test_empty_numericz-TestQuantileExtensionDtype.test_empty_numeric  so     Sz777St,,5+@+@	
 
 
 	vx00000r   z:dtype, expected_data, expected_index, axis, expected_dtyper   c                     t          ddg|          }|                    d|d          }t          |dt          |          |          }t	          j        ||           d S )Nr{   r|   r   r$   Fr   rC  rD  )	r1   r+   rE  rF  r9   expected_dtyper2   r4   r3   s	            r   test_empty_datelikez.TestQuantileExtensionDtype.test_empty_datelike  sq     Sz777St%@@5+@+@
 
 
 	vx00000r   z#expected_data, expected_index, axisr   c                 >   t          t          j        ddg          ddgt          j        ddg          d          }|ddg                             d	|d
          }t	          |d	t          |          t          j                  }t          j	        ||           d S )Nr   r   r   r   r   r   r{   r   r$   Tr   rC  )
r   r   r   r-   r   r   r?   r   r/   r0   )r1   rE  rF  r9   r2   r4   r3   s          r   test_datelike_numeric_onlyz5TestQuantileExtensionDtype.test_datelike_numeric_only  s     ^VV$455V^VV$455 
 
 S#J((4d(KK5+@+@

 
 
 	vx00000r   N)r  r  r  rQ   fixturer   r   IntervalIndexfrom_breaksr  rR   rS   period_ranger   timedelta_ranger   r?   r   rE   r#  r'  r4  r8  r?  rA  r  r   rG  r   rJ  rL  r  r   r   r  r     s        V^FL ,,UU2YY77k''/T'UU   BOL!#>>>BM,lCCCBw222BHYRYq\\111BHYRYq\\333

 #"     ^  ^  * * *6* * *&* * *$5 5 56 [4B"b"a (3*a8rvrv&c
A6		
 1 1 1 [Dr2q*:;/#sQ@PQ	
 	1 	1 	1 [-fbfuuQxx+QK	
 1 1 1 1 1r   r  )numpyr?   rQ   pandas.compat.numpyr   r   pandasr   r   r   r   r   pandas._testing_testingr/   rM  r   r   r  r  r   r   <module>rW     s^              
                      x 9g"67=R=R    
BS BS BS BS BS BS BS BSJ}1 }1 }1 }1 }1 }1 }1 }1 }1 }1r   