a
    Of:                     @   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j56dBg dCdDdE Z7ej56dBg dFej56dGg dHdIdJ Z8ej56dKg dLdMdN Z9ej56dKg 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j56d^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j56deejLejMejBejDejFejNejOejPejQejRejJejIejSejTejUgdfdg ZVej56dhdid gdjdk ZWej56dldeXg dmeXdngdodpg  gej56dqdrdsgdtdu ZYejZej[ej56dqdrdvgdwdx Z\ej56dydzd{gd|d} Z]ej56d~g ddd Z^ej56dej_ej`ejaejbejcededdgej56dg ddd 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   Q/var/www/ai-form-bot/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	}qttd
rd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 rt	|tj
r|t}nt|}||f|	|d|}t	|tjrt	|trt|rt|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rd 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 }
|rz|| j W n tyd   Y n,0 | j ||d|fi |	 |
| jdg7 }
|rt	
|
| _|dkrt| 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   Z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 s0    Y  t jg dtd}d}tjt	|d t| W d    n1 s0    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 s0    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 s0    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{Gz?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|   r/  r}   Tr   )re   r{   r   r   r0  r&  r'  g      ?g       @)	r#  r1  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 sJ tj	|d||d}t|d d |||f d  t |d sJ d S )N)   r6  )g*f#?g| 9?gֆ?)gvZ?gן?gצʺ?)g6bڷ?gE-9?g$mxP?r   )gӞ?g/-:Ŭ?g??)g-ull?g(I0쓵?gM6?)g-ull?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.  r2  r5  r   r   r   r8  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 )Ng5ȿ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  r9  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   r/  r   rH  rG  )r#  betar   r   r^   alpharK  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%  rB  r   r   r   r   r8    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  rO  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   rS  r2   r   r   rq   rr   rO  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%  rB  r   r   rE  rN  r8  rQ  rT  rV  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>  r@  ra   r   r   r   r%     s    zTestNankurtFixedValues.samplesc                 C   s   dS )Ng|vKr   ra   r   r   r   actual_kurt$  s    z"TestNankurtFixedValues.actual_kurtr  rC  c                 C   s(   |t d }t|}|dks$J d S rD  )r   r+  r   r   )r^   r  r9  kurtr   r   r   rE  (  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 )NrF  rI  r/  r   rJ  r   )r#  rK  r   r   rL  r   r   r   rN  /  s    z&TestNankurtFixedValues.test_all_finitec                 C   s   t |}t|| d S r0   )r   r   rq   rr   r^   r%  rX  rY  r   r   r   r8  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 rP  )
r   r5   r2   r+  r   r   r   rq   rr   r  rZ  r   r   r   rQ  <  s    z TestNankurtFixedValues.test_axisc                 C   s0   t |t jg}tj|dd}t |s,J d S rR  )r   rS  r2   r   r   r   )r^   r%  rY  r   r   r   rT  A  s    z TestNankurtFixedValues.test_nansc                 C   s.   t |t jg}tj|dd}t|| d S rU  )r   rS  r2   r   r   rq   rr   rZ  r   r   r   rV  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%  rX  r   r   rE  rN  r8  rQ  rT  rV  r<  r#  r   r   r   r   rW    s   


	rW  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^   rb  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[]   r6  r   rf  )r}   r}   Fr*  r   rz   )r6  r3  rf  r  r|   r   )r|   r|   )r   r|   )r   Zaranger&   int64viewZreshaper   r   Zisnatrh   r  rq   Zassert_numpy_array_equal)r^   rh  rb  rh   r  r   rg  r   r   r   test_nanmean_skipna_falsee  s     "z.TestDatetime64NaNOps.test_nanmean_skipna_falseN)
r   r   r   r   r  rb  r   r   r   rn  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_INSTALLEDrc  Zoption_context
get_optionr   r   r   r   test_use_bottlenecky  s
    ,rp  znumpy_op, expectedr   g      @r|   r6  c                 C   s    | t g d}||ksJ d S )N)r|   r   r   r6  )r   )Znumpy_oprg  r   r   r   r   test_numpy_ops  s    rq  	operationc                 C   sH   t ddtjdtjdg}| }| |j}| |j|d}||ksDJ d S )Nr|   r   r   r6  )mask)r   r   r2   r   Z_values)rr  serrs  Zmedian_expectedZmedian_resultr   r   r   %test_nanops_independent_of_mask_param  s
    
ru  	min_countr}   c                 C   s"   t dd | }d}||ksJ d S )N)   %   Fr   Zcheck_below_min_count)rv  r   expected_resultr   r   r   5test_check_below_min_count_negative_or_zero_min_count  s    r{  rs  )FFTT	   Fzmin_count, expected_result)r|   F)e   Tc                 C   s"   d}t || |}||ksJ d S )N)r   r   ry  )rs  rv  rz  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  )rs  rv  ry  )rv  rz  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   rl  r   r   rh   float64)r   r  rt  r   Z	np_resultr   r   r   test_nanmean_overflow  s    
r  rh   Zfloat128r   )r   r   r   r   rY  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   rt  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pandasrc  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=  rW  r[  rp  r   r   r   r   r   r   r   r   r   r   rq  r   r   r   r   r   r   r   r   r   r   ru  r{  r  r~  Zskip_if_windowsZskip_if_32bitr  r  r  Zint16Zint32rl  Zfloat32r  rm   r  r   r   r   r   <module>   s@  




























    2


9u33)	

	
&


