o
    թZh:                     @   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   sD    |   }|tdd d V  W d    d S 1 sw   Y  d S )N_USE_BOTTLENECKF)contextsetattrr   )Zmonkeypatchm r   O/var/www/html/lang_env/lib/python3.10/site-packages/pandas/tests/test_nanops.pydisable_bottleneck   s
   
"r   c                   C      dS )N      r   r   r   r   r   	arr_shape      r   c                 C   s   t jd| S N   )nprandomdefault_rngstandard_normalr   r   r   r   	arr_float!   s   r   c                 C   s   | | d  S )N              ?r   r   r   r   r   arr_complex&      r   c                 C   s   t jddd| S )Nr   
   r   r   r   integersr   r   r   r   arr_int+   s   r$   c                 C   s   t jddd| dkS )Nr   r   r"   r   r   r   r   arr_bool0   s   r%   c                 C      t | dS )NSr   absastyper   r   r   r   arr_str5      r+   c                 C   r&   )NUr(   r   r   r   r   arr_utf:   r,   r.   c                 C      t jddd| dS )Nr   r    N  M8[ns]r   r   r   r#   r*   r   r   r   r   arr_date?      r3   c                 C   r/   )Nr   r   r0   m8[ns]r2   r   r   r   r   
arr_tdeltaD   r4   r6   c                 C   s   t t j| S N)r   tilenanr   r   r   r   arr_nanI      r:   c                 C      t | |gS r7   r   vstack)r   r:   r   r   r   arr_float_nanN   r;   r?   c                 C   r<   r7   r=   )r:   r   r   r   r   arr_nan_float1S   r;   r@   c                 C   s   t | | gS r7   r=   r:   r   r   r   arr_nan_nanX   r;   rB   c                 C   s
   | t j S r7   )r   infr   r   r   r   arr_inf]   s   
rD   c                 C   r<   r7   r=   )r   rD   r   r   r   arr_float_infb   r;   rE   c                 C   r<   r7   r=   r:   rD   r   r   r   arr_nan_infg   r;   rG   c                 C   s   t | ||gS r7   r=   )r   r:   rD   r   r   r   arr_float_nan_infl   r,   rH   c                 C   s   t | | |gS r7   r=   rF   r   r   r   arr_nan_nan_infq   r,   rI   c                 C   sJ   t | d|d|d|d|d|d|d|dgS )NO)r   r>   r*   )r   r$   r%   r   r+   r.   r3   r6   r   r   r   arr_objv   s   rK   c                 C   s<   t jdd | | d  W  d    S 1 sw   Y  d S Nignoreinvalidr   r   errstaterA   r   r   r   arr_nan_nanj   s   
$rR   c                 C   >   t jdd t | |gW  d    S 1 sw   Y  d S NrM   rN   r   rQ   r>   )r   rR   r   r   r   arr_complex_nan      $rV   c                 C   s8   t jdd | d W  d    S 1 sw   Y  d S rL   rP   )rD   r   r   r   arr_nan_infj   s   $rX   c                 C   rS   rT   rU   )r   rX   r   r   r   arr_complex_nan_infj   rW   rY   c                 C      | d d df S Nr   r   r   r   r   r   arr_float_1d   r,   r\   c                 C   rZ   r[   r   rA   r   r   r   
arr_nan_1d   r,   r]   c                 C   rZ   r[   r   )r?   r   r   r   arr_float_nan_1d   r,   r^   c                 C   rZ   r[   r   )arr_float1_nanr   r   r   arr_float1_nan_1d   r,   r`   c                 C   rZ   r[   r   )r@   r   r   r   arr_nan_float1_1d   r,   ra   c                   @   s  e Zd Zdd Zdd ZdCddZ		dDd	d
Z	dEddZ					dFddZdCddZ	e
jdejejfejejfgdd Zdd Zdd Ze
jddd Ze
jdeddd Ze
jdeddd  Ze
jdedd!d" Ze
jde
jdejejfejejfgd#d$ Z dGd%d&Z!e
jdd'd( Z"e
jdd)d* Z#dGd+d,Z$d-d. Z%d/d0 Z&d1d2 Z'd3d4 Z(d5d6 Z)d7d8 Z*d9d: Z+d;d< Z,d=d> Z-d?d@ Z.dAdB Z/dS )HTestnanopsDataFramec                 C   s  dt _d}tjd|| _tjd|| _| j| jd  | _tjd	dd|| _
tjd	dd|dk| _t| jd| _t| jd	| _tjd	dd
|d| _tjd	dd
|d| _ttj|| _t| j| jg| _t| j| jg| _t| j| jg| _t| j| jg| _| jtj | _t| j| jg| _t| j| jg| _t| j| j| jg| _t| j| j| jg| _t| jd| j
d| jd| jd| jd| jd| jd| jdg| _ tj!dd+ | j| jd  | _"t| j| j"g| _#| jd | _$t| j| j$g| _%W d    n	1 s4w   Y  | j| _&| j| _'| j| _(| j| _)| j| _*| j| _+| jd d df | _,| jd d df | _-| jd d df | _.| jd d df | _/| jd d df | _0| jd d df | _1d S )NFr   r   r   r    r!   r   r'   r-   r0   r1   r5   rJ   rM   rN   )2r   r   r   r   r   r   r   Z
arr_float1r   r#   r$   r%   r)   r*   r+   r.   r3   r6   r8   r9   r:   r>   r?   r_   r@   rB   rC   rD   rE   rG   rH   rI   rK   rQ   rR   rV   rX   rY   arr_float_2darr_float1_2d
arr_nan_2darr_float_nan_2darr_float1_nan_2darr_nan_float1_2dr\   arr_float1_1dr]   r^   r`   ra   )selfr   r   r   r   setup_method   sh   







z TestnanopsDataFrame.setup_methodc                 C   s
   t t_d S r7   )use_bnr   r   rj   r   r   r   teardown_method   s   
z#TestnanopsDataFrame.teardown_methodTc                 C   s:  t |d|}|dkr&t|dr&|jr&|j|jkr&tj||jd gddd }ztj|||d W d S  ty   t|drC|j	dkrC t|drN|j	j
dvrO |j	j
d	krv|j	j
d	krb||j	}nttd
ridnd}||}||}n|j	j
d	kr} tjt|t||d tjt|t||d Y d S w )NZasm8r   shapeaxischeck_dtypedtyper5   )crJ   rJ   
complex128c16f8)getattrhasattrndimro   r   splittmassert_almost_equalAssertionErrorrt   kindr*   realimag)rj   targresrq   rs   Z
cast_dtyper   r   r   check_results   s4   
"z!TestnanopsDataFrame.check_resultsNc                 K   s  t t|jd g D ]}	|r|n|}
|r'|r't|
 r'||
fd|	i|}n
||
fd|	i|}|
jtkrP|tju s@|tju rPt	|tj
rL|t}nt|}||f|	|d|}t	|tjrrt	|trrt|rrt|rr|}| j|||	|d |r||fd|	i|}| j|||	|d |	d u r||fd|i|}| j|||	|d |r|	d u r||fi |}| j|||	|d q
|jdkrd S tj|ddd}tj|ddd}| j||||f|||d	| d S )
Nrq   rq   skipnarr   r      r   rp   )r   rs   empty_targfunc)listranger{   r   allrt   objectr   any
isinstancendarrayr*   boolrv   floatisnanr   takecheck_fun_data)rj   testfunctargfunc	testarval	targarvalr   rs   r   kwargsrq   Ztargartempvalr   r   Z
testarval2Z
targarval2r   r   r   r   '  s^   



z"TestnanopsDataFrame.check_fun_datac           
      K   sb   |}| drt| |d d r|d d }t| |}t| |}	| j||||	f||d| d S )NZ_nan)r   r   )endswithrz   ry   r   )
rj   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}
|rO| j ||d|fi |	 |r| j ||d|fi |	 | j ||d|fi |	 |rw| j ||d	|fi |	 |
| jdg7 }
|r|| j | j ||d
|fi |	 |
| jdg7 }
|rz|| j W n	 ty   Y nw | j ||d|fi |	 |
| jdg7 }
|rt	
|
| _|dkrt| j||d}| j ||d|fi |	 d S d S )Nr   r?   r$   r%   rJ   r:   r   rV   rR   r3   r6   convert)funcallow_complexrK   )r   r   r*   r$   r%   r   r3   r6   	TypeErrorr   r>   rK   r   _badobj_wrap)rj   r   r   r   r   allow_all_nan
allow_dateallow_tdelta	allow_objr   Zobjsr   r   r   
check_funs|  sH   



zTestnanopsDataFrame.check_funsc                 K   s6   |j jdkr|r|d}n|d}||fi |S )NrJ   rw   rx   )rt   r   r*   )rj   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   rj   Znan_opZnp_opr   r   r   r   test_nan_funcs  s   z"TestnanopsDataFrame.test_nan_funcsc                 C       | j tjtj|ddtjd d S )NF)r   rs   r   )r   r   nansumr   sumrj   r   r   r   r   test_nansum     
zTestnanopsDataFrame.test_nansumc                 C   s   | j tjtj|ddd d S )NF)r   r   )r   r   nanmeanr   meanr   r   r   r   test_nanmean  s   
z TestnanopsDataFrame.test_nanmeanzignore::RuntimeWarningc                 C   s   | j tjtj|dddd d S )NFr   )r   r   r   )r   r   	nanmedianr   medianr   r   r   r   test_nanmedian  s   
z"TestnanopsDataFrame.test_nanmedianddof   c              	   C       | j tjtj|ddd|d d S NFr   )r   r   r   r   )r   r   nanvarr   varrj   r   r   r   r   r   test_nanvar     
zTestnanopsDataFrame.test_nanvarc              	   C   r   r   )r   r   nanstdr   stdr   r   r   r   test_nanstd  r   zTestnanopsDataFrame.test_nanstdc                 C   sZ   t d}tjdd | jtj|j|dddd|d W d    d S 1 s&w   Y  d S )Nscipy.statsrM   rN   Fr   )r   r   r   r   r   )pytestimportorskipr   rQ   r   r   nansemZsem)rj   r   r   sp_statsr   r   r   test_nansem  s   
"zTestnanopsDataFrame.test_nansemc                 C   s   | j |||dd d S )NFr   r   r   r   r   r   test_nanops_with_warnings  s   z-TestnanopsDataFrame.test_nanops_with_warningsc                 C   sX   |||}t ||}t|}|jrd||< |S t|dr!| s(t|ds*|r*d}|S )Nr   r   )r   minr   r{   rz   r   )rj   r   rq   r   r   ZnansZnullnanr   r   r   _argminmax_wrap  s    
z#TestnanopsDataFrame._argminmax_wrapc                 C   (   t | jtjd}| jtj||dd d S Nr   Fr   )r   r   r   Zargmaxr   r   	nanargmaxrj   r   r   r   r   r   test_nanargmax     z"TestnanopsDataFrame.test_nanargmaxc                 C   r   r   )r   r   r   Zargminr   r   	nanargminr   r   r   r   test_nanargmin   r   z"TestnanopsDataFrame.test_nanargminc                 C   st   t |jjtjs|d}|||dd}t |tjr,d|tj||dtj||dk< |S t|t|kr8dS |S )Nrx   F)rq   Zbiasr   rp           )	r   rt   typer   Zfloatingr*   r   maxr   )rj   valuesrq   r   resultr   r   r   _skew_kurt_wrap%  s   
 z#TestnanopsDataFrame._skew_kurt_wrapc              	   C   sd   t d}t| j|jd}tjdd | jtj	||dddd W d    d S 1 s+w   Y  d S )Nr   r   rM   rN   Fr   r   r   )
r   r   r   r   skewr   rQ   r   r   nanskew)rj   r   r   r   r   r   r   test_nanskew1  s   
"z TestnanopsDataFrame.test_nanskewc              	   C   sp   t d}t|jdd}t| j|d}tjdd | jtj	||dddd W d    d S 1 s1w   Y  d S )	Nr   T)Zfisherr   rM   rN   Fr   )
r   r   r   Zkurtosisr   r   rQ   r   r   nankurt)rj   r   r   Zfunc1r   r   r   r   test_nankurt?  s   
"z TestnanopsDataFrame.test_nankurtc                 C   r   )NF)r   r   r   )r   r   nanprodr   prodr   r   r   r   test_nanprodN  r   z TestnanopsDataFrame.test_nanprodc                 K     || j | jfi |}|| j | jfdt| j d i|}t|| t|| || j| jfi |}|| j| jfdt| j d i|}t|| t|| tj}	|| j	| jfi |}
|| j | j	fi |}|| j	| j	fi |}|| j| j
fi |}|| j| j
fdt| j d i|}|| j | jfdt| j d i|}t|	|
 t|	| t|	| t|	| t|	| t|	| d S NZmin_periodsr   )rc   rd   lenr}   r~   rf   rg   r   r9   re   rh   rj   Zcheckfuntarg0targ1r   Zres00Zres01Zres10Zres11Ztarg2Zres20Zres21Zres22Zres23Zres24Zres25r   r   r   check_nancorr_nancov_2dX  b   z+TestnanopsDataFrame.check_nancorr_nancov_2dc                 K   r   r   )r\   ri   r   r}   r~   r^   r`   r   r9   r]   ra   r   r   r   r   check_nancorr_nancov_1d  r   z+TestnanopsDataFrame.check_nancorr_nancov_1dc                 C   s   t | j| jd }t | jj| jjd }| tj|| t | j| j	d }t | jj| j	jd }| j
tj||dd d S Nr   r   Zpearsonmethodr   corrcoefrc   rd   flatr   r   nancorrr\   ri   r   rj   r   r   r   r   r   test_nancorr  s   z TestnanopsDataFrame.test_nancorrc                 C   s   t | j| jd }t | jj| jjd }| jtj||dd t | j| j	d }t | jj| j	jd }| j
tj||dd d S r   r   r   r   r   r   test_nancorr_pearson  s   z(TestnanopsDataFrame.test_nancorr_pearsonc                 C      t d}|| j| jd }|| jj| jjd }| jtj||dd || j	| j
d }|| j	j| j
jd }| jtj||dd d S )Nr   r   Zkendallr   )r   r   Z
kendalltaurc   rd   r   r   r   r   r\   ri   r   rj   r   r   r   r   r   r   test_nancorr_kendall     
z(TestnanopsDataFrame.test_nancorr_kendallc                 C   r   )Nr   r   Zspearmanr   )r   r   Z	spearmanrrc   rd   r   r   r   r   r\   ri   r   r   r   r   r   test_nancorr_spearman  r   z)TestnanopsDataFrame.test_nancorr_spearmanc                 C   s   t d t| j| jd }t| jj| jjd }d}t jt|d | j	t
j||dd W d    d S 1 s:w   Y  d S )NZscipyr   z;Unknown method 'foo', expected one of 'kendall', 'spearman'matchfoor   )r   r   r   r   rc   rd   r   raises
ValueErrorr   r   r   )rj   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covrc   rd   r   r   r   Znancovr\   ri   r   r   r   r   r   test_nancov  s   zTestnanopsDataFrame.test_nancov)T)TNr7   )TTTTT)NN)0__name__
__module____qualname__rk   rn   r   r   r   r   r   r   markparametrizer   nananyr   r   nanallr   r   r   r   filterwarningsr   r   r   r   r   nanminr   nanmaxr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   rb      sh    C
.
C


9















--

rb   zarr, correct)
r   F)r$   F)r%   F)r+   F)r.   Fr  )rV   F)rR   F)rX   T)rY   Tc                 C   sh   |  |}t|ddr2t|}|r|sJ n|rJ t|ds"d S tj|ddd}t|ddsd S d S Nr{   Tr   r   rp   )getfixturevaluery   r   	_has_infsrz   r   r   )requestarrcorrectr   valres0r   r   r   test_has_infs_non_float  s   



r  )	)r   F)r:   F)r?   F)rB   F)rE   T)rD   T)rG   T)rH   T)rI   Tr*   )NZf4f2c                 C   sz   |  |}|d ur||}t|ddr;t|}|r |sJ n|r$J t|ds+d S tj|ddd}t|ddsd S d S r  )r  r*   ry   r   r  rz   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_dtypert   r  r  r   objr   r   r   test_bn_ok_dtype'  s   
r%  )r3   r6   rK   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sJ d S )Nr   g?y      ?       @)r   _ensure_numericrm   r   r   r   test_numeric_values=  s   z%TestEnsureNumeric.test_numeric_valuesc                 C   s   t g d}t t||sJ |t}t t||s"J t jg dtd}d}tjt	|d t| W d    n1 sDw   Y  t jg dtd}d}tjt	|d t| W d    d S 1 slw   Y  d S )N)r   r   r   )123rt   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   )rj   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w   Y  t jtdd td W d    n1 s3w   Y  t jtdd td W d    d S 1 sPw   Y  d S )Nz'Could not convert string '1' to numericr   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(  rm   r   r   r   test_convertable_values\  s   "z)TestEnsureNumeric.test_convertable_valuesc                 C   s   d}t jt|d td W d    n1 sw   Y  d}t jt|d ti  W d    n1 s7w   Y  t jt|d tg  W d    d S 1 sTw   Y  d S )Nz)Could not convert string 'foo' to numericr   r  z%argument must be a string or a numberr1  )rj   r  r   r   r   test_non_convertable_valuesh  s   "z-TestEnsureNumeric.test_non_convertable_valuesN)r  r	  r
  r)  r0  r2  r3  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   r   )Ng      @r   rm   r   r   r   variancex  r   zTestNanvarFixedValues.variancec                 C   s   | j j|d ddS )N      ?i )scalesize)prngnormal)rj   r5  r   r   r   samples|     zTestNanvarFixedValues.samplesc                 C   s   t |}tj||dd d S )N{Gz?Zrtol)r   r   r}   r~   )rj   r;  r5  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   r9   onesro   r   r   r}   r~   )rj   r;  r5  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   TrA  r6  r=  r>  F)	r   r9   rB  ro   r   r   r}   r~   r   )rj   r;  r5  rC  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   r8  r   rp   UUUUUU?r=  r>  )
r9  uniformro   r   r>   r   r   r}   r~   r/  )rj   r;  r5  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   rF  r   Tr   )rq   r   r   r   rG  r=  r>  g      ?g       @)	r9  rH  r   r9   r   r   r   r}   r~   )rj   nr;  Z
variance_0Z
variance_1Z
variance_2r   r   r   r   test_nanvar_ddof  s   $z&TestNanvarFixedValues.test_nanvar_ddofrq   r   r   r   c                 C   s
  t d}t g dg dg dg|d dd df< t j |d< |d d df< t g dg dg dgg d	g d
g dgg}tj|d||d}t|d d |||f  t |d saJ tj	|d||d}t|d d |||f d  t |d sJ d S )N)   rM  )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   rq   r   r6  )
r   emptyr/  r9   r   r   r}   r~   r   r   )rj   rq   r   r;  r5  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   rB  r   )rj   r   datar   r   r   r   test_nanstd_roundoff  s   z*TestNanvarFixedValues.test_nanstd_roundoffc                 C      t jdS r   r   r   r   rm   r   r   r   r9    r   zTestNanvarFixedValues.prngN)r  r	  r
  r   r  r5  r;  r@  rD  rE  rI  rL  r  r  r   rO  rQ  propertyr9  r   r   r   r   r4  u  s"    




&
r4  c                   @   v   e Zd Zejdd Zejdd Zejdg ddd Z	d	d
 Z
dd Zdd Zdd Zdd Zedd ZdS )TestNanskewFixedValuesc                 C      t t dddS Nr   r      r   sinZlinspacerm   r   r   r   r;    r<  zTestNanskewFixedValues.samplesc                 C   r   )Ng5ȿr   rm   r   r   r   actual_skew  r   z"TestNanskewFixedValues.actual_skewr  gfffff@g@g     @c                 C   (   |t d }t|}|dksJ d S Ni,  r   )r   rB  r   r   )rj   r  rP  r   r   r   r   test_constant_series     
z+TestNanskewFixedValues.test_constant_seriesc                 C   s\   d\}}| j j||dd}t|dk sJ d\}}| j j||dd}t|dks,J d S )N333333?皙?d   rF  r   rd  rc  )r9  betar   r   rj   alpharg  Zleft_tailedZright_tailedr   r   r   test_all_finite     z&TestNanskewFixedValues.test_all_finitec                 C      t |}t|| d S r7   )r   r   r}   r~   rj   r;  r\  r   r   r   r   rO       
z(TestNanskewFixedValues.test_ground_truthc                 C   H   t |t jt t| g}tj|dd}t|t 	|t jg d S Nr   rp   )
r   r>   r9   rB  r   r   r   r}   r~   r/  rm  r   r   r   	test_axis	     z TestNanskewFixedValues.test_axisc                 C   0   t |t jg}tj|dd}t |sJ d S NFrA  )r   hstackr9   r   r   r   )rj   r;  r   r   r   r   	test_nans     z TestNanskewFixedValues.test_nansc                 C   .   t |t jg}tj|dd}t|| d S NTrA  )r   ru  r9   r   r   r}   r~   rm  r   r   r   test_nans_skipna     z'TestNanskewFixedValues.test_nans_skipnac                 C   rR  r   rS  rm   r   r   r   r9    r   zTestNanskewFixedValues.prngN)r  r	  r
  r   r  r;  r\  r  r  r`  rj  rO  rq  rv  rz  rT  r9  r   r   r   r   rV        


	rV  c                   @   rU  )TestNankurtFixedValuesc                 C   rW  rX  rZ  rm   r   r   r   r;     r<  zTestNankurtFixedValues.samplesc                 C   r   )Ng|vKr   rm   r   r   r   actual_kurt$  r   z"TestNankurtFixedValues.actual_kurtr  r]  c                 C   r^  r_  )r   rB  r   r   )rj   r  rP  kurtr   r   r   r`  (  ra  z+TestNankurtFixedValues.test_constant_seriesc                 C   s\   d\}}| j j||dd}t|dk sJ d\}}| j j||dd}t|dk s,J d S )Nrb  re  rF  r   rf  r   )r9  rg  r   r   rh  r   r   r   rj  /  rk  z&TestNankurtFixedValues.test_all_finitec                 C   rl  r7   )r   r   r}   r~   rj   r;  r~  r  r   r   r   rO  8  rn  z(TestNankurtFixedValues.test_ground_truthc                 C   ro  rp  )
r   r>   r9   rB  r   r   r   r}   r~   r/  r  r   r   r   rq  <  rr  z TestNankurtFixedValues.test_axisc                 C   rs  rt  )r   ru  r9   r   r   r   )rj   r;  r  r   r   r   rv  A  rw  z TestNankurtFixedValues.test_nansc                 C   rx  ry  )r   ru  r9   r   r   r}   r~   r  r   r   r   rz  F  r{  z'TestNankurtFixedValues.test_nans_skipnac                 C   rR  r   rS  rm   r   r   r   r9  K  r   zTestNankurtFixedValues.prngN)r  r	  r
  r   r  r;  r~  r  r  r`  rj  rO  rq  rv  rz  rT  r9  r   r   r   r   r}    r|  r}  c                   @   sF   e Zd Zejg dddd Zdd Zejddd	gd
d Z	dS )TestDatetime64NaNOps)smsusns)paramsc                 C   s   |j S r7   )param)rj   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s:J q-d S )Nz
2016-01-01r   )Zperiodsr   )pdZ
date_rangeZas_unit_datar   r   insertNaT)rj   r  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 |s*J |j	|ks1J tj|d
dd}t j
g d|j	d}t|| tj|ddd}t 
|d |d |d |d g}t|| d S )N[]   rM  r   r  )r   r   FrA  r   r   )rM  rJ  r  r-  r   r   )r   r   )r   r   )r   Zaranger*   int64viewZreshaper   r   Zisnatrt   r/  r}   Zassert_numpy_array_equal)rj   r  r  rt   r  r   r  r   r   r   test_nanmean_skipna_falsee  s    "z.TestDatetime64NaNOps.test_nanmean_skipna_falseN)
r  r	  r
  r   r  r  r   r  r  r  r   r   r   r   r  P  s    
r  c                   C   s   t jr@tdd tdsJ W d    n1 sw   Y  tdd tdr.J W d    d S 1 s9w   Y  d S d S )NZuse_bottleneckTF)r   Z_BOTTLENECK_INSTALLEDr  Zoption_context
get_optionr   r   r   r   test_use_bottlenecky  s   "r  znumpy_op, expectedr!   g      @r   rM  c                 C   s    | t g d}||ksJ d S )N)r   r   r   rM  )r   )Znumpy_opr  r   r   r   r   test_numpy_ops  s   r  	operationc                 C   sH   t ddtjdtjdg}| }| |j}| |j|d}||ks"J d S )Nr   r   r   rM  )mask)r   r   r9   r   Z_values)r  serr  Zmedian_expectedZmedian_resultr   r   r   %test_nanops_independent_of_mask_param  s
   
r  	min_countr   c                 C   s"   t dd | }d}||ksJ d S )N)   %   Fr   Zcheck_below_min_count)r  r   expected_resultr   r   r   5test_check_below_min_count_negative_or_zero_min_count  s   r  r  )FFTT	   Fzmin_count, expected_result)r   F)e   Tc                 C   s"   d}t || |}||ksJ d S )N)r!   r!   r  )r  r  r  ro   r   r   r   r   -test_check_below_min_count_positive_min_count  s   r  )l   l$=O Tc                 C   s$   d}t j|d | d}||ksJ d S )N)i?" i  )r  r  r  )r  r  ro   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 r7   )r   r"  r   rt   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sJ ||ksJ |jtjks'J d S )Ni  )indexrt   )r   r   r   r  r   r   rt   float64)r   r  r  r   Z	np_resultr   r   r   test_nanmean_overflow  s   
r  rt   Zfloat128r   )r   r   r   r   r  r   r   c                 C   sd   |d u r	t d ttd|d}t|| }t|r)|dvr)|jtjks'J d S |j|ks0J d S )Nznp.float128 not availabler!   r-  )r   r   )	r   skipr   r   ry   r   rt   r   r  )r   rt   r   r  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pandasr  r   r   Zpandas._testingZ_testingr}   Zpandas.corer   r   rl   r  r   r   r   r   r$   r%   r+   r.   r3   r6   r:   r?   r@   rB   rD   rE   rG   rH   rI   rK   rR   rV   rX   rY   r\   r]   r^   r`   ra   rb   r  r  r  r  r%  r&  r'  r4  rV  r}  r  r  r   r   r   r   r   r   r   r   r  r  r  r  r  r   r   r   r   r   r   r   r   r  r  r/  r  Zskip_if_windowsZskip_if_32bitr  r  r  Zint16Zint32r  Zfloat32r  ry   r  r   r   r   r   <module>   sB   




























    2


9u33)	

	
&


