a
    é´«jïŽ  ã                   @   sŽ   d dl Zd dlZd dl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)Úusing_string_dtype)Ú	DataFrameÚIndexÚSeriesÚ	TimestampÚlinearÚsingleÚnearestÚtablec                 C   s
   d  | ¡S )Nú-)Újoin©Úx© r   úg/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/methods/test_quantile.pyÚ<lambda>   ó    r   ©ÚparamsÚ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g d¢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-d.„ Zej d/g d0¢¡d1d2„ ƒZej d3d4dd	d4gd	dgg¡d5d6„ ƒZd7d8„ Zd9d:„ Zd;d<„ Zd=d>„ Z d?d@„ Z!dAdB„ Z"dCdD„ Z#dEdF„ Z$dGdH„ Z%dIdJ„ Z&dKdL„ Z'dMS )NÚTestDataFrameQuantilezdf,expectedé   é   é   é   )r   r   ç      ø?ç      @ç      à?©Úname)g        Nç      ð?ç       @úSparse[float]©Údtyper#   c                 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 ||¡ n6t |j|j¡ | tj	j
|d	d
�¡ |j|jksŒJ ‚ˆ j ddd||d�}t‡ fdd„ˆ jD ƒˆ jdd�}|dkrÖt ||¡ n8t |j|j¡ | tj	j
|d	d
�¡ |j|jk�sJ ‚d S )Nçš™™™™™¹?r   T©ÚaxisÚnumeric_onlyÚinterpolationÚmethodc                    s   g | ]}t  ˆ | d ¡‘qS )é
   )ÚnpÚ
percentile)Ú.0Úcol©r-   r   r   Ú
<listcomp>;   r   z7TestDataFrameQuantile.test_quantile.<locals>.<listcomp>©Úindexr"   r   z%Name set incorrectly for arraymanager©ÚreasonçÍÌÌÌÌÌì?r   c                    s   g | ]}t  ˆ j| d ¡‘qS )éZ   )r8   r9   Úloc)r:   Údater<   r   r   r=   O   r   )r(   r   Úcolumnsr*   r+   Zassert_index_equalr?   ÚapplymarkerÚpytestÚmarkÚxfailr"   )	r,   Údatetime_framer   Úusing_array_managerr   r5   r6   r/   r.   r   r<   r   Útest_quantile2   sH    
ÿýÿÿ
ÿýÿÿz#TestDataFrameQuantile.test_quantilec                 C   sJ   |\}}t g g dœƒjddd||d�}t |d ¡rBt |d ¡sFJ ‚d S )N©r   Úyr1   r   Tr2   r   rO   )r   r(   r8   Úisnan)r,   r   r5   r6   Úqr   r   r   Ú
test_empty_   s
    
ÿz TestDataFrameQuantile.test_emptyc           	      C   sŠ   |\}}t g d¢g d¢dœƒ}|jdd||d�}|jdd� d¡}|dkrZ|d  tj¡}|d	krz|rz| tj	j
d
d�¡ t ||¡ d S )N)ÚArS   ÚBrT   )r   r   r   r   )Zcol1Zcol2r    T©r4   r5   r6   ©r4   r	   r
   úAxis name incorrectly set.r@   )r   r(   ZmedianÚrenamer)   r8   Úint64rG   rH   rI   rJ   r*   r+   )	r,   r   r   rL   r5   r6   r-   ÚrsZxpr   r   r   Útest_non_numeric_exclusionf   s    ÿz0TestDataFrameQuantile.test_non_numeric_exclusionc           	      C   s&  |\}}t g d¢g d¢dœg d¢d�}|jdd||d�}tg d¢g d¢dd	�}|d
krb| tj¡}|dkr‚|r‚| 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 )N©r   r   r   ©r   r   r   ©rS   rT   ©r?   r    r   ©r3   r5   r6   ©r   ç      @r   r>   r	   r
   rW   r@   ç      è?r   g      ü?rb   g      @r   g      @r   ç      Ð?T)Zcheck_index_type)r   r(   r   r)   r8   rY   rG   rH   rI   rJ   r*   r+   ÚilocÚassert_frame_equal©	r,   r   r   rL   r5   r6   r-   r/   r.   r   r   r   Ú	test_axiss   s(    ÿÿ
zTestDataFrameQuantile.test_axisc           	      C   sŠ   |\}}t g d¢g d¢gƒ}|jddd||d�}tddgd	dgdd
�}|dkrZ| tj¡}|dkrz|rz| tjj	dd�¡ t
 ||¡ d S )Nr\   )ÚaÚbr   r    r   Tr2   ç      @ç      @r   r>   r	   r
   rW   r@   )r   r(   r   r)   r8   rY   rG   rH   rI   rJ   r*   r+   rg   r   r   r   Útest_axis_numeric_only_true‹   s    
ÿz1TestDataFrameQuantile.test_axis_numeric_only_truec                 C   sx   |\}}t jdddd�}t|ƒ}t|ƒ}|jd||d�}	tdgdd	d
�}
|dkrh|rh| tjjdd�¡ t	 
|	|
¡ d S )Nú
2016-01-01r   ú
US/Pacific©ÚperiodsÚtzFrU   z2016-01-02 00:00:00r    údatetime64[ns, US/Pacific])r"   r'   r
   rW   r@   )ÚpdÚ
date_ranger   r   r(   rG   rH   rI   rJ   r*   r+   )r,   r   r   rL   r5   r6   ÚdtiÚserr-   r/   r.   r   r   r   Útest_quantile_date_range›   s    ÿÿz.TestDataFrameQuantile.test_quantile_date_rangec           
      C   sÖ   |\}}t g d¢g d¢tjddd�g d¢dœƒ}|jdd	d
||d�}tg d¢dd�}|dkrd|d8 }|dkr„|r„| tjjdd�¡ t	 
||¡ d}	tjt|	d��  |jdd	dd� W d   ƒ n1 sÈ0    Y  d S )Nr\   ©r$   rk   rl   Z20130101r   ©rq   )ÚfooÚbarZbaz)rS   rT   ÚCÚDr    r   Tr2   ra   r!   r	   r
   rW   r@   z>'<' not supported between instances of 'Timestamp' and 'float'©ÚmatchF©r3   r4   )r   rt   ru   r(   r   rG   rH   rI   rJ   r*   r+   ÚraisesÚ	TypeError©
r,   r   r   rL   r5   r6   r-   r/   r.   Úmsgr   r   r   Útest_quantile_axis_mixed­   s(    üÿ
ÿz.TestDataFrameQuantile.test_quantile_axis_mixedc           
      C   s²  |\}}|dkr(|r(|  tjjdd�¡ tg d¢g d¢dœg d¢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g d¢g d¢dd�}|dkrü| tj	¡}t
 ||¡ |jdd||d
�}t
 ||¡ d}	tjt|	d��" |jdd||d
� W d   ƒ n1 �sb0    Y  d}	tjt|	d�� |jddd� W d   ƒ n1 �s¤0    Y  d S )Nr
   rW   r@   r\   r]   r^   r_   r    r   r`   r$   rk   rS   rT   r>   r	   r?   r   ra   rF   z*No axis named -1 for object type DataFramer   r1   éÿÿÿÿz.No axis named column for object type DataFrameÚcolumn©r3   )rG   rH   rI   rJ   r   r(   r   r)   r8   rY   r*   r+   r‚   Ú
ValueErrorr„   r   r   r   Útest_quantile_axis_parameterÇ   s<    ÿÿ2z2TestDataFrameQuantile.test_quantile_axis_parameterc                 C   s  t g d¢g d¢dœg d¢d�}|jdddd�}tg d¢g d¢dd	�}t ||¡ tjt g d¢g d¢g¡dd
dd�}t|g d¢ddd�}t ||¡ t g d¢g d¢dœg d¢d�}|jdddd�}tg d¢g d¢dd	�}t ||¡ tjt g d¢g d¢g¡dd
dd�}t|g d¢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®J ‚t g d¢g d¢g d¢gg d¢d�}|jd dgd!d"�}t g d#¢g d$¢gd dgg d¢d%�}t ||¡ d S )&Nr\   r]   r^   r_   r    r   r	   ©r3   r5   r>   r   )r3   r6   rY   ©r?   r"   r'   ©r#   r$   rk   ry   Úfloat64rc   Úlowerr#   r$   rk   rN   r1   Zhigherr   rO   ©r   r   r   ©r   r   r   ©r   r   r   ©ri   rj   Úc©rF   rd   Zmidpoint)r5   ©r   r   r   ©r$   r$   r$   ©r?   rF   )
r   r(   r   r*   r+   r8   r9   Úarrayrf   rP   )r,   r-   r/   r.   ÚexprQ   r   r   r   Útest_quantile_interpolationï   sP    üüÿ$"ýz1TestDataFrameQuantile.test_quantile_interpolationc                 C   s6   |}|j ddddd�}|d t |d d¡ks2J ‚d S )Nr1   r   Tr   )r3   r4   r5   rS   r7   )r(   r8   r9   )r,   rK   r-   rQ   r   r   r   Ú$test_quantile_interpolation_datetime(  s    z:TestDataFrameQuantile.test_quantile_interpolation_datetimec                 C   sf   |}|  d¡}|d t |d d¡ks*J ‚|j dddd�}|d t |d d¡ksVJ ‚t ||¡ d S )Nr1   rS   r7   r   r   rŒ   )r(   r8   r9   r*   r+   )r,   Z	int_framer-   rQ   Úq1r   r   r   Útest_quantile_interpolation_int0  s    
z5TestDataFrameQuantile.test_quantile_interpolation_intc           	      C   s¤   |\}}t g d¢g d¢g d¢gg d¢d�}|jddg||d�}t g d	¢g d
¢gddgg d¢d�}|dkrt| tj¡}|dkr”|r”| tjjdd�¡ t	 
||¡ d S )Nr‘   r’   r“   r”   r–   rd   r    ©r5   r6   r—   r˜   r™   r	   r
   rW   r@   ©r   r(   r)   r8   rY   rG   rH   rI   rJ   r*   rf   rg   r   r   r   Útest_quantile_multi=  s    "ýz)TestDataFrameQuantile.test_quantile_multic           	      C   s¤   |\}}t g d¢g d¢g d¢gg d¢d�}|jddgd||d	�}t g d
¢gd ddgg d¢d�}|dkrt| tj¡}|dkr”|r”| tjjdd�¡ t	 
||¡ d S )Nr‘   r’   r“   r”   r–   rd   r    r   r`   rŽ   r   )r   r   r   r™   r	   r
   rW   r@   r¡   rg   r   r   r   Útest_quantile_multi_axis_1L  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 )NrN   r1   rB   r   r`   r_   )r   r(   r8   Únanr*   rf   )r,   r   r5   r6   r/   r.   r   r   r   Útest_quantile_multi_empty[  s    ÿÿz/TestDataFrameQuantile.test_quantile_multi_emptyc                 C   sà  t  ddg¡ |¡}t|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	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|› 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|› d�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   é   ©ri   rj   r    TrV   rb   rj   r>   Fz2010-07-02 12:00:00ri   r_   Ú2012r•   r   r�   z2011-07-02 12:00:00úM8[ú]r�   ©r?   rF   r'   ©r?   r'   r"   r™   )rt   Úto_datetimeZas_unitr   r(   r   r*   r+   r   rf   r8   r�   )r,   Úunitrv   r-   r/   r.   r   r   r   Útest_quantile_datetimee  sN    ÿþ
ü
üz,TestDataFrameQuantile.test_quantile_datetimer'   )údatetime64[ns]rs   z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 )
Nri   rj   ©rF   r'   r    r   Fr2   r�   r™   )r   r(   r   r*   r+   rf   )r,   r'   r   r5   r6   r-   Úresr.   r   r   r   Útest_quantile_dt64_emptyš  s     
ÿûz.TestDataFrameQuantile.test_quantile_dt64_emptyÚinvalidr‡   c                 C   sN   d}|\}}t jt|d��  |j|||d� W d   ƒ n1 s@0    Y  d S )Nz2percentiles should all be in the interval \[0, 1\]r   r    )rH   r‚   rŠ   r(   )r,   r¶   rK   r   r…   r5   r6   r   r   r   Útest_quantile_invalid¹  s    z+TestDataFrameQuantile.test_quantile_invalidc           	      C   s  |\}}|dkr(|r(|  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g d¢d�}t
 ||¡ |jdgd||d�}ttdƒtddd�t d
¡ggdgg d¢d�}t
 ||¡ d S )Nr
   rW   r@   ú
2011-01-01ú
2011-01-02ú
2011-01-03ú
US/Eastern©rr   ú1 daysú2 daysú3 days©rS   rT   r}   r    FrU   ©r"   r?   r™   )rG   rH   rI   rJ   r   r   rt   Ú	Timedeltar(   r   r*   r+   rf   ©	r,   r   r   rL   r5   r6   r-   r´   r›   r   r   r   Útest_quantile_boxÀ  sV    ý


ýýõÿÿ
ýù	
ÿ
ýÿ÷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¿   )rS   ri   rT   rj   r}   r•   ZAaBbCcr–   r    FrV   rÁ   r™   )r   r   rt   ÚNaTrÂ   Úlistr(   r   r*   r+   rf   )r,   r-   r´   r›   r   r   r   Útest_quantile_box_nat÷  sz    üü


ü


üüüá&Ù*

úö

úÿ
ôz+TestDataFrameQuantile.test_quantile_box_natc           	      C   sê  |\}}|dkr(|r(|  tjjdd�¡ tt dd¡t dd¡dœƒ}tj|jd< |j	d||d	�}t
d
|dkrrd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�rZt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
   rW   r@   r   g      @r©   )r‡   r   r    r    rk   r   rb   ri   rj   r>   rc   rl   g      
@r_   r`   r#   r!   r   r	   )r   r‡   )rG   rH   rI   rJ   r   r8   Úaranger¤   re   r(   r   r*   r+   rf   rÃ   r   r   r   Útest_quantile_nanC  sF    ÿþûÿ

"z'TestDataFrameQuantile.test_quantile_nanc           
      C   s’  |\}}|dkr(|r(|  tjjdd�¡ tdtjtjtjgid|› d�d�}|jdd	||d
�}ttjgdgdd|› d�d�}	t	 
||	¡ |jdgd	||d
�}tdtjgidgd|› d�d�}	t	 ||	¡ ttdƒtdƒtdƒgtjtjtjgdœd|› d�d�}|jdd	||d
�}ttdƒtjgddgdd|› d�d�}	t	 
||	¡ |jdgd	||d
�}ttdƒtjggdgddgd|› d�d�}	t	 ||	¡ d S )Nr
   rW   r@   ri   r«   r¬   r&   r    FrU   r�   )r?   r'   z
2012-01-01z
2012-01-02z
2012-01-03r©   rj   r­   )rG   rH   rI   rJ   r   rt   rÅ   r(   r   r*   r+   rf   r   )
r,   r   r   rL   r°   r5   r6   r-   r´   r›   r   r   r   Útest_quantile_natr  sV    $ÿ
ÿ ýú
÷ÿ
ü
ÿ
ü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 )Nri   rj   r�   r³   r    r    r>   )rF   r?   r   r`   r®   )r   r(   r   r8   r¤   r*   r+   rf   ©r,   r   r5   r6   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 )Nri   rj   rY   r³   r    r    r>   )r   r(   r   r8   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
¡}|d
krÌd}tjt|d��  |jtjdd�}W d   ƒ n1 sÂ0    Y  t ||¡ |d j d	¡|d< |jdd||d�}| 	|d j¡}t ||¡ d S )Nri   rj   r²   r³   r    FrU   r®   z
US/Centralr	   z.The 'downcast' keyword in fillna is deprecatedr   )Zdowncast)r   r(   r   rt   rÅ   r*   r+   ÚdtZtz_localizer)   ÚobjectZassert_produces_warningÚFutureWarningZfillnar8   r¤   r'   )r,   r   r5   r6   r-   r´   r›   r…   r   r   r   Ú test_quantile_empty_no_rows_dt64Å  s2    ÿÿÿ
.ÿ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¨   rz   zcaptain tightpantsr    TrU   r�   r™   )r   rt   ru   rF   r"   r(   r   r8   r�   r?   r*   r+   rf   )r,   r   r5   r6   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¡g d¢d�}|d d |d< |d }|sVt|jjƒdksVJ ‚|jd||d� |r¢d	|j	d
< |j	d |d d
 ksŽJ ‚|j	d d	ksØJ ‚n6d	|j
d
< |j	d |d d
 ksÆJ ‚|j	d d	ksØJ ‚d S )Nr   )r   r   rÀ   r–   rS   r~   FrU   éc   r   )r   r   )r   r8   ÚrandomÚdefault_rngZstandard_normalÚlenZ_mgrÚblocksr(   re   Úvalues)r,   rL   r   Zusing_copy_on_writer5   r6   r-   rw   r   r   r   Útest_quantile_item_cacheú  s     ÿ

z.TestDataFrameQuantile.test_quantile_item_cachec                 C   sH   t jtdd��& ttdƒƒjddd� W d   ƒ n1 s:0    Y  d S )NzInvalid method: foor   r   r    r{   )r6   ©rH   r‚   rŠ   r   Úranger(   ©r,   r   r   r   Útest_invalid_method  s    z)TestDataFrameQuantile.test_invalid_methodc                 C   sJ   t jtdd��( ttdƒƒjdddd� W d   ƒ n1 s<0    Y  d S )NzInvalid interpolation: foor   r   r    r
   r{   )r6   r5   rÚ   rÜ   r   r   r   Ú test_table_invalid_interpolation  s    z6TestDataFrameQuantile.test_table_invalid_interpolationN)(Ú__name__Ú
__module__Ú__qualname__rH   rI   Úparametrizer   r   rt   ZarraysZSparseArrayr0   rM   rR   r[   rh   rm   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      s`   þÿù
þöþ
-(9
5þ	

7L/6"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
jeƒ d!d"d#�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
jeƒ d!d"d#�ej
 d-d.g g d&d.gd.ejejgd(d)gd*d.gg¡d/d0„ ƒƒZej
jeƒ d!d"d#�ej
 d1ejejge	d2ƒd&gg g d*gg¡d3d4„ ƒƒZd5S )6ÚTestQuantileExtensionDtyper7   z#raises when trying to add Intervalsr@   )Zmarksrn   é	   r~   )rq   Úfreqro   rp   z1 Dayrz   ÚInt64r&   ÚFloat64c                 C   s
   t | jƒS )N)Ústrr'   r   r   r   r   r   +  r   z#TestQuantileExtensionDtype.<lambda>r   c                 C   s   |j }d|_|S ©NrS   )r   r"   )r,   r   Úidxr   r   r   r?     s    z TestQuantileExtensionDtype.indexc                 C   s(   ||ƒ  ¡ }|tu rd|_ndg|_|S ré   )Úcopyr   r"   rF   )r,   r?   Zframe_or_seriesÚobjr   r   r   rì   3  s
    zTestQuantileExtensionDtype.objc                 C   s(   t |tƒr| |¡}n|j|dd�}|S )NFrV   )Ú
isinstancer   r(   )r,   rì   Úqsr/   r   r   r   Úcompute_quantile>  s    
z+TestQuantileExtensionDtype.compute_quantilec           	      C   s–   t jt|ƒt jd�}t j d¡ |¡ |j| }g d¢}|  ||¡}|j	}|j	dkrXd}t
|d |d |d g||d	d
�}t|ƒ|ƒ}t ||¡ d S )Nr&   r   ©r    r   r   ræ   rç   r   r   r‡   rS   ©r'   r?   r"   )r8   rÈ   rÖ   ÚintprÔ   rÕ   Úshufflere   rï   r'   r   Útyper*   Úassert_equal©	r,   r   rì   r?   Úindexerrî   r/   Z	exp_dtyper.   r   r   r   Útest_quantile_eaE  s    

ÿz+TestQuantileExtensionDtype.test_quantile_eac                 C   sœ   |j |jd< |j |jd< tjt|ƒtjd�}tj d¡ |¡ |j| }g d¢}|  	||¡}t
|d |d |d g|j|d	d
�}t|ƒ|ƒ}t ||¡ d S )Nr   r‡   r&   r   rð   r   r   éþÿÿÿrS   rñ   )Ú	_na_valuere   r8   rÈ   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_na[  s    
ÿz3TestQuantileExtensionDtype.test_quantile_ea_with_nac                 C   sª   |j |jd d …< t |j|jk¡s&J ‚tjt|ƒtjd�}tj	 
d¡ |¡ |j| }g d¢}|  ||¡}|jg d¢d|j d�}t||dd�}t|ƒ|ƒ}t ||¡ d S )	Nr&   r   rð   )r‡   r‡   r‡   T)Z
allow_fillZ
fill_valuerS   r>   )rú   re   r8   ÚallZdtypesr'   rÈ   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_nan  s    
z2TestQuantileExtensionDtype.test_quantile_ea_all_nac           	      C   sš   t jt|ƒt jd�}t j d¡ |¡ |j| }d}|  ||¡}|j	}|j	dkrTd}t
d|d i|dd�}t|t
ƒrŠ|d }||ks–J ‚nt ||¡ d S )	Nr&   r   r    ræ   rç   rS   r   )r'   r"   )r8   rÈ   rÖ   rò   rÔ   rÕ   ró   re   rï   r'   r   rí   r*   r+   rö   r   r   r   Útest_quantile_ea_scalar€  s    


z2TestQuantileExtensionDtype.test_quantile_ea_scalarzTODO(infer_string)F)rA   Ústrictz*dtype, expected_data, expected_index, axisr�   r   rY   ri   rj   r   c                 C   sB   t ddg|d�}|jd|d�}t|dt|ƒdd�}t ||¡ d S )Nri   rj   r³   r    r‰   r�   ©r"   r?   r'   ©r   r(   r   r   r*   r+   )r,   r'   Úexpected_dataÚexpected_indexr3   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 )Nri   rj   r³   r    Fr�   r   r  )	r,   r'   r  r  r3   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ª   r”   ri   r•   r    Tr�   r   )
r   rt   r¯   r(   r   r   r8   r�   r*   r+   )r,   r  r  r3   r-   r/   r.   r   r   r   Útest_datelike_numeric_only¼  s    
ýÿÿz5TestQuantileExtensionDtype.test_datelike_numeric_onlyN) rß   rà   rá   rH   Úfixturer   rt   ZIntervalIndexZfrom_breaksrÛ   rI   rJ   Zperiod_rangeru   Ztimedelta_rangerš   r8   rÈ   r?   rì   rï   rø   rû   rý   rþ   r   râ   r¤   r  rÅ   r  r  r   r   r   r   rã     s^   þ÷ô




üþ		þþþþrã   )Únumpyr8   rH   Zpandas._configr   Zpandasrt   r   r   r   r   Zpandas._testingZ_testingr*   r  r   r   rã   r   r   r   r   Ú<module>   s"   ÿ
      	