U
    mh                     @   s  d dl mZmZmZ d dlZd dlZd dlZd dlZd dl	m
Z
mZmZ d dlmZ d dlmZ dd Zeje e dd	d
dfejde d	d	d
dfeje ddid	d	d
dfejdddid	d	ddd feje e dd	ddd feje ddiddddd feje e ddd
dd feje e ddd
dd fejde ddd
dd feje e ddd
dd feje e ddd
dd feje e ddd
dd feje e ddd
dd feje e ddd
d d feje edd	gd!dd	d
dfej e e dd	d
dfej!e"d gfe dd"d
efej#e e d	d"defgZ$d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2hZ%d3d4hZ&dd5d6Z'dd7d8Z(d	d9d
dd:d;d<Z)ej*+d=e$ej*+d>d?ej*+d@dAej*+dBdCdDdE Z,ej*j-ej*+d=e$ej*+d>d?ej*+d@e.dFdej*+dBdGdHdI Z/dJdK Z0ej*+d=e$ej*+d>d?ej*+dBdLdMdN Z1ej*+d>dOej*+dPeje e ddQd feje ddid	dffej*+dRdSdTdU Z2ej*+dVejdfejdfgdWdX Z3ej*+d@dYdZd[ Z4d\d] Z5d^d_ Z6ej*+d=e$d`da Z7dbdc Z8ddde Z9ej*j-ej*+d=e$dfdg Z:dhdi Z;djdk Z<dldm Z=ej*+d@e.dFddndo Z>dpdq Z?drds Z@dtdu ZAdvdw ZBej*+d@eCee.dFdd	dxg dydz ZDej*+d{d|d}d~gdd ZEdS )    )productcombinations_with_replacementpermutationsN)assert_allcloseassert_equalsuppress_warnings)stats) _masked_arrays_2_sentinel_arraysc                 C   s(   |   \}}| j| j| j| j| j||fS N)Zconfidence_interval	statisticpvalueZdfZ_standard_errorZ	_estimate)reslowhigh r   J/tmp/pip-unpacked-wheel-9oz00b9h/scipy/stats/tests/test_axis_nan_policy.pyunpack_ttest_result   s      r         F)ZlessmethodZ
asymptotic)ZprattmodeautoTc                 C   s   | j | jfS r
   r   r   r   r   r   r   <lambda>        r      c                 C   s   | j | jfS r
   r   r   r   r   r   r   "   r   Zapproxc                 C   s   | j | j| jfS r
   )r   r   Z
zstatisticr   r   r   r   r   $   r   c                 C   s   | fS r
   r   xr   r   r   r   %   r   c                 C   s   | fS r
   r   r   r   r   r   r   &   r   )gQ?c                 C   s   | fS r
   r   r   r   r   r   r   '   r   c                 C   s   | fS r
   r   r   r   r   r   r   (   r   c                 C   s   | fS r
   r   r   r   r   r   r   )   r   c                 C   s   | fS r
   r   r   r   r   r   r   *   r   c                 C   s   | fS r
   r   r   r   r   r   r   +   r   c                 C   s   | fS r
   r   r   r   r   r   r   ,   r   )moment   zThe input contains nanz!Degrees of freedom <= 0 for slicez'x and y should have at least 5 elementszData must be at least length 3z$The sample must contain at least twoz!x and y must contain at least twozdivision by zerozMean of empty slicez)Data passed to ks_2samp must not be emptyzNot enough test observationszNot enough other observationsz$At least one observation is requiredz.zero-size array to reduction operation maximumz$`x` and `y` must be of nonzero size.z+The exact distribution of the Wilcoxon testzData input must not be emptyz-Precision loss occurred in moment calculation/Sample size too small for normal approximation.c              	   C   s  g }t | D ]}d}|rdnd| }t|||ftj }	t |D ]x}
|	|
d d d d f }tdddd|d |gD ].\}}||d | }|j|d|||f< qt|j|dd|d d < qB|gdg|   |g }d|d| < |	|}	t|	d	|}	|	|	 q|S )
N      r   r   r   r   sizeaxis)
rangenponesnan	enumerateZpermutationrandomreshapemoveaxisappend)	n_samplesn_repetitionsr'   rngpaireddataiZ
n_patternsn_obsr   jsampleskZn_realsindicesZ	new_shaper   r   r   _mixed_data_generatorM   s"     
r=   c                 C   s~   g }t | D ]l}|rdnd| }|gdg|   |g }	d|	d| < |rVt|	tj n||	}
t|
d|}
||
 q|S )Nr#   r   r   r(   )r)   r*   r+   r,   r.   r0   r1   )r2   r3   r'   r4   r5   all_nansr6   r7   r8   shaper   r   r   r   _homogeneous_data_generatort   s    r@   raise	n_outputs
nan_policyr5   _no_decoc          
         s   |dkr,|D ]}	t t |	rtdqn|dkrb|D ]&}	t t |	r8t |t j  S q8n`|dkr|s~dd |D }nDt |d  |dd  D ]}	t  t |	 q fd	d|D }|| ||d
|i|S )NrA   The input contains nan values	propagateomitc                 S   s   g | ]}|t |  qS r   )r*   isnan.0sampler   r   r   
<listcomp>   s     z!nan_policy_1d.<locals>.<listcomp>r   r   c                    s   g | ]}|   qS r   r   rJ   nan_maskr   r   rM      s     rE   )r*   anyrI   
ValueErrorfullr,   
logical_or)
hypotestdata1dunpackerrC   rD   r5   rE   argskwdsrL   r   rN   r   nan_policy_1d   s     rY   )rT   rW   rX   r2   rC   r5   rV   rD   )rG   rH   rA   r'   )r   data_generator)mixedc
           
      C   s   t | |||||||||	
 d S r
   _axis_nan_policy_test
rT   rW   rX   r2   rC   r5   rV   rD   r'   rZ   r   r   r   test_axis_nan_policy_fast   s       r_   )r>   
all_finiter[   c
           
      C   s   t | |||||||||	
 d S r
   r\   r^   r   r   r   test_axis_nan_policy_full   s    
   rb   c
                    s  |sdd }t jd}
d}|| |
|d}|	dkrDd}tf |}n>|	dkrdd	}d
|d< tf |}n|	dkrd	}d|d< tf |}|g|g|   fdd|D }fdd|D }t }t }t |D ]\}fdd|D }t jddd ztt| ||f||||d
d|}|| ||d|i|}t	|d |d  t
|d	krrt	|d |d  W nD ttttfk
r  ztjtttd( t| ||f||||d
d| W 5 Q R X tjtttd | ||d|i| W 5 Q R X tfddtD rDt |t j}nftfddtD rt <}|t |t t| ||f||||d
d|}W 5 Q R X nW 5 d X Y nX W 5 Q R X |d |< t
|d	kr|d |< q|dkr8|	dks8d}tjt|d | || |d| W 5 Q R X nt T}t jddd: |td |td || || |d|}W 5 Q R X W 5 Q R X t|d |dd t	|d j|j t
|d	krt|d |dd t	|d j|j d S ) Nc                 S   s   | S r
   r   r   r   r   r   rV      s    z'_axis_nan_policy_test.<locals>.unpackerr   r   )r2   r3   r'   r4   r5   r[   r"   r>   r   Tra   Fc                    s   g | ]}t | d qS r(   )r*   r0   rJ   r&   r   r   rM      s     z)_axis_nan_policy_test.<locals>.<listcomp>c                    s$   g | ]}t | |jd  g qS rc   )r*   broadcast_tor?   rJ   )output_shaper   r   rM      s   c                    s   g | ]}|  qS r   r   rJ   )r7   r   r   rM      s     ignoredivideinvalidrB   rD   r   matchc                    s   g | ]}t  |qS r   str
startswithrK   messageer   r   rM   
  s   c                    s   g | ]}t  |qS r   rl   ro   rq   r   r   rM     s   rA   rF   r'   rD   z!Precision loss occurred in momentr!   gV瞯<Zrtol)r*   r.   default_rngr=   r@   zerosZndenumerateerrstaterY   r   lenRuntimeWarningUserWarningrQ   ZeroDivisionErrorpytestraisestypereescaperm   rP   too_small_messagesrR   r,   inaccuracy_messagesr   filterr   dtype)rT   rW   rX   r2   rC   r5   rV   rD   r'   rZ   r4   r3   Zdata_gen_kwdsZinherent_sizer6   Zdata_bZ
statisticsZpvalues_rU   Zres1dres1dbsuprp   r   r   )r'   rr   r7   re   r   r]      s      



 
   




  $
r]   )r>   ra   r[   emptyc	                    s  |sdd }t jd|dkr8fddt|D }	nfddt|D }	|dkrfd	dt|D }
t|	|
D ]\}}t j||< qvn|d
krdd |	D }	dd |	D }|dkr0|dkr0d}tjt|d | |	|d |d| W 5 Q R X tjt|d | ||d |d| W 5 Q R X nd\ }}t j	dddh z&t
| ||f||||dd|}W n2 tttfk
r } zt| W 5 d }~X Y nX z|| ||d|i|}W n2 tttfk
r } zt|}W 5 d }~X Y nX z || |	|d |d|}W n2 tttfk
rJ } zt|}W 5 d }~X Y nX  s^|s^|rt fddtD szt |  kr|ksn tnt|| t|| W 5 Q R X d S )Nc                 S   s   | S r
   r   r   r   r   r   rV   @  s    z3test_axis_nan_policy_axis_is_None.<locals>.unpackerr   r   c                    s   g | ]}  d qS ))r   r   r.   rK   r7   r4   r   r   rM   F  s     z5test_axis_nan_policy_axis_is_None.<locals>.<listcomp>c                    s   g | ]}  d qS )r   r#   r   r   r   r   r   rM   H  s     r[   c                    s   g | ]}  d dkqS )r   g?r   r   r   r   r   rM   K  s     r>   c                 S   s   g | ]}|t j qS r   )r*   r,   rJ   r   r   r   rM   O  s     c                 S   s   g | ]}|  qS r   ravelrJ   r   r   r   rM   Q  s     rA   >   r   ra   rF   rj   rs   )NNNrf   rg   TrB   rD   c                    s   g | ]}t  |qS r   rl   ro   )ea_strr   r   rM   z  s   )r*   r.   ru   r)   zipr,   r|   r}   rQ   rw   rY   ry   r{   rm   rP   r   AssertionErrorr   )rT   rW   rX   r2   rC   r5   rV   rD   rZ   r6   masksrL   maskZdata_raveledrp   Zeb_strZec_strZres1daZear   ZebZres1dcZecr   )r   r4   r   !test_axis_nan_policy_axis_is_None5  s~    



 
 
r   )rH   rG   )rT   rW   rX   r2   rV   c                 C   s   | fS r
   r   r   r   r   r   r     r   )sample_shape
axis_cases)))r   r   r      )Nr   r(   )r   r   )r   r(   )r   r   r   r   ))
   )r   r(   ))r#   r   r   r   c                    s  |sdd }t jd  fddt|D }dd |D }	 fddt|D }
t|	|
D ]\}}t j||< q`|D ]4}t}|d krt t}n&t	|t
rd||< n|D ]}d||< qt|}|| |||d	d
|}|| |||dd
|}|| |	||d	|d|}|| |	||d|d|}t||||D ]^\}}}}|j|ksjtt j||d}t|| |j|kstt j||d}t|| qNqxd S )Nc                 S   s   | S r
   r   r   r   r   r   rV     s    ztest_keepdims.<locals>.unpackerr   c                    s   g | ]}  qS r   r   rK   r   r4   r   r   r   rM     s     z!test_keepdims.<locals>.<listcomp>c                 S   s   g | ]}|  qS r   )copyrJ   r   r   r   rM     s     c                    s   g | ]}  d k qS )皙?r   r   r   r   r   rM     s     r   T)r'   keepdimsF)r'   r   rD   r&   )r*   r.   ru   r)   r   r,   listr+   rx   
isinstanceinttupler?   r   Zsqueezer   )rT   rW   rX   r2   rV   r   r   rD   r6   Znan_datarO   rL   r   r'   Zexpected_shapeZaxr   Zres_baseZnan_resZnan_res_baserZr_baseZrnZrn_baser   r   r   test_keepdims  sX    



 
r   )funnsampc           	      C   sd   d\}}t jd}||||f}| | }| |ddi}| dd |D }t|| t|| d S )N)   	   r   rE   Tc                 S   s   g | ]}|  qS r   r   )rK   xir   r   r   rM     s     z5test_hypotest_back_compat_no_axis.<locals>.<listcomp>)r*   r.   ru   r   )	r   r   mnr4   r   r   res2res3r   r   r   !test_hypotest_back_compat_no_axis  s    
r   r   r   r   c              	   C   s   d}t jd}||}||}t||dd| }tj||dd| d}t|| d}tjtt	
|d tj||dd| | d W 5 Q R X d S )N)r   r   r   r   Tz	two-sidedr&   z6mannwhitneyu() got multiple values for argument 'axis'rj   )r*   r.   ru   r   mannwhitneyur   r|   r}   	TypeErrorr   r   )r'   r?   r4   r   yres1r   rp   r   r   r   .test_axis_nan_policy_decorated_positional_axis  s    


r   c               	   C   s   d} t jd}|| }t j|d< tj|  d}tjtt	
|d tj|d W 5 Q R X tjtt	
|d tj|d|i W 5 Q R X d S )Nr   r   r   r   r   r   r   r   r   z6kruskal() got an unexpected keyword argument 'samples'rj   )r:   r:   )r*   r.   ru   r,   r   kruskalr|   r}   r   r   r   )r?   r4   r   rp   r   r   r   .test_axis_nan_policy_decorated_positional_args  s    


r   c               	   C   s   d} t jd}|| }t j|d< tj| }tj|d |d d}t|| d}tjt	t
|d  tj||d |d d W 5 Q R X d S )N)r   r   r   r   r   r   r   )r   r   z/mannwhitneyu() got multiple values for argumentrj   )r*   r.   ru   r,   r   r   r   r|   r}   r   r   r   )r?   r4   r   r   r   rp   r   r   r   .test_axis_nan_policy_decorated_keyword_samples  s    



r   c                 C   s   t jd}|sdd }|j|ddfd}t| }	t|	}
|| ||ddi|}||
||ddi|}t||d	d
 d S )Nr   c                 S   s   | S r
   r   r   r   r   r   rV     s    z8test_axis_nan_policy_decorated_pickled.<locals>.unpackerr      r$   r'   r(   g-q=rt   )r*   r.   ru   uniformpickledumpsloadsr   )rT   rW   rX   r2   rC   r5   rV   r4   r6   Zpickled_hypotestZunpickled_hypotestr   r   r   r   r   &test_axis_nan_policy_decorated_pickled  s    

r   c                  C   s   t dD ]} tdddg| D ]}t t|D ]r}t|f}tj||}|d k	r,tj	 .}|
td |
td |d j|d}W 5 Q R X tj|| q,qqd S )N   r   r   r   Mean of empty slice.invalid value encounteredr&   )r)   r   rx   r*   rv   r   Z_axis_nan_policyZ_check_empty_inputstestingr   r   ry   meanr   )r7   combor'   r:   outputr   	referencer   r   r   test_check_empty_inputs  s    r   c                 C   s   t dd | D }|d k	r0|dkr,| | n|}td|d D ]^}| |krNq>t }| D ]0}||jkrX|j|  dkrX||j|   qXt|dkr> dS q>dS )Nc                 S   s   g | ]
}|j qS r   ndim)rK   arrr   r   r   rM   =  s     z/_check_arrays_broadcastable.<locals>.<listcomp>r   r   FT)maxr)   setr   r?   addrx   )Zarraysr'   n_dimsZdimZdim_lengthsr   r   r   r   _check_arrays_broadcastable/  s    
r   c                 C   s  |d krdd }dd }ddg}|||D ]P}	t dd |	D sDq*td	d |	D }
t|
 |
D ]}ztj|	|}tj 2}|	t
d
 |	t
d tj||dtj }W 5 Q R X | |	|d|i|}||}t|D ]}t|| | qW qb tk
rx   t|	|rtd}tjt|d tj|	| W 5 Q R X tjt|d | |	|d|i| W 5 Q R X Y qbX qbq*d S )Nc                 S   s   | d | d fS )Nr   r   r   r   r   r   r   r   W  r   ztest_empty.<locals>.<lambda>c                 3   s8   dd  fddt | D }t| D ]
}|V  q(d S )Nc                 s   s0   | D ]&}t dddg|D ]}t|V  qqd S )Nr   r   r   )r   r*   rv   )r   r7   r   r   r   r   small_sample_generator[  s    zHtest_empty.<locals>.small_data_generator.<locals>.small_sample_generatorc                    s   g | ]} qS r   r   r   r   r   r   r   rM   c  s     z<test_empty.<locals>.small_data_generator.<locals>.<listcomp>)r)   r   )r2   r   Zgensr7   r   r   r   small_data_generatorY  s    z(test_empty.<locals>.small_data_generatorr   r   c                 s   s   | ]}|j d kV  qdS )r   Nr$   rJ   r   r   r   	<genexpr>k  s     ztest_empty.<locals>.<genexpr>c                 s   s   | ]}|j V  qd S r
   r   rJ   r   r   r   r   n  s     r   r   r&   r'   z/Array shapes are incompatible for broadcasting.rj   )rP   r   r)   r   Z	_stats_pyZ_broadcast_concatenater*   r   r   r   ry   r   r,   r   rQ   r   r   r|   r}   )rT   rW   rX   r2   rC   r5   rV   r   r   r:   Zmax_axisr'   concatr   expectedr   r7   rp   r   r   r   
test_emptyP  s4    r   c                  C   s  t jd t jddd} t jd}| dk }t j| |} t t jj}t 	|t j
 }t 	|t j
 }t j| d< t j
| d< || d< t j|d	< t j
|d
< ||d< t| |g\}}|\}}	||kr||kst||kst| j}
||
| j< t j||
 |	|kstd S )Nr   r         g      ?)r   r   r   )r   r   r   )r   r"   r   r   r    r"   )r*   r.   seedrandmamasked_arrayfinfoZfloat64r   Z	nextafterinfr,   r	   r   r6   r   r   assert_array_equal)ABr   Z	max_floatZ
max_float2Z
max_float3
out_arrayssentinelZA_outZB_outZA_referencer   r   r   "test_masked_array_2_sentinel_array  s,    




r   c               	   C   s\  t t jj} t t jj}t jdd| gt jd}t jjdddgt jdddgd}t jjdddgt jdddgd}t	||g\}}|\}}|| d kst
|jt jkst
t||d ||d g ||kst
t|t jjrt
t	||g\}}|\}}	||kst
|jt jkst
t||d ||d g t|t jjrDt
t|	t jjrXt
t t jjt t jj }
}t j|
|d t jd}t j|td}t j|td}d|d< t jj||d}t	|g\}}||
d kst
d|d< t jj||d}d	}tjt|d
 t	|g W 5 Q R X t jjdddgdddgt jd}t|jt jksXt
d S )Nr   r   )r   r   )r   r   r(   Tr   z7This function replaces masked elements with sentinel...rj   r   )r   r   )r*   ZiinfoZint16r   r   Z
complex128arrayr   Zint8r	   r   r   r   r   ZMaskedArrayminZarangeZ
zeros_likeboolr|   r}   rQ   Zfloat32r   gmean)Zmax16Zmax128cabcr   r   Za_outZb_outZc_outZmin8Zmax8Zmask1Zmask0Za1Za0rp   r   r   r   test_masked_dtype  sD       r   c                  C   s\  dddddg} dddd	g}t | |}dddtjd	g}t j| |d
d}tj|| ddddd	g}dddddg}tjj||d}t | |}tj|| dddtjdd	g}ddddddg}	tjj||	d}t j| |d
d}
tj|
| dddtjdd	g}ddddddg}tjj||d}t j| |dd}t j| |dd}tj|| tj|| d S )N               r#   r      r   rH   )rD   i  FTr   rG   rA   )r   r   r*   r,   r   r   r   r   )ZmalesZfemalesr   Zfemales2r   Zfemales3Zmask3r   Zfemales4Zmask4res4Zfemales5Zmask5res5Zres6r   r   r   test_masked_stat_1d  s.    r   c                 C   s   t jd t jddd}t jdd}t jdd}|dk }ddddg}t jj||d	}t jj||d	}| }t j||< | }	t j|	|< tj	|||	d
| d}
tj	|||| d}t j
|
| d S )Nr   r   r   r   r   皙?FTr   rH   rD   r'   r&   )r*   r.   r   r   r   r   r   r,   r   r   r   r   )r'   r   r   r   Zmask_aZmask_ca_maskedZc_maskeda_nansZc_nansr   r   r   r   r   test_masked_stat_3d  s    

r   c                  C   s  d\} }d}t jd t j| |}t j| |}t j| |dk }t j| |dk }t j| |dk }t j| |dk }d|dd d f< | }	| }
t j|	||B < t j|
||B < t jj||d	}t jj||d	}t j||< t j||< t jj||d	}t jj||d	}t j||< t j||< t jj|||B d	}t jj|||B d	}tj	|	|
d
|d}tj	||d
|d}tj	||d
|d}tj	||d|d}tj	||d|d}t j
|| t j
|| t j
|| t j
|| d S )Nr   r#   r(   r   r   r   333333?Tr   r   rH   r   rA   rG   )r*   r.   r   r   r   r,   r   r   r   wilcoxonr   r   )r   r   r'   r   r   mask_a1mask_a2mask_b1mask_b2r   b_nans	a_masked1	b_masked1	a_masked2	b_masked2	a_masked3	b_masked3r   r   r   r   r   r   r   r   test_mixed_mask_nan_1&  sH    



 r  c            	      C   s  dt jdgt jt jt jgdddgdt jdgdt jdgdddgg} dddgdddgdddgdddgdddgdddgg}t jj| |d}dddgg}tddgdddg}tdddgdddg}tj||d	d
d}t jt jt j|j|j|jg}t jt jt j|j|j|jg}t j	|j| t j	|j| tj||dd
d}t jt jt jt j|j|jg}t jt jt jt j|j|jg}t j	|j| t j	|j| d S )Nr   r   r   r   r   r   r   r"   rH   r(   r   rG   )
r*   r,   r   r   r   ranksumsr   r   r   r   )	r   r   r   r   Zref1Zref2r   Zstat_refZp_refr   r   r   test_mixed_mask_nan_2U  sP     
 
           r  c                  C   sL   d} t jd}|| }tj|dd i}tj|ddi}t j|| d S )Nr   r   r'   r   )r*   r.   ru   r   r   r   r   )r?   r4   r   r   r   r   r   r   test_axis_None_vs_tuple  s    
r  c            	      C   s   t jd} | d}| d}t ||\}}t| | }tj||d d}tj||dd}t| | }||kst||kst||kstd S )Nr   )r   r   )r   r   r&   r   )r*   r.   ru   Zbroadcast_arraysr   r   r   r   )	r4   r   r   x2y2Zres0r   r   r   r   r   r   )test_axis_None_vs_tuple_with_broadcasting  s    

r  )r   c              	   C   s  t jd}d}d}||}||}| }tdd | D } t| } tt| t| krd}tjt j	t
|d tj|||d W 5 Q R X d S | d dk s| d	 d
krd}tjt j	t
|d tj|||d W 5 Q R X d S tj|||d}ddd
ht|  }	tt|	}	|}
dddg}||	 ||	< t ||}|
j|	 }t |
| d}
t || d}t |
|d	f}
t ||d	f}tj|
|dd}t j|| d S )Nr   )r   r   r"   )r   r"   c                 S   s    g | ]}|d kr|nd| qS )r   r   r   r   r   r   r   rM     s     z*test_other_axis_tuples.<locals>.<listcomp>z*`axis` must contain only distinct elementsrj   r&   r(   r   z0`axis` is out of bounds for array of dimension 3r   r"   )r   r   )r*   r.   ru   r   sortedrx   r   r|   r}   Z	AxisErrorr   r   r   r   nextiterrd   r?   r0   r/   r   r   )r'   r4   Zshape_xZshape_yr   r   Zaxis_originalrp   r   Znot_axisr  Zshape_y_broadcastedr  r   r   r   r   r   test_other_axis_tuples  s@    



r  weighted_fun_namer   hmeanpmeanc               	   C   s  | dkrdd }n
t t| }d\}}d}tjd}|j||fd}|j||fd}|j||fddk }|j||fdd	k }	|j||fdd
k }
|j||fdd
k }d|dd d f< | }| }tj|||	B < tj||
|B < tjj	||d}tjj	||
d}tj||	< tj||< tjj	||	d}tjj	||d}tj||< tj||
< tjj	|||	B d}tjj	||
|B d}||	B |
B |B }tjj	||d}tjj	||d}tj
 }d}|t| |||d|d}|||d|d}|||d|d}|||d|d}|||d|d}| dkr2t tj| }||||dd}W 5 Q R X tj
|| tj
|| tj
|| tj
|| | dkrtj
| |t|   d S )Nr  c                 [   s   t j| fddi|S )NpgzG?)r   r  )r   kwargsr   r   r   weighted_fun  s    z6test_mean_mixed_mask_nan_weights.<locals>.weighted_funr   r(   l    r$   r   r   r   Tr   r   r   rH   )weightsrD   r'   rA   rG   >   r  r   )r  r'   rE   )getattrr   r*   r.   ru   r   r   r,   r   r   r   r   r   ry   Zmstatsr   r   
compressedrI   ) r  r  r   r   r'   r4   r   r   r   r  r  r  r   r  r  r  r  r  r	  r
  Zmask_allZ	a_masked4Z	b_masked4r   rp   r   r   r   r   r   Zweighted_fun_mar   r   r   r    test_mean_mixed_mask_nan_weights  s    





     
 
r   )F)FT)F	itertoolsr   r   r   r   r   r|   Znumpyr*   Znumpy.testingr   r   r   Zscipyr   Zscipy.stats._axis_nan_policyr	   r   r   r   dictr  r   r   r   r  r  ZkurtosisZskewZkstatZkstatvarr   Zjarque_beraZttest_1sampr   Z	ttest_relZaxis_nan_policy_casesr   r   r=   r@   rY   markZparametrizer_   Zslowr)   rb   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   <module>   s  
 
(   
  xN+


!=#9#
/*

.