o
    Û­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   úe/var/www/html/CropPilot/venv/lib/python3.10/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r+t ||¡ nt |j|j¡ | tj	j
|d	d
�¡ |j|jksFJ ‚ˆ j ddd||d�}t‡ fdd„ˆ jD ƒˆ jdd�}|dkrlt ||¡ d S t |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>;   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   )r8   r9   Úloc)r:   Údater<   r   r   r=   O   s    )r(   r   Úcolumnsr*   r+   Ú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 ¡r!t |d ¡s#J ‚d S )N©r   Úyr1   r   Tr2   r   rP   )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r-|d  tj¡}|d	kr=|r=| tj	j
d
d�¡ t ||¡ d S )N)ÚArT   ÚBrU   )r   r   r   r   )Úcol1Úcol2r    T©r4   r5   r6   ©r4   r	   r
   úAxis name incorrectly set.r@   )r   r(   ÚmedianÚrenamer)   r8   Úint64rH   rI   rJ   rK   r*   r+   )	r,   r   r   rM   r5   r6   r-   ÚrsÚ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r1| tj¡}|dkrA|rA| 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   ©rT   rU   ©r?   r    r   ©r3   r5   r6   ©r   ç      @r   r>   r	   r
   rZ   r@   ç      è?r   g      ü?rg   g      @r   g      @r   ç      Ð?T)Úcheck_index_type)r   r(   r   r)   r8   r]   rH   rI   rJ   rK   r*   r+   ÚilocÚassert_frame_equal©	r,   r   r   rM   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r-| tj¡}|dkr=|r=| tjj	dd�¡ t
 ||¡ d S )Nra   )ÚaÚbr   r    r   Tr2   ç      @ç      @r   r>   r	   r
   rZ   r@   )r   r(   r   r)   r8   r]   rH   rI   rJ   rK   r*   r+   rm   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r4|r4| tjjdd�¡ t	 
|	|
¡ d S )Nú
2016-01-01r   ú
US/Pacific©ÚperiodsÚtzFrX   z2016-01-02 00:00:00r    údatetime64[ns, US/Pacific])r"   r'   r
   rZ   r@   )ÚpdÚ
date_ranger   r   r(   rH   rI   rJ   rK   r*   r+   )r,   r   r   rM   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r2|d8 }|dkrB|rB| tjjdd�¡ t	 
||¡ d}	tjt|	d�� |jdd	dd� W d   ƒ d S 1 sew   Y  d S )Nra   ©r$   rq   rr   Ú20130101r   ©rw   )ÚfooÚbarÚbaz)rT   rU   ÚCÚDr    r   Tr2   rf   r!   r	   r
   rZ   r@   z>'<' not supported between instances of 'Timestamp' and 'float'©ÚmatchF©r3   r4   )r   rz   r{   r(   r   rH   rI   rJ   rK   r*   r+   ÚraisesÚ	TypeError©
r,   r   r   rM   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rA| tj	¡}t
 ||¡ |jdd||d
�}|dkrZ| 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 s°w   Y  d}	tjt|	d�� |jddd� W d   ƒ d S 1 sÑw   Y  d S )Nr
   rZ   r@   ra   rb   rc   rd   r    r   re   r$   rq   rT   rU   r>   r	   r?   r   rf   rF   z*No axis named -1 for object type DataFramer‡   r1   éÿÿÿÿz.No axis named column for object type DataFrameÚcolumn©r3   )rH   rI   rJ   rK   r   r(   r   r)   r8   r]   r*   r+   rŠ   Ú
ValueErrorrŒ   r   r   r   Útest_quantile_axis_parameterÇ   s@   ÿÿÿ"ÿ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 )&Nra   rb   rc   rd   r    r   r	   ©r3   r5   r>   r   )r3   r6   r]   ©r?   r"   r'   ©r#   r$   rq   r   Úfloat64rh   Úlowerr#   r$   rq   rO   r1   Úhigherr   rP   ©r   r   r   ©r   r   r   ©r   r   r   ©ro   rp   Úc©rF   ri   Úmidpoint)r5   ©r   r   r   ©r$   r$   r$   ©r?   rF   )
r   r(   r   r*   r+   r8   r9   Úarrayrl   rQ   )r,   r-   r/   r.   ÚexprR   r   r   r   Útest_quantile_interpolationï   sP   üüÿ "ýz1TestDataFrameQuantile.test_quantile_interpolationc                 C   s6   |}|j ddddd�}|d t |d d¡ksJ ‚d S )Nr1   r   Tr   )r3   r4   r5   rT   r7   )r(   r8   r9   )r,   rL   r-   rR   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s+J ‚t ||¡ d S )Nr1   rT   r7   r   r   r”   )r(   r8   r9   r*   r+   )r,   Ú	int_framer-   rR   Ú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r:| tj¡}|dkrJ|rJ| tjjdd�¡ t	 
||¡ d S )Nrš   r›   rœ   r�   rŸ   ri   r    ©r5   r6   r¡   r¢   r£   r	   r
   rZ   r@   ©r   r(   r)   r8   r]   rH   rI   rJ   rK   r*   rl   rm   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r:| tj¡}|dkrJ|rJ| tjjdd�¡ t	 
||¡ d S )Nrš   r›   rœ   r�   rŸ   ri   r    r   re   r–   r   )r   r   r   r£   r	   r
   rZ   r@   r¬   rm   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 )NrO   r1   rB   r   re   rd   )r   r(   r8   Únanr*   rl   )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   é   ©ro   rp   r    TrY   rg   rp   r>   Fz2010-07-02 12:00:00ro   rd   Ú2012rž   r   r‰   z2011-07-02 12:00:00úM8[ú]r•   ©r?   rF   r'   ©r?   r'   r"   r£   )rz   Úto_datetimeÚas_unitr   r(   r   r*   r+   r   rl   r8   r—   )r,   Úunitr|   r-   r/   r.   r   r   r   Útest_quantile_datetimee  sN   ÿþ
ü
üz,TestDataFrameQuantile.test_quantile_datetimer'   )údatetime64[ns]ry   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 )
Nro   rp   ©rF   r'   r    r   Fr2   r•   r£   )r   r(   r   r*   r+   rl   )r,   r'   r   r5   r6   r-   Úresr.   r   r   r   Útest_quantile_dt64_emptyš  s    
ÿûz.TestDataFrameQuantile.test_quantile_dt64_emptyÚinvalidr�   c                 C   sP   d}|\}}t jt|d�� |j|||d� W d   ƒ d S 1 s!w   Y  d S )Nz2percentiles should all be in the interval \[0, 1\]r‡   r«   )rI   rŠ   r’   r(   )r,   rÂ   rL   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
   rZ   r@   ú
2011-01-01ú
2011-01-02ú
2011-01-03ú
US/Eastern©rx   ú1 daysú2 daysú3 days©rT   rU   r…   r    FrX   ©r"   r?   r£   )rH   rI   rJ   rK   r   r   rz   Ú	Timedeltar(   r   r*   r+   rl   ©	r,   r   r   rM   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Ë   )rT   ro   rU   rp   r…   rž   ÚAaBbCcrŸ   r    FrY   rÍ   r£   )r   r   rz   ÚNaTrÎ   Úlistr(   r   r*   r+   rl   )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r9d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
   rZ   r@   r   g      @r´   )r�   r   r    r«   rq   r   rg   ro   rp   r>   rh   rr   g      
@rd   re   r#   r!   r   r	   )r   r�   )rH   rI   rJ   rK   r   r8   Úaranger¯   rk   r(   r   r*   r+   rl   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
   rZ   r@   ro   r¶   r·   r&   r    FrX   r•   )r?   r'   z
2012-01-01z
2012-01-02z
2012-01-03r´   rp   r¸   )rH   rI   rJ   rK   r   rz   rÒ   r(   r   r*   r+   rl   r   )
r,   r   r   rM   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 )Nro   rp   r—   r¿   r    r«   r>   )rF   r?   r   re   r¹   )r   r(   r   r8   r¯   r*   r+   rl   ©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 )Nro   rp   r]   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rfd}tjt|d�� |jtjdd�}W d   ƒ n1 saw   Y  t ||¡ |d j d	¡|d< |jdd||d�}| 	|d j¡}t ||¡ d S )Nro   rp   r¾   r¿   r    FrX   r¹   z
US/Centralr	   z.The 'downcast' keyword in fillna is deprecatedr‡   )Údowncast)r   r(   r   rz   rÒ   r*   r+   ÚdtÚtz_localizer)   ÚobjectÚassert_produces_warningÚFutureWarningÚfillnar8   r¯   r'   )r,   r   r5   r6   r-   rÀ   r¥   r�   r   r   r   Ú test_quantile_empty_no_rows_dt64Å  s4   ÿÿÿ
ÿÿ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    TrX   r•   r£   )r   rz   r{   rF   r"   r(   r   r8   r—   r?   r*   r+   rl   )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 }|s+t|jjƒdks+J ‚|jd||d� |rRd	|j	d
< |j	d |d d
 ksGJ ‚|j	d d	ksPJ ‚d S d	|j
d
< |j	d |d d
 ksdJ ‚|j	d d	ksmJ ‚d S )Nr   )r   r   rÌ   rŸ   rT   r†   FrX   éc   r   )r   r   )r   r8   ÚrandomÚdefault_rngÚstandard_normalÚlenÚ_mgrÚblocksr(   rk   Úvalues)r,   rM   r   Úusing_copy_on_writer5   r6   r-   r}   r   r   r   Útest_quantile_item_cacheú  s    ÿ

z.TestDataFrameQuantile.test_quantile_item_cachec                 C   sJ   t jtdd�� ttdƒƒjddd� W d   ƒ d S 1 sw   Y  d S )NzInvalid method: foor‡   r   r    r‚   )r6   ©rI   rŠ   r’   r   Úranger(   ©r,   r   r   r   Útest_invalid_method  s   "ÿz)TestDataFrameQuantile.test_invalid_methodc                 C   sL   t jtdd�� ttdƒƒjdddd� W d   ƒ d S 1 sw   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__rI   rJ   Úparametrizer   r   rz   ÚarraysÚSparseArrayr0   rN   rS   r`   rn   rs   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      sb    þÿù
þöþ
-(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@   )Úmarksrt   é	   r†   )rw   Úfreqru   rv   z1 Dayr�   Ú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 ©NrT   )r   r"   )r,   r   Úidxr   r   r   r?     s   z TestQuantileExtensionDtype.indexc                 C   s*   ||ƒ  ¡ }|tu rd|_|S dg|_|S r   )Úcopyr   r"   rF   )r,   r?   Úframe_or_seriesÚobjr   r   r   r  3  s   ÿzTestQuantileExtensionDtype.objc                 C   s*   t |tƒr| |¡}|S |j|dd�}|S )NFrY   )Ú
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r,d}t
|d |d |d g||d	d
�}t|ƒ|ƒ}t ||¡ d S )Nr&   r   ©r    r   r   rý   rþ   r   r   r�   rT   ©r'   r?   r"   )r8   rÕ   rè   Úintprå   ræ   Úshufflerk   r  r'   r   Útyper*   Úassert_equal©	r,   r   r  r?   Úindexerr  r/   Ú	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   éþÿÿÿrT   r	  )Ú	_na_valuerk   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)Ú
allow_fillÚ
fill_valuerT   r>   )r  rk   r8   ÚallÚdtypesr'   rÕ   rè   r
  rå   ræ   r  r  Ú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r*d}t
d|d i|dd�}t|t
ƒrF|d }||ksDJ ‚d S t ||¡ d S )	Nr&   r   r    rý   rþ   rT   r   )r'   r"   )r8   rÕ   rè   r
  rå   ræ   r  rk   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   r]   ro   rp   r   c                 C   sB   t ddg|d�}|jd|d�}t|dt|ƒdd�}t ||¡ d S )Nro   rp   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 )Nro   rp   r¿   r    Fr‰   r  r  )	r,   r'   r  r   r3   Ú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�   ro   rž   r    Tr‰   r  )
r   rz   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õ   rI   Úfixturer   rz   ÚIntervalIndexÚfrom_breaksrï   rJ   rK   Úperiod_ranger{   Ú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   rI   Úpandas._configr   Úpandasrz   r   r   r   r   Úpandas._testingÚ_testingr*   r%  r   r   rù   r   r   r   r   Ú<module>   s$    ÿ
      	