U
    `»{j@”  ã                   @   s’   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	„ d
�dd„ ƒZG dd„ dƒZG dd„ dƒZdS )é    N)Únp_percentile_argnameÚnp_version_under1p21)Ú	DataFrameÚIndexÚSeriesÚ	TimestampÚlinearZsingleÚnearestÚtablec                 C   s
   d  | ¡S )Nú-)Újoin©Úx© r   úg/var/www/html/bwave/python/venv/lib/python3.8/site-packages/pandas/tests/frame/methods/test_quantile.pyÚ<lambda>   ó    r   ©ÚparamsZidsc                 C   s   | j S )z.(interpolation, method) arguments for quantile)Úparam)Úrequestr   r   r   Úinterp_method   s    r   c                
   @   sÊ  e Zd Zej dejdddd�dddgee	e
gg¡d	d
„ ƒZej dee	ej ddg¡ƒe	ej ddg¡ƒdœƒe	ddgdd�gee	ddddgdd�ƒe	dgdd�gg¡dd„ ƒZdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zej d:d;d<d=d>g¡d?d@„ ƒZej dAdBdddBgddgg¡dCdD„ ƒZdEdF„ Z dGdH„ Z!dIdJ„ Z"dKdL„ Z#dMdN„ Z$dOdP„ Z%dQdR„ Z&dSdT„ Z'dUdV„ Z(dWdX„ Z)dYdZ„ Z*dS )[ÚTestDataFrameQuantileÚnon_num_colz
2014-01-01é   Úm©ÚperiodsÚfreqÚaÚbÚcc           
   	   C   s°   |\}}t dddgdddgdœƒ}||d< tddgd	d
gdd�}|dkrT| tj¡}|dkrv|rv|j tjj	dd�¡ t
jtdd�� |jd||d�}	W 5 Q R X t
 |	|¡ d S )Né   é   r   é   ©ÚAÚBÚCç       @ç      @r&   r'   ç      à?©ÚindexÚnamer	   r
   úAxis name incorrectly set.©ÚreasonÚnumeric_only©Úmatch©ÚinterpolationÚmethod)r   r   ÚastypeÚnpÚint64ÚnodeÚ
add_markerÚpytestÚmarkÚxfailÚtmÚassert_produces_warningÚFutureWarningÚquantileÚassert_series_equal)
Úselfr   r   r   Úusing_array_managerr6   r7   ÚdfÚexpectedÚresultr   r   r   Ú'test_numeric_only_default_false_warning   s"    ýÿz=TestDataFrameQuantile.test_numeric_only_default_false_warningzdf,expectedr"   r#   r$   )r   r"   ç      ø?ç      @r+   ©r.   g        Nç      ð?r)   zSparse[float]©Údtypec                 C   s   |  ¡ }t ||¡ d S ©N)rC   r@   rD   )rE   rG   rH   rI   r   r   r   Útest_quantile_sparse;   s    z*TestDataFrameQuantile.test_quantile_sparsec           	         s  |\}}|‰ ˆ j ddd||d�}t‡ fdd„ˆ jD ƒˆ jdd�}|dkrVt ||¡ n8t |j|j¡ |j t	j
j|d	d
�¡ |j|jksŽt‚ˆ j ddd||d�}t‡ fdd„ˆ jD ƒˆ jdd�}|dkrØt ||¡ n:t |j|j¡ |j t	j
j|d	d
�¡ |j|jk�st‚d S )Nçš™™™™™¹?r   T©Úaxisr2   r6   r7   c                    s   g | ]}t  ˆ | d ¡‘qS )é
   )r9   Ú
percentile)Ú.0Úcol©rG   r   r   Ú
<listcomp>]   s     z7TestDataFrameQuantile.test_quantile.<locals>.<listcomp>r,   r   z%Name set incorrectly for arraymanagerr0   çÍÌÌÌÌÌì?r"   c                    s   g | ]}t  ˆ j| d ¡‘qS )éZ   )r9   rW   Úloc)rX   ÚdaterZ   r   r   r[   q   s     )rC   r   Úcolumnsr@   rD   Zassert_index_equalr-   r;   r<   r=   r>   r?   r.   ÚAssertionError)	rE   Údatetime_framer   rF   r   r6   r7   rI   rH   r   rZ   r   Útest_quantileT   s\        ÿý ÿÿ    ÿý ÿÿz#TestDataFrameQuantile.test_quantilec                 C   sJ   |\}}t g g dœƒjddd||d�}t |d ¡rBt |d ¡sFt‚d S )N©r   ÚyrS   r   TrT   r   re   )r   rC   r9   Úisnanra   )rE   r   r6   r7   Úqr   r   r   Ú
test_empty�   s        ÿz TestDataFrameQuantile.test_emptyc           	   	   C   sª   |\}}t ddddgddddgdœƒ}|jdd	||d
�}tjtdd�� | ¡  d¡}W 5 Q R X |dkrx|d  tj	¡}|dkrš|rš|j
 tjjdd�¡ t ||¡ d S )Nr&   r'   r"   r#   r   r$   )Zcol1Zcol2r+   T©r2   r6   r7   zSelect only validr3   r	   r
   r/   r0   )r   rC   r@   rA   rB   ZmedianÚrenamer8   r9   r:   r;   r<   r=   r>   r?   rD   )	rE   r   r   rF   r6   r7   rG   ÚrsZxpr   r   r   Útest_non_numeric_exclusionˆ   s"       ÿÿz0TestDataFrameQuantile.test_non_numeric_exclusionc           	      C   s2  |\}}t dddgdddgdœdddgd�}|jdd||d�}td	d
dgdddgdd�}|dkrl| tj¡}|dkrŽ|rŽ|j tj	j
dd�¡ t ||¡ |jddgd||d�}t d	dgd
dgddgdœddgd�}|dk�r|jdd d …f  d8  < |jdd d …f  d7  < | tj¡}tj||dd� d S )Nr"   r#   r   r$   r%   ©r-   r+   ©rU   r6   r7   rK   ç      @rL   r,   r	   r
   r/   r0   ç      è?g      ü?g      @g      @©r"   r#   r   r   ç      Ð?T)Zcheck_index_type)r   rC   r   r8   r9   r:   r;   r<   r=   r>   r?   r@   rD   ÚilocÚassert_frame_equal©	rE   r   r   rF   r6   r7   rG   rI   rH   r   r   r   Ú	test_axis˜   s4    $ÿ   ÿ ÿ
zTestDataFrameQuantile.test_axisc           	      C   s�   |\}}t dddgdddggƒ}|jddd||d	�}td
dgddgdd�}|dkr^| tj¡}|dkr€|r€|j tj	j
dd�¡ t ||¡ d S )Nr"   r#   r   r   r    r$   r+   TrT   r*   ç      @r   r,   r	   r
   r/   r0   )r   rC   r   r8   r9   r:   r;   r<   r=   r>   r?   r@   rD   ru   r   r   r   Útest_axis_numeric_only_true²   s"        ÿÿz1TestDataFrameQuantile.test_axis_numeric_only_truec                 C   sz   |\}}t jdddd�}t|ƒ}t|ƒ}|jd||d�}	tdgdd	d
�}
|dkrj|rj|j tjj	dd�¡ t
 |	|
¡ d S )Nú
2016-01-01r   ú
US/Pacific©r   ÚtzFri   z2016-01-02 00:00:00r+   údatetime64[ns, US/Pacific])r.   rP   r
   r/   r0   )ÚpdÚ
date_ranger   r   rC   r;   r<   r=   r>   r?   r@   rD   )rE   r   r   rF   r6   r7   ZdtiÚserrG   rI   rH   r   r   r   Útest_quantile_date_rangeÄ   s&      ÿ  ÿÿz.TestDataFrameQuantile.test_quantile_date_rangec           
   	   C   sÌ   |\}}t dddgdddgtjddd�d	d
dgdœƒ}|jddd||d�}tdddgdd�}|dkrl|d8 }|dkrŽ|rŽ|j tjj	dd�¡ t
 ||¡ d}	tjt|	d�� |jdddd� W 5 Q R X d S )Nr"   r#   r   r)   r*   rw   Z20130101©r   ÚfooÚbarZbaz)r&   r'   r(   ÚDr+   TrT   rK   ro   rL   rM   r	   r
   r/   r0   z>'<' not supported between instances of 'Timestamp' and 'float'r3   F©rU   r2   )r   r~   r   rC   r   r;   r<   r=   r>   r?   r@   rD   ÚraisesÚ	TypeError©
rE   r   r   rF   r6   r7   rG   rI   rH   Úmsgr   r   r   Útest_quantile_axis_mixedØ   s4    üÿ    ÿÿz.TestDataFrameQuantile.test_quantile_axis_mixedc           
   	   C   s”  |\}}|dkr*|r*|j  tjjdd�¡ tdddgdddgdœdddgd	�}|jd
d||d�}tddgddgd
d�}|dkrŠ| t	j
¡}t ||¡ |jd
d||d�}|dkr¼| t	j
¡}t ||¡ |jd
d||d�}tdddgdddgd
d�}|dk�r
| t	j
¡}t ||¡ |jd
d||d�}t ||¡ d}	tjt|	d�� |jdd||d� W 5 Q R X d}	tjt|	d�� |jddd� W 5 Q R X d S )Nr
   r/   r0   r"   r#   r   r$   r%   rm   r+   r   rn   r)   r*   r&   r'   r,   r	   r-   rK   ro   rL   r`   z*No axis named -1 for object type DataFramer3   rS   éÿÿÿÿz.No axis named column for object type DataFrameÚcolumn©rU   )r;   r<   r=   r>   r?   r   rC   r   r8   r9   r:   r@   rD   r‡   Ú
ValueErrorr‰   r   r   r   Útest_quantile_axis_parameterõ   sL    ÿ$   ÿ
   ÿz2TestDataFrameQuantile.test_quantile_axis_parameterc                 C   sV  t dddgdddgdœdddgd�}|jdddd	�}tdddgdddgdd
�}t ||¡ tjt dddgdddgg¡dfdditdi—Ž}t|dddgddd�}t ||¡ t dddgdddgdœdddgd�}|jdddd	�}tdddgdddgdd
�}t ||¡ tjt dddgdddgg¡dfdditdi—Ž}t|dddgddd�}t ||¡ |jddgddd	�}t ddgddgddgdœddgd�}t 	||¡ t g g dœƒ}|jdddd	�}t 
|d ¡�rÞt 
|d ¡�sât‚t dddgdddgdddggdddgd�}|jd dgd!d"�}t d#d#d#gdddggd dgdddgd$�}t 	||¡ d S )%Nr"   r#   r   r$   r%   rm   r+   r	   ©rU   r6   r,   rU   r   r:   ©r-   r.   rP   rN   r)   r*   rw   Úfloat64rp   Úlowerrq   rd   rS   Zhigherr   re   r   r    r!   ©r`   rr   Zmidpoint)r6   rK   ©r-   r`   )r   rC   r   r@   rD   r9   rW   Úarrayr   rt   rf   ra   )rE   rG   rI   rH   Úexprg   r   r   r   Útest_quantile_interpolation  sZ    $þýü$þýü ÿ$*ýz1TestDataFrameQuantile.test_quantile_interpolationc                 C   s6   |}|j ddddd�}|d t |d d¡ks2t‚d S )NrS   r   Tr   )rU   r2   r6   r&   rV   )rC   r9   rW   ra   )rE   rb   rG   rg   r   r   r   Ú$test_quantile_interpolation_datetimeX  s    z:TestDataFrameQuantile.test_quantile_interpolation_datetimec                 C   sf   |}|  d¡}|d t |d d¡ks*t‚|j dddd�}|d t |d d¡ksVt‚t ||¡ d S )NrS   r&   rV   r   r   r‘   )rC   r9   rW   ra   r@   rD   )rE   Z	int_framerG   rg   Úq1r   r   r   Útest_quantile_interpolation_int`  s    
z5TestDataFrameQuantile.test_quantile_interpolation_intc           	      C   s´   |\}}t dddgdddgdddggdddgd�}|jdd	g||d
�}t dddgdddggdd	gdddgd�}|dkr‚| tj¡}|dkr¤|r¤|j tjj	dd�¡ t
 ||¡ d S )Nr"   r#   r   r   r    r!   r•   rr   r+   r5   rK   r)   r–   r	   r
   r/   r0   ©r   rC   r8   r9   r:   r;   r<   r=   r>   r?   r@   rt   ru   r   r   r   Útest_quantile_multim  s    *ýÿz)TestDataFrameQuantile.test_quantile_multic           	      C   s²   |\}}t dddgdddgdddggdddgd�}|jdd	gd||d
�}t dddggd dd	gdddgd�}|dkr€| tj¡}|dkr¢|r¢|j tjj	dd�¡ t
 ||¡ d S )Nr"   r#   r   r   r    r!   r•   rr   r+   rn   rN   r)   r*   r   r–   r	   r
   r/   r0   r�   ru   r   r   r   Útest_quantile_multi_axis_1~  s(    *   ÿ  ÿÿz0TestDataFrameQuantile.test_quantile_multi_axis_1c                 C   s^   |\}}t g g dœƒjddgd||d�}t tjtjgtjtjgdœddgd�}t ||¡ d S )Nrd   rS   r\   r   rn   rm   )r   rC   r9   Únanr@   rt   )rE   r   r6   r7   rI   rH   r   r   r   Útest_quantile_multi_empty�  s       ÿ ÿz/TestDataFrameQuantile.test_quantile_multi_emptyc                 C   sº  t t ddg¡ddgdœƒ}|jddd�}td	gd
gdd�}t ||¡ |jddd�}ttdƒd	gdd
gdd�}t ||¡ |jdgdd�}t tdƒd	ggdgdd
gd�}t ||¡ t ddg¡|d< |ddg jdddd�}ttdƒtdƒgddgdd�}t ||¡ |ddg jdgddd�}t tdƒtdƒggdgddgd�}t ||¡ |ddg jddd�}tg g t	j
dd�}t ||¡ |ddg jdgdd�}t dgd�}t ||¡ d S )NÚ2010Ú2011r   é   ©r   r    r+   T©r2   ro   r    r,   Fz2010-07-02 12:00:00r   r–   Ú2012r!   r"   r†   z2011-07-02 12:00:00©r-   rP   r.   rm   )r   r~   Úto_datetimerC   r   r@   rD   r   rt   r9   r“   )rE   rG   rI   rH   r   r   r   Útest_quantile_datetime™  sN    
  ÿ  ÿýýz,TestDataFrameQuantile.test_quantile_datetimerP   údatetime64[ns]r}   útimedelta64[ns]z	Period[D]c                 C   sz   |\}}t ddg|d�}|jddd||d�}tg g d|d�}t ||¡ |jdgdd||d�}t dgd	�}t ||¡ d S )
Nr   r    ©r`   rP   r+   r"   FrT   r’   rm   )r   rC   r   r@   rD   rt   )rE   rP   r   r6   r7   rG   ÚresrH   r   r   r   Útest_quantile_dt64_emptyÊ  s(        ÿûz.TestDataFrameQuantile.test_quantile_dt64_emptyÚinvalidrŒ   c              	   C   s:   d}|\}}t jt|d�� |j|||d� W 5 Q R X d S )Nz2percentiles should all be in the interval \[0, 1\]r3   r5   )r=   r‡   r�   rC   )rE   r°   rb   r   rŠ   r6   r7   r   r   r   Útest_quantile_invalidé  s    z+TestDataFrameQuantile.test_quantile_invalidc           	      C   s   |\}}|dkr*|r*|j  tjjdd�¡ ttdƒtdƒtdƒgtddd�tddd�tddd�gt d	¡t d
¡t d¡gdœƒ}|j	dd||d�}t
tdƒtddd�t d
¡gddddgd�}t ||¡ |j	dgd||d�}ttdƒtddd�t d
¡ggdgdddgd�}t ||¡ d S )Nr
   r/   r0   ú
2011-01-01ú
2011-01-02ú
2011-01-03ú
US/Eastern©r|   ú1 daysú2 daysú3 days)r&   r'   r(   r+   Fri   r&   r'   r(   ©r.   r-   r–   )r;   r<   r=   r>   r?   r   r   r~   Ú	TimedeltarC   r   r@   rD   rt   ©	rE   r   r   rF   r6   r7   rG   r®   r˜   r   r   r   Útest_quantile_boxð  sf    ÿý


ýýõÿ   ÿ
ýù	   ÿ
ýÿ÷z'TestDataFrameQuantile.test_quantile_boxc                 C   sˆ  t tdƒtjtdƒtdƒgtdƒtdƒtjtdƒgtddd�tjtddd�tddd�gtddd�tddd�tjtddd�gt d¡t d¡t d¡tjgtjt d¡t d¡t d¡gd	œtd
ƒd�}|jddd�}ttdƒtdƒtddd�tddd�t d¡t d¡gdtd
ƒd�}t 	||¡ |jdgdd�}t tdƒtdƒtddd�tddd�t d¡t d¡ggdgtd
ƒd�}t 
||¡ d S )Nr²   r³   r´   rµ   r¶   r·   r¸   r¹   )r&   r   r'   r    r(   r!   ZAaBbCcr•   r+   Fr¦   rº   r–   )r   r   r~   ÚNaTr»   ÚlistrC   r   r@   rD   rt   )rE   rG   r®   r˜   r   r   r   Útest_quantile_box_nat)  sz    üü


ü


üüüá&Ù*

úö

úÿ
ôz+TestDataFrameQuantile.test_quantile_box_natc           	      C   sì  |\}}|dkr*|r*|j  tjjdd�¡ tt dd¡t dd¡dœƒ}tj|j	d< |j
d||d	�}td
|dkrtdnd
gddgdd�}t ||¡ |j
ddg||d	�}td
dg|dkr¾ddgnd
dgdœddgd�}t ||¡ |j
dd||d�}tt dd¡dd�}t ||¡ |j
ddgd||d�}tt dd¡gd ddgd�}|dk�r\tj|j	d< t ||¡ tj|d< |j
d||d	�}td
tjgddgdd�}t ||¡ |j
ddg||d	�}td
dgtjtjgdœddgd�}t ||¡ d S )Nr
   r/   r0   r"   g      @r¥   )rŒ   r"   r+   r5   r*   r   ro   r   r    r,   rp   rw   g      
@rm   rn   rN   rM   r#   r	   )r"   rŒ   )r;   r<   r=   r>   r?   r   r9   Úaranger    rs   rC   r   r@   rD   rt   r¼   r   r   r   Útest_quantile_nanu  sT    ÿ  ÿþû   ÿ

"z'TestDataFrameQuantile.test_quantile_nanc           	      C   sT  |\}}|dkr*|r*|j  tjjdd�¡ tdtjtjtjgiƒ}|jdd||d�}t	tjgdgdd�}t
 ||¡ |jdgd||d�}tdtjgidgd	�}t
 ||¡ ttd
ƒtdƒtdƒgtjtjtjgdœƒ}|jdd||d�}t	tdƒtjgddgdd�}t
 ||¡ |jdgd||d�}ttdƒtjggdgddgd�}t
 ||¡ d S )Nr
   r/   r0   r   r+   Fri   r,   rm   z
2012-01-01z
2012-01-02z
2012-01-03r¥   r    r–   )r;   r<   r=   r>   r?   r   r~   r¾   rC   r   r@   rD   rt   r   r¼   r   r   r   Útest_quantile_nat¦  sd    ÿ   ÿ   ÿýúÿ   ÿ   ÿ  ÿz'TestDataFrameQuantile.test_quantile_natc                 C   sê   |\}}t ddgdd�}|jd||d�}ttjtjgddgdd�}t ||¡ |jdg||d�}t tjtjggddgdgd�}t ||¡ |jdd	||d
�}tg g ddd�}t ||¡ |jdgd	||d
�}t g dgd�}t ||¡ d S )Nr   r    r“   r­   r+   r5   r,   )r`   r-   r"   rn   r¨   )r   rC   r   r9   r    r@   rD   rt   ©rE   r   r6   r7   rG   r®   r˜   r   r   r   Ú"test_quantile_empty_no_rows_floatsÕ  s    z8TestDataFrameQuantile.test_quantile_empty_no_rows_floatsc                 C   sR   |\}}t ddgdd�}|jd||d�}ttjtjgddgdd�}t ||¡ d S )Nr   r    r:   r­   r+   r5   r,   )r   rC   r   r9   r    r@   rD   rÄ   r   r   r   Ú test_quantile_empty_no_rows_intsê  s
    z6TestDataFrameQuantile.test_quantile_empty_no_rows_intsc                 C   sÔ   |\}}t ddgdd�}|jdd||d�}ttjtjgddgddd�}t ||¡ |d j d	¡|d< |jdd||d�}| 	t
¡}t ||¡ |d j d	¡|d< |jdd||d�}| 	|d j¡}t ||¡ d S )
Nr   r    r«   r­   r+   Fri   r¨   z
US/Central)r   rC   r   r~   r¾   r@   rD   ÚdtZtz_localizer8   ÚobjectrP   rÄ   r   r   r   Ú test_quantile_empty_no_rows_dt64ò  sB       ÿ
   ÿ   ÿ
   ÿz6TestDataFrameQuantile.test_quantile_empty_no_rows_dt64c                 C   s–   |\}}t tjddd�ƒ}d|j_|jdd||d�}tg g dtjd�}d|j	_t
 ||¡ |jdgd||d�}t g dgg d	�}d|j_t
 ||¡ d S )
Nz1/1/18r¤   r‚   zcaptain tightpantsr+   Tri   r’   r–   )r   r~   r   r`   r.   rC   r   r9   r“   r-   r@   rD   rt   )rE   r   r6   r7   rG   rI   rH   r   r   r   Útest_quantile_empty_no_columns  s*       ÿ   ÿz4TestDataFrameQuantile.test_quantile_empty_no_columnsc                 C   sŒ   |\}}t tj dd¡dddgd�}|d d |d< |d }|sTt|jjƒdksTt‚|jd	||d
� d|j	d< |j
d |d d ksˆt‚d S )Nr$   r   r&   r'   r(   r•   r#   r…   Fri   éc   r   )r   r   )r   r9   ÚrandomZrandnÚlenZ_mgrÚblocksra   rC   Úvaluesrs   )rE   rF   r   r6   r7   rG   r€   r   r   r   Útest_quantile_item_cache"  s    
z.TestDataFrameQuantile.test_quantile_item_cachec              	   C   s4   t jtdd�� ttdƒƒjddd� W 5 Q R X d S )NzInvalid method: foor3   r"   r+   rƒ   )r7   ©r=   r‡   r�   r   ÚrangerC   ©rE   r   r   r   Útest_invalid_method0  s    z)TestDataFrameQuantile.test_invalid_methodc              	   C   s6   t jtdd�� ttdƒƒjdddd� W 5 Q R X d S )NzInvalid interpolation: foor3   r"   r+   r
   rƒ   )r7   r6   rÑ   rÓ   r   r   r   Ú test_table_invalid_interpolation4  s    z6TestDataFrameQuantile.test_table_invalid_interpolation)+Ú__name__Ú
__module__Ú__qualname__r=   r>   Úparametrizer~   r   r   r   r   rJ   ZarraysZSparseArrayrR   rc   rh   rl   rv   rx   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      sx   ýþ
þÿù
þöþ
-*9
1üþ	

9L1/r   c                
   @   s˜  e Zd Zejejej e	dƒ¡ej
jdd�d�ejdddd�ejddd	d
�ejddd�eje d¡dd�eje d¡dd�gdd„ d�dd„ ƒZejdd„ ƒZdd„ Zdd„ Zdd„ Zej
 d¡dd„ ƒZd 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)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-d.„ ƒZej
 d/ejejge	d0ƒd$gg g d(gg¡d1d2„ ƒZd3S )4ÚTestQuantileExtensionDtyperV   z#raises when trying to add Intervalsr0   )Zmarksry   é	   r…   r   rz   r{   z1 Dayr‚   ÚInt64rO   ÚFloat64c                 C   s
   t | jƒS rQ   )ÚstrrP   r   r   r   r   r   I  r   z#TestQuantileExtensionDtype.<lambda>r   c                 C   s   |j }d|_|S ©Nr&   )r   r.   )rE   r   Úidxr   r   r   r-   =  s    z TestQuantileExtensionDtype.indexc                 C   s(   ||ƒ  ¡ }|tkrd|_ndg|_|S rß   )Úcopyr   r.   r`   )rE   r-   Zframe_or_seriesÚobjr   r   r   râ   Q  s
    zTestQuantileExtensionDtype.objc                 C   s(   t |tƒr| |¡}n|j|dd�}|S )NFr¦   )Ú
isinstancer   rC   )rE   râ   ÚqsrI   r   r   r   Úcompute_quantile\  s    
z+TestQuantileExtensionDtype.compute_quantilec                 C   sÀ   t jt|ƒt jd�}t j |¡ |j| }dddg}|  ||¡}trn|j	dkrnd}t
jj|td�}|j |¡ |j	}	|j	dkr‚d	}	t|d
 |d |d g|	|dd�}
t|ƒ|
ƒ}
t ||
¡ d S )NrO   r+   r   r"   r¬   úCfailed on Numpy 1.20.3; TypeError: data type 'Int64' not understood©r1   r‡   rÜ   rÝ   r$   rŒ   r&   ©rP   r-   r.   )r9   rÁ   rÍ   ÚintprÌ   Úshufflers   rå   r   rP   r=   r>   r?   rˆ   r;   r<   r   Útyper@   Úassert_equal©rE   r   râ   r-   Úindexerrä   rI   rŠ   r>   Z	exp_dtyperH   r   r   r   Útest_quantile_eac  s(    


   ÿz+TestQuantileExtensionDtype.test_quantile_eac                 C   s˜   |j |jd< |j |jd< tjt|ƒtjd�}tj |¡ |j| }dddg}|  ||¡}t	|d |d |d g|j
|dd	�}t|ƒ|ƒ}t ||¡ d S )
Nr   rŒ   rO   r+   r"   r$   éþÿÿÿr&   rè   )Ú	_na_valuers   r9   rÁ   rÍ   ré   rÌ   rê   rå   r   rP   rë   r@   rì   )rE   râ   r-   rî   rä   rI   rH   r   r   r   Útest_quantile_ea_with_na  s    

   ÿz3TestQuantileExtensionDtype.test_quantile_ea_with_naz-ignore:Using .astype to convert:FutureWarningc           
      C   sö   |j |jd d …< | |j¡}t |j|jk¡s2t‚tjt	|ƒtj
d�}tj |¡ |j| }dddg}|  ||¡}tr |jdkr d}tjj|td�}|j |¡ |jdddgd	|j d
�}	t|	|dd�}	|	jdkrÚ|	 d¡}	t|ƒ|	ƒ}	t ||	¡ d S )NrO   r+   r   r"   r¬   ræ   rç   rŒ   T)Z
allow_fillZ
fill_valuer&   r,   rÜ   rÝ   )rñ   rs   r8   rP   r9   ÚallZdtypesra   rÁ   rÍ   ré   rÌ   rê   rå   r   r=   r>   r?   rˆ   r;   r<   Ztaker   rë   r@   rì   )
rE   r   râ   r-   rî   rä   rI   rŠ   r>   rH   r   r   r   Útest_quantile_ea_all_na”  s$    



z2TestQuantileExtensionDtype.test_quantile_ea_all_nac                 C   sÂ   t jt|ƒt jd�}t j |¡ |j| }d}|  ||¡}trh|j	dkrhd}t
jj|td�}|j |¡ |j	}	|j	dkr|d}	td|d	 i|	dd
�}
t|tƒr²|
d }
||
ks¾t‚nt ||
¡ d S )NrO   r+   r¬   ræ   rç   rÜ   rÝ   r&   r$   )rP   r.   )r9   rÁ   rÍ   ré   rÌ   rê   rs   rå   r   rP   r=   r>   r?   rˆ   r;   r<   r   rã   ra   r@   rD   rí   r   r   r   Útest_quantile_ea_scalar°  s"    


z2TestQuantileExtensionDtype.test_quantile_ea_scalarz*dtype, expected_data, expected_index, axisr“   r"   r:   r   r    r   c                 C   sB   t ddg|d�}|jd|d�}t|dt|ƒdd�}t ||¡ d S )Nr   r    r­   r+   rŽ   r“   ©r.   r-   rP   ©r   rC   r   r   r@   rD   )rE   rP   Úexpected_dataÚexpected_indexrU   rG   rI   rH   r   r   r   Útest_empty_numericË  s       ÿz-TestQuantileExtensionDtype.test_empty_numericz:dtype, expected_data, expected_index, axis, expected_dtyper«   c           	      C   sD   t ddg|d�}|jd|dd�}t|dt|ƒ|d�}t ||¡ d S )Nr   r    r­   r+   Fr†   rö   r÷   )	rE   rP   rø   rù   rU   Zexpected_dtyperG   rI   rH   r   r   r   Útest_empty_datelikeÝ  s       ÿz.TestQuantileExtensionDtype.test_empty_datelikez#expected_data, expected_index, axisr#   c                 C   sf   t t ddg¡ddgt ddg¡dœƒ}|ddg jd	|d
d�}t|d	t|ƒtjd�}t 	||¡ d S )Nr¢   r£   r   r¤   r§   )r   r    r!   r   r!   r+   Tr†   rö   )
r   r~   r©   rC   r   r   r9   r“   r@   rD   )rE   rø   rù   rU   rG   rI   rH   r   r   r   Útest_datelike_numeric_onlyï  s    	ýÿ   ÿz5TestQuantileExtensionDtype.test_datelike_numeric_onlyN) rÖ   r×   rØ   r=   Úfixturer   r~   ZIntervalIndexZfrom_breaksrÒ   r>   r?   Zperiod_ranger   Ztimedelta_ranger—   r9   rÁ   r-   râ   rå   rï   rò   Úfilterwarningsrô   rõ   rÙ   r    rú   r¾   rû   rü   r   r   r   r   rÚ   9  sZ   þ÷ô






üþ	
	þþ
þþrÚ   )Únumpyr9   r=   Zpandas.compat.numpyr   r   Zpandasr~   r   r   r   r   Zpandas._testingZ_testingr@   rý   r   r   rÚ   r   r   r   r   Ú<module>   s$    ÿ
      $