o
    Û­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   sD   � |   ¡ �}| tdd¡ d V  W d   ƒ d S 1 sw   Y  d S )NÚ_USE_BOTTLENECKF)ÚcontextÚsetattrr   )ÚmonkeypatchÚm© r   úU/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/test_nanops.pyÚdisable_bottleneck   s
   €
"þr   c                   C   ó   dS )N©é   é   r   r   r   r   r   Ú	arr_shape   ó   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&   ó   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   ó   t  | ¡ d¡S )NÚS©r   ÚabsÚastyper   r   r   r   Úarr_str5   ó   r,   c                 C   r'   )NÚUr)   r   r   r   r   Úarr_utf:   r-   r/   c                 C   ó   t j d¡ dd| ¡ d¡S )Nr   r   é N  úM8[ns]©r   r   r   r$   r+   r   r   r   r   Úarr_date?   ó   r4   c                 C   r0   )Nr   r   r1   úm8[ns]r3   r   r   r   r   Ú
arr_tdeltaD   r5   r7   c                 C   s   t  t j| ¡S ©N)r   ÚtileÚnanr   r   r   r   Úarr_nanI   ó   r;   c                 C   ó   t  | |g¡S r8   ©r   Úvstack)r   r;   r   r   r   Úarr_float_nanN   r<   r@   c                 C   r=   r8   r>   )r;   r   r   r   r   Úarr_nan_float1S   r<   rA   c                 C   s   t  | | g¡S r8   r>   ©r;   r   r   r   Úarr_nan_nanX   r<   rC   c                 C   s
   | t j S r8   )r   Úinfr   r   r   r   Úarr_inf]   s   
rE   c                 C   r=   r8   r>   )r   rE   r   r   r   Úarr_float_infb   r<   rF   c                 C   r=   r8   r>   ©r;   rE   r   r   r   Úarr_nan_infg   r<   rH   c                 C   s   t  | ||g¡S r8   r>   )r   r;   rE   r   r   r   Úarr_float_nan_infl   r-   rI   c                 C   s   t  | | |g¡S r8   r>   rG   r   r   r   Úarr_nan_nan_infq   r-   rJ   c                 C   sJ   t  |  d¡| d¡| d¡| d¡| d¡| d¡| d¡| d¡g¡S )NÚO)r   r?   r+   )r   r%   r&   r   r,   r/   r4   r7   r   r   r   Úarr_objv   s   øÿrL   c                 C   s<   t jdd�� | | d  W  d   ƒ S 1 sw   Y  d S ©NÚignore©Úinvalidr   ©r   ÚerrstaterB   r   r   r   Úarr_nan_nanjˆ   s   
$ÿrS   c                 C   ó>   t jdd�� t  | |g¡W  d   ƒ S 1 sw   Y  d S ©NrN   rO   ©r   rR   r?   )r   rS   r   r   r   Úarr_complex_nanŽ   ó   $ÿrW   c                 C   s8   t jdd�� | d W  d   ƒ S 1 sw   Y  d S rM   rQ   )rE   r   r   r   Úarr_nan_infj”   s   $ÿrY   c                 C   rT   rU   rV   )r   rY   r   r   r   Úarr_complex_nan_infjš   rX   rZ   c                 C   ó   | d d …df S ©Nr   r   r   r   r   r   Úarr_float_1d    r-   r]   c                 C   r[   r\   r   rB   r   r   r   Ú
arr_nan_1d¥   r-   r^   c                 C   r[   r\   r   )r@   r   r   r   Úarr_float_nan_1dª   r-   r_   c                 C   r[   r\   r   )Úarr_float1_nanr   r   r   Úarr_float1_nan_1d¯   r-   ra   c                 C   r[   r\   r   )rA   r   r   r   Úarr_nan_float1_1d´   r-   rb   c                   @   sÄ  e Zd Zdd„ Zdd„ ZdCdd„Z		dDd	d
„Z	dEdd„Z					dFdd„ZdCd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 dGd%d&„Z!e
j d¡d'd(„ ƒZ"e
j d¡d)d*„ ƒZ#dGd+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 )HÚ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��+ | j| jd  | _"t | j| j"g¡| _#| jd | _$t | j| j$g¡| _%W d   ƒ n	1 �s4w   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.   r1   r2   r6   rK   rN   rO   )2r   r   r   r   r   r   r   Ú
arr_float1r   r$   r%   r&   r*   r+   r,   r/   r4   r7   r9   r:   r;   r?   r@   r`   rA   rC   rD   rE   rF   rH   rI   rJ   rL   rR   rS   rW   rY   rZ   Úarr_float_2dÚarr_float1_2dÚ
arr_nan_2dÚarr_float_nan_2dÚarr_float1_nan_2dÚarr_nan_float1_2dr]   Úarr_float1_1dr^   r_   ra   rb   )Úselfr   r   r   r   Úsetup_methodº   sh   ÿÿ







øÿûz TestnanopsDataFrame.setup_methodc                 C   s
   t t_d S r8   )Úuse_bnr   r   ©rl   r   r   r   Úteardown_methodý   s   
z#TestnanopsDataFrame.teardown_methodTc                 C   s:  t |d|ƒ}|dkr&t|dƒr&|jr&|j|jkr&tj||jd gdd�d }ztj|||d� W d S  tyœ   t|dƒrC|j	dkrC‚ t|dƒrN|j	j
dvrO‚ |j	j
d	krv|j	j
d	krb| |j	¡}nttd
ƒridnd}| |¡}| |¡}n|j	j
d	kr}‚ tjt |¡t |¡|d� tjt |¡t |¡|d� Y d S w )NÚasm8r   Úshape©Úaxis©Úcheck_dtypeÚdtyper6   )ÚcrK   rK   Ú
complex128Úc16Úf8)ÚgetattrÚhasattrÚndimrr   r   ÚsplitÚtmÚassert_almost_equalÚAssertionErrorrw   Úkindr+   ÚrealÚimag)rl   ÚtargÚresrt   rv   Ú
cast_dtyper   r   r   Úcheck_results   s4   ÿþ
"èz!TestnanopsDataFrame.check_resultsNc                 K   sÐ  t t|jƒƒd g D ]´}	|r|n|}
|r'|r't|
ƒ ¡ r'||
fd|	i|¤Ž}n
||
fd|	i|¤Ž}|
jtkrP|tju s@|tju rPt	|tj
ƒrL| t¡}nt|ƒ}||f|	|dœ|¤Ž}t	|tjƒrrt	|tƒrrt |¡rrt |¡rr|}| j|||	|d� |r�||fd|	i|¤Ž}| j|||	|d� |	d u r§||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 )
Nrt   ©rt   Úskipnaru   r‹   é   r   éÿÿÿÿrs   )r‹   rv   Úempty_targfunc)ÚlistÚranger~   r   Úallrw   Úobjectr   ÚanyÚ
isinstanceÚndarrayr+   Úboolry   ÚfloatÚisnanr‰   ÚtakeÚcheck_fun_data)rl   ÚtestfuncÚtargfuncÚ	testarvalÚ	targarvalr‹   rv   rŽ   Úkwargsrt   Útargartempvalr†   r‡   Ú
testarval2Ú
targarval2r   r   r   rš   '  s^   

ÿþýü€
üù
øz"TestnanopsDataFrame.check_fun_datac           
      K   sb   |}|  d¡rt| |d d… ƒr|d d… }t| |ƒ}t| |ƒ}	| j||||	f||dœ|¤Ž d S )NÚ_nanéüÿÿÿ)r‹   rŽ   )Úendswithr}   r|   rš   )
rl   r›   rœ   Útestarr‹   rŽ   rŸ   Ú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}
|rO| j ||d|fi |	¤Ž |r€| j ||d|fi |	¤Ž | j ||d|fi |	¤Ž |rw| j ||d	|fi |	¤Ž |
| j d¡g7 }
|rœ|| jƒ | j ||d
|fi |	¤Ž |
| j d¡g7 }
|rÄz|| jƒ W n	 ty®   Y nw | j ||d|fi |	¤Ž |
| j d¡g7 }
|ræt	 
|
¡| _|dkrØt| j||d�}| j ||d|fi |	¤Ž d S d S )Nr   r@   r%   r&   rK   r;   r   rW   rS   r4   r7   Úconvert)ÚfuncÚallow_complexrL   )r¨   r   r+   r%   r&   r   r4   r7   Ú	TypeErrorr   r?   rL   r   Ú_badobj_wrap)rl   r›   rœ   r‹   r«   Úallow_all_nanÚ
allow_dateÚallow_tdeltaÚ	allow_objrŸ   Úobjsr   r   r   Ú
check_funs|  sH   


ý
ÿÿ÷zTestnanopsDataFrame.check_funsc                 K   s6   |j jdkr|r| d¡}n| d¡}||fi |¤ŽS )NrK   rz   r{   )rw   rƒ   r+   )rl   Ú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³   ©rl   Únan_opÚnp_opr‹   r   r   r   Útest_nan_funcs½  s   z"TestnanopsDataFrame.test_nan_funcsc                 C   ó    | j tjtj|ddtjd� d S )NF)r¯   rv   rŽ   )r³   r   Únansumr   Úsum©rl   r‹   r   r   r   Útest_nansumÃ  ó   
ú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   ó    | j tjtj|ddd|d� d S ©NFr©   )r«   r¯   r±   rÆ   )r³   r   Únanvarr   Úvar©rl   rÆ   r‹   r   r   r   Útest_nanvarÝ  ó   
ùzTestnanopsDataFrame.test_nanvarc              	   C   rÈ   rÉ   )r³   r   Únanstdr   ÚstdrÌ   r   r   r   Útest_nanstdé  rÎ   zTestnanopsDataFrame.test_nanstdc                 C   sZ   t  d¡}tjdd�� | jtj|j|dddd|d� W d   ƒ d S 1 s&w   Y  d S )Núscipy.statsrN   rO   Fr©   )r«   r¯   r°   r±   rÆ   )ÚpytestÚimportorskipr   rR   r³   r   ÚnansemÚsem)rl   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   sX   |||ƒ}t  ||¡}t|ƒ}|jrd||< |S t|dƒr!| ¡ s(t|dƒs*|r*d}|S )Nr�   r‘   )r   Úminr   r~   r}   r‘   )rl   r´   rt   rª   r‡   ÚnansÚnullnanr   r   r   Ú_argminmax_wrap  s    
úÿþýüz#TestnanopsDataFrame._argminmax_wrapc                 C   ó(   t | jtjd�}| jtj||dd� d S ©N©rª   FrÙ   )r   rÞ   r   Úargmaxr³   r   Ú	nanargmax©rl   r‹   rª   r   r   r   Útest_nanargmax  ó   z"TestnanopsDataFrame.test_nanargmaxc                 C   rß   rà   )r   rÞ   r   Úargminr³   r   Ú	nanargminrä   r   r   r   Útest_nanargmin   ræ   z"TestnanopsDataFrame.test_nanargminc                 C   st   t |jjtjƒs| d¡}|||dd�}t |tjƒr,d|tj||d�tj||d�k< |S t |¡t |¡kr8dS |S )Nr{   F)rt   Úbiasr   rs   ç        )	r”   rw   Útyper   Úfloatingr+   r•   ÚmaxrÛ   )rl   Úvaluesrt   rª   Úresultr   r   r   Ú_skew_kurt_wrap%  s   
 z#TestnanopsDataFrame._skew_kurt_wrapc              	   C   sd   t  d¡}t| j|jd�}tjdd�� | jtj	||dddd� W d   ƒ d S 1 s+w   Y  d S )NrÒ   rá   rN   rO   F©r«   r¯   r°   )
rÓ   rÔ   r   rñ   Úskewr   rR   r³   r   Únanskew)rl   r‹   r×   rª   r   r   r   Útest_nanskew1  s   
ú"ÿz TestnanopsDataFrame.test_nanskewc              	   C   sp   t  d¡}t|jdd�}t| j|d�}tjdd�� | jtj	||dddd� W d   ƒ d S 1 s1w   Y  d S )	NrÒ   T)Úfisherrá   rN   rO   Frò   )
rÓ   rÔ   r   Úkurtosisrñ   r   rR   r³   r   Únankurt)rl   r‹   r×   Úfunc1rª   r   r   r   Útest_nankurt?  s   
ú"ÿz TestnanopsDataFrame.test_nankurtc                 C   rº   )NF)r¯   r°   rŽ   )r³   r   Únanprodr   Úprodr½   r   r   r   Útest_nanprodN  r¿   z TestnanopsDataFrame.test_nanprodc                 K   ó–  || 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 ©NÚmin_periodsrŒ   )re   rf   Úlenr€   r�   rh   ri   r   r:   rg   rj   ©rl   ÚcheckfunÚtarg0Útarg1rŸ   Úres00Úres01Úres10Úres11Útarg2Úres20Úres21Úres22Úres23Úres24Úres25r   r   r   Úcheck_nancorr_nancov_2dX  ób   þýüþýüþýüþýüz+TestnanopsDataFrame.check_nancorr_nancov_2dc                 K   rþ   rÿ   )r]   rk   r  r€   r�   r_   ra   r   r:   r^   rb   r  r   r   r   Úcheck_nancorr_nancov_1d…  r  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Œ   Úpearson©Úmethod©r   Úcorrcoefre   rf   Úflatr  r   Únancorrr]   rk   r  ©rl   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   óŽ   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   Úkendallr  )rÓ   rÔ   Ú
kendalltaure   rf   r  r  r   r  r]   rk   r  ©rl   r×   r  r  r   r   r   Útest_nancorr_kendallÂ  ó   
z(TestnanopsDataFrame.test_nancorr_kendallc                 C   r   )NrÒ   r   Úspearmanr  )rÓ   rÔ   Ú	spearmanrre   rf   r  r  r   r  r]   rk   r  r#  r   r   r   Útest_nancorr_spearmanÌ  r%  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   ƒ d S 1 s:w   Y  d S )NÚscipyr  z;Unknown method 'foo', expected one of 'kendall', 'spearman'©ÚmatchÚfoor  )rÓ   rÔ   r   r  re   rf   r  ÚraisesÚ
ValueErrorr  r   r  )rl   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   Úcovre   rf   r  r  r   Únancovr]   rk   r  r  r   r   r   Útest_nancovÞ  s   zTestnanopsDataFrame.test_nancov)T)TNr8   )TTTTT)NN)0Ú__name__Ú
__module__Ú__qualname__rm   rp   r‰   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(  r0  r3  r   r   r   r   rc   ¹   sh    C
.
øC
ÿ
÷
9ÿ








ÿ






--

rc   zarr, correct)
©r   F)r%   F)r&   F)r,   F)r/   Fr>  )rW   F)rS   F)rY   T)rZ   Tc                 C   sh   |   |¡}t|ddƒr2t |¡}|r|sJ ‚n|rJ ‚t|dƒs"d S tj|ddd�}t|ddƒsd S d S ©Nr~   Tr   r�   rs   )Úgetfixturevaluer|   r   Ú	_has_infsr}   r   r™   )ÚrequestÚarrÚcorrectr   ÚvalÚres0r   r   r   Útest_has_infs_non_floatç  s   



õrG  )	)r   F)r;   F)r@   F)rC   F)rF   T)rE   T)rH   T)rI   T)rJ   Tr+   )NÚf4Úf2c                 C   sz   |   |¡}|d ur| |¡}t|ddƒr;t |¡}|r |sJ ‚n|r$J ‚t|dƒs+d S tj|ddd�}t|ddƒsd S d S r?  )r@  r+   r|   r   rA  r}   r   r™   )rB  rC  rD  r+   r   rE  rF  r   r   r   Útest_has_infs_floats  s   




õrJ  Úfixture)r   r   r%   r&   r,   r/   c                 C   s    |  | ¡}t |jd¡sJ ‚d S ©NÚtest©r@  r   Ú_bn_ok_dtyperw   ©rK  rB  r   Úobjr   r   r   Útest_bn_ok_dtype'  s   
rR  )r4   r7   rL   c                 C   s    |  | ¡}t |jd¡rJ ‚d S rL  rN  rP  r   r   r   Útest_bn_not_ok_dtype/  s   
	rS  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sJ ‚d S )NrŒ   gš™™™™™ñ?y      ð?       @)r   Ú_ensure_numericro   r   r   r   Útest_numeric_values=  s   z%TestEnsureNumeric.test_numeric_valuesc                 C   sæ   t  g d¢¡}t  t |¡|¡sJ ‚| t¡}t  t |¡|¡s"J ‚t jg d¢td�}d}tjt	|d�� t |¡ W d   ƒ n1 sDw   Y  t jg d¢td�}d}tjt	|d�� t |¡ W d   ƒ d S 1 slw   Y  d S )N)rŒ   r   rÇ   )Ú1Ú2Ú3©rw   z,Could not convert \['1' '2' '3'\] to numericr*  )r,  ÚbarÚbazzCould not convert .* to numeric)
r   ÚarrayÚallcloser   rU  r+   r’   rÓ   r-  r¬   )rl   rï   Úo_valuesÚ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w   Y  t jtdd�� t d¡ W d   ƒ n1 s3w   Y  t jtdd�� t d¡ W d   ƒ d S 1 sPw   Y  d S )Nz'Could not convert string '1' to numericr*  rW  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   rU  ro   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 sw   Y  d}t jt|d�� t i ¡ W d   ƒ n1 s7w   Y  t jt|d�� t g ¡ W d   ƒ d S 1 sTw   Y  d S )Nz)Could not convert string 'foo' to numericr*  r,  z%argument must be a string or a numberrb  )rl   r/  r   r   r   Útest_non_convertable_valuesh  s   ÿÿ"ÿz-TestEnsureNumeric.test_non_convertable_valuesN)r4  r5  r6  rV  ra  rc  rd  r   r   r   r   rT  <  s
    
rT  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   r   )Ng      @r   ro   r   r   r   Úvariancex  r   zTestNanvarFixedValues.variancec                 C   s   | j j|d dd�S )Nç      à?i † )ÚscaleÚsize)ÚprngÚnormal)rl   rf  r   r   r   Úsamples|  ó   zTestNanvarFixedValues.samplesc                 C   s   t  |¡}tj||dd� d S )Nç{®Gáz„?©Úrtol)r   rÊ   r€   r�   )rl   rl  rf  Ú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‹   rn  ro  F)r   r:   Úonesrr   r   rÊ   r€   r�   )rl   rl  rf  Úsamples_testrq  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   Trs  rg  rn  ro  F)	r   r:   rt  rr   r   rÏ   r€   r�   rÊ   )rl   rl  rf  ru  Ú
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   ©ri  rŒ   rs   çUUUUUUµ?rn  ro  )
rj  Úuniformrr   r   r?   r   rÊ   r€   r�   r]  )rl   rl  rf  Úsamples_unifrq  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Œ   ry  r�   Tr   )rt   r‹   rÆ   r   rz  rn  ro  g      ð?g       @)	rj  r{  r   r:   r   rÊ   rÁ   r€   r�   )rl   Únrl  Ú
variance_0Ú
variance_1Ú
variance_2rË   r   r   r   Útest_nanvar_ddof¢  s   $z&TestNanvarFixedValues.test_nanvar_ddofrt   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 ¡saJ ‚tj	|d||d�}t |d d… |||f d ¡ t  |d ¡sƒJ ‚d S )N)é   r„  )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‹   rt   rÆ   rg  )
r   Úemptyr]  r:   r   rÊ   r€   r�   r˜   rÏ   )rl   rt   rÆ   rl  rf  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   rt  rÐ   )rl   rÆ   Údatarð   r   r   r   Útest_nanstd_roundoffÝ  s   z*TestNanvarFixedValues.test_nanstd_roundoffc                 C   ó   t j d¡S r   ©r   r   r   ro   r   r   r   rj  å  r    zTestNanvarFixedValues.prngN)r4  r5  r6  rÓ   rK  rf  rl  rr  rv  rx  r}  rƒ  r7  r8  r�   r†  rˆ  Úpropertyrj  r   r   r   r   re  u  s"    




&
re  c                   @   óv   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   ó   t  t  ddd¡¡S ©Nr   rŒ   éÈ   ©r   ÚsinÚlinspacero   r   r   r   rl  í  rm  zTestNanskewFixedValues.samplesc                 C   r   )NgÌ5ôîÈ¿r   ro   r   r   r   Úactual_skewñ  r   z"TestNanskewFixedValues.actual_skewrE  ©gfffff¨@gš™™™™¨@g     ¨@c                 C   ó(   |t  d¡ }t |¡}|dksJ ‚d S ©Ni,  rë   )r   rt  r   rô   )rl   rE  r‡  ró   r   r   r   Útest_constant_seriesõ  ó   
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s,J ‚d S )N©ç333333Ó?çš™™™™™¹?éd   ry  r   ©rœ  r›  )rj  Úbetar   rô   ©rl   ÚalpharŸ  Úleft_tailedÚright_tailedr   r   r   Útest_all_finiteü  ó   z&TestNanskewFixedValues.test_all_finitec                 C   ó   t  |¡}t ||¡ d S r8   )r   rô   r€   r�   ©rl   rl  r”  ró   r   r   r   r†    ó   
z(TestNanskewFixedValues.test_ground_truthc                 C   óH   t  |t jt  t|ƒ¡ g¡}tj|dd�}t |t  	|t jg¡¡ d S ©NrŒ   rs   )
r   r?   r:   rt  r  r   rô   r€   r�   r]  r§  r   r   r   Ú	test_axis	  ó   z TestNanskewFixedValues.test_axisc                 C   ó0   t  |t jg¡}tj|dd�}t  |¡sJ ‚d S ©NFrs  )r   Úhstackr:   r   rô   r˜   )rl   rl  ró   r   r   r   Ú	test_nans  ó   z TestNanskewFixedValues.test_nansc                 C   ó.   t  |t jg¡}tj|dd�}t ||¡ d S ©NTrs  )r   r¯  r:   r   rô   r€   r�   r§  r   r   r   Útest_nans_skipna  ó   z'TestNanskewFixedValues.test_nans_skipnac                 C   r‰  r   rŠ  ro   r   r   r   rj    r    zTestNanskewFixedValues.prngN)r4  r5  r6  rÓ   rK  rl  r”  r7  r8  r˜  r¤  r†  r«  r°  r´  r‹  rj  r   r   r   r   r�  ê  ó    


	r�  c                   @   rŒ  )ÚTestNankurtFixedValuesc                 C   rŽ  r�  r‘  ro   r   r   r   rl     rm  zTestNankurtFixedValues.samplesc                 C   r   )Ng|vÂKó¿r   ro   r   r   r   Úactual_kurt$  r   z"TestNankurtFixedValues.actual_kurtrE  r•  c                 C   r–  r—  )r   rt  r   rø   )rl   rE  r‡  Úkurtr   r   r   r˜  (  r™  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 s,J ‚d S )Nrš  r�  ry  r   rž  r   )rj  rŸ  r   rø   r   r   r   r   r¤  /  r¥  z&TestNankurtFixedValues.test_all_finitec                 C   r¦  r8   )r   rø   r€   r�   ©rl   rl  r¸  r¹  r   r   r   r†  8  r¨  z(TestNankurtFixedValues.test_ground_truthc                 C   r©  rª  )
r   r?   r:   rt  r  r   rø   r€   r�   r]  rº  r   r   r   r«  <  r¬  z TestNankurtFixedValues.test_axisc                 C   r­  r®  )r   r¯  r:   r   rø   r˜   )rl   rl  r¹  r   r   r   r°  A  r±  z TestNankurtFixedValues.test_nansc                 C   r²  r³  )r   r¯  r:   r   rø   r€   r�   rº  r   r   r   r´  F  rµ  z'TestNankurtFixedValues.test_nans_skipnac                 C   r‰  r   rŠ  ro   r   r   r   rj  K  r    zTestNankurtFixedValues.prngN)r4  r5  r6  rÓ   rK  rl  r¸  r7  r8  r˜  r¤  r†  r«  r°  r´  r‹  rj  r   r   r   r   r·    r¶  r·  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 r8   )Úparam)rl   rB  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s:J ‚q-d S )Nz
2016-01-01rÇ   )ÚperiodsrŒ   )ÚpdÚ
date_rangeÚas_unitÚ_datar   rÀ   ÚinsertÚNaT)rl   rÂ  ÚdtiÚexpectedrQ  rð   Údti2r   r   r   rÂ   W  s   

þz!TestDatetime64NaNOps.test_nanmeanÚconstructorÚM8Úm8c                 C   sÔ   |› d|› d�}t  d¡ t j¡ |¡ dd¡}d|d< tj|dd	�}t  |¡s*J ‚|j	|ks1J ‚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ú[ú]é   r„  rÇ   rÉ  )r�   r�   Frs  r   rŠ   )r„  r~  rÉ  rZ  rŒ   r  )rŒ   rŒ   )r   rŒ   )r   Úaranger+   Úint64ÚviewÚreshaper   rÀ   Úisnatrw   r]  r€   Úassert_numpy_array_equal)rl   rÍ  rÂ  rw   rC  rð   rË  r   r   r   Útest_nanmean_skipna_falsee  s    "z.TestDatetime64NaNOps.test_nanmean_skipna_falseN)
r4  r5  r6  rÓ   rK  rÂ  rÂ   r7  r8  rÙ  r   r   r   r   r»  P  s    
r»  c                   C   s„   t jr@t dd¡� t d¡sJ ‚W d   ƒ n1 sw   Y  t dd¡� t d¡r.J ‚W d   ƒ d S 1 s9w   Y  d S d S )NÚuse_bottleneckTF)r   Ú_BOTTLENECK_INSTALLEDrÄ  Úoption_contextÚ
get_optionr   r   r   r   Útest_use_bottlenecky  s   ÿ"ÿürÞ  znumpy_op, expectedr"   g      @rŒ   r„  c                 C   s    | t g d¢ƒƒ}||ksJ ‚d S )N)rŒ   r   rÇ   r„  )r   )Únumpy_oprË  rð   r   r   r   Útest_numpy_ops‚  s   rà  Ú	operationc                 C   sH   t ddtjdtjdgƒ}| ¡ }| |jƒ}| |j|d�}||ks"J ‚d S )NrŒ   r   rÇ   r„  )Úmask)r   r   r:   r   Ú_values)rá  Úserrâ  Úmedian_expectedÚmedian_resultr   r   r   Ú%test_nanops_independent_of_mask_param—  s
   
rç  Ú	min_countr�   c                 C   s"   t  dd | ¡}d}||ksJ ‚d S )N)é   é%   F©r   Úcheck_below_min_count)rè  rð   Úexpected_resultr   r   r   Ú5test_check_below_min_count_negative_or_zero_min_count´  s   rî  râ  )FFTTé	   Fzmin_count, expected_result)rŒ   F)ée   Tc                 C   s"   d}t  || |¡}||ksJ ‚d S )N)r"   r"   rë  )râ  rè  rí  rr   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å  )râ  rè  rë  )rè  rí  rr   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 r8   )r   rO  r   rw   rì   )Úany_real_numpy_dtyperª   r   r   r   Útest_check_bottleneck_disallowÑ  s   rô  rE  )l          lüÿÿÿ       l   Ô|™H%[<c                 C   sR   t |tdƒtjd�}| ¡ }|j ¡ }||ksJ ‚||ksJ ‚|jtjks'J ‚d S )Niô  )Úindexrw   )r   r�   r   rÔ  rÁ   rï   rw   Úfloat64)r   rE  rä  rð   Ú	np_resultr   r   r   Útest_nanmean_overflow×  s   
rø  rw   Úfloat128r  )rÁ   rÐ   rË   ró   r¹  rÛ   rî   c                 C   sd   |d u r	t  d¡ ttdƒ|d�}t||ƒƒ }t|ƒr)|dvr)|jtjks'J ‚d S |j|ks0J ‚d S )Nznp.float128 not availabler"   rZ  )rÛ   rî   )	rÓ   Úskipr   r�   r|   r   rw   r   rö  )r   rw   r  rä  rð   r   r   r   Útest_returned_dtypeå  s   
rû  )fÚ	functoolsr   Únumpyr   rÓ   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandas.core.dtypes.commonr   ÚpandasrÄ  r   r   Úpandas._testingÚ_testingr€   Úpandas.corer   r   rn   rK  r   r   r   r   r%   r&   r,   r/   r4   r7   r;   r@   rA   rC   rE   rF   rH   rI   rJ   rL   rS   rW   rY   rZ   r]   r^   r_   ra   rb   rc   r7  r8  rG  rJ  rR  rS  rT  re  r�  r·  r»  rÞ  r¼   r»   rÁ   rÀ   rÄ   rÃ   rÛ   rî   r<  r=  rà  r9  r:  rÏ   rÊ   rÕ   rã   rè   rô   rø   rû   rç  rî  r]  rñ  Úskip_if_windowsÚskip_if_32bitrò  rô  rø  Úint16Úint32rÔ  Úfloat32rö  r|   rû  r   r   r   r   Ú<module>   sB   




























    2þ
þÿ
þ
9u33)	öþ
ñþ
	
&ÿ


úþ