B
    x\                 @   s  d dl mZmZ d dlmZ d dlZd dlZd dlZd dl	m
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  mZ d dlm  mZ ejZG dd	 d	eZ G d
d deZ!G dd deZ"G dd deZ#G dd deZ$G dd deZ%dd Z&ej'(dej)dfej*dfej+dfej,dfej-dfej.dfej/dfej0dfgdd Z1ej'(dej2dfej3dfgdd Z4ej'(dej5ej6ej*ej,ej.ej7ej8ej9ej:ej;ej3ej2ej<ej=ej>gd d! Z?dS )"    )divisionprint_function)partialN)_np_version_under1p13)is_integer_dtype)Seriesisna)DatetimeArrayc               @   s  e Zd Zdd Zdd ZdbddZdcd	d
ZddddZdeddZdfddZ	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zejded d!d" Zejded d#d$ Zejd%d&d'ejded d(d) Zdgd*d+Zd,d- Zd.d/ Zdhd0d1Zd2d3 Zd4d5 Zdid6d7Z ejd%d&d'd8d9 Z!ejd%d&d'd:d; Z"d<d= Z#d>d? Z$d@dA Z%dBdC Z&dDdE Z'ej(dFdG Z)ej(dHdI Z*dJdK Z+dLdM Z,dNdO Z-dPdQ Z.dRdS Z/dTdU Z0dVdW Z1dXdY Z2dZd[ Z3d\d] Z4d^d_ Z5d`da Z6dS )jTestnanopsDataFramec             C   sh  t jd dt_d}t jj| | _t jj| | _| j| jd  | _t j	dd|| _
t j	dd|dk| _t | jd	| _t | jd
| _t j	dd|d| _t j	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L | j| jd  | _"t | j| j"g| _#| jd | _$t | j| j$g| _%W d Q R X | jd d d d df | _&| jd d d d df | _'| jd d d d df | _(| jd d d d df | _)| jd d d d df | _*| jd d d d df | _+| jd d ddf | _,| jd d ddf | _-| jd d ddf | _.| jd d ddf | _/| jd d ddf | _0| jd d ddf | _1d S )Ni+  F)         y              ?i
   r      SUi N  zM8[ns]zm8[ns]Oignore)invalid)2nprandomZseednanops_USE_BOTTLENECKZrandn	arr_float
arr_float1arr_complexZrandintarr_intarr_boolabsastypearr_strarr_utfarr_date
arr_tdeltaZtilenanarr_nanvstackarr_float_nanarr_float1_nanarr_nan_float1arr_nan_naninfarr_infarr_float_infarr_nan_infarr_float_nan_infarr_nan_nan_infarr_objerrstatearr_nan_nanjarr_complex_nanarr_nan_infjarr_complex_nan_infjarr_float_2darr_float1_2d
arr_nan_2darr_float_nan_2darr_float1_nan_2darr_nan_float1_2darr_float_1darr_float1_1d
arr_nan_1darr_float_nan_1darr_float1_nan_1darr_nan_float1_1d)selfmethodZ	arr_shape rE   7lib/python3.7/site-packages/pandas/tests/test_nanops.pysetup_method   sl    








z TestnanopsDataFrame.setup_methodc             C   s
   t t_d S )N)use_bnr   r   )rC   rD   rE   rE   rF   teardown_method^   s    z#TestnanopsDataFrame.teardown_methodTc             C   s  t |d|}t |d|}dd }yD|dkrbt|drb|jrb|j|jkrbtj||jd gddd }W n& ttfk
r   |||\}}Y nX ytj	|||d W n, t
k
r   t|d	r|jd
kr|||\}}tj	|||d d S t|d	r|jjdkr |jjdkr|jjdkr0||j}n`y|d}W n  tk
r^   |d}Y nX y|d}W n  tk
r   |d}Y nX n|jjdkr tj	|j|j|d tj	|j|j|d Y nX d S )NZasm8valuesc             S   sH   t | dr@| jdkr@t| dkr6| d  } | }n
| d} | |fS )Ndtypezm8[ns]   r   Zi8)hasattrrK   lenitemZview)targresrE   rE   rF   _coerce_tdsf   s    

z6TestnanopsDataFrame.check_results.<locals>._coerce_tdsr   shape)axis)check_dtyperK   zm8[ns])cr   r   c16f8)getattrrM   ndimrS   r   split
ValueError
IndexErrortmassert_almost_equalAssertionErrorrK   kindr   RuntimeErrorrealimag)rC   rP   rQ   rT   rU   rR   rE   rE   rF   check_resultsa   sF    	
 z!TestnanopsDataFrame.check_resultsNc             K   s  x~t t|jd g D ]d}	x\dD ]R}
|
r4|n|}|
rb|rbt| rb||fd|	i|}n||fd|	i|}y||f|	|
d|}| j|||	|d |
r||fd|	i|}| j|||	|d |	d kr||fd|
i|}| j|||	|d |
r&|	d kr&||f|}| j|||	|d W q& tk
rx } z0| jd|	|jd f d|
 d	| f7  _ W d d }~X Y q&X q&W qW |jdkrd S y4tj	|d
dd}tj	|d
dd}tj	|d
dd}W n t
k
r   d S X | j|||||f||d| d S )N)FTrT   )rT   skipna)rU   rf   zaxis: %s of %srL   z
skipna: %sz
kwargs: %sr   )rT   )rU   empty_targfunc)listrangerZ   r   allre   BaseExceptionargsr   taker\   check_fun_data)rC   testfunctargfunc	testarval	targarvaltargarnanvalrU   rh   kwargsrT   rf   ZtargartempvalrP   rQ   excZ
testarval2Z
targarval2Ztargarnanval2rE   rE   rF   ro      sL    



z"TestnanopsDataFrame.check_fun_datac          
   K   s   |d kr|}|d kr|}t | |}t | |}	t | |}
y"| j||||	|
fd|i| W nD tk
r } z&| jd| d| d| f7  _ W d d }~X Y nX d S )Nrh   z
testar: %sz
targar: %sztargarnan: %s)rY   ro   rl   rm   )rC   rp   rq   ZtestarZtargarZ	targarnanrh   ru   rr   rs   rt   rv   rE   rE   rF   	check_fun   s    



zTestnanopsDataFrame.check_func	             K   s  | j ||df|	 | j ||ddf|	 | j ||df|	 | j ||df|	 | jd| jd| jdg}
|r| j ||df|	 |r| j ||df|	 | j ||ddf|	 |r| j ||d	f|	 |
| jdg7 }
|r| j ||d
f|	 | j ||df|	 |
| jd| jdg7 }
|rjy|| j W n t	k
rD   Y n&X | j ||df|	 |
| jdg7 }
|ry|| j
 W n t	k
r   Y n&X | j ||df|	 |
| j
dg7 }
|rt|
| _|dkrt| j||d}| j ||df|	 d S )Nr   r'   r   r   r   r%   r   r4   r3   r    r!   r"   r#   convert)funcallow_complexr1   )rw   r   r   r   r   r   r    r!   r"   	TypeErrorr#   r   r&   r1   r   _badobj_wrap)rC   rp   rq   rz   allow_all_nan	allow_str
allow_dateallow_tdelta	allow_objru   ZobjsrE   rE   rF   
check_funs   sP    


zTestnanopsDataFrame.check_funsc             K   s2   |j jdkr&|r|d}n
|d}||f|S )Nr   rW   rX   )rK   ra   r   )rC   valuery   rz   ru   rE   rE   rF   r|     s
    
z TestnanopsDataFrame._badobj_wrapc             C   s   | j tjtjddddd d S )NF)r}   r~   r   r   )r   r   nananyr   any)rC   rE   rE   rF   test_nanany  s    zTestnanopsDataFrame.test_nananyc             C   s   | j tjtjddddd d S )NF)r}   r~   r   r   )r   r   nanallr   rk   )rC   rE   rE   rF   test_nanall  s    zTestnanopsDataFrame.test_nanallc          	   C   s"   | j tjtjddddtjd d S )NFT)r~   r   r   rU   rh   )r   r   nansumr   sum)rC   rE   rE   rF   test_nansum#  s    zTestnanopsDataFrame.test_nansumc          	   C   s    | j tjtjdddddd d S )NFT)rz   r   r~   r   r   )r   r   nanmeanr   mean)rC   rE   rE   rF   test_nanmean(  s    z TestnanopsDataFrame.test_nanmeanc             C   s`   xZdD ]R}t |tdtjd}| }|j }||ks<t||ksHt|jtjkstqW d S )N)l          l       l   |H%[<i  )indexrK   )	r   rj   r   int64r   rJ   r`   rK   float64)rC   asresultZ	np_resultrE   rE   rF   test_nanmean_overflow-  s    

z)TestnanopsDataFrame.test_nanmean_overflowc             C   s   t jt jt jt jt jg}tt dr.|t j x|D ]x}t	t
d|d}dddddg}d	d
g}xL|| D ]@}t|| }t|r||kr|jt jkstqh|j|kshtqhW q4W d S )Nfloat128r   )rK   r   stdvarskewkurtminmax)r   Zint16Zint32r   Zfloat32r   rM   appendr   r   rj   rY   r   rK   r`   )rC   ZdtypesrK   r   Zgroup_aZgroup_brD   r   rE   rE   rF   test_returned_dtype:  s    

z'TestnanopsDataFrame.test_returned_dtypec          
   C   sD   t jdd. t dt | jtjtjdddddd W d Q R X d S )NT)recordr   Frx   )rz   r~   r   r   r   )	warningscatch_warningssimplefilterRuntimeWarningr   r   	nanmedianr   median)rC   rE   rE   rF   test_nanmedianK  s
    z"TestnanopsDataFrame.test_nanmedianddof   c          
   C   s"   | j tjtjddddd|d d S )NFTrx   )rz   r~   r   r   r   r   )r   r   nanvarr   r   )rC   r   rE   rE   rF   test_nanvarR  s    zTestnanopsDataFrame.test_nanvarc          
   C   s"   | j tjtjddddd|d d S )NFTrx   )rz   r~   r   r   r   r   )r   r   nanstdr   r   )rC   r   rE   rE   rF   test_nanstdX  s    zTestnanopsDataFrame.test_nanstdZscipyz0.17.0)Zmin_versionc             C   sD   ddl m} tjdd" | jtj|ddddd|d W d Q R X d S )Nr   )semr   )r   Frx   )rz   r~   r   r   r   r   )scipy.statsr   r   r2   r   r   nansem)rC   r   r   rE   rE   rF   test_nansem^  s
    zTestnanopsDataFrame.test_nansemc             C   s$   |||}|j jdkr t|}|S )Nm)rK   ra   r   Z
atleast_1d)rC   r   rT   ry   rQ   rE   rE   rF   _minmax_wrapg  s    

z TestnanopsDataFrame._minmax_wrapc          	   C   sL   t jdd6 t dt t| jtjd}| jt	j
|ddd W d Q R X d S )NT)r   r   )ry   F)r~   r   )r   r   r   r   r   r   r   r   r   r   nanmin)rC   ry   rE   rE   rF   test_nanmino  s
    
zTestnanopsDataFrame.test_nanminc          	   C   sH   t  6 t dt t| jtjd}| jt	j
|ddd W d Q R X d S )Nr   )ry   F)r~   r   )r   r   r   r   r   r   r   r   r   r   nanmax)rC   ry   rE   rE   rF   test_nanmaxv  s
    

zTestnanopsDataFrame.test_nanmaxc             C   sV   |||}t ||}t|}|jr.d||< n$t|dr@| sNt|dsR|rRd}|S )Nrg   rk   )r   r   r   rZ   rM   rk   )rC   r   rT   ry   rQ   ZnansZnullnanrE   rE   rF   _argminmax_wrap}  s    

z#TestnanopsDataFrame._argminmax_wrapc          	   C   sP   t jdd: t dt t| jtjd}| jt	j
|ddddd W d Q R X d S )NT)r   r   )ry   F)r~   r   r   r   )r   r   r   r   r   r   r   Zargmaxr   r   	nanargmax)rC   ry   rE   rE   rF   test_nanargmax  s    
z"TestnanopsDataFrame.test_nanargmaxc          	   C   sL   t jdd6 t dt t| jtjd}| jt	j
|ddd W d Q R X d S )NT)r   r   )ry   F)r~   r   )r   r   r   r   r   r   r   Zargminr   r   	nanargmin)rC   ry   rE   rE   rF   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 )NrX   F)rT   Zbiasr   )rT   g        )	
isinstancerK   typer   Zfloatingr   Zndarrayr   r   )rC   rJ   rT   ry   r   rE   rE   rF   _skew_kurt_wrap  s    
 z#TestnanopsDataFrame._skew_kurt_wrapc          	   C   sN   ddl m} t| j|d}tjdd | jtj|ddddd W d Q R X d S )Nr   )r   )ry   r   )r   F)rz   r~   r   r   )	r   r   r   r   r   r2   r   r   nanskew)rC   r   ry   rE   rE   rF   test_nanskew  s    z TestnanopsDataFrame.test_nanskewc          	   C   sZ   ddl m} t|dd}t| j|d}tjdd | jtj|ddddd	 W d Q R X d S )
Nr   )kurtosisT)Zfisher)ry   r   )r   F)rz   r~   r   r   )	r   r   r   r   r   r2   r   r   nankurt)rC   r   func1ry   rE   rE   rF   test_nankurt  s    z TestnanopsDataFrame.test_nankurtc             C   s    | j tjtjdddtjd d S )NF)r~   r   r   rh   )r   r   nanprodr   Zprod)rC   rE   rE   rF   test_nanprod  s    z TestnanopsDataFrame.test_nanprodc             K   s~  || j | jf|}|| j | jfdt| j d i|}t|| t|| || j| jf|}|| j| jfdt| j d i|}t|| t|| tj}	|| j	| jf|}
|| j | j	f|}|| j	| j	f|}|| j| j
f|}|| 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_periodsrL   )r7   r8   rN   r^   r_   r:   r;   r   r$   r9   r<   )rC   checkfuntarg0targ1ru   res00res01res10res11targ2res20res21res22res23res24res25rE   rE   rF   check_nancorr_nancov_2d  s6    z+TestnanopsDataFrame.check_nancorr_nancov_2dc             K   s~  || j | jf|}|| j | jfdt| j d i|}t|| t|| || j| jf|}|| j| jfdt| j d i|}t|| t|| tj}	|| j	| jf|}
|| j | j	f|}|| j	| j	f|}|| j| j
f|}|| j| j
fdt| j d i|}|| j | jfdt| j d i|}t|	|
 t|	| t|	| t|	| t|	| t|	| d S )Nr   rL   )r=   r>   rN   r^   r_   r@   rA   r   r$   r?   rB   )rC   r   r   r   ru   r   r   r   r   r   r   r   r   r   r   r   rE   rE   rF   check_nancorr_nancov_1d  s6    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   rL   pearson)rD   )r   corrcoefr7   r8   flatr   r   nancorrr=   r>   r   )rC   r   r   rE   rE   rF   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 )N)r   rL   r   )rD   )r   r   r7   r8   r   r   r   r   r=   r>   r   )rC   r   r   rE   rE   rF   test_nancorr_pearson  s    

z(TestnanopsDataFrame.test_nancorr_pearsonc             C   s   ddl m} || 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   )
kendalltauZkendall)rD   )r   r   r7   r8   r   r   r   r   r=   r>   r   )rC   r   r   r   rE   rE   rF   test_nancorr_kendall  s    z(TestnanopsDataFrame.test_nancorr_kendallc             C   s   ddl m} || 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   )	spearmanrZspearman)rD   )r   r   r7   r8   r   r   r   r   r=   r>   r   )rC   r   r   r   rE   rE   rF   test_nancorr_spearman  s    z)TestnanopsDataFrame.test_nancorr_spearmanc             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 )N)r   rL   )r   Zcovr7   r8   r   r   r   Znancovr=   r>   r   )rC   r   r   rE   rE   rF   test_nancov(  s    zTestnanopsDataFrame.test_nancovc          
   C   s  | j }| j}| j}| j}| j}| j}| j}	x`|jryz|||}
t	||
 |jdkrht
||g}nt
||g}|||}tj||dd |}|||	}tj||dd W n: tk
r } z| jd|j f7  _ W d d }~X Y nX yt
j|ddd}t
j|ddd}t
j|ddd}t
j|ddd}t
j|ddd}t
j|ddd}t
j|	ddd}	t
j|ddd}W q. tk
r   P Y q.X q.W d S )NrL   F)rU   zndim: %sr   rg   )rT   )r   r   r%   r*   r'   r(   r)   rZ   r^   r_   r   r&   hstackZassert_numpy_array_equal	Exceptionrm   rn   r\   )rC   r   r   r   r   r%   r*   r'   r(   r)   res0r   Zres1r   Zres2rv   rE   rE   rF   check_nancomp0  sB    



z!TestnanopsDataFrame.check_nancompc             C   s   | j | jk}| tj| d S )N)r   r   r   r   Znangt)rC   r   rE   rE   rF   
test_nangtX  s    zTestnanopsDataFrame.test_nangtc             C   s   | j | jk}| tj| d S )N)r   r   r   r   Znange)rC   r   rE   rE   rF   
test_nange\  s    zTestnanopsDataFrame.test_nangec             C   s   | j | jk }| tj| d S )N)r   r   r   r   Znanlt)rC   r   rE   rE   rF   
test_nanlt`  s    zTestnanopsDataFrame.test_nanltc             C   s   | j | jk}| tj| d S )N)r   r   r   r   Znanle)rC   r   rE   rE   rF   
test_nanled  s    zTestnanopsDataFrame.test_nanlec             C   s   | j | jk}| tj| d S )N)r   r   r   r   Znaneq)rC   r   rE   rE   rF   
test_naneqh  s    zTestnanopsDataFrame.test_naneqc             C   s   | j | jk}| tj| d S )N)r   r   r   r   Znanne)rC   r   rE   rE   rF   
test_nannel  s    zTestnanopsDataFrame.test_nannec          
   O   s   xt |ddry*||f||}|r.|s6tn|r6tW n@ tk
rx } z"| jdt |d| f7  _ W d d }~X Y nX t|dsP ytj|ddd}W q tk
r   P Y qX qW d S )NrZ   Tzdim: %sr   rg   )rT   )rY   r`   rl   rm   rM   r   rn   r\   )rC   ry   r   correctrm   ru   r   rv   rE   rE   rF   
check_boolp  s    

zTestnanopsDataFrame.check_boolc             C   s,  dddddddddd	g
}d
ddddddddg	}xd|D ]\\}}t | |}y| tj|| W q4 tk
r } z| j|f7  _ W d d }~X Y q4X q4W x|D ]\}}t | |}y@| tj|| | tj|d| | tj|d| W q tk
r" } z| j|f7  _ W d d }~X Y qX qW d S )N)r   F)r   F)r   F)r    F)r!   F)r4   F)r3   F)r5   T)r6   T)r   F)r%   F)r'   F)r*   F)r-   T)r,   T)r.   T)r/   T)r0   Tf4f2)rY   r   r   Z	_has_infsrl   rm   r   )rC   pairspairs_floatarrr   valrv   rE   rE   rF   test__has_infs  s4    

z"TestnanopsDataFrame.test__has_infsc             C   s,  dddddddddd	g
}d
ddddddddg	}dd }xb|D ]Z\}}t | |}y| ||| W q< tk
r } z| j|f7  _ W d d }~X Y q<X q<W x|D ]\}}t | |}y:| ||| | ||d| | ||d| W q tk
r" } z| j|f7  _ W d d }~X Y qX qW d S )N)r   F)r   F)r   F)r    F)r!   F)r4   T)r3   T)r5   T)r6   T)r   F)r%   T)r'   T)r*   T)r-   T)r,   T)r.   T)r/   T)r0   Tc             S   s   t t|  S )N)r   r   r   Z	_isfiniteZravel)xrE   rE   rF   <lambda>  s    z4TestnanopsDataFrame.test__isfinite.<locals>.<lambda>r   r   )rY   r   rl   rm   r   )rC   r   r   r   r   r   r   rv   rE   rE   rF   test__isfinite  s6    

z"TestnanopsDataFrame.test__isfinitec             C   s   t | jjdstt | jjds(tt | jjds<tt | jjdsPtt | jjdsdtt | j	jdsxtt | j
jdrtt | jjdrtt | jjdrtd S )NZtest)r   Z_bn_ok_dtyper   rK   r`   r   r   r   r    r!   r"   r#   r1   )rC   rE   rE   rF   test__bn_ok_dtype  s    z%TestnanopsDataFrame.test__bn_ok_dtype)T)TN)NNN)TTTTTT)T)NN)NN)NN)7__name__
__module____qualname__rG   rI   re   ro   rw   r   r|   r   r   r   r   r   r   r   pytestmarkparametrizerj   r   r   tdZ
skip_if_nor   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zskip_if_no_scipyr   r   r   r   r   r   r   r   r   r   r   r   r   r   rE   rE   rE   rF   r
      sb   D
<
- 
  
5



	
(#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tt ddks$tt ddks6td S )NrL   g?y      ?       @)r   _ensure_numericr`   )rC   rE   rE   rF   test_numeric_values  s    z%TestEnsureNumeric.test_numeric_valuesc                s   t dddg}t t||s&t|t}t t||sFtt jdddgtd t t |sptt jdd	d
gtd t	t
 fdd d S )NrL   r   r   123)rK   fooZbarZbazc                  s
   t  S )N)r   r  rE   )s_valuesrE   rF   r     s    z0TestEnsureNumeric.test_ndarray.<locals>.<lambda>)r   arrayallcloser   r  r`   r   objectr   raisesr\   )rC   rJ   Zo_valuesrE   )r  rF   test_ndarray  s    
zTestEnsureNumeric.test_ndarrayc             C   sF   t tddstt tdds,tt tddsBtd S )Nr  g      ?z1.1g?z1+1jy      ?      ?)r   r
  r   r  r`   )rC   rE   rE   rF   test_convertable_values  s    z)TestEnsureNumeric.test_convertable_valuesc             C   s4   t tdd  t tdd  t tdd  d S )Nc               S   s
   t dS )Nr  )r   r  rE   rE   rE   rF   r     s    z?TestEnsureNumeric.test_non_convertable_values.<locals>.<lambda>c               S   s
   t i S )N)r   r  rE   rE   rE   rF   r     s    c               S   s
   t g S )N)r   r  rE   rE   rE   rF   r     s    )r   r  r{   )rC   rE   rE   rF   test_non_convertable_values  s    z-TestEnsureNumeric.test_non_convertable_valuesN)r   r   r   r  r  r  r  rE   rE   rE   rF   r    s   
r  c               @   sX   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
edd ZdS )TestNanvarFixedValuesc             C   s$   d | _ }| jj|d dd| _d S )Ng      @g      ?i )Zscalesize)varianceprngZnormalsamples)rC   rD   r  rE   rE   rF   rG     s    
z"TestNanvarFixedValues.setup_methodc             C   s&   | j }t|}tj|| jdd d S )Nr   )check_less_precise)r  r   r   r^   r_   r  )rC   r  actual_variancerE   rE   rF   test_nanvar_all_finite   s    

z,TestNanvarFixedValues.test_nanvar_all_finitec             C   sp   t jt d| jjd   }| j|d d d< tj|dd}tj|| j	dd tj|dd}tj|t jdd d S )Nr   r   T)rf   )r  F)
r   r$   onesr  rS   r   r   r^   r_   r  )rC   r  r  rE   rE   rF   test_nanvar_nans  s    
z&TestNanvarFixedValues.test_nanvar_nansc             C   st   t jt d| jjd   }| j|d d d< tj|dd}tj|| j	d dd tj
|dd}tj|t jdd d S )Nr   r   T)rf   g      ?)r  F)r   r$   r  r  rS   r   r   r^   r_   r  r   )rC   r  Z
actual_stdrE   rE   rF   test_nanstd_nans  s    
z&TestNanvarFixedValues.test_nanstd_nansc             C   sV   | j }| jj|jd d}t||g}tj|dd}tj	|t
| jdgdd d S )Nr   )r  rL   )rT   gUUUUUU?r   )r  )r  r  uniformrS   r   r&   r   r   r^   r_   r	  r  )rC   Zsamples_normZsamples_unifr  r  rE   rE   rF   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 )Nr   i'  rL   )r  rg   Tr   )rT   rf   r   r   gUUUUUU?)r  g      ?g       @)	r  r  r   r$   r   r   r   r^   r_   )rC   nr  Z
variance_0Z
variance_1Z
variance_2r   rE   rE   rF   test_nanvar_ddof'  s    z&TestNanvarFixedValues.test_nanvar_ddofc             C   sj  t d}t dddgdddgdd	d
gg|d dd df< t j |d< |d d df< t dddgdddgdddggdddgdddgdddggg}xbtdD ]V}xPtdD ]D}tj|d||d }t|d d |||f  t 	|d st
qW qW xltdD ]`}xXtdD ]L}tj|d||d }t|d d |||f d!  t 	|d st
qW qW d S )"N)   r  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_܃?r   T)rf   rT   r   g      ?)r   emptyr	  r$   rj   r   r   r^   r_   isnanr`   r   )rC   r  r  rT   r   r   r   rE   rE   rF   test_ground_truth=  s*    

 z'TestNanvarFixedValues.test_ground_truthc             C   s@   t dtd }x(tdD ]}|j|d}|dkstqW d S )Ni-r   r   )r   g        )r   r   r  rj   r   r`   )rC   datar   r   rE   rE   rF   test_nanstd_roundoff[  s    z*TestNanvarFixedValues.test_nanstd_roundoffc             C   s   t jdS )Ni  )r   r   RandomState)rC   rE   rE   rF   r  c  s    zTestNanvarFixedValues.prngN)r   r   r   rG   r  r  r  r  r  r"  r$  propertyr  rE   rE   rE   rF   r    s   
r  c               @   sP   e Zd Zdd Z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| _d| _d S )Nr   rL      g5ȿ)r   sinlinspacer  actual_skew)rC   rD   rE   rE   rF   rG   l  s    z#TestNanskewFixedValues.setup_methodc             C   s6   x0dD ](}|t d }t|}|dkstqW d S )N)gfffff@g@g     @i,  g        )r   r  r   r   r`   )rC   r   r#  r   rE   rE   rF   test_constant_seriesq  s    

z+TestNanskewFixedValues.test_constant_seriesc             C   s\   d\}}| j j||dd}t|dk s,td\}}| j j||dd}t|dksXtd S )N)g333333?g?d   )r  r   )g?g333333?)r  betar   r   r`   )rC   alphar.  left_tailedright_tailedrE   rE   rF   test_all_finitex  s    z&TestNanskewFixedValues.test_all_finitec             C   s   t | j}t|| j d S )N)r   r   r  r^   r_   r+  )rC   r   rE   rE   rF   r"    s    z(TestNanskewFixedValues.test_ground_truthc             C   sN   t | jt jt t| j g}tj|dd}t	|t 
| jt jg d S )NrL   )rT   )r   r&   r  r$   r  rN   r   r   r^   r_   r	  r+  )rC   r  r   rE   rE   rF   	test_axis  s    z TestNanskewFixedValues.test_axisc             C   s2   t | jt jg}tj|dd}t |s.td S )NF)rf   )r   r   r  r$   r   r   r!  r`   )rC   r  r   rE   rE   rF   	test_nans  s    z TestNanskewFixedValues.test_nansc             C   s2   t | jt jg}tj|dd}t|| j d S )NT)rf   )	r   r   r  r$   r   r   r^   r_   r+  )rC   r  r   rE   rE   rF   test_nans_skipna  s    z'TestNanskewFixedValues.test_nans_skipnac             C   s   t jdS )Ni  )r   r   r%  )rC   rE   rE   rF   r    s    zTestNanskewFixedValues.prngN)r   r   r   rG   r,  r2  r"  r3  r4  r5  r&  r  rE   rE   rE   rF   r'  h  s   	r'  c               @   sP   e Zd Zdd Z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| _d| _d S )Nr   rL   r(  g|vK)r   r)  r*  r  actual_kurt)rC   rD   rE   rE   rF   rG     s    z#TestNankurtFixedValues.setup_methodc             C   s6   x0dD ](}|t d }t|}|dkstqW d S )N)gfffff@g@g     @i,  g        )r   r  r   r   r`   )rC   r   r#  r   rE   rE   rF   r,    s    

z+TestNankurtFixedValues.test_constant_seriesc             C   s\   d\}}| j j||dd}t|dk s,td\}}| j j||dd}t|dksXtd S )N)g333333?g?r-  )r  r   )g?g333333?)r  r.  r   r   r`   )rC   r/  r.  r0  r1  rE   rE   rF   r2    s    z&TestNankurtFixedValues.test_all_finitec             C   s   t | j}t|| j d S )N)r   r   r  r^   r_   r7  )rC   r   rE   rE   rF   r"    s    z(TestNankurtFixedValues.test_ground_truthc             C   sN   t | jt jt t| j g}tj|dd}t	|t 
| jt jg d S )NrL   )rT   )r   r&   r  r$   r  rN   r   r   r^   r_   r	  r7  )rC   r  r   rE   rE   rF   r3    s    z TestNankurtFixedValues.test_axisc             C   s2   t | jt jg}tj|dd}t |s.td S )NF)rf   )r   r   r  r$   r   r   r!  r`   )rC   r  r   rE   rE   rF   r4    s    z TestNankurtFixedValues.test_nansc             C   s2   t | jt jg}tj|dd}t|| j d S )NT)rf   )	r   r   r  r$   r   r   r^   r_   r7  )rC   r  r   rE   rE   rF   r5    s    z'TestNankurtFixedValues.test_nans_skipnac             C   s   t jdS )Ni  )r   r   r%  )rC   rE   rE   rF   r    s    zTestNankurtFixedValues.prngN)r   r   r   rG   r,  r2  r"  r3  r4  r5  r&  r  rE   rE   rE   rF   r6    s   	r6  c               @   s4   e Zd Zejdddgejjdddd ZdS )TestDatetime64NaNOpstzNZUTCZdisabled)reasonc             C   s   t jdd|d}|d }x0|t|t|gD ]}t|}||ks,tq,W |dt j}x0|t|t|gD ]}t|}||ksltqlW d S )Nz
2016-01-01r   )Zperiodsr9  rL   )	pdZ
date_ranger	   r   r   r   r`   insertZNaT)rC   r9  Zdtiexpectedobjr   Zdti2rE   rE   rF   r     s    

z!TestDatetime64NaNOps.test_nanmean)r   r   r   r   r   r   Zxfailr   rE   rE   rE   rF   r8    s   r8  c               C   sJ   t jrFtdd tds ttdd tdr:ttdt d S )NZuse_bottleneckTF)r   Z_BOTTLENECK_INSTALLEDr;  Z
set_optionZ
get_optionr`   rH   rE   rE   rE   rF   test_use_bottleneck  s    r?  znumpy_op, expectedr   g      @rL   r  c             C   s&   | t ddddg}||ks"td S )NrL   r   r   r  )r;  r   r`   )numpy_opr=  r   rE   rE   rF   test_numpy_ops  s    rA  c          	   C   sN   | t ddddg}tr>tt ||ks2tW d Q R X n||ksJtd S )NrL   r   r   r  )r;  r   r   r   r  r\   r`   )r@  r=  r   rE   rE   rF   #test_numpy_ops_np_version_under1p13  s
    rB  	operationc             C   sF   t ddtjdtjdg}| }| |}| ||d}||ksBtd S )NrL   r   r   r  )mask)r;  r   r   r$   r   r`   )rC  r   rD  Zmedian_expectedZmedian_resultrE   rE   rF   %test_nanops_independent_of_mask_param  s
    rE  )@Z
__future__r   r   	functoolsr   r   Znumpyr   r   Zpandas.compat.numpyr   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandas.core.dtypes.commonr   Zpandasr;  r   r   Zpandas.core.arraysr	   Zpandas.core.nanopsZcorer   Zpandas.util.testingZtestingr^   r   rH   r  r
   r  r  r'  r6  r8  r?  r   r   r   r   r   r   r   r   r   r   rA  r   r   rB  r   r   r   r   r   r   r   r   r   r   rE  rE   rE   rE   rF   <module>   sj        <(q22