o
    i                     @   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Zd dl	Z
d dlmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZ d dlmZ d dlmZ eejd	d
Z dd Z!dd Z"dd Z#dd Z$dd Z%dd Z&g 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j0e( e) d#d#dd*d" fej1e( e) d#d#dd+d" fej2e( e) d#d#dd,d" fej3e( e) d#d#dd-d" fej4e( e) d#d#dd.d" fej5e( e) d#d#dd/d" fej6e( e) d#d#dd0d" fej6e( e)d#dgd1d#dddfej7e( e) d#dddfej8e
9d gfe) d#d2de!fej:e( e) dd2d e!fej;e( e) dd2de!fe"ej8d3e) d#dddfe"ej:e( e) ddd dfe"ej;e( e) ddddfej<e( e) d#dd d4d" fej=e( e) d#d#dd5d" fej>e( e) d#d#dd6d" fej?e( e) ddd dfej@e( e)d7d8ddddfejAe( i ddddfejBe( i d#dddfejCe jDfe) d#d9dd:d" fejEe( e) dd9dd;d" fejFe jDfe) d#d9dd<d" fejFe( e) dd9dd=d" fejGe( i ddddfejHe( d>d?d@ddddfejIe( i ddddfejJe( e) d#d#ddAd" fejJe( e) dd#d dBd" fejKe( e) d#dddfejLe( e) d#dddfejMe( e) d#dddfejNde) d#dddCd" fejOe( e) ddddDd" fejPe( e) ddddfejQe( i ddddfejRe( i d#d#ddEd" fejSe( i d#d#ddFd" fejTe( i d#d#ddGd" fejUe( i d#d#ddHd" fejVe( i d#d#ddId" fejWe( i d#d#ddJd" fejXe( e) d#d#ddKd" fejYe( e) d#d#ddLd" fejZe( e) d#d#ddMd" fej[e( i ddddfej\e( i ddddNd" fej]e( i d#dddfej^e( e) d#d9ddOd" fe&e( i ddd dfe#e( e) d#d#ddPd" fe$e( e) dd#d dQd" fe%e( e) d#d#ddRd" fej_e( e) ddd dSd" fZ`h dTZadUdVhZbej<hZcejJhZdejJhZe	ddWdXZf	 ddYdZZgdd[dd d\d]d^Zhejijd_ejijd`ejijdaejijdbejijdcejijddejikdee`ejikdfdgejikdhdiejikdjdkdldm Zle rejijd_ejijd`ejijdaejijdnejijdcejijddejikdee`ejikdfdgejikdhemdodejikdjdpdqdr Zndsdt Zoejikdee`ejikdfdgejikdjdudvdw Zpejijdxejijdyejikdfdzejikdee`ejikd{d|d}d~ Zqejikdej4d#fej5d#fgdd Zrejikdhddd Zsdd Ztdd Zuejikdee`dd Zvdd Zwdd Zxejijyejikdee`dd Zzdd Z{ejikdhd d#gejikde{ dd Z|dd Z}edd Z~dd Zejijdejijdeejikdhemdoddd Zejijdejijdedd Zejijdejijdedd Zdd Zdd Zejikdheeemdodddg dd Zejijdejijdeejikdddd" fddd" fddd" fddd" fgdd Zdd Zejikde
je
je
jgdd ZdS )    )productcombinations_with_replacementpermutationsN)assert_allcloseassert_equal)stats)norm) _masked_arrays_2_sentinel_arraysSmallSampleWarningtoo_small_nd_omittoo_small_nd_not_omittoo_small_1d_omittoo_small_1d_not_omit)	AxisError)skip_xp_invalid_argSCIPY_XSLOW0c                 C   s(   |   \}}| j| j| j| j| j||fS N)confidence_interval	statisticpvalueZdfZ_standard_errorZ	_estimate)reslowhigh r   `/home/kim/smarthome/.venv/lib/python3.10/site-packages/scipy/stats/tests/test_axis_nan_policy.pyunpack_ttest_result   s   r   c                    s    fdd}|S )Nc                     s    | i |}|  S r   )r   )argskwargsr   ttestr   r   ttest_ci%   s   z_get_ttest_ci.<locals>.ttest_cir   )r    r!   r   r   r   _get_ttest_ci#   s   r"   c                  O      | dd  tjj| i |S N_no_decopopr   	_stats_pyZ_xp_meanr   r   r   r   r   xp_mean_1samp+      r*   c                  O   s>   | dd  | d }tjj| d g| dd  R d|i|S )Nr%      r      weightsr&   )r   r   r.   r   r   r   xp_mean_2samp0   s   *r/   c                  O   r#   r$   )r'   r   r(   Z_xp_varr)   r   r   r   xp_var6   r+   r0   c                  O   s.   t j| d g| dd  R | d dd|S )Nr   r-   r,   Zstouffer)r.   method)r   combine_pvaluesr)   r   r   r   combine_pvalues_weighted;   s
    r3      r-   F)lessr1   Z
asymptotic)ZprattmodeautoTc                 C      | j | jfS r   r   r   r   r   r   r   <lambda>H       r;   r,   c                 C   r8   r   r9   r:   r   r   r   r;   J   r<   c                 C   s   | j | j| jfS r   )r   r   Z
zstatisticr:   r   r   r   r;   L       c                 C      | fS r   r   xr   r   r   r;   M       c                 C   r>   r   r   r?   r   r   r   r;   N   rA   )gQ?c                 C   r>   r   r   r?   r   r   r   r;   O   rA   c                 C   r>   r   r   r?   r   r   r   r;   P   rA   c                 C   r>   r   r   r?   r   r   r   r;   Q   rA   c                 C   r>   r   r   r?   r   r   r   r;   R   rA   c                 C   r>   r   r   r?   r   r   r   r;   S   rA   c                 C   r>   r   r   r?   r   r   r   r;   T   rA   c                 C   r>   r   r   r?   r   r   r   r;   U   rA   c                 C   r>   r   r   r?   r   r   r   r;   V   rA   )order   )r   c                 C   r8   r   )r6   countr?   r   r   r   r;   `   r<   c                 C   r>   r   r   r?   r   r   r   r;   a   rA   c                 C   r>   r   r   r?   r   r   r   r;   b   rA   normal)distribution   c                 C      g | | j | jR S r   Zstatistic_locationZstatistic_signr:   r   r   r   r;   h       c                 C   rH   r   rI   r:   r   r   r   r;   j   rJ   c                 C   rH   r   rI   r:   r   r   r   r;   l   rJ   c                 C   rH   r   rI   r:   r   r   r   r;   n   rJ   Ztrimmedg{Gz?)centerZproportiontocutc                 C   r>   r   r   r?   r   r   r   r;   s   rA   c                 C   r>   r   r   r?   r   r   r   r;   t   rA   c                 C   r8   r   r9   r:   r   r   r   r;   y   r<   c                 C   r8   r   r9   r:   r   r   r   r;   {   r<   c                 C   r>   r   r   r?   r   r   r   r;   ~   rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r8   r   r9   r:   r   r   r   r;      r<   c                 C   s   t | S r   )tupler?   r   r   r   r;      s    c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r>   r   r   r?   r   r   r   r;      rA   c                 C   r8   r   r9   r:   r   r   r   r;      r<   >   invalid value encounteredzMean of empty slicezNot enough test observationsz$`x` and `y` must be of nonzero size.zNot enough observations.z!Degrees of freedom <= 0 for slicezData must be at least length 3zNot enough other observationsz+Input sample size must be greater than one.zData input must not be emptyzdivision by zeroz+Window length (1) must be positive and lessz)One or more sample arguments is too smallz.zero-size array to reduction operation maximumz)Data passed to ks_2samp must not be emptyz`skewtest` requires at leastz*attempt to get argmax of an empty sequencez+Window length (2) must be positive and lessz'x and y should have at least 5 elementsz/At least one slice along `axis` has zero lengthz$The sample must contain at least twoz!x and y must contain at least twoz+The exact distribution of the Wilcoxon testzdivide by zero encounteredz `kurtosistest` requires at leastz+Window length (0) must be positive and lessz#No array values within given limitsz$At least one observation is requiredz-Precision loss occurred in moment calculationz/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-   r4   sizeaxis)
rangenponesnan	enumerateZpermutationrandomreshapemoveaxisappend)	n_samplesn_repetitionsrS   rngpaireddataiZ
n_patternsn_obsr@   jsampleskZn_realsindicesZ	new_shaper   r   r   _mixed_data_generator   s"    
ri   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 )NrO   r,   r-   rT   )rU   rV   rW   rX   rZ   r\   r]   )r^   r_   rS   r`   ra   all_nansrb   rc   rd   shaper@   r   r   r   _homogeneous_data_generator   s   rl   raise	n_outputs
nan_policyra   r%   c          
         s   |dkr|D ]}	t t |	rtdqnO|dkr5| tvr5|D ]}	t t |	r3t |t j  S q n0|dkre|sCdd |D }n"t |d  |dd  D ]}	t  t |	 qP fd	d|D }|| g ||R d
|i|S )Nrm   The input contains nan values	propagateomitc                 S   s   g | ]
}|t |  qS r   )rV   isnan.0sampler   r   r   
<listcomp>  s    z!nan_policy_1d.<locals>.<listcomp>r   r,   c                    s   g | ]}|   qS r   r   ru   nan_maskr   r   rx     rJ   r%   )rV   anyrt   
ValueErroroverride_propagate_funcsfullrX   
logical_or)
hypotestdata1dunpackerro   rp   ra   r%   r   kwdsrw   r   ry   r   nan_policy_1d   s*    r   z3ignore:Sample size too small for normal:UserWarningz0ignore:`kurtosistest` p-value may be:UserWarningz5ignore:all input arrays have length 1.:RuntimeWarningz7ignore:Degrees of freedom <= 0 for slice:RuntimeWarningz2ignore:Invalid value encountered in:RuntimeWarningz0ignore:divide by zero encountered:RuntimeWarning)r   r   r   r^   ro   ra   r   rp   )rr   rs   rm   rS   )r,   data_generator)mixedc
           
      C   s<   | t jt jhv rtstd t| |||||||||	
 d S )N	Too slow.)r   cramervonmises_2sampkruskalr   pytestskip_axis_nan_policy_test
r   r   r   r^   ro   ra   r   rp   rS   r   r   r   r   test_axis_nan_policy_fast  s
   
r   z1ignore:Degrees of freedom <= 0 for:RuntimeWarning)rj   
all_finiter   c
           
      C   s   t | |||||||||	
 d S r   )r   r   r   r   r   test_axis_nan_policy_full@  s   r   c
                    s  |sdd }t jd}
d}|| |
|d}|	dkr$d}tdi |}n#|	dkr6d	}d
|d< tdi |}n|	dkrGd	}d|d< tdi |}|g|g|   fdd|D }fdd|D }t |g }t t D ]>\}fdd|D }tdd |D }d}|dkr|rtj	t
|d t| ||g|R |||d
d| W d    n1 sw   Y  tj	t
|d | g ||R d|i| W d    n1 sw   Y  qqzt| ||g|R |||d
d|}W n/ t
ttfy" } zt|tfddtD rt |t j}n W Y d }~nd }~ww |dkrY|	dkrY| tvrYtjttd | g ||R d|i|}W d    n	1 sSw   Y  nH|dkr|	dkr| tvrt j }|tt | g ||R d|i|}W d    n	1 sw   Y  n| g ||R d|i|}||}t||dd ||< qqt |dd}|dkr|	dksd}tj	t
|d | g ||R  |d| W d    d S 1 sw   Y  d S |dkr%|	dv r%| tvr%tjttd | g ||R  |d|}W d    n	1 sw   Y  n| g ||R  |d|}||}t||dd d S ) Nc                 S      | S r   r   r:   r   r   r   r   e     z'_axis_nan_policy_test.<locals>.unpackerr   r4   )r^   r_   rS   r`   ra   r   rN   rj   r-   Tr   Fc                    s   g | ]	}t | d qS rT   )rV   r\   ru   rR   r   r   rx         z)_axis_nan_policy_test.<locals>.<listcomp>c                    s$   g | ]}t | |jd  g qS r   )rV   broadcast_tork   ru   )output_shaper   r   rx         c                    s   g | ]}|  qS r   r   ru   )rc   r   r   rx         c                 S   s   g | ]	}t | qS r   )rV   rt   r{   ru   r   r   r   rx     r   rq   rm   matchrn   rp   c                       g | ]	}t  |qS r   str
startswithrv   msgea_strr   r   rx     r   rs   V瞯<ZrtolrT   rS   rp   >   r   rj   g+=r   )rV   rZ   default_rngri   rl   zerosZndenumerater{   r   raisesr|   r   RuntimeWarningZeroDivisionErrorr   too_small_messagesr~   rX   too_small_special_case_funcswarnsr
   r   testingsuppress_warningsfilterr   r\   r   )r   r   r   r^   ro   ra   r   rp   rS   r   r`   r_   Zdata_gen_kwdsZinherent_sizerb   Zdata_bZres_1d_r   Zcontains_nanmessageZres_1daear   supZres_1dbZres_ndr   )rS   r   rc   r   r   r   ]  s   

	


 

 r   )rj   r   r   emptyc	                    s  |sdd }t jd|dkrfddt|D }	nfddt|D }	|dkrFfd	dt|D }
t|	|
D ]	\}}t j||< q;n|d
krQd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 t	
  t	d d\ }}zt| ||g|R |||dd|}W n tttfy } zd }t| W Y d }~nd }~ww z| g ||R d|i|}W n ty } z
t|}W Y d }~nd }~ww z| g |	|R d |d|}W n ty@ } z
t|}W Y d }~nd }~ww W d    n	1 sLw   Y   sZ|sZ|rt fddtD } d u so|soJ tth}t||v s|J t||v sJ t	
 * t	d | g ||R d|i|}| g |	|R d |d|}W d    n	1 sw   Y  ||||}}t|| t|t| }|d urt||dd |t|7 }|D ]}t |jt jsJ t |sJ qd S )Nc                 S   r   r   r   r:   r   r   r   r     r   z3test_axis_nan_policy_axis_is_None.<locals>.unpackerr   r   c                       g | ]}  d qS ))r-   r   rZ   rv   rc   r`   r   r   rx     rJ   z5test_axis_nan_policy_axis_is_None.<locals>.<listcomp>c                    r   )r-   rO   r   r   r   r   r   rx     rJ   r   c                    s   g | ]	}  d dkqS )r   g?r   r   r   r   r   rx     r   rj   c                 S   s   g | ]}|t j qS r   )rV   rX   ru   r   r   r   rx     rJ   c                 S      g | ]}|  qS r   ravelru   r   r   r   rx     r   rm   >   r   r   rq   r   r   error)NNNTrn   rp   c                    r   r   r   r   r   r   r   rx   !  r   ignorer   r   )rV   rZ   r   rU   ziprX   r   r   r|   warningscatch_warningssimplefilterr   r   r   r   r
   r{   r   r   r   r   listr   Z
issubdtypedtypenumberZisscalar)r   r   r   r^   ro   ra   r   rp   r   rb   Zmasksrw   maskZdata_raveledr   Zeb_strZec_strZres1dar   Zres1dbZebZres1dcecZok_msgZdesired_warningsZall_resultsitemr   )r   r`   r   !test_axis_nan_policy_axis_is_None  s   	

	


 "

 

r   zignore::UserWarningzignore::RuntimeWarning)rs   rr   )sample_shape
axis_cases))r-   r4   r4   rG   )Nr   rT   )r   r-   )r,   rT   )r4   r,   r-   r   ))
   )r   rT   ))rO   r   r   r,   c
                    s  t jt jt jt jh}
dkr| |
v rtd |sdd }tj	d  fddt
|D }dd |D } fd	dt
|D }t||D ]	\}}tj||< qG|D ]}t}|d u rett}nt|trod
||< n	|D ]}d
||< qqt|}|| g ||R |dd|}|| g ||R |dd|}|| g ||R |d|	d|}|| g ||R |d|	d|}t||||D ]0\}}}}|j|ksJ tj||d}t||dd |j|ksJ tj||d}t||dd qqSd S )Nr   z$Sample too small; test raises error.c                 S   r   r   r   r:   r   r   r   r   W  r   ztest_keepdims.<locals>.unpackerr   c                    s   g | ]}  qS r   r   rv   r   r`   r   r   r   rx   Z  rJ   z!test_keepdims.<locals>.<listcomp>c                 S   r   r   )copyru   r   r   r   rx   [  r   c                    s   g | ]	}  d k qS )皙?r   r   r   r   r   rx   \  r   r,   T)rS   keepdimsF)rS   r   rp   rR   gؗҜ<)Zatol)r   skewtestkurtosistest
normaltestdifferential_entropyr   r   rV   rZ   r   rU   r   rX   r   rW   len
isinstanceintrL   rk   Zsqueezer   )r   r   r   r^   ro   ra   r   r   r   rp   Zsmall_sample_raisesrb   Znan_datarz   rw   r   rS   Zexpected_shapeaxr   Zres_baseZnan_resZnan_res_baserZr_baseZrnZrn_baser   r   r   test_keepdimsD  sd   



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   )rv   xir   r   r   rx     r   z5test_hypotest_back_compat_no_axis.<locals>.<listcomp>)rV   rZ   r   r   )	r   r   mnr`   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 d    d S 1 sMw   Y  d S )N)r   r   r   r   Tz	two-sidedrR   z6mannwhitneyu() got multiple values for argument 'axis'r   )rV   rZ   r   r   mannwhitneyur   r   r   	TypeErrorreescape)rS   rk   r`   r@   yres1r   r   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 d    n1 s4w   Y  tjtt	
|d tj|d|i W d    d S 1 sWw   Y  d S )Nr4   r   r   r   r   r   r   r   r   z6kruskal() got an unexpected keyword argument 'samples'r   )rf   rf   )rV   rZ   r   rX   r   r   r   r   r   r   r   )rk   r`   r@   r   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 d    d S 1 sLw   Y  d S )N)r-   r   r   r   r   r   r,   )r@   r   z/mannwhitneyu() got multiple values for argumentr   )rV   rZ   r   rX   r   r   r   r   r   r   r   r   )rk   r`   r@   r   r   r   r   r   r   .test_axis_nan_policy_decorated_keyword_samples  s   



"r   c                 C   s   d| j v r
td 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!   z0Can't pickle functions defined within functions.r   c                 S   r   r   r   r:   r   r   r   r     r   z8test_axis_nan_policy_decorated_pickled.<locals>.unpackerr-      rP   rS   rT   g-q=r   )__name__r   r   rV   rZ   r   uniformpickledumpsloadsr   )r   r   r   r^   ro   ra   r   r`   rb   Zpickled_hypotestZ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.rM   r   rR   )rU   r   r   rV   r   r   Z_axis_nan_policyZ_check_empty_inputsr   r   r   r   meanr   )rc   comborS   rf   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)rv   arrr   r   r   rx      s    z/_check_arrays_broadcastable.<locals>.<listcomp>r   r,   FT)maxrU   setr  rk   addr   )ZarraysrS   n_dimsdimZdim_lengthsr  r   r   r   _check_arrays_broadcastable  s   
r  c                 C   s  | t jt jhv rtstd | tv rd}tj|d |d u r#dd }dd }g d}	|||	D ]M}
td	d
 |
D s=q0tdd
 |
D }t	| |D ]0}zt j
j|
||d}tj }|td |td tj||dtj }W d    n1 sw   Y  | tv r| g g gt|
 |R i |}t|}t|}|||< |d }|jr| tvr|dkrtnt}tjt|d | g |
|R d|i|}W d    n1 sw   Y  n*tj }|td | g |
|R d|i|}W d    n	1 sw   Y  ||}t	|D ]
}t|| | qW qL ty}   t|
|r-d n|r3J d}tj t|d t j
|
|| W d    n	1 sPw   Y  tj t|d | g |
|R d|i| W d    n	1 svw   Y  Y qLw q0d S )Nr   z4Doesn't follow the usual pattern. Tested separately.)reasonc                 S   s   | d | d fS )Nr   r,   r   r:   r   r   r   r;      r=   ztest_empty.<locals>.<lambda>c                 3   s4    dd  fddt | D }t| E d H  d S )Nc                 s   s0    | D ]}t g d|D ]}t|V  qqd S )Nr   )r   rV   r   )r
  rc   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   rx   ,  r   z<test_empty.<locals>.small_data_generator.<locals>.<listcomp>)rU   r   )r^   r
  Zgensr   r  r   small_data_generator"  s   z(test_empty.<locals>.small_data_generatorr,   r-   r4   c                 s   s    | ]}|j d kV  qdS )r   NrP   ru   r   r   r   	<genexpr>3  s    ztest_empty.<locals>.<genexpr>c                 s   s    | ]}|j V  qd S r   r  ru   r   r   r   r  6  s    )ra   r   rM   rR   r   r,   r   rS   zall input arrays have length 1/Array shapes are incompatible for broadcasting.)!r   r   friedmanchisquarer   r   r   r}   r{   r  rU   r(   Z_broadcast_concatenaterV   r   r   r   r   r   rX   empty_special_case_funcsr   asarrayrt   rQ   r   r   r   r   r
   r   r|   r  r   )r   r   r   r^   ro   ra   r   r  r  r
  rf   Zmax_axisrS   concatr   expectedZ	empty_valr   r   r   rc   r   r   r   
test_empty  sx   

"


r  c            	      c   sD    t jd} tD ]}|\}}}}}}}|dkrq	|| f V  q	d S )Nl   T;]L r,   )rV   rZ   r   axis_nan_policy_cases)	r`   caser   r   r   r^   ro   ra   r   r   r   r   paired_non_broadcastable_casesj  s   r  )r   r   r   r^   ro   ra   r   r`   c	                    s  d}	|	r fddt |D }
t|
|d}	|	sd}tjt|d | g |
|R i | W d    n1 s7w   Y  |s@d S  jdddd	 fd
dt |d D }t|  d7  <  jd	}tjt|d | |g||R i | W d    d S 1 sw   Y  d S )NTc                    s$   g | ]} j  jd dd ddqS )r-   d   rP   )rZ   integersr   r   r   r   rx   }  r   z*test_non_broadcastable.<locals>.<listcomp>rR   r  r   r-   r   rP   c                    s   g | ]} j d qS )rP   r   r   r`   rk   r   r   rx     s    r,   )rU   r  r   r   r|   r  r   rZ   )r   r   r   r^   ro   ra   r   r`   rS   Zget_samplesrf   r   Zmost_samplesZother_sampler   r  r   test_non_broadcastables  s*   
"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      ?)r4   rG   r,   )rG   r   r-   )r   rN   r4   r   rC   rN   )rV   rZ   seedrandmamasked_arrayfinfoZfloat64r  	nextafterinfrX   r	   rb   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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   rT   Tr   z7This function replaces masked elements with sentinel...r   r  )r   r   )rV   Ziinfoint16r  r'  
complex128arrayr%  Zint8r	   r   r   r   ZMaskedArrayminZarangeZ
zeros_likeboolr   r   r|   float32r   gmean)Zmax16Zmax128cabcr-  r.  Za_outZb_outZc_outZmin8Zmax8Zmask1Zmask0Za1Z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)               )rO   r!     r"  rO   r!  rD  r"  rs   )rp   )rO   r!  rD    r"  )FFFTFr3  rE  )FFFFTF)FFFTTFrr   rm   )r   r   rV   rX   r   r*  r%  r&  )ZmalesZfemalesr   Zfemales2r   Zfemales3Zmask3r   Zfemales4Zmask4res4Zfemales5Zmask5Zres5Zres6r   r   r   test_masked_stat_1d  s.   rG  zignore:After omitting NaNs...z(ignore:One or more axis-slices of one...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   r4   rG   r   r,   皙?)FFFTr3  rs   rp   rS   rR   )rV   rZ   r#  r$  r%  r&  r   rX   r   r   r   r*  )rS   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   

rL  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r4   rO   rT   r   r   rH  333333?Tr-   r3  rs   rI  rm   rr   )rV   rZ   r#  r$  r   rX   r%  r&  r   wilcoxonr   r*  )r   r   rS   r;  r<  mask_a1mask_a2mask_b1mask_b2rK  b_nans	a_masked1	b_masked1	a_masked2	b_masked2	a_masked3	b_masked3r   r   r   r   rF  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-   r  r4   )r,   r   r,   r2  r,   r,   r,   r1  r3  rG   r   rN   rs   rT   rI  rr   )
rV   rX   r%  r&  r   ranksumsr   r   r   r*  )	r;  r   rJ  r<  Zref1Zref2r   Zstat_refZp_refr   r   r   test_mixed_mask_nan_2a  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   rS   r   )rV   rZ   r   r   r   r   r*  )rk   r`   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   rR   r   )rV   rZ   r   Zbroadcast_arraysr   r   r   )	r`   r@   r   x2y2Zres0r   r   r   r   r   r   )test_axis_None_vs_tuple_with_broadcasting  s   

rc  )r,   c                 C   s  t jd}d}d}||}||}| }tdd | D } t| } tt| t| krTd}tjt	t
|d tj|||d W d    d S 1 sMw   Y  d S | d dk s`| d	 d
krd}tjt	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,   rN   c                 S   s    g | ]}|d kr
|nd| qS )r   r4   r   r   r   r   r   rx     s     z*test_other_axis_tuples.<locals>.<listcomp>z*`axis` must contain only distinct elementsr   rR   rT   r-   z0`axis` is out of bounds for array of dimension 3>   r   r,   r-   )r,   r,   rN   )r,   r-   r,   )rV   rZ   r   rL   sortedr   r  r   r   r   r   r   r   r   nextiterr   rk   r\   r[   r   r*  )rS   r`   Zshape_xZshape_yr@   r   Zaxis_originalr   r   Znot_axisra  Zshape_y_broadcastedrb  r   r   r   r   r   test_other_axis_tuples  sL   




rh  zweighted_fun_name, unpackerr:  c                 C   r   r   r   r?   r   r   r   r;         hmeanc                 C   r   r   r   r?   r   r   r   r;     ri  pmeanc                 C   r   r   r   r?   r   r   r   r;     ri  r2   c                 C   r8   r   )r   r   r?   r   r   r   r;     r<   c                    sD  | dkr	dd nt t|  fdd}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}tj
 8}d}|t| |||d|d}|||d|d}|||d|d}|||d|d}|||d|d}W d    n1 sw   Y  tj
|| tj
|| tj
|| tj
|| d S )Nrk  c                 [   s   t j| fddi|S )NpgzG?)r   rk  )r;  r   r   r   r   weighted_fun  s   z6test_mean_mixed_mask_nan_weights.<locals>.weighted_func                     s    | i |S r   r   r)   r   rm  r   r   func  s   z.test_mean_mixed_mask_nan_weights.<locals>.funcrM  rT   l    rP   r   rH  rN  Tr-   r3  rM   rs   )r.   rp   rS   rm   rr   )getattrr   rV   rZ   r   r   r   rX   r%  r&  r   r   r   r   r*  )Zweighted_fun_namer   ro  r   r   rS   r`   r;  r<  rP  rQ  rR  rS  rK  rT  rU  rV  rW  rX  rY  rZ  r   r   r   r   r   r   rF  r   rn  r    test_mean_mixed_mask_nan_weights  sR   





	rq  c                  C   s  d} t jt| d tjg ddd W d    n1 sw   Y  d} t jt| d tjg ddd W d    n1 s?w   Y  d} t jt| d t  W d    n1 s\w   Y  d	} t jt| d tg dd
tg dd W d    d S 1 sw   Y  d S )Nz"got an unexpected keyword argumentr   r  T)Zinvalid_argz! got multiple values for argument)r;  z&missing 1 required positional argumentz7takes from 1 to 4 positional arguments but 5 were givenr   r\  r   )r   r   r   r   r:  float)r   r   r   r   test_raise_invalid_args_g17713!  s    
"rs  r   c                    sV   G  fddd}dgd g d  t | | d}|jdks"J |jdks)J d S )Nc                       s"   e Zd Zdd Zd fdd	ZdS )z&test_array_like_input.<locals>.ArrLikec                 S   s   || _ || _d S r   )Z_x_dtype)selfr@   r   r   r   r   __init__<  s   
z/test_array_like_input.<locals>.ArrLike.__init__Nc                    s   t j | jdS )Nr0  )rV   r  rt  )ru  r   r   r?   r   r   	__array__@  s   z0test_array_like_input.<locals>.ArrLike.__array__)NN)r   
__module____qualname__rv  rw  r   r?   r   r   ArrLike;  s    rz  r,   r-   )r4   rG   r   r0  )r   r6   rD   )r   rz  r   r   r?   r   test_array_like_input6  s
   r{  )F)FT)	itertoolsr   r   r   osr   r   r   r   numpyrV   Znumpy.testingr   r   Zscipyr   Zscipy.statsr   Zscipy.stats._axis_nan_policyr	   r
   r   r   r   r   Zscipy._lib._utilr   Zscipy.conftestr   r   environgetr   r   r"   r*   r/   r0   r3   r   rL   dictr^  r   rO  r:  rj  rk  ZsemZiqrZkurtosisZskewZkstatZkstatvarZmomentZjarque_beraZttest_1sampr6  Z	ttest_relZ	ttest_indr6   r   Z	variationr  ZbrunnermunzelZmoodZshapiroZks_1sampZcdfZks_2sampZkstestZleveneZflignerZansariZentropyr   r   r   Zcramervonmisesr   Zepps_singleton_2sampZbartlettZtmeantvarZtminZtmaxZtstdZtsemZcircmeanZcircvarZcircstdZf_onewayZalexandergovernr2   ZlmomentZchatterjeexir  r   Zinaccuracy_messagesr}   r  r   ri   rl   r   markfilterwarningsZparametrizer   rU   r   r   r   r   r   r   r   r   r   r  r  Zslowr  r  r   r/  r>  rG  rL  r[  r_  r`  rc  r   rh  rq  rs  r4  r9  r5  r{  r   r   r   r   <module>   sb   	 !"#$%&')+-/02345678:<=>?@ABCDEFGHJKLMNOPV 
(

"




	





y
i
0


!T	#
9
#



/
*


.




	;