a
    é´«j:¤  ã                   @   sœ  d dl mZ d dlZd dlZd dlm  mZ d dl	m
Z
 d dlZd dlmZmZ d dlmZ d dlmZ ejZejdd„ ƒZejdd	„ ƒZejd
d„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZ ejdd„ ƒZ!ejdd„ ƒZ"ejdd„ ƒZ#ejd d!„ ƒZ$ejd"d#„ ƒZ%ejd$d%„ ƒZ&ejd&d'„ ƒZ'ejd(d)„ ƒZ(ejd*d+„ ƒZ)ejd,d-„ ƒZ*ejd.d/„ ƒZ+ejd0d1„ ƒZ,ejd2d3„ ƒZ-ejd4d5„ ƒZ.ejd6d7„ ƒZ/ejd8d9„ ƒZ0ejd:d;„ ƒZ1ejd<d=„ ƒZ2ejd>d?„ ƒZ3G d@dA„ dAƒZ4ej5 6dBg dC¢¡dDdE„ ƒZ7ej5 6dBg dF¢¡ej5 6dGg dH¢¡dIdJ„ ƒƒZ8ej5 6dKg dL¢¡dMdN„ ƒZ9ej5 6dKg dO¢¡dPdQ„ ƒZ:G dRdS„ dSƒZ;G dTdU„ dUƒZ<G dVdW„ dWƒZ=G dXdY„ dYƒZ>G dZd[„ d[ƒZ?d\d]„ Z@ej5 6d^ejAd_fejBd_fejCd`fejDd`fejEd`fejFd`fejGdafejHdbfejIdafejJdbfg
¡dcdd„ ƒZKej5 6deejLejMejBejDejFejNejOejPejQejRejJejIejSejTejUg¡dfdg„ ƒZVej5 6dhdid g¡djdk„ ƒZWej5 6dlde Xg dm¢¡e Xdngdodpg  ¡g¡ej5 6dqdrdsg¡dtdu„ ƒƒZYejZej[ej5 6dqdrdvg¡dwdx„ ƒƒƒZ\ej5 6dydzd{g¡d|d}„ ƒZ]ej5 6d~g d¢¡d€d�„ ƒZ^ej5 6d‚ej_ej`ejaejbejcededƒdƒg¡ej5 6d„g d…¢¡d†d‡„ ƒƒZedS )ˆé    )ÚpartialN)Úis_integer_dtype)ÚSeriesÚisna)Únanopsc                 c   s@   |   ¡ �$}| tdd¡ d V  W d   ƒ n1 s20    Y  d S )NÚ_USE_BOTTLENECKF)ÚcontextÚsetattrr   )ZmonkeypatchÚm© r   úW/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/test_nanops.pyÚdisable_bottleneck   s    
r   c                   C   s   dS )N©é   é   r   r   r   r   r   Ú	arr_shape   s    r   c                 C   s   t j d¡ | ¡S ©Né   )ÚnpÚrandomÚdefault_rngÚstandard_normal©r   r   r   r   Ú	arr_float!   s    r   c                 C   s   | | d  S )Nù              ð?r   ©r   r   r   r   Úarr_complex&   s    r   c                 C   s   t j d¡ dd| ¡S )Nr   éöÿÿÿé
   ©r   r   r   Úintegersr   r   r   r   Úarr_int+   s    r!   c                 C   s   t j d¡ dd| ¡dkS )Nr   r   r   r   r   r   r   Úarr_bool0   s    r"   c                 C   s   t  | ¡ d¡S )NÚS©r   ÚabsÚastyper   r   r   r   Úarr_str5   s    r'   c                 C   s   t  | ¡ d¡S )NÚUr$   r   r   r   r   Úarr_utf:   s    r)   c                 C   s   t j d¡ dd| ¡ d¡S )Nr   r   é N  úM8[ns]©r   r   r   r    r&   r   r   r   r   Úarr_date?   s    r-   c                 C   s   t j d¡ dd| ¡ d¡S )Nr   r   r*   úm8[ns]r,   r   r   r   r   Ú
arr_tdeltaD   s    r/   c                 C   s   t  t j| ¡S ©N)r   ÚtileÚnanr   r   r   r   Úarr_nanI   s    r3   c                 C   s   t  | |g¡S r0   ©r   Úvstack)r   r3   r   r   r   Úarr_float_nanN   s    r6   c                 C   s   t  | |g¡S r0   r4   )r3   r   r   r   r   Úarr_nan_float1S   s    r7   c                 C   s   t  | | g¡S r0   r4   ©r3   r   r   r   Úarr_nan_nanX   s    r9   c                 C   s
   | t j S r0   )r   Úinfr   r   r   r   Úarr_inf]   s    r;   c                 C   s   t  | |g¡S r0   r4   )r   r;   r   r   r   Úarr_float_infb   s    r<   c                 C   s   t  | |g¡S r0   r4   ©r3   r;   r   r   r   Úarr_nan_infg   s    r>   c                 C   s   t  | ||g¡S r0   r4   )r   r3   r;   r   r   r   Úarr_float_nan_infl   s    r?   c                 C   s   t  | | |g¡S r0   r4   r=   r   r   r   Úarr_nan_nan_infq   s    r@   c                 C   sJ   t  |  d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡g¡S )NÚO)r   r5   r&   )r   r!   r"   r   r'   r)   r-   r/   r   r   r   Úarr_objv   s    øÿrB   c                 C   s<   t jdd�� | | d  W  d   ƒ S 1 s.0    Y  d S ©NÚignore©Úinvalidr   ©r   Úerrstater8   r   r   r   Úarr_nan_nanjˆ   s    rI   c                 C   s>   t jdd�� t  | |g¡W  d   ƒ S 1 s00    Y  d S ©NrD   rE   ©r   rH   r5   )r   rI   r   r   r   Úarr_complex_nanŽ   s    rL   c                 C   s8   t jdd�� | d W  d   ƒ S 1 s*0    Y  d S rC   rG   )r;   r   r   r   Úarr_nan_infj”   s    rM   c                 C   s>   t jdd�� t  | |g¡W  d   ƒ S 1 s00    Y  d S rJ   rK   )r   rM   r   r   r   Úarr_complex_nan_infjš   s    rN   c                 C   s   | d d …df S ©Nr   r   r   r   r   r   Úarr_float_1d    s    rP   c                 C   s   | d d …df S rO   r   r8   r   r   r   Ú
arr_nan_1d¥   s    rQ   c                 C   s   | d d …df S rO   r   )r6   r   r   r   Úarr_float_nan_1dª   s    rR   c                 C   s   | d d …df S rO   r   )Úarr_float1_nanr   r   r   Úarr_float1_nan_1d¯   s    rT   c                 C   s   | d d …df S rO   r   )r7   r   r   r   Úarr_nan_float1_1d´   s    rU   c                   @   s´  e Zd Zdd„ Zdd„ ZdCdd„ZdDd	d
„ZdEdd„ZdFdd„ZdGdd„Z	e
j dejejfejejfg¡dd„ ƒZdd„ Zdd„ Ze
j d¡dd„ ƒZe
j dedƒ¡dd„ ƒZe
j dedƒ¡dd „ ƒZe
j dedƒ¡d!d"„ ƒZe
j d¡e
j dejejfejejfg¡d#d$„ ƒƒZ dHd%d&„Z!e
j d¡d'd(„ ƒZ"e
j d¡d)d*„ ƒZ#dId+d,„Z$d-d.„ Z%d/d0„ Z&d1d2„ Z'd3d4„ Z(d5d6„ Z)d7d8„ Z*d9d:„ Z+d;d<„ Z,d=d>„ Z-d?d@„ Z.dAdB„ Z/dS )JÚTestnanopsDataFramec                 C   s  dt _d}tj d¡ |¡| _tj d¡ |¡| _| j| jd  | _tj d¡ 	dd|¡| _
tj d¡ 	dd|¡dk| _t | j¡ d¡| _t | j¡ d	¡| _tj d¡ 	dd
|¡ d¡| _tj d¡ 	dd
|¡ d¡| _t tj|¡| _t | j| jg¡| _t | j| jg¡| _t | j| jg¡| _t | j| jg¡| _| jtj | _t | j| jg¡| _t | j| jg¡| _t | j| j| jg¡| _t | j| j| jg¡| _t | j d¡| j
 d¡| j d¡| j d¡| j d¡| j d¡| j d¡| j d¡g¡| _ tj!dd��V | j| jd  | _"t | j| j"g¡| _#| jd | _$t | j| j$g¡| _%W d   ƒ n1 �sh0    Y  | j| _&| j| _'| j| _(| j| _)| j| _*| j| _+| jd d …df | _,| jd d …df | _-| jd d …df | _.| jd d …df | _/| jd d …df | _0| jd d …df | _1d S )NFr   r   r   r   r   r   r#   r(   r*   r+   r.   rA   rD   rE   )2r   r   r   r   r   r   r   Z
arr_float1r   r    r!   r"   r%   r&   r'   r)   r-   r/   r1   r2   r3   r5   r6   rS   r7   r9   r:   r;   r<   r>   r?   r@   rB   rH   rI   rL   rM   rN   Úarr_float_2dÚarr_float1_2dÚ
arr_nan_2dÚarr_float_nan_2dÚarr_float1_nan_2dÚarr_nan_float1_2drP   Úarr_float1_1drQ   rR   rT   rU   )Úselfr   r   r   r   Úsetup_methodº   sf    ÿÿ







øÿ4z TestnanopsDataFrame.setup_methodc                 C   s
   t t_d S r0   )Úuse_bnr   r   ©r^   r   r   r   Úteardown_methodý   s    z#TestnanopsDataFrame.teardown_methodTc                 C   s<  t |d|ƒ}|dkrLt|dƒrL|jrL|j|jkrLtj||jd gdd�d }ztj|||d� W nÖ t�y6   t|dƒr†|j	dkr†‚ t|dƒrœ|j	j
dvrž‚ |j	j
d	krì|j	j
d	krÄ| |j	¡}qúttd
ƒrÒdnd}| |¡}| |¡}n|j	j
d	krú‚ tjt |¡t |¡|d� tjt |¡t |¡|d� Y n0 d S )NZasm8r   Úshape©Úaxis©Úcheck_dtypeÚdtyper.   )ÚcrA   rA   Ú
complex128Úc16Úf8)ÚgetattrÚhasattrÚndimrc   r   ÚsplitÚtmÚassert_almost_equalÚAssertionErrorrh   Úkindr&   ÚrealÚimag)r^   ÚtargÚresre   rg   Z
cast_dtyper   r   r   Úcheck_results   s6    ÿþý
ü
z!TestnanopsDataFrame.check_resultsNc                 K   sØ  t t|jƒƒd g D �]l}	|r"|n|}
|rP|rPt|
ƒ ¡ rP||
fd|	i|¤Ž}n||
fd|	i|¤Ž}|
jtkr¢|tju s‚|tju r¢t	|tj
ƒrš| t¡}nt|ƒ}||f|	|dœ|¤Ž}t	|tjƒræt	|tƒræt |¡ræt |¡ræ|}| j|||	|d� |�r$||fd|	i|¤Ž}| j|||	|d� |	d u �rT||fd|i|¤Ž}| j|||	|d� |r|	d u r||fi |¤Ž}| j|||	|d� q|jdk�r”d S tj|ddd�}tj|ddd�}| j||||f|||d	œ|¤Ž d S )
Nre   ©re   Úskipnarf   r{   é   r   éÿÿÿÿrd   )r{   rg   Úempty_targfunc)ÚlistÚrangero   r   Úallrh   Úobjectr   ÚanyÚ
isinstanceÚndarrayr&   Úboolrj   ÚfloatÚisnanry   ÚtakeÚcheck_fun_data)r^   ÚtestfuncÚtargfuncÚ	testarvalÚ	targarvalr{   rg   r~   Úkwargsre   Ztargartempvalrw   rx   Z
testarval2Z
targarval2r   r   r   rŠ   '  sb    
ÿÿ
ÿþýü
üùøz"TestnanopsDataFrame.check_fun_datac           
      K   sb   |}|  d¡r,t| |d d… ƒr,|d d… }t| |ƒ}t| |ƒ}	| j||||	f||dœ|¤Ž d S )NZ_nanéüÿÿÿ)r{   r~   )Úendswithrn   rm   rŠ   )
r^   r‹   rŒ   Ztestarr{   r~   r�   Ztargarr�   rŽ   r   r   r   Ú	check_funi  s     

üúùzTestnanopsDataFrame.check_func	                 K   sØ  | j ||d|fi |	¤Ž | j ||d|fi |	¤Ž | j ||d|fi |	¤Ž | j ||d|fi |	¤Ž | j d¡| j d¡| j d¡g}
|rž| j ||d|fi |	¤Ž |�r| j ||d|fi |	¤Ž | j ||d|fi |	¤Ž |rð| j ||d	|fi |	¤Ž |
| j d¡g7 }
|�r<|| jƒ | j ||d
|fi |	¤Ž |
| j d¡g7 }
|�r�z|| jƒ W n t�yd   Y n,0 | j ||d|fi |	¤Ž |
| j d¡g7 }
|�rÔt	 
|
¡| _|dk�r¼t| j||d�}| j ||d|fi |	¤Ž d S )Nr   r6   r!   r"   rA   r3   r   rL   rI   r-   r/   Úconvert)ÚfuncÚallow_complexrB   )r’   r   r&   r!   r"   r   r-   r/   Ú	TypeErrorr   r5   rB   r   Ú_badobj_wrap)r^   r‹   rŒ   r{   r•   Úallow_all_nanÚ
allow_dateÚallow_tdeltaÚ	allow_objr�   Úobjsr   r   r   Ú
check_funs|  sD    


ý

ÿzTestnanopsDataFrame.check_funsc                 K   s6   |j jdkr&|r| d¡}n
| d¡}||fi |¤ŽS )NrA   rk   rl   )rh   rt   r&   )r^   Úvaluer”   r•   r�   r   r   r   r—   µ  s
    
z TestnanopsDataFrame._badobj_wrapznan_op,np_opc                 C   s   | j |||ddd� d S )NF)r˜   r™   ©r�   ©r^   Znan_opZnp_opr{   r   r   r   Útest_nan_funcs½  s    z"TestnanopsDataFrame.test_nan_funcsc                 C   s    | j tjtj|ddtjd� d S )NF)r™   rg   r~   )r�   r   Únansumr   Úsum©r^   r{   r   r   r   Útest_nansumÃ  s    úzTestnanopsDataFrame.test_nansumc                 C   s   | j tjtj|ddd� d S )NF)r›   r™   )r�   r   Únanmeanr   Úmeanr¤   r   r   r   Útest_nanmeanÍ  s    ÿz TestnanopsDataFrame.test_nanmeanzignore::RuntimeWarningc                 C   s   | j tjtj|dddd� d S )NFr“   )r•   r™   r›   )r�   r   Ú	nanmedianr   Úmedianr¤   r   r   r   Útest_nanmedianÒ  s    úz"TestnanopsDataFrame.test_nanmedianÚddofé   c              	   C   s    | j tjtj|ddd|d� d S ©NFr“   )r•   r™   r›   r¬   )r�   r   Únanvarr   Úvar©r^   r¬   r{   r   r   r   Útest_nanvarÝ  s    ùzTestnanopsDataFrame.test_nanvarc              	   C   s    | j tjtj|ddd|d� d S r®   )r�   r   Únanstdr   Ústdr±   r   r   r   Útest_nanstdé  s    ùzTestnanopsDataFrame.test_nanstdc                 C   sX   t  d¡}tjdd��. | jtj|j|dddd|d� W d   ƒ n1 sJ0    Y  d S )Núscipy.statsrD   rE   Fr“   )r•   r™   rš   r›   r¬   )ÚpytestÚimportorskipr   rH   r�   r   ÚnansemZsem)r^   r¬   r{   Úsp_statsr   r   r   Útest_nansemõ  s    
øzTestnanopsDataFrame.test_nansemc                 C   s   | j |||dd� d S )NF©r›   rŸ   r    r   r   r   Útest_nanops_with_warnings  s    z-TestnanopsDataFrame.test_nanops_with_warningsc                 C   sV   |||ƒ}t  ||¡}t|ƒ}|jr.d||< n$t|dƒr@| ¡ sNt|dƒsR|rRd}|S )Nr}   r�   )r   Úminr   ro   rn   r�   )r^   rž   re   r”   rx   ZnansZnullnanr   r   r   Ú_argminmax_wrap  s    

ÿþýüz#TestnanopsDataFrame._argminmax_wrapc                 C   s(   t | jtjd�}| jtj||dd� d S ©N©r”   Fr¼   )r   r¿   r   Zargmaxr�   r   Ú	nanargmax©r^   r{   r”   r   r   r   Útest_nanargmax  s    z"TestnanopsDataFrame.test_nanargmaxc                 C   s(   t | jtjd�}| jtj||dd� d S rÀ   )r   r¿   r   Zargminr�   r   Ú	nanargminrÃ   r   r   r   Útest_nanargmin   s    z"TestnanopsDataFrame.test_nanargminc                 C   st   t |jjtjƒs| d¡}|||dd�}t |tjƒrXd|tj||d�tj||d�k< |S t |¡t |¡krpdS |S )Nrl   F)re   Zbiasr   rd   ç        )	r„   rh   Útyper   Zfloatingr&   r…   Úmaxr¾   )r^   Úvaluesre   r”   Úresultr   r   r   Ú_skew_kurt_wrap%  s    
 z#TestnanopsDataFrame._skew_kurt_wrapc              	   C   sb   t  d¡}t| j|jd�}tjdd��( | jtj	||dddd� W d   ƒ n1 sT0    Y  d S )Nr¶   rÁ   rD   rE   F©r•   r™   rš   )
r·   r¸   r   rÌ   Úskewr   rH   r�   r   Únanskew)r^   r{   rº   r”   r   r   r   Útest_nanskew1  s    
úz TestnanopsDataFrame.test_nanskewc              	   C   sn   t  d¡}t|jdd�}t| j|d�}tjdd��( | jtj	||dddd� W d   ƒ n1 s`0    Y  d S )	Nr¶   T)ZfisherrÁ   rD   rE   FrÍ   )
r·   r¸   r   ZkurtosisrÌ   r   rH   r�   r   Únankurt)r^   r{   rº   Zfunc1r”   r   r   r   Útest_nankurt?  s    
úz TestnanopsDataFrame.test_nankurtc                 C   s    | j tjtj|ddtjd� d S )NF)r™   rš   r~   )r�   r   Únanprodr   Úprodr¤   r   r   r   Útest_nanprodN  s    úz TestnanopsDataFrame.test_nanprodc                 K   s–  || j | jfi |¤Ž}|| j | jfdt| j ƒd i|¤Ž}t ||¡ t ||¡ || j| jfi |¤Ž}|| j| jfdt| j ƒd i|¤Ž}t ||¡ t ||¡ tj}	|| j	| jfi |¤Ž}
|| j | j	fi |¤Ž}|| j	| j	fi |¤Ž}|| j| j
fi |¤Ž}|| j| j
fdt| j ƒd i|¤Ž}|| j | jfdt| j ƒd i|¤Ž}t |	|
¡ t |	|¡ t |	|¡ t |	|¡ t |	|¡ t |	|¡ d S ©NZmin_periodsr|   )rW   rX   Úlenrq   rr   rZ   r[   r   r2   rY   r\   ©r^   ZcheckfunÚtarg0Útarg1r�   Zres00Zres01Zres10Zres11Ztarg2Zres20Zres21Zres22Zres23Zres24Zres25r   r   r   Úcheck_nancorr_nancov_2dX  sb    þýüþýüþýüþýüz+TestnanopsDataFrame.check_nancorr_nancov_2dc                 K   s–  || j | jfi |¤Ž}|| j | jfdt| j ƒd i|¤Ž}t ||¡ t ||¡ || j| jfi |¤Ž}|| j| jfdt| j ƒd i|¤Ž}t ||¡ t ||¡ tj}	|| j	| jfi |¤Ž}
|| j | j	fi |¤Ž}|| j	| j	fi |¤Ž}|| j| j
fi |¤Ž}|| j| j
fdt| j ƒd i|¤Ž}|| j | jfdt| j ƒd i|¤Ž}t |	|
¡ t |	|¡ t |	|¡ t |	|¡ t |	|¡ t |	|¡ d S rÖ   )rP   r]   r×   rq   rr   rR   rT   r   r2   rQ   rU   rØ   r   r   r   Úcheck_nancorr_nancov_1d…  sb    þýüþýüþýüþýüz+TestnanopsDataFrame.check_nancorr_nancov_1dc                 C   s€   t  | j| j¡d }t  | jj| jj¡d }|  tj||¡ t  | j| j	¡d }t  | jj| j	j¡d }| j
tj||dd� d S ©N©r   r|   Zpearson©Úmethod©r   ÚcorrcoefrW   rX   ÚflatrÛ   r   ÚnancorrrP   r]   rÜ   ©r^   rÙ   rÚ   r   r   r   Útest_nancorr²  s    z TestnanopsDataFrame.test_nancorrc                 C   s„   t  | j| j¡d }t  | jj| jj¡d }| jtj||dd� t  | j| j	¡d }t  | jj| j	j¡d }| j
tj||dd� d S rÝ   rá   rå   r   r   r   Útest_nancorr_pearsonº  s    z(TestnanopsDataFrame.test_nancorr_pearsonc                 C   sŽ   t  d¡}| | j| j¡d }| | jj| jj¡d }| jtj||dd� | | j	| j
¡d }| | j	j| j
j¡d }| jtj||dd� d S )Nr¶   r   Zkendallrß   )r·   r¸   Z
kendalltaurW   rX   rã   rÛ   r   rä   rP   r]   rÜ   ©r^   rº   rÙ   rÚ   r   r   r   Útest_nancorr_kendallÂ  s    
z(TestnanopsDataFrame.test_nancorr_kendallc                 C   sŽ   t  d¡}| | j| j¡d }| | jj| jj¡d }| jtj||dd� | | j	| j
¡d }| | j	j| j
j¡d }| jtj||dd� d S )Nr¶   r   Zspearmanrß   )r·   r¸   Z	spearmanrrW   rX   rã   rÛ   r   rä   rP   r]   rÜ   rè   r   r   r   Útest_nancorr_spearmanÌ  s    
z)TestnanopsDataFrame.test_nancorr_spearmanc                 C   s€   t  d¡ t | j| j¡d }t | jj| jj¡d }d}t jt|d��$ | j	t
j||dd� W d   ƒ n1 sr0    Y  d S )NZscipyrÞ   z;Unknown method 'foo', expected one of 'kendall', 'spearman'©ÚmatchÚfoorß   )r·   r¸   r   râ   rW   rX   rã   ÚraisesÚ
ValueErrorrÜ   r   rä   )r^   rÙ   rÚ   Úmsgr   r   r   Útest_invalid_methodÖ  s    
z'TestnanopsDataFrame.test_invalid_methodc                 C   s|   t  | j| j¡d }t  | jj| jj¡d }|  tj||¡ t  | j| j	¡d }t  | jj| j	j¡d }|  
tj||¡ d S )NrÞ   )r   ZcovrW   rX   rã   rÛ   r   ZnancovrP   r]   rÜ   rå   r   r   r   Útest_nancovÞ  s    zTestnanopsDataFrame.test_nancov)T)TN)N)TTTTT)T)NN)NN)0Ú__name__Ú
__module__Ú__qualname__r_   rb   ry   rŠ   r’   r�   r—   r·   ÚmarkÚparametrizer   Únananyr   rƒ   Únanallr�   r¡   r¥   r¨   Úfilterwarningsr«   r€   r²   rµ   r»   Únanminr¾   ÚnanmaxrÉ   r½   r¿   rÄ   rÆ   rÌ   rÐ   rÒ   rÕ   rÛ   rÜ   ræ   rç   ré   rê   rñ   rò   r   r   r   r   rV   ¹   sf   C
.  ø
C ÿ
     ÷
9
ÿ








ÿ






--

rV   zarr, correct)
©r   F)r!   F)r"   F)r'   F)r)   Frý   )rL   F)rI   F)rM   T)rN   Tc                 C   sX   |   |¡}t|ddƒrTt |¡}|r.|s6J ‚n|r6J ‚t|dƒsBqTtj|ddd�}q
d S ©Nro   Tr   r}   rd   )Úgetfixturevaluerm   r   Ú	_has_infsrn   r   r‰   )ÚrequestÚarrÚcorrectr   ÚvalÚres0r   r   r   Útest_has_infs_non_floatç  s    



r  )	)r   F)r3   F)r6   F)r9   F)r<   T)r;   T)r>   T)r?   T)r@   Tr&   )NZf4Úf2c                 C   sj   |   |¡}|d ur| |¡}t|ddƒrft |¡}|r@|sHJ ‚n|rHJ ‚t|dƒsTqftj|ddd�}qd S rþ   )rÿ   r&   rm   r   r   rn   r   r‰   )r  r  r  r&   r   r  r  r   r   r   Útest_has_infs_floats  s    




r  Úfixture)r   r   r!   r"   r'   r)   c                 C   s    |  | ¡}t |jd¡sJ ‚d S ©NÚtest©rÿ   r   Ú_bn_ok_dtyperh   ©r	  r  r   Úobjr   r   r   Útest_bn_ok_dtype'  s    
r  )r-   r/   rB   c                 C   s    |  | ¡}t |jd¡rJ ‚d S r
  r  r  r   r   r   Útest_bn_not_ok_dtype/  s    	
r  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestEnsureNumericc                 C   s:   t  d¡dksJ ‚t  d¡dks$J ‚t  d¡dks6J ‚d S )Nr|   gš™™™™™ñ?y      ð?       @)r   Ú_ensure_numericra   r   r   r   Útest_numeric_values=  s    z%TestEnsureNumeric.test_numeric_valuesc                 C   sä   t  g d¢¡}t  t |¡|¡s$J ‚| t¡}t  t |¡|¡sDJ ‚t jg d¢td�}d}tjt	|d�� t |¡ W d   ƒ n1 sˆ0    Y  t jg d¢td�}d}tjt	|d�� t |¡ W d   ƒ n1 sÖ0    Y  d S )N)r|   r   r­   )Ú1Ú2Ú3©rh   z,Could not convert \['1' '2' '3'\] to numericrë   )rí   ÚbarZbazzCould not convert .* to numeric)
r   ÚarrayZallcloser   r  r&   r‚   r·   rî   r–   )r^   rÊ   Zo_valuesZs_valuesrð   r   r   r   Útest_ndarrayG  s    
(zTestEnsureNumeric.test_ndarrayc                 C   s¬   t jtdd�� t d¡ W d   ƒ n1 s.0    Y  t jtdd�� t d¡ W d   ƒ n1 sf0    Y  t jtdd�� t d¡ W d   ƒ n1 sž0    Y  d S )Nz'Could not convert string '1' to numericrë   r  z)Could not convert string '1.1' to numericz1.1z+Could not convert string '1\+1j' to numericz1+1j©r·   rî   r–   r   r  ra   r   r   r   Útest_convertable_values\  s    (ÿ(ÿz)TestEnsureNumeric.test_convertable_valuesc                 C   s´   d}t jt|d�� t d¡ W d   ƒ n1 s20    Y  d}t jt|d�� t i ¡ W d   ƒ n1 sn0    Y  t jt|d�� t g ¡ W d   ƒ n1 s¦0    Y  d S )Nz)Could not convert string 'foo' to numericrë   rí   z%argument must be a string or a numberr  )r^   rð   r   r   r   Útest_non_convertable_valuesh  s    ((z-TestEnsureNumeric.test_non_convertable_valuesN)ró   rô   rõ   r  r  r  r  r   r   r   r   r  <  s   
r  c                   @   s¢   e Zd Zej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edƒ¡ej dedƒ¡dd„ ƒƒZej dedƒ¡dd„ ƒZedd„ ƒZdS )ÚTestNanvarFixedValuesc                 C   s   dS )Ng      @r   ra   r   r   r   Úvariancex  s    zTestNanvarFixedValues.variancec                 C   s   | j j|d dd�S )Nç      à?i † )ÚscaleÚsize)ÚprngÚnormal)r^   r   r   r   r   Úsamples|  s    zTestNanvarFixedValues.samplesc                 C   s   t  |¡}tj||dd� d S )Nç{®Gáz„?©Zrtol)r   r¯   rq   rr   )r^   r&  r   Úactual_variancer   r   r   Útest_nanvar_all_finite€  s    
z,TestNanvarFixedValues.test_nanvar_all_finitec                 C   sj   t jt  d|jd  ¡ }||d d d…< tj|dd�}tj||dd� tj|dd�}tj|t jdd� d S )Nr   r   T©r{   r'  r(  F)r   r2   Úonesrc   r   r¯   rq   rr   )r^   r&  r   Úsamples_testr)  r   r   r   Útest_nanvar_nans„  s    z&TestNanvarFixedValues.test_nanvar_nansc                 C   sn   t jt  d|jd  ¡ }||d d d…< tj|dd�}tj||d dd� tj|dd�}tj|t jdd� d S )	Nr   r   Tr+  r!  r'  r(  F)	r   r2   r,  rc   r   r³   rq   rr   r¯   )r^   r&  r   r-  Z
actual_stdr   r   r   Útest_nanstd_nansŽ  s    z&TestNanvarFixedValues.test_nanstd_nansc                 C   sN   | j j|jd d�}t ||g¡}tj|dd�}tj|t 	|dg¡dd� d S )Nr   ©r#  r|   rd   çUUUUUUµ?r'  r(  )
r$  Úuniformrc   r   r5   r   r¯   rq   rr   r  )r^   r&  r   Zsamples_unifr)  r   r   r   Útest_nanvar_axis˜  s    ÿz&TestNanvarFixedValues.test_nanvar_axisc                 C   sÂ   d}| j jd|d fd�}tj|d d …df< tj|dddd� ¡ }tj|dddd� ¡ }tj|ddd	d� ¡ }d
}tj||dd� tj||d | | dd� tj||d |d  | dd� d S )Né   i'  r|   r0  r}   Tr   )re   r{   r¬   r   r1  r'  r(  g      ð?g       @)	r$  r2  r   r2   r   r¯   r§   rq   rr   )r^   Únr&  Z
variance_0Z
variance_1Z
variance_2r°   r   r   r   Útest_nanvar_ddof¢  s    z&TestNanvarFixedValues.test_nanvar_ddofre   r   r¬   r­   c                 C   s  t  d¡}t  g d¢g d¢g d¢g¡|d d…d d…f< t j |d< |d d …df< t  g d¢g d¢g d¢gg d	¢g d
¢g d¢gg¡}tj|d||d�}t |d d… |||f ¡ t  |d ¡sÂJ ‚tj	|d||d�}t |d d… |||f d ¡ t  |d ¡�sJ ‚d S )N)é   r7  )g*ßùf#ï?g›§| 9þË?gôÖ†«Çá?)gävý¼ˆZç?g†§Û×Ÿ?g¤Å×¦Êºï?)gžã«6bÚ·?gEƒó-œ9ã?g$mx´PÄ?r­   )gÓžõ��Á?g/�-²:Å¬?g¥¼?½�½?)g-u±ållÊ?g(I•0ì“µ?güÍïM6Æ?)g-u±ållÚ?gFºì“Å?gmÉ‰úM6Ö?)gý
€Žâ^¸?g)õÜŒ	Å?gìµ‡Z&ª?)gÍ@#à)GÂ?g/·æTSŽÏ?g6æØîÜƒ³?)gÍ@#à)GÒ?g/·æTSŽß?gSW_ÙÜƒÃ?T)r{   re   r¬   r!  )
r   Úemptyr  r2   r   r¯   rq   rr   rˆ   r³   )r^   re   r¬   r&  r   r°   r´   r   r   r   Útest_ground_truthµ  s2    
ýÿýýúÿ z'TestNanvarFixedValues.test_ground_truthc                 C   s.   t dt d¡ ƒ}|j|d�}|dks*J ‚d S )NiÂìµ-r   )r¬   rÇ   )r   r   r,  r´   )r^   r¬   ÚdatarË   r   r   r   Útest_nanstd_roundoffÝ  s    z*TestNanvarFixedValues.test_nanstd_roundoffc                 C   s   t j d¡S r   ©r   r   r   ra   r   r   r   r$  å  s    zTestNanvarFixedValues.prngN)ró   rô   rõ   r·   r	  r   r&  r*  r.  r/  r3  r6  rö   r÷   r€   r9  r;  Úpropertyr$  r   r   r   r   r  u  s    




&
r  c                   @   sv   e Zd Zejdd„ ƒZejdd„ ƒZej dg d¢¡dd„ ƒZ	d	d
„ Z
dd„ Zdd„ Zdd„ Zdd„ Zedd„ ƒZdS )ÚTestNanskewFixedValuesc                 C   s   t  t  ddd¡¡S ©Nr   r|   éÈ   ©r   ÚsinZlinspacera   r   r   r   r&  í  s    zTestNanskewFixedValues.samplesc                 C   s   dS )NgÌ5ôîÈ¿r   ra   r   r   r   Úactual_skewñ  s    z"TestNanskewFixedValues.actual_skewr  ©gfffff¨@gš™™™™¨@g     ¨@c                 C   s(   |t  d¡ }t |¡}|dks$J ‚d S ©Ni,  rÇ   )r   r,  r   rÏ   )r^   r  r:  rÎ   r   r   r   Útest_constant_seriesõ  s    
z+TestNanskewFixedValues.test_constant_seriesc                 C   s\   d\}}| j j||dd�}t |¡dk s,J ‚d\}}| j j||dd�}t |¡dksXJ ‚d S )N©ç333333Ó?çš™™™™™¹?éd   r0  r   ©rI  rH  )r$  Úbetar   rÏ   ©r^   ÚalpharL  Zleft_tailedZright_tailedr   r   r   Útest_all_finiteü  s    z&TestNanskewFixedValues.test_all_finitec                 C   s   t  |¡}t ||¡ d S r0   )r   rÏ   rq   rr   ©r^   r&  rC  rÎ   r   r   r   r9    s    
z(TestNanskewFixedValues.test_ground_truthc                 C   sH   t  |t jt  t|ƒ¡ g¡}tj|dd�}t |t  	|t jg¡¡ d S ©Nr|   rd   )
r   r5   r2   r,  r×   r   rÏ   rq   rr   r  rP  r   r   r   Ú	test_axis	  s    z TestNanskewFixedValues.test_axisc                 C   s0   t  |t jg¡}tj|dd�}t  |¡s,J ‚d S ©NFr+  )r   Úhstackr2   r   rÏ   rˆ   )r^   r&  rÎ   r   r   r   Ú	test_nans  s    z TestNanskewFixedValues.test_nansc                 C   s.   t  |t jg¡}tj|dd�}t ||¡ d S ©NTr+  )r   rT  r2   r   rÏ   rq   rr   rP  r   r   r   Útest_nans_skipna  s    z'TestNanskewFixedValues.test_nans_skipnac                 C   s   t j d¡S r   r<  ra   r   r   r   r$    s    zTestNanskewFixedValues.prngN)ró   rô   rõ   r·   r	  r&  rC  rö   r÷   rF  rO  r9  rR  rU  rW  r=  r$  r   r   r   r   r>  ê  s   


	r>  c                   @   sv   e Zd Zejdd„ ƒZejdd„ ƒZej dg d¢¡dd„ ƒZ	d	d
„ Z
dd„ Zdd„ Zdd„ Zdd„ Zedd„ ƒZdS )ÚTestNankurtFixedValuesc                 C   s   t  t  ddd¡¡S r?  rA  ra   r   r   r   r&     s    zTestNankurtFixedValues.samplesc                 C   s   dS )Ng|vÂKó¿r   ra   r   r   r   Úactual_kurt$  s    z"TestNankurtFixedValues.actual_kurtr  rD  c                 C   s(   |t  d¡ }t |¡}|dks$J ‚d S rE  )r   r,  r   rÑ   )r^   r  r:  Úkurtr   r   r   rF  (  s    
z+TestNankurtFixedValues.test_constant_seriesc                 C   s\   d\}}| j j||dd�}t |¡dk s,J ‚d\}}| j j||dd�}t |¡dk sXJ ‚d S )NrG  rJ  r0  r   rK  r   )r$  rL  r   rÑ   rM  r   r   r   rO  /  s    z&TestNankurtFixedValues.test_all_finitec                 C   s   t  |¡}t ||¡ d S r0   )r   rÑ   rq   rr   ©r^   r&  rY  rZ  r   r   r   r9  8  s    
z(TestNankurtFixedValues.test_ground_truthc                 C   sH   t  |t jt  t|ƒ¡ g¡}tj|dd�}t |t  	|t jg¡¡ d S rQ  )
r   r5   r2   r,  r×   r   rÑ   rq   rr   r  r[  r   r   r   rR  <  s    z TestNankurtFixedValues.test_axisc                 C   s0   t  |t jg¡}tj|dd�}t  |¡s,J ‚d S rS  )r   rT  r2   r   rÑ   rˆ   )r^   r&  rZ  r   r   r   rU  A  s    z TestNankurtFixedValues.test_nansc                 C   s.   t  |t jg¡}tj|dd�}t ||¡ d S rV  )r   rT  r2   r   rÑ   rq   rr   r[  r   r   r   rW  F  s    z'TestNankurtFixedValues.test_nans_skipnac                 C   s   t j d¡S r   r<  ra   r   r   r   r$  K  s    zTestNankurtFixedValues.prngN)ró   rô   rõ   r·   r	  r&  rY  rö   r÷   rF  rO  r9  rR  rU  rW  r=  r$  r   r   r   r   rX    s   


	rX  c                   @   sF   e Zd Zejg d¢d�dd„ ƒZdd„ Zej ddd	g¡d
d„ ƒZ	dS )ÚTestDatetime64NaNOps)ÚsÚmsÚusÚns)Úparamsc                 C   s   |j S r0   )Úparam)r^   r  r   r   r   ÚunitQ  s    zTestDatetime64NaNOps.unitc                 C   sz   t jddd� |¡}|d }||jfD ]}t |¡}||ks&J ‚q&| dt j¡}||jfD ]}t |¡}||ksZJ ‚qZd S )Nz
2016-01-01r­   )Zperiodsr|   )ÚpdZ
date_rangeZas_unitÚ_datar   r¦   ÚinsertÚNaT)r^   rc  ZdtiÚexpectedr  rË   Zdti2r   r   r   r¨   W  s    

z!TestDatetime64NaNOps.test_nanmeanÚconstructorZM8Zm8c                 C   sÔ   |› d|› d�}t  d¡ t j¡ |¡ dd¡}d|d< tj|dd	�}t  |¡sTJ ‚|j	|ksbJ ‚tj|d
dd�}t j
g d¢|j	d�}t ||¡ tj|ddd�}t  
|d |d |d |d g¡}t ||¡ d S )Nú[ú]é   r7  r­   rg  )r}   r}   Fr+  r   rz   )r7  r4  rg  r  r|   rÞ   )r|   r|   )r   r|   )r   Zaranger&   Úint64ÚviewZreshaper   r¦   Zisnatrh   r  rq   Zassert_numpy_array_equal)r^   ri  rc  rh   r  rË   rh  r   r   r   Útest_nanmean_skipna_falsee  s     "z.TestDatetime64NaNOps.test_nanmean_skipna_falseN)
ró   rô   rõ   r·   r	  rc  r¨   rö   r÷   ro  r   r   r   r   r\  P  s
   
r\  c                   C   s~   t jrzt dd¡� t d¡s"J ‚W d   ƒ n1 s60    Y  t dd¡� t d¡r\J ‚W d   ƒ n1 sp0    Y  d S )NZuse_bottleneckTF)r   Z_BOTTLENECK_INSTALLEDrd  Zoption_contextÚ
get_optionr   r   r   r   Útest_use_bottlenecky  s
    ,rq  znumpy_op, expectedr   g      @r|   r7  c                 C   s    | t g d¢ƒƒ}||ksJ ‚d S )N)r|   r   r­   r7  )r   )Znumpy_oprh  rË   r   r   r   Útest_numpy_ops‚  s    rr  Ú	operationc                 C   sH   t ddtjdtjdgƒ}| ¡ }| |jƒ}| |j|d�}||ksDJ ‚d S )Nr|   r   r­   r7  )Úmask)r   r   r2   r   Z_values)rs  Úserrt  Zmedian_expectedZmedian_resultr   r   r   Ú%test_nanops_independent_of_mask_param—  s
    
rv  Ú	min_countr}   c                 C   s"   t  dd | ¡}d}||ksJ ‚d S )N)é   é%   F©r   Zcheck_below_min_count)rw  rË   Úexpected_resultr   r   r   Ú5test_check_below_min_count_negative_or_zero_min_count´  s    r|  rt  )FFTTé	   Fzmin_count, expected_result)r|   F)ée   Tc                 C   s"   d}t  || |¡}||ksJ ‚d S )N)r   r   rz  )rt  rw  r{  rc   rË   r   r   r   Ú-test_check_below_min_count_positive_min_count¼  s    r  )l   l$=O Tc                 C   s$   d}t j|d | d�}||ks J ‚d S )N)i?" iå  )rt  rw  rz  )rw  r{  rc   rË   r   r   r   Ú&test_check_below_min_count_large_shapeÇ  s    r€  r”   r¦   r¢   c                 C   s   t  t | ¡j|¡rJ ‚d S r0   )r   r  r   rh   rÈ   )Zany_real_numpy_dtyper”   r   r   r   Útest_check_bottleneck_disallowÑ  s    r�  r  )l          lüÿÿÿ       l   Ô|™H%[<c                 C   sR   t |tdƒtjd�}| ¡ }|j ¡ }||ks2J ‚||ks>J ‚|jtjksNJ ‚d S )Niô  )Úindexrh   )r   r€   r   rm  r§   rÊ   rh   Úfloat64)r   r  ru  rË   Z	np_resultr   r   r   Útest_nanmean_overflow×  s    
r„  rh   Zfloat128rà   )r§   r´   r°   rÎ   rZ  r¾   rÉ   c                 C   sb   |d u rt  d¡ ttdƒ|d�}t||ƒƒ }t|ƒrP|dvrP|jtjks^J ‚n|j|ks^J ‚d S )Nznp.float128 not availabler   r  )r¾   rÉ   )	r·   Úskipr   r€   rm   r   rh   r   rƒ  )r   rh   rà   ru  rË   r   r   r   Útest_returned_dtypeå  s    
r†  )fÚ	functoolsr   Únumpyr   r·   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandas.core.dtypes.commonr   Zpandasrd  r   r   Zpandas._testingZ_testingrq   Zpandas.corer   r   r`   r	  r   r   r   r   r!   r"   r'   r)   r-   r/   r3   r6   r7   r9   r;   r<   r>   r?   r@   rB   rI   rL   rM   rN   rP   rQ   rR   rT   rU   rV   rö   r÷   r  r  r  r  r  r  r>  rX  r\  rq  r£   r¢   r§   r¦   rª   r©   r¾   rÉ   rû   rü   rr  rø   rù   r³   r¯   r¹   rÂ   rÅ   rÏ   rÑ   rÓ   rv  r|  r  r  Zskip_if_windowsZskip_if_32bitr€  r�  r„  Zint16Zint32rm  Zfloat32rƒ  rm   r†  r   r   r   r   Ú<module>   s@  




























    2þ
þÿ
þ
9u33)	öþ
ñþ
	
&ÿ


úþ