a
    d                     @   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   q/var/www/html/stable-diffusion-webui/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|| n8t|j|j |jt	j
j|d	d
 |j|jksJ  j ddd||d}t fdd jD  jdd}|dkrt|| n:t|j|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   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   )r7   r8   loc)r9   dater;   r   r   r<   M   r   )r'   r   columnsr)   r*   Zassert_index_equalr>   node
add_marker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 rBt|d sFJ 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rZ|d tj}|d	kr||r||jt	j
jd
d t|| d S )N)ArS   BrT   )r   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   rL   r4   r5   r,   rsZ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rb|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 )Nr   r   r   r   r   r   rS   rT   r>   r   r   r2   r4   r5   r         @r   r=   r   r	   rW   r?         ?r   g      ?rb   g      @r   g      @r         ?T)Zcheck_index_type)r   r'   r   r(   r7   rY   rF   rG   rH   rI   rJ   r)   r*   ilocassert_frame_equal	r+   r   r   rL   r4   r5   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r||r||jtj	j
dd t|| d S )Nr\   )abr   r   r   Tr1         @      @r   r=   r   r	   rW   r?   )r   r'   r   r(   r7   rY   rF   rG   rH   rI   rJ   r)   r*   rg   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tzFrU   z2016-01-02 00:00:00r   datetime64[ns, US/Pacific])r!   r&   r	   rW   r?   )pd
date_ranger   r   r'   rF   rG   rH   rI   rJ   r)   r*   )r+   r   r   rL   r4   r5   Z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|jtjj	dd t
|| d}	tjt|	d  |jdd	dd W d    n1 s0    Y  d S )Nr\   r#   rk   rl   Z20130101r   rq   )foobarZbaz)rS   rT   CDr   r   Tr1   ra   r    r   r	   rW   r?   z>'<' not supported between instances of 'Timestamp' and 'float'matchFr2   r3   )r   rt   ru   r'   r   rF   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*|j 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 sd0    Y  d}	tjt|	d |jddd W d    n1 s0    Y  d S )Nr	   rW   r?   r\   r]   r^   r_   r   r   r`   r#   rk   rS   rT   r=   r   r>   r   ra   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   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 rt	|d sJ 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   r2   r4   r=   r   )r2   r5   rY   r>   r!   r&   r"   r#   rk   rx   float64rc   lowerr"   r#   rk   rN   r0   Zhigherr   rO   r   r   r   r   r   r   r   r   r   ri   rj   crE   rd   Zmidpoint)r4   r   r   r   r#   r#   r#   r>   rE   )
r   r'   r   r)   r*   r7   r8   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 )Nr0   r   Tr   )r2   r3   r4   rS   r6   )r'   r7   r8   )r+   rK   r,   rQ   r   r   r   $test_quantile_interpolation_datetime2  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 )Nr0   rS   r6   r   r   r   )r'   r7   r8   r)   r*   )r+   Z	int_framer,   rQ   Z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rt|tj}|dkr|r|jtjj	dd t
|| d S )Nr   r   r   r   r   rd   r   r4   r5   r   r   r   r   r	   rW   r?   r   r'   r(   r7   rY   rF   rG   rH   rI   rJ   r)   rf   rg   r   r   r   test_quantile_multiG  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|j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_1X  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   r`   r_   )r   r'   r7   nanr)   rf   )r+   r   r4   r5   r.   r-   r   r   r   test_quantile_multi_emptyi  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      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r>   r&   r!   )r   rt   to_datetimer'   r   r)   r*   r   rf   r7   r   )r+   r,   r.   r-   r   r   r   test_quantile_datetimes  sF    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   rE   r&   r   r   Fr1   r   r   )r   r'   r   r)   r*   rf   )r+   r&   r   r4   r5   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   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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   )rF   rG   rH   rI   rJ   r   r   rt   	Timedeltar'   r   r)   r*   rf   	r+   r   r   rL   r4   r5   r,   r   r   r   r   r   test_quantile_box  sZ    



	

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*|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rd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	   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   )rF   rG   rH   rI   rJ   r   r7   aranger   re   r'   r   r)   r*   rf   r   r   r   r   test_quantile_nanO  sJ    

"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	   rW   r?   ri   r   FrU   r=   r_   z
2012-01-01z
2012-01-02z
2012-01-03r   rj   r   )rF   rG   rH   rI   rJ   r   rt   r   r'   r   r)   r*   rf   r   r   r   r   r   test_quantile_nat  sH    

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=   )rE   r>   r   r`   r   )r   r'   r   r7   r   r)   r*   rf   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 )Nri   rj   rY   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rd}tjt|d  |jtjdd}W d    n1 s0    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fillnar7   r   r&   )r+   r   r4   r5   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   ry   zcaptain tightpantsr   TrU   r   r   )r   rt   ru   rE   r!   r'   r   r7   r   r>   r)   r*   rf   )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 }|sVt|jjdksVJ |jd||d |rd	|j	d
< |j	d |d d
 ksJ |j	d d	ksJ n6d	|j
d
< |j	d |d d
 ksJ |j	d d	ksJ d S )Nr   )r   r   r   r   rS   r}   FrU   c   r   )r   r   )r   r7   randomdefault_rngZstandard_normallenZ_mgrblocksr'   re   values)r+   rL   r   Zusing_copy_on_writer4   r5   r,   rv   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   rz   )r5   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	   rz   )r5   r4   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SparseArrayr/   rM   rR   r[   rh   rm   rw   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
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marksrn   	   r}   )rq   freqro   rp   z1 Dayry   Int64r%   Float64c                 C   s
   t | jS )N)strr&   r   r   r   r   r   2  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!   rE   )r+   r>   Zframe_or_seriesobjr   r   r   r   :  s
    zTestQuantileExtensionDtype.objc                 C   s(   t |tr||}n|j|dd}|S )NFrV   )
isinstancer   r'   )r+   r   qsr.   r   r   r   compute_quantileE  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!   )r7   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_eaL  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   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_nab  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   r7   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_nau  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sJ nt|| d S )	Nr%   r   r   r   r   rS   r   )r&   r!   )r7   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*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_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 )Nri   rj   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   r   ri   r   r   Tr   r   )
r   rt   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   rt   ZIntervalIndexZfrom_breaksr   rI   rJ   Zperiod_rangeru   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pandasrt   r   r   r   r   Zpandas._testingZ_testingr)   r   r   r   r   r   r   r   r   <module>   s    
      