U
    ¾mœdËŽ  ã                   @   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   úa/home/sam/Atlas/atlas_env/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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d'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zej d1d2d3d4d5g¡d6d7„ ƒZej d8d9dd	d9gd	dgg¡d:d;„ ƒZd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ Z dDdE„ Z!dFdG„ Z"dHdI„ Z#dJdK„ Z$dLdM„ Z%dNdO„ Z&dPdQ„ Z'dS )RÚTestDataFrameQuantilezdf,expectedé   é   é   é   )r   r   ç      ø?ç      @ç      à?©Únameg        Nç      ð?ç       @úSparse[float]©Údtypec                 C   s"   |  ¡ }| d¡}t ||¡ d S )Nr$   )ÚquantileÚastypeÚtmÚassert_series_equal)ÚselfÚdfÚexpectedÚresultr   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©ÚaxisÚnumeric_onlyÚinterpolationÚmethodc                    s   g | ]}t  ˆ | d ¡‘qS )é
   )ÚnpÚ
percentile)Ú.0Úcol©r,   r   r   Ú
<listcomp>>   s     z7TestDataFrameQuantile.test_quantile.<locals>.<listcomp>©Úindexr!   r   z%Name set incorrectly for arraymanager©ÚreasonçÍÌÌÌÌÌì?r   c                    s   g | ]}t  ˆ j| d ¡‘qS )éZ   )r7   r8   Úloc)r9   Údater;   r   r   r<   R   s     )r'   r   Úcolumnsr)   r*   Zassert_index_equalr>   ÚnodeÚ
add_markerÚpytestÚmarkÚxfailr!   ÚAssertionError)	r+   Údatetime_framer   Úusing_array_managerr   r4   r5   r.   r-   r   r;   r   Útest_quantile5   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   Úyr0   r   Tr1   r   rP   )r   r'   r7   ÚisnanrK   )r+   r   r4   r5   Úqr   r   r   Ú
test_emptyb   s        ÿz TestDataFrameQuantile.test_emptyc           	      C   s”   |\}}t ddddgddddgdœƒ}|jdd	||d
�}|jd	d� d¡}|dkrb|d  tj¡}|dkr„|r„|j t	j
jdd�¡ t ||¡ d S )NÚAÚBr   r   r   r   )Zcol1Zcol2r   T©r3   r4   r5   ©r3   r	   r
   úAxis name incorrectly set.r?   )r   r'   ZmedianÚrenamer(   r7   Úint64rF   rG   rH   rI   rJ   r)   r*   )	r+   r   r   rM   r4   r5   r,   ÚrsZxpr   r   r   Útest_non_numeric_exclusioni   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   ©rT   rU   ©r>   r   ©r2   r4   r5   r   ç      @r   r=   r	   r
   rX   r?   ç      è?g      ü?g      @g      @©r   r   r   r   ç      Ð?T)Zcheck_index_type)r   r'   r   r(   r7   rZ   rF   rG   rH   rI   rJ   r)   r*   ÚilocÚassert_frame_equal©	r+   r   r   rM   r4   r5   r,   r.   r-   r   r   r   Ú	test_axisx   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   ÚaÚbr   r   Tr1   ç      @ç      @r   r=   r	   r
   rX   r?   )r   r'   r   r(   r7   rZ   rF   rG   rH   rI   rJ   r)   r*   rf   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©ÚperiodsÚtzFrV   z2016-01-02 00:00:00r   údatetime64[ns, US/Pacific])r!   r&   r
   rX   r?   )ÚpdÚ
date_ranger   r   r'   rF   rG   rH   rI   rJ   r)   r*   )r+   r   r   rM   r4   r5   ZdtiÚserr,   r.   r-   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#   rj   rk   Z20130101©rp   ÚfooÚbarZbaz)rT   rU   ÚCÚDr   Tr1   r   r`   r   r    r	   r
   rX   r?   z>'<' not supported between instances of 'Timestamp' and 'float'©ÚmatchF©r2   r3   )r   rs   rt   r'   r   rF   rG   rH   rI   rJ   r)   r*   ÚraisesÚ	TypeError©
r+   r   r   rM   r4   r5   r,   r.   r-   Ú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
   rX   r?   r   r   r   r   r]   r^   r   r   r_   r#   rj   rT   rU   r=   r	   r>   r   r`   r   rE   z*No axis named -1 for object type DataFramer|   r0   éÿÿÿÿz.No axis named column for object type DataFrameÚcolumn©r2   )rF   rG   rH   rI   rJ   r   r'   r   r(   r7   rZ   r)   r*   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]   r^   r   r	   ©r2   r4   r=   r2   r   rZ   ©r>   r!   r&   r"   r#   rj   rk   Úfloat64ra   Úlowerrb   rO   r0   Zhigherr   rP   rh   ri   Úc©rE   rc   Zmidpoint)r4   r   ©r>   rE   )r   r'   r   r)   r*   r7   r8   Úarrayr   re   rQ   rK   )r+   r,   r.   r-   ÚexprR   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 )Nr0   r   Tr   )r2   r3   r4   rT   r6   )r'   r7   r8   rK   )r+   rL   r,   rR   r   r   r   Ú$test_quantile_interpolation_datetime7  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 )Nr0   rT   r6   r   r   r‰   )r'   r7   r8   rK   r)   r*   )r+   Z	int_framer,   rR   Ú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   rh   ri   r�   rŽ   rc   r   ©r4   r5   r   r#   r�   r	   r
   rX   r?   ©r   r'   r(   r7   rZ   rF   rG   rH   rI   rJ   r)   re   rf   r   r   r   Útest_quantile_multiL  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   rh   ri   r�   rŽ   rc   r   r_   r"   r#   rj   r   r�   r	   r
   rX   r?   r—   rf   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 )NrO   r0   rA   r   r_   r^   )r   r'   r7   Únanr)   re   )r+   r   r4   r5   r.   r-   r   r   r   Útest_quantile_multi_emptyn  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g d�}t ||¡ d S )NÚ2010Ú2011r   é   ©rh   ri   r   TrW   r`   ri   r=   Fz2010-07-02 12:00:00rh   r�   Ú2012r�   r   r~   z2011-07-02 12:00:00©r>   r&   r!   )r   rs   Úto_datetimer'   r   r)   r*   r   re   r7   r‹   )r+   r,   r.   r-   r   r   r   Útest_quantile_datetimex  sN    
  ÿ  ÿýýz,TestDataFrameQuantile.test_quantile_datetimer&   údatetime64[ns]rr   útimedelta64[ns]z	Period[D]c                 C   s|   |\}}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g d	�}t ||¡ d S )
Nrh   ri   ©rE   r&   r   r   Fr1   rŠ   r�   )r   r'   r   r)   r*   re   )r+   r&   r   r4   r5   r,   Úresr-   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\]r|   r–   )rH   r   r‡   r'   )r+   r©   rL   r   r‚   r4   r5   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
   rX   r?   ú
2011-01-01ú
2011-01-02ú
2011-01-03ú
US/Eastern©rq   ú1 daysú2 daysú3 days)rT   rU   rz   r   FrV   rT   rU   rz   ©r!   r>   r�   )rF   rG   rH   rI   rJ   r   r   rs   Ú	Timedeltar'   r   r)   r*   re   ©	r+   r   r   rM   r4   r5   r,   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²   )rT   rh   rU   ri   rz   r�   ZAaBbCcrŽ   r   FrW   r³   r�   )r   r   rs   ÚNaTr´   Úlistr'   r   r)   r*   re   )r+   r,   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
   rX   r?   r   g      @rŸ   )r„   r   r   r–   rj   r   r`   rh   ri   r=   ra   rk   g      
@r^   r_   r"   r    r   r	   )r   r„   )rF   rG   rH   rI   rJ   r   r7   Úarangerš   rd   r'   r   r)   r*   re   rµ   r   r   r   Útest_quantile_nanT  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
   rX   r?   rh   r   FrV   r=   r^   z
2012-01-01z
2012-01-02z
2012-01-03rŸ   ri   r�   )rF   rG   rH   rI   rJ   r   rs   r·   r'   r   r)   r*   re   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 )Nrh   ri   r‹   r¦   r   r–   r=   )rE   r>   r   r_   r¡   )r   r'   r   r7   rš   r)   r*   re   ©r+   r   r4   r5   r,   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 )Nrh   ri   rZ   r¦   r   r–   r=   )r   r'   r   r7   rš   r)   r*   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 )
Nrh   ri   r¤   r¦   r   FrV   r¡   z
US/Central)r   r'   r   rs   r·   r)   r*   ÚdtZtz_localizer(   Úobjectr&   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ž   rw   zcaptain tightpantsr   TrV   rŠ   r�   )r   rs   rt   rE   r!   r'   r   r7   r‹   r>   r)   r*   re   )r+   r   r4   r5   r,   r.   r-   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
� |r d|j	d< |j	d |d d ksŒt‚|j	d dksÖt‚n6d|j
d< |j	d |d d ksÄt‚|j	d dksÖt‚d S )Nr   r   rT   rU   rz   rŽ   r   r{   FrV   éc   r   )r   r   )r   r7   ÚrandomZrandnÚlenZ_mgrÚblocksrK   r'   rd   Úvalues)r+   rM   r   Zusing_copy_on_writer4   r5   r,   ru   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: foor|   r   r   rx   )r5   ©rH   r   r‡   r   Úranger'   ©r+   r   r   r   Útest_invalid_method  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: foor|   r   r   r
   rx   )r5   r4   rÊ   rÌ   r   r   r   Ú test_table_invalid_interpolation  s    z6TestDataFrameQuantile.test_table_invalid_interpolation)(Ú__name__Ú
__module__Ú__qualname__rH   rI   Úparametrizer   r   rs   ZarraysZSparseArrayr/   rN   rS   r\   rg   rl   rv   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      sh   þÿù
þöþ
-*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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	d/ƒd#gg g d'gg¡d0d1„ ƒZd2S )3ÚTestQuantileExtensionDtyper6   z#raises when trying to add Intervalsr?   )Zmarksrm   é	   r{   )rp   Úfreqrn   ro   z1 Dayrw   ÚInt64r%   ÚFloat64c                 C   s
   t | jƒS )N)Ústrr&   r   r   r   r   r   0  r   z#TestQuantileExtensionDtype.<lambda>r   c                 C   s   |j }d|_|S ©NrT   )r   r!   )r+   r   Úidxr   r   r   r>   $  s    z TestQuantileExtensionDtype.indexc                 C   s(   ||ƒ  ¡ }|tkrd|_ndg|_|S rÙ   )Úcopyr   r!   rE   )r+   r>   Zframe_or_seriesÚobjr   r   r   rÜ   8  s
    zTestQuantileExtensionDtype.objc                 C   s(   t |tƒr| |¡}n|j|dd�}|S )NFrW   )Ú
isinstancer   r'   )r+   rÜ   Úqsr.   r   r   r   Úcompute_quantileC  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 )Nr%   r   r   r   r¥   úCfailed on Numpy 1.20.3; TypeError: data type 'Int64' not understood©r@   r   rÖ   r×   r   r„   rT   ©r&   r>   r!   )r7   rº   rÆ   ÚintprÅ   Úshufflerd   rß   r   r&   rH   rI   rJ   r€   rF   rG   r   Útyper)   Úassert_equal©r+   r   rÜ   r>   ÚindexerrÞ   r.   r‚   rI   Z	exp_dtyper-   r   r   r   Útest_quantile_eaJ  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„   r%   r   r   r   éþÿÿÿrT   râ   )Ú	_na_valuerd   r7   rº   rÆ   rã   rÅ   rä   rß   r   r&   rå   r)   ræ   )r+   rÜ   r>   rè   rÞ   r.   r-   r   r   r   Útest_quantile_ea_with_nae  s    

   ÿz3TestQuantileExtensionDtype.test_quantile_ea_with_nac                 C   s¨   |j |jd d …< t |j|jk¡s&t‚tjt|ƒtj	d�}tj
 |¡ |j| }dddg}|  ||¡}|jdddgd|j d�}t||dd	�}t|ƒ|ƒ}t ||¡ d S )
Nr%   r   r   r   r„   T)Z
allow_fillZ
fill_valuerT   r=   )rë   rd   r7   ÚallZdtypesr&   rK   rº   rÆ   rã   rÅ   rä   rß   Ztaker   rå   r)   ræ   )r+   r   rÜ   r>   rè   rÞ   r.   r-   r   r   r   Útest_quantile_ea_all_nax  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 )Nr%   r   r¥   rà   rá   rÖ   r×   rT   r   )r&   r!   )r7   rº   rÆ   rã   rÅ   rä   rd   rß   r   r&   rH   rI   rJ   r€   rF   rG   r   rÝ   rK   r)   r*   rç   r   r   r   Útest_quantile_ea_scalarŠ  s"    


z2TestQuantileExtensionDtype.test_quantile_ea_scalarz*dtype, expected_data, expected_index, axisr‹   r   rZ   rh   ri   r   c                 C   sB   t ddg|d�}|jd|d�}t|dt|ƒdd�}t ||¡ d S )Nrh   ri   r¦   r   r†   r‹   ©r!   r>   r&   ©r   r'   r   r   r)   r*   )r+   r&   Úexpected_dataÚexpected_indexr2   r,   r.   r-   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 )Nrh   ri   r¦   r   Fr~   rð   rñ   )	r+   r&   rò   ró   r2   Zexpected_dtyper,   r.   r-   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    )rh   ri   r�   rh   r�   r   Tr~   rð   )
r   rs   r¢   r'   r   r   r7   r‹   r)   r*   )r+   rò   ró   r2   r,   r.   r-   r   r   r   Útest_datelike_numeric_onlyÉ  s    	ýÿ   ÿz5TestQuantileExtensionDtype.test_datelike_numeric_onlyN)rÏ   rÐ   rÑ   rH   Úfixturer   rs   ZIntervalIndexZfrom_breaksrË   rI   rJ   Zperiod_rangert   Ztimedelta_ranger�   r7   rº   r>   rÜ   rß   ré   rì   rî   rï   rÒ   rš   rô   r·   rõ   rö   r   r   r   r   rÓ      sX   þ÷ô




üþ	
	þþ
þþrÓ   )Únumpyr7   rH   Zpandas.compat.numpyr   r   Zpandasrs   r   r   r   r   Zpandas._testingZ_testingr)   r÷   r   r   rÓ   r   r   r   r   Ú<module>   s$    ÿ
      