o
    5ήcV                     @   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
 d dlmZmZmZ d dlmZ d dlm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gZ!h d!Z"d"d#hZ#		dnd$d%Z$	dod&d'Z%dd(d	dd)d*d+Z&ej'(d,e!ej'(d-d.ej'(d/d0ej'(d1d2d3d4 Z)ej'j*ej'(d,e!ej'(d-d.ej'(d/e+d5dej'(d1d6d7d8 Z,d9d: Z-ej'(d,e!ej'(d-d.ej'(d1d;d<d= Z.ej'(d-d>ej'(d?eje e dd@d feje ddiddffej'(dAdBdCdD Z/ej'(dEejdfejdfgdFdG Z0ej'(d/dHdIdJ Z1dKdL Z2dMdN Z3ej'(d,e!dOdP Z4dQdR Z5dSdT Z6ej'j*ej'(d,e!dUdV Z7dWdX Z8dYdZ Z9d[d\ Z:ej'(d/e+d5dd]d^ Z;d_d` Z<dadb Z=dcdd Z>dedf Z?ej'(d/e@ee+d5dddgg dhdi ZAej'(djg dkdldm ZBdS )p    )productcombinations_with_replacementpermutationsN)NumpyVersion)assert_allcloseassert_equalsuppress_warnings)stats) _masked_arrays_2_sentinel_arrays      F)lessmethod
asymptotic)prattmodeautoTc                 C      | j | jfS N	statisticpvalueres r   M/tmp/pip-target-vg8gfxp4/lib/python/scipy/stats/tests/test_axis_nan_policy.py<lambda>       r      c                 C   r   r   r   r   r   r   r   r      r   approxc                 C   s   | j | j| jfS r   )r   r   
zstatisticr   r   r   r   r          c                 C      | fS r   r   xr   r   r   r          c                 C   r"   r   r   r#   r   r   r   r       r%   )gQ?c                 C   r"   r   r   r#   r   r   r   r   !   r%   c                 C   r"   r   r   r#   r   r   r   r   "   r%   c                 C   r"   r   r   r#   r   r   r   r   #   r%   c                 C   r"   r   r   r#   r   r   r   r   $   r%   c                 C   r"   r   r   r#   r   r   r   r   %   r%   c                 C   r"   r   r   r#   r   r   r   r   &   r%   )moment>   division by zeroMean of empty sliceThe input contains nanData input must not be emptyNot enough test observationsNot enough other observationsData must be at least length 3!Degrees of freedom <= 0 for slice!x and y must contain at least two$At least one observation is required$The sample must contain at least two$`x` and `y` must be of nonzero size.'x and y should have at least 5 elements)Data passed to ks_2samp must not be empty+The exact distribution of the Wilcoxon test.zero-size array to reduction operation maximumz-Precision loss occurred in moment calculation/Sample size too small for normal approximation.c              	   C   s  g }t | D ]z}d}|rdnd| }t|||ftj }	t |D ]<}
|	|
d d d d f }tdddd|d |gD ]\}}||d | }|j|d|||f< q:|j|dd|d d < q!|gdg|   |g }d|d| < |	|}	t|	d	|}	|	|	 q|S )
N      r   r   r   r   sizeaxis)
rangenponesnan	enumeratepermutationrandomreshapemoveaxisappend)	n_samplesn_repetitionsr=   rngpaireddatai
n_patternsn_obsr$   jsampleskn_realsindices	new_shaper   r   r   _mixed_data_generatorC   s"    
rW   c                 C   s~   g }t | D ]6}|rdnd| }|gdg|   |g }	d|	d| < |r+t|	tj n||	}
t|
d|}
||
 q|S )Nr9   r   r   r>   )r?   r@   rA   rB   rE   rG   rH   )rI   rJ   r=   rK   rL   all_nansrM   rN   rP   shaper$   r   r   r   _homogeneous_data_generatorj   s   rZ   raise	n_outputs
nan_policyrL   _no_decoc          
         s   |dkr|D ]}	t t |	rtdqnK|dkr1|D ]}	t t |	r/t |t j  S qn0|dkra|s?dd |D }n"t |d  |dd  D ]}	t  t |	 qL fd	d|D }|| g ||R d
|i|S )Nr[   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   rd   nan_maskr   r   rg          r_   )r@   anyrc   
ValueErrorfullrB   
logical_or)
hypotestdata1dunpackerr]   r^   rL   r_   argskwdsrf   r   rh   r   nan_policy_1dz   s(    rt   )ro   rr   rs   rI   r]   rL   rq   r^   )ra   rb   r[   r=   )r   data_generator)mixedc
           
      C      t | |||||||||	
 d S r   _axis_nan_policy_test
ro   rr   rs   rI   r]   rL   rq   r^   r=   ru   r   r   r   test_axis_nan_policy_fast   s   r{   )rX   
all_finiterv   c
           
      C   rw   r   rx   rz   r   r   r   test_axis_nan_policy_full   s   
r~   c
                    s  |sdd }t tjdk rtd tjd}
d}|| |
|d}|	dkr0d	}td#i |}n#|	d
krBd}d|d
< td#i |}n|	dkrSd}d|d
< td#i |}|g|g|   fdd|D }fdd|D }t	}t	}t
|D ]>\}fdd|D }tjddd z<t| ||g|R |||dd|}|| g ||R d|i|}t|d |d  t|dkrt|d |d  W n ttttfy  ztjtttd t| ||g|R |||dd| W d    n	1 sw   Y  tjtttd | g ||R d|i| W d    n	1 s5w   Y  tfddtD rNt|tj}n?tfddtD rt $}|t |t t| ||g|R |||dd|}W d    n	1 sw   Y  nW Y d nd ww W d    n	1 sw   Y  |d |< t|dkr|d |< q||dkr|	dksd}tjt|d | g ||R  |d| W d    d S 1 sw   Y  d S t =}tjddd% |td |td || g ||R  |d|}W d    n	1 s&w   Y  W d    n	1 s6w   Y  | jd v rKt |d |d!d" nt|d | t|d j!|j! t|dkrtt|d | t|d j!|j! d S d S )$Nc                 S      | S r   r   r   r   r   r   rq         z'_axis_nan_policy_test.<locals>.unpacker1.18.05Generator `permutation` method doesn't support `axis`r   r   )rI   rJ   r=   rK   rL   rv   r8   rX   r   Tr}   Fc                    s   g | ]	}t | d qS r>   )r@   rG   rd   r<   r   r   rg          z)_axis_nan_policy_test.<locals>.<listcomp>c                    s$   g | ]}t | |jd  g qS r   )r@   broadcast_torY   rd   )output_shaper   r   rg      s    c                    s   g | ]}|  qS r   r   rd   )rN   r   r   rg          ignoredivideinvalidr\   r^   r   matchc                       g | ]	}t  |qS r   str
startswithre   messageer   r   rg         c                    r   r   r   r   r   r   r   rg     r   r[   r`   r=   r^   z!Precision loss occurred in momentr7   >   gmeangؗҬ<rtolr   )"r   r@   __version__pytestxfailrE   default_rngrW   rZ   zerosndenumerateerrstatert   r   lenRuntimeWarningUserWarningrl   ZeroDivisionErrorraisestypereescaper   rk   too_small_messagesrm   rB   inaccuracy_messagesr   filter__name__r   dtype)ro   rr   rs   rI   r]   rL   rq   r^   r=   ru   rK   rJ   data_gen_kwdsinherent_sizerM   data_b
statisticspvalues_rp   res1dres1dbsupr   r   r   )r=   r   rN   r   r   ry      s   









	1 $

 ry   )rX   r}   rv   emptyc	                    s@  |sdd }t tjdk rtd tjd|dkr(fddt|D }	nfd	dt|D }	|d
krRfddt|D }
t|	|
D ]	\}}tj	||< qGn|dkr]dd |	D }	dd |	D }|dkr|dvrd}tj
t|d | g |	|R d |d| W d    n1 sw   Y  tj
t|d | g ||R d |d| W d    d S 1 sw   Y  d S d\ }}tjddd zt| ||g|R |||dd|}W n tttfy } z
t| W Y d }~nd }~ww z|| g ||R d|i|}W n tttfy$ } z
t|}W Y d }~nd }~ww z|| g |	|R d |d|}W n tttfyR } z
t|}W Y d }~nd }~ww  s\|s\|r{t fddtD sjJ  |  krw|kszJ  J nt|| t|| W d    d S W d    d S 1 sw   Y  d S )Nc                 S   r   r   r   r   r   r   r   rq   <  r   z3test_axis_nan_policy_axis_is_None.<locals>.unpackerr   r   r   r   c                       g | ]}  d qS ))r   r   rE   re   rN   rK   r   r   rg   D  rj   z5test_axis_nan_policy_axis_is_None.<locals>.<listcomp>c                    r   )r   r9   r   r   r   r   r   rg   F  rj   rv   c                    s   g | ]	}  d dkqS )r   g?r   r   r   r   r   rg   I  r   rX   c                 S   s   g | ]}|t j qS r   )r@   rB   rd   r   r   r   rg   M  rj   c                 S      g | ]}|  qS r   ravelrd   r   r   r   rg   O  r   r[   >   r   r}   r`   r   r   )NNNr   r   Tr\   r^   c                    r   r   r   r   )ea_strr   r   rg   x  r   )r   r@   r   r   r   rE   r   r?   ziprB   r   rl   r   rt   r   r   r   rk   r   r   )ro   rr   rs   rI   r]   rL   rq   r^   ru   rM   masksrf   maskdata_raveledr   eb_strec_strres1daear   ebres1dcecr   )r   rK   r   !test_axis_nan_policy_axis_is_None1  s   

"
	
"
$r   )rb   ra   )ro   rr   rs   rI   rq   c                 C   r"   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>   ))r9   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||< q0|D ]}t}|d u rNt t}nt	|t
rXd||< n	|D ]}d||< qZt|}|| g ||R |d	d
|}|| g ||R |dd
|}|| g |	|R |d	|d|}|| g |	|R |d|d|}t||||D ],\}}}}|j|ksJ t j||d}t|| |j|ksJ t j||d}t|| qq<d S )Nc                 S   r   r   r   r   r   r   r   rq     r   ztest_keepdims.<locals>.unpackerr   c                    s   g | ]}  qS r   r   re   r   rK   r   r   r   rg     rj   z!test_keepdims.<locals>.<listcomp>c                 S   r   r   )copyrd   r   r   r   rg     r   c                    s   g | ]	}  d k qS )皙?r   r   r   r   r   rg     r   r   T)r=   keepdimsF)r=   r   r^   r<   )r@   rE   r   r?   r   rB   listrA   r   
isinstanceinttuplerY   squeezer   )ro   rr   rs   rI   rq   r   r   r^   rM   nan_datari   rf   r   r=   expected_shapeaxr   res_basenan_resnan_res_baserr_basernrn_baser   r   r   test_keepdims  sZ   



r   )funnsampc           	      C   sd   d\}}t jd}||||f}| | }| |ddi}| dd |D }t|| t|| d S )N)   	   r   r_   Tc                 S   r   r   r   )re   xir   r   r   rg     r   z5test_hypotest_back_compat_no_axis.<locals>.<listcomp>)r@   rE   r   r   )	r   r   mnrK   r$   r   res2res3r   r   r   !test_hypotest_back_compat_no_axis  s   
r   r   r   r   c              	   C   s   t tjdk rtd 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 d    d S 1 sYw   Y  d S )
Nr   /Avoid test failures due to old version of NumPy)r   r   r   r   Tz	two-sidedr<   z6mannwhitneyu() got multiple values for argument 'axis'r   )r   r@   r   r   r   rE   r   r	   mannwhitneyur   r   	TypeErrorr   r   )r=   rY   rK   r$   yres1r   r   r   r   r   .test_axis_nan_policy_decorated_positional_axis  s   



"r   c                  C   s   t tjdk rtd d} tjd}|| }tj|d< tj	|  d}tj
tt|d tj	|d W d    n1 s@w   Y  tj
tt|d tj	|d	|i W d    d S 1 scw   Y  d S )
Nr   r   r   r   r   r   r   r   r   r   r   z6kruskal() got an unexpected keyword argument 'samples'r   )rR   rR   )r   r@   r   r   r   rE   r   rB   r	   kruskalr   r   r   r   )rY   rK   r$   r   r   r   r   .test_axis_nan_policy_decorated_positional_args  s   



"r   c                  C   s   t tjdk rtd 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 d    d S 1 sXw   Y  d S )
Nr   r   )r   r   r   r   r   r   r   )r$   r   z/mannwhitneyu() got multiple values for argumentr   )r   r@   r   r   r   rE   r   rB   r	   r   r   r   r   r   r   )rY   rK   r$   r   r   r   r   r   r   .test_axis_nan_policy_decorated_keyword_samples  s   




"r   c                 C   s   t tjdk rtjd}ntjd}|sdd }|j|ddfd}t| }	t	|	}
|| g ||R dd	i|}||
g ||R dd	i|}t
||d
d d S )Nr   r   c                 S   r   r   r   r   r   r   r   rq     r   z8test_axis_nan_policy_decorated_pickled.<locals>.unpackerr      r:   r=   r>   g-q=r   )r   r@   r   rE   RandomStater   uniformpickledumpsloadsr   )ro   rr   rs   rI   r]   rL   rq   rK   rM   pickled_hypotestunpickled_hypotestr   r   r   r   r   &test_axis_nan_policy_decorated_pickled	  s   

  r  c                  C   s   t dD ]V} tg d| D ]L}t t|D ]C}t|f}tj||}|d urXtj	 }|
td |
td |d j|d}W d    n1 sLw   Y  tj|| qqqd S )N   r   Mean of empty slice.invalid value encounteredr   r<   )r?   r   r   r@   r   r	   _axis_nan_policy_check_empty_inputstestingr   r   r   meanr   )rN   combor=   rR   outputr   	referencer   r   r   test_check_empty_inputs   s$   r  c                 C   s   t dd | D }|d ur|dkr| | n|}td|d D ]/}| |kr'qt }| D ]}||jkrD|j|  dkrD||j|   q,t|dkrN dS qdS )Nc                 S   s   g | ]}|j qS r   ndim)re   arrr   r   r   rg   D  s    z/_check_arrays_broadcastable.<locals>.<listcomp>r   r   FT)maxr?   setr  rY   addr   )arraysr=   n_dimsdimdim_lengthsr  r   r   r   _check_arrays_broadcastable6  s   
r  c                 C   s  |d u rdd }dd }ddg}|||D ]}	t dd |	D s!qtd	d |	D }
t|
 |
D ]}zTtj|	|}tj }|	t
d
 |	t
d tj||dtj }W d    n1 s`w   Y  | g |	|R d|i|}||}t|D ]	}t|| | q{W q0 ty   t|	|rJ d}tjt|d tj|	| W d    n1 sw   Y  tjt|d | g |	|R d|i| W d    n1 sw   Y  Y q0w qd S )Nc                 S   s   | d | d fS )Nr   r   r   r   r   r   r   r   ^  r!   ztest_empty.<locals>.<lambda>c                 3   s:    dd  fddt | D }t| D ]}|V  qd S )Nc                 s   s0    | D ]}t g d|D ]}t|V  qqd S )Nr   )r   r@   r   )r  rN   r  r   r   r   small_sample_generatorb  s   zHtest_empty.<locals>.small_data_generator.<locals>.small_sample_generatorc                    s   g | ]} qS r   r   r   r  r  r   r   rg   j  r   z<test_empty.<locals>.small_data_generator.<locals>.<listcomp>)r?   r   )rI   r  gensrN   r   r  r   small_data_generator`  s   z(test_empty.<locals>.small_data_generatorr   r   c                 s   s    | ]}|j d kV  qdS )r   Nr:   rd   r   r   r   	<genexpr>r  s    ztest_empty.<locals>.<genexpr>c                 s   s    | ]}|j V  qd S r   r  rd   r   r   r   r!  u  s    r  r	  r<   r=   z/Array shapes are incompatible for broadcasting.r   )rk   r  r?   r	   	_stats_py_broadcast_concatenater@   r  r   r   r   r  rB   r   rl   r  r   r   )ro   rr   rs   rI   r]   rL   rq   r   r  rR   max_axisr=   concatr   expectedr   rN   r   r   r   r   
test_emptyW  sD   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rf||kshJ ||ksnJ | j}
||
| j< t j||
 |	|u sJ d S )Nr   r         g      ?)r   r   r   )r   r  r   )r  r8   r   r      r8   )r@   rE   seedrandmamasked_arrayfinfofloat64r  	nextafterinfrB   r
   rM   r   r  assert_array_equal)ABr   	max_float
max_float2
max_float3
out_arrayssentinelA_outB_out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g dt jg dd}t jjg dt jg dd}t	||g\}}|\}}|| d ksIJ |j
t jksQJ t||d ||d	 g ||u scJ t|t jjrlJ t	||g\}}|\}}	||ks~J |j
t jksJ t||d ||d	 g t|t jjrJ t|	t jjrJ 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sJ d
|d< t jj||d}d}tjt|d t	|g W d    n	1 sw   Y  t jjg dg dt jd}t|j
t jks,J d S )Nr   r   )r   )r   r   r   r   r   r   )r   r   r   r   r   r   r>   Tr   z7This function replaces masked elements with sentinel...r   r   r   r   )r   r   )r@   iinfoint16r  r/  
complex128arrayr-  int8r
   r   r   r   MaskedArrayminarange
zeros_likeboolr   r   rl   float32r	   r   )max16max128cabcr9  r:  a_outb_outc_outmin8max8mask1mask0a1a0r   r   r   r   test_masked_dtype  sF   r\  c                  C   s6  g d} g d}t | |}dddtjdg}t j| |dd}tj|| g d	}g d
}tjj||d}t | |}tj|| dddtjddg}g d}	tjj||	d}t j| |dd}
tj|
| dddtjddg}g d}tjj||d}t j| |dd}t j| |dd}tj|| tj|| d S )N)               )r9   r(     r)  r9   r(  rb  r)  rb   )r^   )r9   r(  rb    r)  )FFFTFrA  rc  )FFFFTF)FFFTTFra   r[   )r	   r   r@   rB   r  r3  r-  r.  )malesfemalesr   females2r   females3mask3r   females4mask4res4females5mask5res5res6r   r   r   test_masked_stat_1d  s.   rp  c                 C   s   t jd t jddd}t jdd}t jdd}|dk }g d}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   皙?)FFFTrA  rb   r^   r=   r<   )r@   rE   r+  r,  r-  r.  r   rB   r	   r   r  r3  )r=   rP  rQ  rR  mask_amask_ca_maskedc_maskeda_nansc_nansr   r   r   r   r   test_masked_stat_3d  s   

ry  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   r9   r>   r   r   rq  333333?Tr   rA  rb   rr  r[   ra   )r@   rE   r+  r,  r   rB   r-  r.  r	   wilcoxonr  r3  )r   r   r=   rP  rQ  mask_a1mask_a2mask_b1mask_b2rw  b_nans	a_masked1	b_masked1	a_masked2	b_masked2	a_masked3	b_masked3r   r   r   r   rk  r   r   r   test_mixed_mask_nan_1-  sF   



r  c            	      C   s~  dt jdgt jt jt jgg ddt jdgdt jdgg dg} g dg dg dg dg dg dg}t jj| |d	}g d
g}tddgg d
}tg dg d
}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   rB  r   )r   r   r   r@  )r   r   r   r?  rA  r   r  r8   rb   r>   rr  ra   )
r@   rB   r-  r.  r	   ranksumsr   r   r  r3  )	rP  r   ru  rQ  ref1ref2r   stat_refp_refr   r   r   test_mixed_mask_nan_2\  s8   
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@   rE   r   r	   r   r  r3  )rY   rK   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sBJ ||ksHJ ||ksNJ d S )Nr   )r  r   )r   r  r<   r   )r@   rE   r   broadcast_arraysr	   r   r   )	rK   r$   r   x2y2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rUd}tjt j	t
|d tj|||d W d    d S 1 sNw   Y  d S | d dk sa| d	 d
krd}tjt j	t
|d tj|||d W d    d S 1 sw   Y  d S tj|||d}h dt|  }	tt|	}	|}
g d}||	 ||	< t ||}|
j|	 }t |
| d}
t || d}t |
|d	f}
t ||d	f}tj|
|dd}t j|| d S )Nr   r  )r   r8   c                 S   s    g | ]}|d kr
|nd| qS )r   r   r   r   r   r   r   rg     s     z*test_other_axis_tuples.<locals>.<listcomp>z*`axis` must contain only distinct elementsr   r<   r>   r   z0`axis` is out of bounds for array of dimension 3>   r   r   r   )r   r   r8   )r   r   r   )r@   rE   r   r   sortedr   r  r   r   	AxisErrorr   r   r	   r   nextiterr   rY   rG   rF   r  r3  )r=   rK   shape_xshape_yr$   r   axis_originalr   r   not_axisr  shape_y_broadcastedr  r   r   r   r   r   test_other_axis_tuples  sL   




r  weighted_fun_name)r   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
 K}d}|t| |||d|d}|||d|d}|||d|d}|||d|d}|||d|d}| dvrt tj| }||||dd}W d    n	1 s$w   Y  tj
|| tj
|| tj
|| tj
|| | dvr[tj
| |t|   d S d S )Nr  c                 [   s   t j| fddi|S )NpgzG?)r	   r  )rP  kwargsr   r   r   weighted_fun  s   z6test_mean_mixed_mask_nan_weights.<locals>.weighted_funrz  r>   l    r:   r   rq  r{  Tr   rA  r	  rb   )weightsr^   r=   r[   ra   >   r  )r  r=   r_   )getattrr	   r@   rE   r   r   r   rB   r-  r.  r  r   r   r   mstatsr3  r   
compressedrc   ) r  r  r   r   r=   rK   rP  rQ  r}  r~  r  r  rw  r  r  r  r  r  r  r  mask_all	a_masked4	b_masked4r   r   r   r   r   r   rk  weighted_fun_marn  r   r   r    test_mean_mixed_mask_nan_weights  s|   







"r  )F)FT)C	itertoolsr   r   r   r   r  r   numpyr@   	numpy.libr   numpy.testingr   r   r   scipyr	   scipy.stats._axis_nan_policyr
   r   r   dictr  r   r|  r   r  r  kurtosisskewkstatkstatvarr&   axis_nan_policy_casesr   r   rW   rZ   rt   markparametrizer{   slowr?   r~   ry   r   r   r   r   r   r   r  r  r  r'  r>  r\  rp  ry  r  r  r  r  r   r  r  r   r   r   r   <module>   s   
(
~P+


!=#9#
/*

.