
    .iS                         d dl Zd dl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 Zej"                  j%                  dddg      d        Zy)    N)	DataFrameIndexSeries	Timestamplinearsinglenearesttablec                 $    dj                  |       S )N-)joinxs    f/var/www/app/trading-bot/venv/lib/python3.12/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                   j   e Zd Zej                  j                  d e eej                  j                  ddg             eej                  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                  j                  dg d       d!        Zej                  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&y/)0TestDataFrameQuantilezdf,expected            )r   r         ?      @      ?name)g        N      ?       @Sparse[float]dtyper%   c                 r    |j                         }|j                  d      }t        j                  ||       y )Nr'   )quantileastypetmassert_series_equal)selfdfexpectedresults       r   test_quantile_sparsez*TestDataFrameQuantile.test_quantile_sparse   s-    * ???3
vx0r   c           	      2   |\  }}|}|j                  ddd||      }t        |j                  D cg c]  }t        j                  ||   d       c}|j                  d      }	|dk(  rt        j                  ||	       nEt        j                  |j                  |	j                         |j                  |	j                  k(  sJ |j                  dd	d||      }t        |j                  D 
cg c]%  }
t        j                  |j                  |
   d
      ' c}
|j                  d      }	|dk(  rt        j                  ||	       y t        j                  |j                  |	j                         |j                  |	j                  k(  sJ y c c}w c c}
w )N皙?r   Taxisnumeric_onlyinterpolationmethod
   indexr$   r   ?r   Z   )r+   r   columnsnp
percentiler-   r.   assert_index_equalr=   r$   loc)r/   datetime_framer   r   r9   r:   r0   r2   colr1   dates              r   test_quantilez#TestDataFrameQuantile.test_quantile0   s\    -vad-PV  
 35::>CR]]2c7B'>**

 H$""684!!&,,?;;(--///ad-PV  
 9;BR]]266$<,B((

 H$""684!!&,,?;;(--///1 ? Cs    F/*Fc                     |\  }}t        g g d      j                  ddd||      }t        j                  |d         rt        j                  |d         sJ y )Nr   yr5   r   Tr6   r   rK   )r   r+   rA   isnan)r/   r   r9   r:   qs        r   
test_emptyz TestDataFrameQuantile.test_emptyQ   sa     -vBR()22ad-PV 3 
 xx#BHHQsV$444$4r   c                    |\  }}t        g dg dd      }|j                  dd||      }|j                  d      j                  d      }|dk(  r"|dz   j	                  t
        j                        }t        j                  ||       y )	N)ArP   BrQ   )r   r   r   r   )col1col2r"   Tr8   r9   r:   r8   r	   )	r   r+   medianrenamer,   rA   int64r-   r.   )r/   r   r   r9   r:   r0   rsxps           r   test_non_numeric_exclusionz0TestDataFrameQuantile.test_non_numeric_exclusionX   s     -v 4lKL[[d-  
 YYDY)005I%s(""288,B
r2&r   c                 @   |\  }}t        g dg ddg d      }|j                  dd||      }t        g dg dd	      }|d
k(  r|j                  t        j
                        }t        j                  ||       |j                  ddgd||      }t        ddgddgddgdddg      }|d
k(  rU|j                  dd d fxx   dz  cc<   |j                  dd d fxx   dz  cc<   |j                  t        j
                        }t        j                  ||d       y )Nr   r   r   r   r   r   rP   rQ   r=   r"   r   r7   r9   r:   r          @r!   r<   r	         ?r    g      ?rc   g      @r!   g      @r         ?T)check_index_type)
r   r+   r   r,   rA   rX   r-   r.   ilocassert_frame_equalr/   r   r9   r:   r0   r2   r1   s          r   	test_axiszTestDataFrameQuantile.test_axisc   s    -vYY7yISqfU/EI%rxx0H
vx0$Ka}V  
 ddd<S$K
 I%MM!Q$3&MM!Q$4'rxx0H
fhFr   c                    |\  }}t        g dg dg      }|j                  ddd||      }t        ddgt        d	      d
      }|dk(  r|j	                  t
        j                        }t        j                  ||       y )Nr]   )abr   r"   r   Tr6         @      @r   r<   r	   )	r   r+   r   ranger,   rA   rX   r-   r.   ri   s          r   test_axis_numeric_only_truez1TestDataFrameQuantile.test_axis_numeric_only_truey   s~     !.v	=12ad-PV  
 3*E!H3?I%rxx0H
vx0r   c                     |\  }}t        j                  dddd      }t        |      }t        |      }|j	                  d||      }t        dgd	d
      }t        j                  ||       y )N
2016-01-01r   
US/Pacificns)periodstzunitFrT   z2016-01-02 00:00:00r"   datetime64[ns, US/Pacific]r$   r)   )pd
date_ranger   r   r+   r-   r.   )	r/   r   r9   r:   dtiserr0   r2   r1   s	            r   test_quantile_date_rangez.TestDataFrameQuantile.test_quantile_date_range   su     -vmmL!4PSks^mF  
 "##5Q
 	vx0r   c                 z   |\  }}t        g dg dt        j                  dd      g dd      }|j                  dd	d
||      }t	        g dd      }|dk(  r|dz  }t        j                  ||       d}t        j                  t        |      5  |j                  dd	d       d d d        y # 1 sw Y   y xY w)Nr]   r&   rn   ro   20130101r   rv   )foobarbaz)rP   rQ   CDr"   r   Tr6   rb   r#   r	   z>'<' not supported between instances of 'Timestamp' and 'float'matchFr7   r8   )
r   r{   r|   r+   r   r-   r.   pytestraises	TypeErrorr/   r   r9   r:   r0   r2   r1   msgs           r   test_quantile_axis_mixedz.TestDataFrameQuantile.test_quantile_axis_mixed   s     -v$]]:q9*	
 ad-PV  
 /4I%OH
vx0 O]]9C0 	9KK!%K8	9 	9 	9s   B11B:c                    |\  }}t        g dg ddg d      }|j                  dd||      }t        dd	gd
dgd      }|dk(  r|j                  t        j
                        }t        j                  ||       |j                  dd||      }|dk(  r|j                  t        j
                        }t        j                  ||       |j                  dd||      }t        g dg dd      }|dk(  r|j                  t        j
                        }t        j                  ||       |j                  dd||      }t        j                  ||       d}t        j                  t        |      5  |j                  dd||       d d d        d}t        j                  t        |      5  |j                  dd       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nr]   r^   r_   r`   r"   r   ra   r&   rn   rP   rQ   r<   r	   r=   r   rb   r@   z*No axis named -1 for object type DataFramer   r5   z.No axis named column for object type DataFramecolumnr7   )r   r+   r   r,   rA   rX   r-   r.   r   r   
ValueErrorr   s           r   test_quantile_axis_parameterz2TestDataFrameQuantile.test_quantile_axis_parameter   s    -vYY7yISqfU3*S#JSAI%rxx0H
vx0;;g]6  
 I%rxx0H
vx0SqfU/EI%rxx0H
vx0i}V  
 	vx0:]]:S1 	RKK"M&KQ	R>]]:S1 	,KK(K+	, 	,	R 	R	, 	,s   5G0GGG"c                    t        g dg ddg d      }|j                  ddd      }t        g dg dd	      }t        j                  ||       t        j                  t        j                  g dg dg      dd
d      }t        |g ddd      }t        j                  ||       t        g dg ddg d      }|j                  ddd      }t        g dg dd	      }t        j                  ||       t        j                  t        j                  g dg dg      dd
d      }t        |g ddd      }t        j                  ||       |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      }|j                  dd
d      }t        j                  |d         rt        j                  |d         sJ t        g dg dg dgg d      }|j                  d dgd!"      }t        g d#g d$gd dgg d%      }t        j                  ||       y )&Nr]   r^   r_   r`   r"   r   r	   r7   r9   r<   r   )r7   r:   rX   r=   r$   r)   r%   r&   rn   r   float64rd   lowerr%   r&   rn   rJ   r5   higherr   rK   r   r   r   r   r   r   r   r   r   rl   rm   cr@   re   midpoint)r9   r    r    r    r&   r&   r&   r=   r@   )
r   r+   r   r-   r.   rA   rB   arrayrh   rL   )r/   r0   r2   r1   exprM   s         r   test_quantile_interpolationz1TestDataFrameQuantile.test_quantile_interpolation   s    YY7yISq	B)93?
vx0 mmHHi+,	
 #YSH
vx0 _?C9USq	B/E
vx0mmHHo78	
 #YS	J
vx0 c4[qHc
SzsCj9#t
 	fh/ Rb)*KK!8K<xx#BHHQsV$444 	9i8/RdC[
C o.+#

 	fh/r   c                 t    |}|j                  dddd      }|d   t        j                  |d   d      k(  sJ y )Nr5   r   Tr   )r7   r8   r9   rP   r;   )r+   rA   rB   )r/   rE   r0   rM   s       r   $test_quantile_interpolation_datetimez:TestDataFrameQuantile.test_quantile_interpolation_datetime  s@     KK!$hKOvr#w3333r   c                    |}|j                  d      }|d   t        j                  |d   d      k(  sJ |j                  ddd      }|d   t        j                  |d   d      k(  sJ t        j                  ||       y )Nr5   rP   r;   r   r   r   )r+   rA   rB   r-   r.   )r/   	int_framer0   rM   q1s        r   test_quantile_interpolation_intz5TestDataFrameQuantile.test_quantile_interpolation_int  s     KKvr#w3333 [[1H[=#w"--34444
q"%r   c                    |\  }}t        g dg dg dgg d      }|j                  ddg||      }t        g d	g d
gddgg d      }|dk(  r|j                  t        j                        }t        j                  ||       y )Nr   r   r   r   r   re   r"   r9   r:   r   r   r   r	   r   r+   r,   rA   rX   r-   rh   ri   s          r   test_quantile_multiz)TestDataFrameQuantile.test_quantile_multi#  s     -v	9i8/RdC[fUo.+#

 I%rxx0H
fh/r   c                    |\  }}t        g dg dg dgg d      }|j                  ddgd||	      }t        g d
gdz  ddgg d      }|dk(  r|j                  t        j                        }t        j                  ||       y )Nr   r   r   r   r   re   r"   r   ra   r   r   )r   r   r   r   r	   r   ri   s          r   test_quantile_multi_axis_1z0TestDataFrameQuantile.test_quantile_multi_axis_10  s     -v	9i8/R3Ka}V  
 !$i
 I%rxx0H
fh/r   c                    |\  }}t        g g d      j                  ddgd||      }t        t        j                  t        j                  gt        j                  t        j                  gdddg      }t	        j
                  ||       y )NrJ   r5   r>   r   ra   r`   )r   r+   rA   nanr-   rh   )r/   r   r9   r:   r2   r1   s         r   test_quantile_multi_emptyz/TestDataFrameQuantile.test_quantile_multi_empty=  s~     -v"-.77#JQmF 8 
 66266""&&"&&)9:3*
 	fh/r   c                    t        j                  ddg      j                  |      }t        |ddgd      }|j	                  dd      }t        d	gd
gd      }t        j                  ||       |j	                  dd      }t        t        d      d	gdd
gd      }t        j                  ||       |j	                  dgd      }t        t        d      j                  |      d	ddg      }t        j                  ||       t        j                  ddg      j                  |      |d<   |ddg   j	                  ddd      }t        t        d      t        d      gddgdd| d      }t        j                  ||       |ddg   j	                  dgdd      }t        t        d      t        d      ggdgddgd| d      }t        j                  ||       |ddg   j	                  dd      }t        g t        g d      t        j                  d      }t        j                  ||       |ddg   j	                  dgd      }t        dgt        g d            }t        j                  ||       y )N20102011r      rl   rm   r"   TrU   rc   rm   r<   Fz2010-07-02 12:00:00rl   r`   2012r   r   r   z2011-07-02 12:00:00M8[]r   r=   r@   r)   strr(   r=   r)   r$   r   )r{   to_datetimeas_unitr   r+   r   r-   r.   r   rh   r   rA   r   )r/   rx   r}   r0   r2   r1   s         r   test_quantile_datetimez,TestDataFrameQuantile.test_quantile_datetimeG  s   nnff-.66t<S1v./ St43%u37
vx0 Su5,-s3C:C
 	vx0 cU712::4@sK%
 	fh/ ..&&!12::4@3S#J((15(I,-y9N/OPa&vQ-	
 	vx0S#J((#QU(K-.	:O0PQR%FvQ-	
 	fh/ S#J((4(@"E"E$:"**SVW
vx0S#J((#T(BC5%%2HI
fh/r   r)   )datetime64[ns]ry   ztimedelta64[ns]z	Period[D]c                 D   |\  }}t        ddg|      }|j                  ddd||      }t        g t        g d	      d|
      }t	        j
                  ||       |j                  dgdd||      }t        dgt        g d	            }t	        j                  ||       y )Nrl   rm   r@   r)   r"   r   Fr6   r   r(   r   r   )r   r+   r   r   r-   r.   rh   )r/   r)   r   r9   r:   r0   resr1   s           r   test_quantile_dt64_emptyz.TestDataFrameQuantile.test_quantile_dt64_empty|  s     !.vSz7kkae=QW  
 "E"E$:ER
sH- kkE'  
 C5%%2HI
c8,r   invalidr   c                     d}|\  }}t        j                  t        |      5  |j                  |||       d d d        y # 1 sw Y   y xY w)Nz2percentiles should all be in the interval \[0, 1\]r   r   )r   r   r   r+   )r/   r   rE   r   r   r9   r:   s          r   test_quantile_invalidz+TestDataFrameQuantile.test_quantile_invalid  sN    D -v]]:S1 	Y##G=QW#X	Y 	Y 	Ys   AA
c           	         |\  }}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	      }|j	                  d
d||      }t        t        d      t        dd      t        j                  d      gd
g d	      }t        j                  ||       |j	                  d
gd||      }t        t        d      t        dd      t        j                  d      ggd
gg d	      }t        j                  ||       y )N
2011-01-01
2011-01-02
2011-01-03
US/Easternrw   1 days2 days3 days)rP   rQ   r   r"   FrT   r$   r=   r   )	r   r   r{   	Timedeltar+   r   r-   r.   rh   r/   r   r9   r:   r0   r   r   s          r   test_quantile_boxz'TestDataFrameQuantile.test_quantile_box  sa    -v l+l+l+ l|<l|<l|< LL*LL*LL*
( kke=  
 ,',<8X&
 !
 	sC(kkE]6  
  l+l|<LL* %#

 	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
            }|j                  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                  ||       |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                  ||       y )Nr   r   r   r   r   r   r   r   )rP   rl   rQ   rm   r   r   AaBbCcr   r"   FrU   r   r   )r   r   r{   NaTr   listr+   r   r-   r.   rh   )r/   r0   r   r   s       r   test_quantile_box_natz+TestDataFrameQuantile.test_quantile_box_nat  s(    l+FFl+l+	 l+l+FFl+	 l|<FFl|<l|<	 l|<l|<FFl|<	 LL*LL*LL*FF	 FFLL*LL*LL*	?%L NO(
T kk#Ek2,',',<8,<8X&X& x.
 	sC(kk3%ek4 l+l+l|<l|<LL*LL*	 %N
 	c3'r   c                    |\  }}t        t        j                  dd      t        j                  dd      d      }t        j                  |j                  d<   |j                  d||      }t        d|dk(  rd	ndgd
dgd      }t        j                  ||       |j                  ddg||      }t        ddg|dk(  rd	dgnddgdddg      }t        j                  ||       |j                  dd||      }t        t        j                  dd      d      }t        j                  ||       |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<   |j                  d||      }t        dt        j                  gd
dgd      }t        j                  ||       |j                  ddg||      }t        ddgt        j                  t        j                  gdddg      }t        j                  ||       y )Nr   g      @r   )r   r   r"   r   rn   r   rc   rl   rm   r<   rd   ro   g      
@r`   ra   r%   r#   r   r	   )r   r   )
r   rA   aranger   rg   r+   r   r-   r.   rh   r   s          r   test_quantile_nanz'TestDataFrameQuantile.test_quantile_nan#  s/    -vRYYq#.RYYq#5FGHkk#]6kJ(2#<S#JUX
 	sC(kk3+]6kR3Z$1X$=c4[C: +
 	c3'kk#A]6kRRYYsC(s3
sC(kk$Ka}V  
 3,-1#tEI% ffCHHUO
c3' &&3kk#]6kJc266]3*3?
sC(kk3+]6kRsCj/?@dT
c3'r   c                    |\  }}t        dt        j                  t        j                  t        j                  gid| d      }|j                  dd||      }t	        t        j                  gdgdd| d      }t        j                  ||       |j                  dgd||      }t        dt        j                  gidgd| d	      }t        j                  ||       t        t        d
      t        d      t        d      gt        j                  t        j                  t        j                  gdd| d      }|j                  dd||      }t	        t        d      t        j                  gddgdd| d      }t        j                  ||       |j                  dgd||      }t        t        d      t        j                  ggdgddgd| d      }t        j                  ||       y )Nrl   r   r   r(   r"   FrT   r   )r=   r)   z
2012-01-01z
2012-01-02z
2012-01-03r   rm   r   )	r   r{   r   r+   r   r-   r.   rh   r   )r/   r   rx   r9   r:   r0   r   r   s           r   test_quantile_natz'TestDataFrameQuantile.test_quantile_natP  s    -vbffbffbff56D6mLkke=  
 bffXcUc$qMJ
sC(kkE]6  
 rvvhuc$qMJ
c3'  l+l+l+
 ffbffbff- vQ-

 kke=  
 |$bff-*vQ-	
 	sC(kkE]6  
 %rvv./%#JvQ-	
 	c3'r   c                    |\  }}t        ddgd      }|j                  d||      }t        t        j                  t        j                  gddgd      }t        j                  ||       |j                  dg||      }t        t        j                  t        j                  ggddgdg      }t        j                  ||       |j                  dd	||
      }t        g t        g d      dd      }t        j                  ||       |j                  dgd	||
      }t        t        g d      dg      }t        j                  ||       y )Nrl   rm   r   r   r"   r   r<   )r@   r=   r   ra   r   r(   r   )	r   r+   r   rA   r   r-   r.   rh   r   r   s          r   "test_quantile_empty_no_rows_floatsz8TestDataFrameQuantile.test_quantile_empty_no_rows_floats  s#    -vSz;kk#]6kJbffbff%c3ZcB
sC(kk3%}VkL"&&"&&)*S#JseL
c3'kk#A]6kRRuRu5YSQ
sC(kk3%a}VkTb 6seD
c3'r   c                     |\  }}t        ddgd      }|j                  d||      }t        t        j                  t        j                  gddgd      }t        j                  ||       y )Nrl   rm   rX   r   r"   r   r<   )r   r+   r   rA   r   r-   r.   r   s          r    test_quantile_empty_no_rows_intsz6TestDataFrameQuantile.test_quantile_empty_no_rows_ints  s_     -vSz9kk#]6kJbffbff%c3ZcB
sC(r   c                    |\  }}t        ddgd      }|j                  dd||      }t        t        j                  t        j                  gddgdd      }t        j                  ||       |d   j                  j                  d	      |d<   |j                  dd||      }|j                  t              }|d
k(  r|j                  t        j                        }t        j                  ||       |d   j                  j                  d	      |d<   |j                  dd||      }|j                  |d   j                        }t        j                  ||       y )Nrl   rm   r   r   r"   FrT   r   z
US/Centralr	   )r   r+   r   r{   r   r-   r.   dttz_localizer,   objectfillnarA   r   r)   r   s          r    test_quantile_empty_no_rows_dt64z6TestDataFrameQuantile.test_quantile_empty_no_rows_dt64  sH    -vSz1ABkke=  
 VVRVVS#J6FS
 	sC( S'**((63kke=  
 jj I%**RVV$C
sC( S'**((63kke=  
 jjC'
sC(r   c                    |\  }}t        t        j                  dd            }d|j                  _        |j                  dd||      }t        g dt        j                        }d|j                  _        t        j                  ||       |j                  dgd||      }t        g dg	      }d|j                  _        t        j                  ||       y )
Nz1/1/18r   r   zcaptain tightpantsr"   TrT   rz   r`   )r   r{   r|   r@   r$   r+   r   rA   r   r=   r-   r.   rh   ri   s          r   test_quantile_empty_no_columnsz4TestDataFrameQuantile.test_quantile_empty_no_columns  s     -vr}}Xq9:.

d-  
 "3bjj92
vx0EM&  
 Ru- 4
fh/r   c                     t        j                  t        d      5  t        t	        d            j                  dd       d d d        y # 1 sw Y   y xY w)NzInvalid method: foor   r   r"   r   )r:   r   r   r   r   rp   r+   r/   s    r   test_invalid_methodz)TestDataFrameQuantile.test_invalid_method  sB    ]]:-BC 	<eAh((U(;	< 	< 	<s   &AAc                     t        j                  t        d      5  t        t	        d            j                  ddd       d d d        y # 1 sw Y   y xY w)NzInvalid interpolation: foor   r   r"   r
   r   )r:   r9   r   r   s    r    test_table_invalid_interpolationz6TestDataFrameQuantile.test_table_invalid_interpolation  sH    ]]:-IJ 	SeAh((WE(R	S 	S 	Ss   'AAN)'__name__
__module____qualname__r   markparametrizer   r   r{   arraysSparseArrayr3   rH   rN   r[   rj   rq   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   [[ !"))"7"7A"?@!"))"7"7A"?@ Sz, &!6oNOu3'	
$1%$10B5	'G,11 90$,L70r4&00030j [[	
--, [[YQb	C8(DEY FY3(jJ(X+(Z2(h(*))@0&<Sr   r   c                      e Zd Z ej                   ej
                  ej                  j                   e	d            ej                  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                  j3                  ddg g dgdg g dgdej4                  ej4                  gddgdgdej4                  ej4                  gddgdgg      d         Zej                  j3                  d!d"g g dd"gd"ej8                  ej8                  gddgdd"gg      d#        Zej                  j3                  d$ej4                  ej4                  g e	d%      dgg g dgg      d&        Zy')(TestQuantileExtensionDtyper;   z#raises when trying to add Intervals)reason)marksrs   	   r   )rv   freqrt   )rv   rw   z1 Dayr   Int64r(   Float64c                 ,    t        | j                        S )N)r   r)   r   s    r   r   z#TestQuantileExtensionDtype.<lambda>  s    c!''l r   r   c                 ,    |j                   }d|_        |S NrP   )r   r$   )r/   r   idxs      r   r=   z TestQuantileExtensionDtype.index  s      mm
r   c                 d     ||      j                         }|t        u r	d|_        |S dg|_        |S r  )copyr   r$   r@   )r/   r=   frame_or_seriesobjs       r   r  zTestQuantileExtensionDtype.obj  s=     e$))+f$CH 
 %CK
r   c                 r    t        |t              r|j                  |      }|S |j                  |d      }|S )NFrU   )
isinstancer   r+   )r/   r  qsr2   s       r   compute_quantilez+TestQuantileExtensionDtype.compute_quantile   s:    c6"\\"%F  \\"5\9Fr   c                    t        j                  t        |      t         j                        }t         j                  j                  d      j                  |       |j                  |   }g d}| j                  ||      }|j                  }|j                  dk(  rd}t        |d   |d   |d   g||d	
      } t        |      |      }t        j                  ||       y )Nr(   r   r"   r   r   r  r	  r   r   r   rP   r)   r=   r$   )rA   r   lenintprandomdefault_rngshufflerg   r  r)   r   typer-   assert_equal	r/   r   r  r=   indexerr  r2   	exp_dtyper1   s	            r   test_quantile_eaz+TestQuantileExtensionDtype.test_quantile_ea  s    ))CJbgg6
		a ((1hhw&&sB/KK	;;'!!I 1XuQxr+9BS
 49X&
)r   c                    |j                   |j                  d<   |j                   |j                  d<   t        j                  t	        |      t        j
                        }t        j                  j                  d      j                  |       |j                  |   }g d}| j                  ||      }t        |d   |d   |d   g|j                  |d	
      } t        |      |      }t        j                  ||       y )Nr   r   r(   r   r  r   r   rP   r  )	_na_valuerg   rA   r   r  r  r  r  r  r  r   r)   r  r-   r  )r/   r  r=   r!  r  r2   r1   s          r   test_quantile_ea_with_naz3TestQuantileExtensionDtype.test_quantile_ea_with_na  s    oo ))CJbgg6
		a ((1hhw&&sB/ 1XuQxr+5;;bs
 49X&
)r   c                 >   |j                   |j                  d d  t        j                  |j                  |j
                  k(        sJ t        j                  t        |      t        j                        }t        j                  j                  d      j                  |       |j                  |   }g d}| j                  ||      }|j                  g dd|j                         }t        ||d      } t        |      |      }t!        j"                  ||       y )	Nr(   r   r  )r   r   r   T)
allow_fill
fill_valuerP   r<   )r&  rg   rA   alldtypesr)   r   r  r  r  r  r  r  taker   r  r-   r  )r/   r   r  r=   r!  r  r2   r1   s           r   test_quantile_ea_all_naz2TestQuantileExtensionDtype.test_quantile_ea_all_na0  s    oovvcjjEKK/000 ))CJbgg6
		a ((1hhw&&sB/::lt:X("3749X&
)r   c                    t        j                  t        |      t         j                        }t         j                  j                  d      j                  |       |j                  |   }d}| j                  ||      }|j                  }|j                  dk(  rd}t        d|d   i|d      }t        |t              r|d   }||k(  sJ y t        j                  ||       y )	Nr(   r   r"   r  r	  rP   r   )r)   r$   )rA   r   r  r  r  r  r  rg   r  r)   r   r  r-   r.   r   s	            r   test_quantile_ea_scalarz2TestQuantileExtensionDtype.test_quantile_ea_scalarB  s     ))CJbgg6
		a ((1hhw&&sB/KK	;;'!!I3a/Ec6"}HX%%%""684r   z*dtype, expected_data, expected_index, axisr   r   rX   rl   rm   r   c                     t        ddg|      }|j                  d|      }t        |dt        |d      d	      }t	        j
                  ||       y )
Nrl   rm   r   r"   r   r   r(   r   r$   r=   r)   r   r+   r   r   r-   r.   )r/   r)   expected_dataexpected_indexr7   r0   r2   r1   s           r   test_empty_numericz-TestQuantileExtensionDtype.test_empty_numericX  sU     Sz7St,e4	
 	vx0r   z:dtype, expected_data, expected_index, axis, expected_dtyper   c                     t        ddg|      }|j                  d|d      }t        |dt        |d      |	      }t	        j
                  ||       y )
Nrl   rm   r   r"   Fr   r   r(   r2  r3  )	r/   r)   r4  r5  r7   expected_dtyper0   r2   r1   s	            r   test_empty_datelikez.TestQuantileExtensionDtype.test_empty_datelikem  sW     Sz7St%@e4 	
 	vx0r   z#expected_data, expected_index, axisr   c           	      6   t        t        j                  ddg      ddgt        j                  ddg      d      }|ddg   j                  d	|d
      }t	        |d	t        ||dk(  rdnd      t        j                        }t        j                  ||       y )Nr   r   r   r   r   r   rl   r   r"   Tr   r   rX   r(   r2  )
r   r{   r   r+   r   r   rA   r   r-   r.   )r/   r4  r5  r7   r0   r2   r1   s          r   test_datelike_numeric_onlyz5TestQuantileExtensionDtype.test_datelike_numeric_only  s     ^^VV$45V^^VV$45
 S#J((4d(KtqyegN**	
 	vx0r   N)r   r   r   r   fixturer   r{   IntervalIndexfrom_breaksrp   r   xfailperiod_ranger|   timedelta_ranger   rA   r   r=   r  r  r#  r'  r.  r0  r   r   r6  r   r9  r;  r  r   r   r  r    s*    V^^FLL  ,,U2Y7kk''/T'U BOOL!#>BMM,lCBw2BHHYRYYq\1BHHYRYYq\3

 # ^^ *,*&*$5, [[4B"b"a (3*a8rvvrvv&c
A6		

1
1 [[Dr2q*:;/#sQ@PQ	
11 [[-ffbffuQx+QK	
11r   r  c                      t        t        d            } | j                  ddgd      }t        ddg      }t        j                  ||dd       y )Nabcr"   gffffff?TrU   r`   )rf   check_column_type)r   r   r+   r-   rh   )r0   r2   r1   s      r   0test_multi_quantile_numeric_only_retains_columnsrE    sK    	4;	B[[#s$[7FSz*H44r   typ
datetime64timedelta64c                     |  d| d}t        t        j                  g |            }|j                         }t	        t
        j                  gd|      }t        j                  ||       y )N[r   r(   r"   rz   )	r   rA   r   r+   r   r{   r   r-   r.   )rF  rx   r)   r0   r2   r1   s         r    test_quantile_empty_datetimelikerK    sX    e1TF!E	288Be,	-B[[]FrvvhS6H68,r   )numpyrA   r   pandasr{   r   r   r   r   pandas._testing_testingr-   r<  r   r   r  rE  r   r   rK  r  r   r   <module>rP     s         x 9g"67=R
DS DSN|1 |1~ } =>- ?-r   