o
    �¨Êh¸�  ã                   @   s‚   d dl Zd dlZd dlZd dlmZmZmZmZ d dl	m
Z ejddgddggdd„ d	�d
d„ ƒZG dd„ dƒZG dd„ dƒZdS )é    N)Ú	DataFrameÚIndexÚSeriesÚ	TimestampÚlinearÚsingleÚnearestÚtablec                 C   s
   d  | ¡S )Nú-)Újoin©Úx© r   úZ/var/www/html/env/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>9   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<   M   s    )r'   r   Úcolumnsr)   r*   Úassert_index_equalr>   ÚapplymarkerÚpytestÚmarkÚxfailr!   )	r+   Údatetime_framer   Úusing_array_managerr   r4   r5   r.   r-   r   r;   r   Útest_quantile0   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   Úyr0   r   Tr1   r   rO   )r   r'   r7   Úisnan)r+   r   r4   r5   Ú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)ÚArS   ÚBrT   )r   r   r   r   )Úcol1Úcol2r   T©r3   r4   r5   ©r3   r   r	   úAxis name incorrectly set.r?   )r   r'   ÚmedianÚrenamer(   r7   Úint64rG   rH   rI   rJ   r)   r*   )	r+   r   r   rL   r4   r5   r,   ÚrsÚxpr   r   r   Útest_non_numeric_exclusiond   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   ©rS   rT   ©r>   r   r   ©r2   r4   r5   ©r   ç      @r   r=   r   r	   rY   r?   ç      è?r   g      ü?rf   g      @r   g      @r   ç      Ð?T)Úcheck_index_type)r   r'   r   r(   r7   r\   rG   rH   rI   rJ   r)   r*   ÚilocÚassert_frame_equal©	r+   r   r   rL   r4   r5   r,   r.   r-   r   r   r   Ú	test_axisq   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 )Nr`   )ÚaÚbr   r   r   Tr1   ç      @ç      @r   r=   r   r	   rY   r?   )r   r'   r   r(   r7   r\   rG   rH   rI   rJ   r)   r*   rl   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ÚtzFrW   z2016-01-02 00:00:00r   údatetime64[ns, US/Pacific])r!   r&   r	   rY   r?   )ÚpdÚ
date_ranger   r   r'   rG   rH   rI   rJ   r)   r*   )r+   r   r   rL   r4   r5   Ú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 )Nr`   ©r#   rp   rq   Ú20130101r   ©rv   )ÚfooÚbarÚbaz)rS   rT   ÚCÚDr   r   Tr1   re   r    r   r	   rY   r?   z>'<' not supported between instances of 'Timestamp' and 'float'©ÚmatchF©r2   r3   )r   ry   rz   r'   r   rG   rH   rI   rJ   r)   r*   ÚraisesÚ	TypeError©
r+   r   r   rL   r4   r5   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	   rY   r?   r`   ra   rb   rc   r   r   rd   r#   rp   rS   rT   r=   r   r>   r   re   rE   z*No axis named -1 for object type DataFramer†   r0   éÿÿÿÿz.No axis named column for object type DataFrameÚcolumn©r2   )rG   rH   rI   rJ   r   r'   r   r(   r7   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 )&Nr`   ra   rb   rc   r   r   r   ©r2   r4   r=   r   )r2   r5   r\   ©r>   r!   r&   ©r"   r#   rp   r~   Úfloat64rg   Úlowerr"   r#   rp   rN   r0   Úhigherr   rO   ©r   r   r   ©r   r   r   ©r   r   r   ©rn   ro   Úc©rE   rh   Úmidpoint)r4   ©r   r   r   ©r#   r#   r#   ©r>   rE   )
r   r'   r   r)   r*   r7   r8   Úarrayrk   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sJ ‚d S )Nr0   r   Tr   )r2   r3   r4   rS   r6   )r'   r7   r8   )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s+J ‚t ||¡ d S )Nr0   rS   r6   r   r   r“   )r'   r7   r8   r)   r*   )r+   Ú	int_framer,   rQ   Úq1r   r   r   Útest_quantile_interpolation_int.  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ž   rh   r   ©r4   r5   r    r¡   r¢   r   r	   rY   r?   ©r   r'   r(   r7   r\   rG   rH   rI   rJ   r)   rk   rl   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ž   rh   r   r   rd   r•   r   )r   r   r   r¢   r   r	   rY   r?   r«   rl   r   r   r   Útest_quantile_multi_axis_1J  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   r0   rA   r   rd   rc   )r   r'   r7   Únanr)   rk   )r+   r   r4   r5   r.   r-   r   r   r   Útest_quantile_multi_emptyY  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   é   ©rn   ro   r   TrX   rf   ro   r=   Fz2010-07-02 12:00:00rn   rc   Ú2012r�   r   rˆ   z2011-07-02 12:00:00úM8[ú]r”   ©r>   rE   r&   ©r>   r&   r!   r¢   )ry   Úto_datetimeÚas_unitr   r'   r   r)   r*   r   rk   r7   r–   )r+   Úunitr{   r,   r.   r-   r   r   r   Útest_quantile_datetimec  sN   ÿþ
ü
üz,TestDataFrameQuantile.test_quantile_datetimer&   )údatetime64[ns]rx   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 )
Nrn   ro   ©rE   r&   r   r   Fr1   r”   r¢   )r   r'   r   r)   r*   rk   )r+   r&   r   r4   r5   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ª   )rH   r‰   r‘   r'   )r+   rÁ   rK   r   rŒ   r4   r5   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	   rY   r?   ú
2011-01-01ú
2011-01-02ú
2011-01-03ú
US/Eastern©rw   ú1 daysú2 daysú3 days©rS   rT   r„   r   FrW   ©r!   r>   r¢   )rG   rH   rI   rJ   r   r   ry   Ú	Timedeltar'   r   r)   r*   rk   ©	r+   r   r   rL   r4   r5   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   rn   rT   ro   r„   r�   ÚAaBbCcrž   r   FrX   rÌ   r¢   )r   r   ry   ÚNaTrÍ   Úlistr'   r   r)   r*   rk   )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	   rY   r?   r   g      @r³   )rŽ   r   r   rª   rp   r   rf   rn   ro   r=   rg   rq   g      
@rc   rd   r"   r    r   r   )r   rŽ   )rG   rH   rI   rJ   r   r7   Úaranger®   rj   r'   r   r)   r*   rk   rÎ   r   r   r   Útest_quantile_nanA  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	   rY   r?   rn   rµ   r¶   r%   r   FrW   r”   )r>   r&   z
2012-01-01z
2012-01-02z
2012-01-03r³   ro   r·   )rG   rH   rI   rJ   r   ry   rÑ   r'   r   r)   r*   rk   r   )
r+   r   r   rL   r»   r4   r5   r,   r¿   r¤   r   r   r   Útest_quantile_natp  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 )Nrn   ro   r–   r¾   r   rª   r=   )rE   r>   r   rd   r¸   )r   r'   r   r7   r®   r)   r*   rk   ©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 )Nrn   ro   r\   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
¡}|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 )Nrn   ro   r½   r¾   r   FrW   r¸   z
US/Centralr   z.The 'downcast' keyword in fillna is deprecatedr†   )Údowncast)r   r'   r   ry   rÑ   r)   r*   ÚdtÚtz_localizer(   ÚobjectÚassert_produces_warningÚFutureWarningÚfillnar7   r®   r&   )r+   r   r4   r5   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   TrW   r”   r¢   )r   ry   rz   rE   r!   r'   r   r7   r–   r>   r)   r*   rk   )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¡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ž   rS   r…   FrW   éc   r   )r   r   )r   r7   ÚrandomÚdefault_rngÚstandard_normalÚlenÚ_mgrÚblocksr'   rj   Úvalues)r+   rL   r   Úusing_copy_on_writer4   r5   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�   )r5   ©rH   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�   )r5   r4   rí   rï   r   r   r   Ú test_table_invalid_interpolation  s   "ÿz6TestDataFrameQuantile.test_table_invalid_interpolationN)(Ú__name__Ú
__module__Ú__qualname__rH   rI   Úparametrizer   r   ry   ÚarraysÚSparseArrayr/   rM   rR   r_   rm   rr   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
 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?   )Úmarksrs   é	   r…   )rv   Úfreqrt   ru   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 ©NrS   )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!   rE   )r+   r>   Úframe_or_seriesÚobjr   r   r   r  1  s   ÿzTestQuantileExtensionDtype.objc                 C   s*   t |tƒr| |¡}|S |j|dd�}|S )NFrX   )Ú
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Ž   rS   ©r&   r>   r!   )r7   rÔ   rç   Úintprä   rå   Úshufflerj   r  r&   r   Útyper)   Úassert_equal©	r+   r   r  r>   Úindexerr  r.   Ú	exp_dtyper-   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 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_valuerj   r7   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_naY  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_valuerS   r=   )r  rj   r7   Ú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_nal  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ý   rS   r   )r&   r!   )r7   rÔ   rç   r	  rä   rå   r
  rj   r  r&   r   r  r)   r*   r  r   r   r   Útest_quantile_ea_scalar~  s   


z2TestQuantileExtensionDtype.test_quantile_ea_scalarz*dtype, expected_data, expected_index, axisr–   r   r\   rn   ro   r   c                 C   sB   t ddg|d�}|jd|d�}t|dt|ƒdd�}t ||¡ d S )Nrn   ro   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 )Nrn   ro   r¾   r   Frˆ   r  r  )	r+   r&   r  r  r2   Ú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œ   rn   r�   r   Trˆ   r  )
r   ry   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   ry   ÚIntervalIndexÚfrom_breaksrî   rI   rJ   Úperiod_rangerz   Útimedelta_ranger£   r7   rÔ   r>   r  r  r  r  r  r  rõ   r®   r  rÑ   r!  r"  r   r   r   r   rø     sZ    þ÷ô




üþ
		þþ
þþrø   )Únumpyr7   rH   Úpandasry   r   r   r   r   Úpandas._testingÚ_testingr)   r#  r   r   rø   r   r   r   r   Ú<module>   s"    ÿ
      	