a
    d                     @   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 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/d0 Z-ejd1d2 Z.ejd3d4 Z/ejd5d6 Z0ejd7d8 Z1ejd9d: Z2ejd;d< Z3ejd=d> Z4ejd?d@ Z5G dAdB dBZ6ej78dCg dDdEdF Z9ej78dCg dGej78dHg dIdJdK Z:ej78dLg dMdNdO Z;ej78dLg dPdQdR Z<G dSdT dTZ=G dUdV dVZ>G dWdX dXZ?G dYdZ dZZ@G d[d\ d\ZAd]d^ ZBej78d_ejCd`fejDd`fejEdafejFdafejGdafejHdafejIdbfejJdcfejKdbfejLdcfg
ddde ZMej78dfejNejOejDejFejHejPejQejRejSejTejLejKejUejVejWgdgdh ZXej78didjd gdkdl ZYej78dmdeZg dneZdogdpdqg  gej78drdsdtgdudv Z[ej\ej]ej78drdsdwgdxdy Z^ej78dzd{d|gd}d~ Z_ej78dg ddd Z`ej78dejaejbejcejdejeefeddgej78dg ddd ZgdS )    )partialN)is_integer_dtype)Seriesisna)nanops)DatetimeArrayc                 c   s@   |   $}|tdd d V  W d    n1 s20    Y  d S )N_USE_BOTTLENECKF)contextsetattrr   )Zmonkeypatchm r   a/var/www/html/stable-diffusion-webui/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_bool1   s    r#   c                 C   s   t | dS )NSr   absastyper   r   r   r   arr_str6   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_tdeltaE   s    r0   c                 C   s   t t j| S N)r   tilenanr   r   r   r   arr_nanJ   s    r4   c                 C   s   t | |gS r1   r   vstack)r   r4   r   r   r   arr_float_nanO   s    r7   c                 C   s   t | |gS r1   r5   )r4   r   r   r   r   arr_nan_float1T   s    r8   c                 C   s   t | | gS r1   r5   r4   r   r   r   arr_nan_nanY   s    r:   c                 C   s
   | t j S r1   )r   infr   r   r   r   arr_inf^   s    r<   c                 C   s   t | |gS r1   r5   )r   r<   r   r   r   arr_float_infc   s    r=   c                 C   s   t | |gS r1   r5   r4   r<   r   r   r   arr_nan_infh   s    r?   c                 C   s   t | ||gS r1   r5   )r   r4   r<   r   r   r   arr_float_nan_infm   s    r@   c                 C   s   t | | |gS r1   r5   r>   r   r   r   arr_nan_nan_infr   s    rA   c                 C   sJ   t | d|d|d|d|d|d|d|dgS )NO)r   r6   r'   )r   r"   r#   r   r(   r*   r.   r0   r   r   r   arr_objw   s    rC   c                 C   s<   t jdd | | d  W  d    S 1 s.0    Y  d S Nignoreinvalidr   r   errstater9   r   r   r   arr_nan_nanj   s    rJ   c                 C   s>   t jdd t | |gW  d    S 1 s00    Y  d S NrE   rF   r   rI   r6   )r   rJ   r   r   r   arr_complex_nan   s    rM   c                 C   s8   t jdd | d W  d    S 1 s*0    Y  d S rD   rH   )r<   r   r   r   arr_nan_infj   s    rN   c                 C   s>   t jdd t | |gW  d    S 1 s00    Y  d S rK   rL   )r   rN   r   r   r   arr_complex_nan_infj   s    rO   c                 C   s   | d d df S Nr   r   r   r   r   r   arr_float_1d   s    rQ   c                 C   s   | d d df S rP   r   r9   r   r   r   
arr_nan_1d   s    rR   c                 C   s   | d d df S rP   r   )r7   r   r   r   arr_float_nan_1d   s    rS   c                 C   s   | d d df S rP   r   )arr_float1_nanr   r   r   arr_float1_nan_1d   s    rU   c                 C   s   | d d df S rP   r   )r8   r   r   r   arr_nan_float1_1d   s    rV   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/   rB   rE   rF   )2r   r   r   r   r   r   r   Z
arr_float1r   r!   r"   r#   r&   r'   r(   r*   r.   r0   r2   r3   r4   r6   r7   rT   r8   r:   r;   r<   r=   r?   r@   rA   rC   rI   rJ   rM   rN   rO   arr_float_2darr_float1_2d
arr_nan_2darr_float_nan_2darr_float1_nan_2darr_nan_float1_2drQ   arr_float1_1drR   rS   rU   rV   )selfr   r   r   r   setup_method   sf    







4z TestnanopsDataFrame.setup_methodc                 C   s
   t t_d S r1   )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/   )crB   rB   
complex128c16f8)getattrhasattrndimrd   r   splittmassert_almost_equalAssertionErrorri   kindr'   realimag)r_   targresrf   rh   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 )
Nrf   rf   skipnarg   r|      r   re   )r|   rh   empty_targfunc)listrangerp   r   allri   objectr   any
isinstancendarrayr'   boolrk   floatisnanrz   takecheck_fun_data)r_   testfunctargfunc	testarval	targarvalr|   rh   r   kwargsrf   Ztargartempvalrx   ry   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   )endswithro   rn   r   )
r_   r   r   Ztestarr|   r   r   Ztargarr   r   r   r   r   	check_funj  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   r7   r"   r#   rB   r4   r   rM   rJ   r.   r0   convert)funcallow_complexrC   )r   r   r'   r"   r#   r   r.   r0   	TypeErrorr   r6   rC   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 )NrB   rl   rm   )ri   ru   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   rh   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.statsrE   rF   Fr   )r   r   r   r   r   )pytestimportorskipr   rI   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   rp   ro   r   )r_   r   rf   r   ry   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 )Nrm   F)rf   Zbiasr   re           )	r   ri   typer   Zfloatingr'   r   maxr   )r_   valuesrf   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   rE   rF   Fr   r   r   )
r   r   r   r   skewr   rI   r   r   nanskew)r_   r|   r   r   r   r   r   test_nanskew2  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   rE   rF   Fr   )
r   r   r   Zkurtosisr   r   rI   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_nanprodO  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}   )rX   rY   lenrr   rs   r[   r\   r   r3   rZ   r]   r_   Zcheckfuntarg0targ1r   Zres00Zres01Zres10Zres11Ztarg2Zres20Zres21Zres22Zres23Zres24Zres25r   r   r   check_nancorr_nancov_2dY  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   )rQ   r^   r   rr   rs   rS   rU   r   r3   rR   rV   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   corrcoefrX   rY   flatr   r   nancorrrQ   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
kendalltaurX   rY   r   r   r   r   rQ   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	spearmanrrX   rY   r   r   r   r   rQ   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   rX   rY   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covrX   rY   r   r   r   ZnancovrQ   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`   rc   rz   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   rW      sf   C
.  
C 
     
9
















--

rW   zarr, correct)
r   F)r"   F)r#   F)r(   F)r*   Fr   )rM   F)rJ   F)rN   T)rO   Tc                 C   sX   |  |}t|ddrTt|}|r.|s6J n|r6J t|dsBqTtj|ddd}q
d S Nrp   Tr   r~   re   )getfixturevaluern   r   	_has_infsro   r   r   )requestarrcorrectr   valres0r   r   r   test_has_infs_non_float  s    



r  )	)r   F)r4   F)r7   F)r:   F)r=   T)r<   T)r?   T)r@   T)rA   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'   rn   r   r  ro   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_dtyperi   r
  r  r   objr   r   r   test_bn_ok_dtype(  s    
r  )r.   r0   rC   c                 C   s    | | }t|jdrJ d S r  r  r  r   r   r   test_bn_not_ok_dtype0  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_numericrb   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ri   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_ndarrayH  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  rb   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_valuesi  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   rb   r   r   r   variancey  s    zTestNanvarFixedValues.variancec                 C   s   | j j|d ddS )N      ?i )Z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   rr   rs   )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   r3   onesrd   r   r   rr   rs   )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   r3   r,  rd   r   r   rr   rs   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}   re   UUUUUU?r'  r(  )
r$  uniformrd   r   r6   r   r   rr   rs   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   )rf   r|   r   r   r1  r'  r(  g      ?g       @)	r$  r2  r   r3   r   r   r   rr   rs   )r_   nr&  Z
variance_0Z
variance_1Z
variance_2r   r   r   r   test_nanvar_ddof  s    z&TestNanvarFixedValues.test_nanvar_ddofrf   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)   r7  )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|   rf   r   r"  )
r   emptyr  r3   r   r   rr   rs   r   r   )r_   rf   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   rb   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   v  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linspacerb   r   r   r   r&    s    zTestNanskewFixedValues.samplesc                 C   s   dS )Ng5ȿr   rb   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 r1   )r   r   rr   rs   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}   re   )
r   r6   r3   r,  r   r   r   rr   rs   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   hstackr3   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  r3   r   r   rr   rs   rP  r   r   r   test_nans_skipna  s    z'TestNanskewFixedValues.test_nans_skipnac                 C   s   t jdS r   r<  rb   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  rb   r   r   r   r&  !  s    zTestNankurtFixedValues.samplesc                 C   s   dS )Ng|vKr   rb   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  0  s    z&TestNankurtFixedValues.test_all_finitec                 C   s   t |}t|| d S r1   )r   r   rr   rs   r_   r&  rY  rZ  r   r   r   r9  9  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   r6   r3   r,  r   r   r   rr   rs   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  r3   r   r   r   )r_   r&  rZ  r   r   r   rU  B  s    z TestNankurtFixedValues.test_nansc                 C   s.   t |t jg}tj|dd}t|| d S rV  )r   rT  r3   r   r   rr   rs   r[  r   r   r   rW  G  s    z'TestNankurtFixedValues.test_nans_skipnac                 C   s   t jdS r   r<  rb   r   r   r   r$  L  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 r1   )param)r_   r  r   r   r   unitR  s    zTestDatetime64NaNOps.unitc                 C   s   t jddd|}|d }|t|t|fD ]}t|}||ks.J q.|dt j}|t|t|fD ]}t|}||ksjJ qjd S )Nz
2016-01-01r   )Zperiodsr}   )	pdZ
date_rangeZas_unitr   r   r   r   insertNaT)r_   rc  Zdtiexpectedr  r   Zdti2r   r   r   r   X  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   rf  )r~   r~   Fr+  r   r{   )r7  r4  rf  r  r}   r   )r}   r}   )r   r}   )r   Zaranger'   int64viewZreshaper   r   Zisnatri   r  rr   Zassert_numpy_array_equal)r_   rh  rc  ri   r  r   rg  r   r   r   test_nanmean_skipna_falsef  s     "z.TestDatetime64NaNOps.test_nanmean_skipna_falseN)
r   r   r   r   r
  rc  r   r   r   rn  r   r   r   r   r\  Q  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_bottleneckz  s
    ,rp  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_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   r7  )mask)r   r   r3   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  rd   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  rd   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 r1   )r   r  r   ri   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  )indexri   )r   r   r   rl  r   r   ri   float64)r   r  rt  r   Z	np_resultr   r   r   test_nanmean_overflow  s    
r  ri   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   rn   r   ri   r   r  )r   ri   r   rt  r   r   r   r   test_returned_dtype  s    
r  )h	functoolsr   numpyr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandas.core.dtypes.commonr   Zpandasrd  r   r   Zpandas._testingZ_testingrr   Zpandas.corer   Zpandas.core.arraysr   r   ra   r
  r   r   r   r   r"   r#   r(   r*   r.   r0   r4   r7   r8   r:   r<   r=   r?   r@   rA   rC   rJ   rM   rN   rO   rQ   rR   rS   rU   rV   rW   r   r   r  r	  r  r  r  r   r>  rX  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  int16int32rl  float32r  rn   r  r   r   r   r   <module>   sB  




























    2


9u33)	

	
&


