o
    j                     @   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   g/var/www/html/Deteccion_Ine/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   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<   >   z `kurtosistest` requires at leastzdivision by zeroz!Degrees of freedom <= 0 for slicez+Window length (1) must be positive and lessz$The sample must contain at least twoz+Window length (0) must be positive and lesszMean of empty sliceinvalid value encounteredz#No array values within given limitsz)One or more sample arguments is too smallz/At least one slice along `axis` has zero lengthzNot enough other observationszData input must not be emptyz)Data passed to ks_2samp must not be emptyz+The exact distribution of the Wilcoxon testz+Input sample size must be greater than one.zNot enough observations.z+Window length (2) must be positive and lesszdivide by zero encounteredz'x and y should have at least 5 elementsz.zero-size array to reduction operation maximumz$`x` and `y` must be of nonzero size.z`skewtest` requires at leastz!x and y must contain at least twozData must be at least length 3zNot enough test observationsz*attempt to get argmax of an empty sequencez$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_repetitionsrT   rngpaireddataiZ
n_patternsn_obsr@   jsampleskZn_realsindicesZ	new_shaper   r   r   _mixed_data_generator   s"    
rj   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 )NrP   r,   r-   rU   )rV   rW   rX   rY   r[   r]   r^   )r_   r`   rT   ra   rb   all_nansrc   rd   re   shaper@   r   r   r   _homogeneous_data_generator   s   rm   raise	n_outputs
nan_policyrb   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 )Nrn   The input contains nan values	propagateomitc                 S   s   g | ]
}|t |  qS r   )rW   isnan.0sampler   r   r   
<listcomp>  s    z!nan_policy_1d.<locals>.<listcomp>r   r,   c                    s   g | ]}|   qS r   r   rv   nan_maskr   r   ry     rJ   r%   )rW   anyru   
ValueErroroverride_propagate_funcsfullrY   
logical_or)
hypotestdata1dunpackerrp   rq   rb   r%   r   kwdsrx   r   rz   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_   rp   rb   r   rq   )rs   rt   rn   rT   )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_   rp   rb   r   rq   rT   r   r   r   r   test_axis_nan_policy_fast  s
   
r   z1ignore:Degrees of freedom <= 0 for:RuntimeWarning)rk   
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`   rT   ra   rb   r   rO   rk   r-   Tr   Fc                    s   g | ]	}t | d qS rU   )rW   r]   rv   rS   r   r   ry         z)_axis_nan_policy_test.<locals>.<listcomp>c                    s$   g | ]}t | |jd  g qS r   )rW   broadcast_torl   rv   )output_shaper   r   ry         c                    s   g | ]}|  qS r   r   rv   )rd   r   r   ry         c                 S   s   g | ]	}t | qS r   )rW   ru   r|   rv   r   r   r   ry     r   rr   rn   matchro   rq   c                       g | ]	}t  |qS r   str
startswithrw   msgea_strr   r   ry     r   rt   V瞯<ZrtolrU   rT   rq   >   r   rk   g+=r   )rW   r[   default_rngrj   rm   zerosZndenumerater|   r   raisesr}   r   RuntimeWarningZeroDivisionErrorr   too_small_messagesr   rY   too_small_special_case_funcswarnsr
   r   testingsuppress_warningsfilterr   r]   r   )r   r   r   r_   rp   rb   r   rq   rT   r   ra   r`   Zdata_gen_kwdsZinherent_sizerc   Zdata_bZres_1d_r   Zcontains_nanmessageZres_1daear   supZres_1dbZres_ndr   )rT   r   rd   r   r   r   ]  s   

	


 

 r   )rk   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   r[   rw   rd   ra   r   r   ry     rJ   z5test_axis_nan_policy_axis_is_None.<locals>.<listcomp>c                    r   )r-   rP   r   r   r   r   r   ry     rJ   r   c                    s   g | ]	}  d dkqS )r   g?r   r   r   r   r   ry     r   rk   c                 S   s   g | ]}|t j qS r   )rW   rY   rv   r   r   r   ry     rJ   c                 S      g | ]}|  qS r   ravelrv   r   r   r   ry     r   rn   >   r   r   rr   r   r   error)NNNTro   rq   c                    r   r   r   r   r   r   r   ry   !  r   ignorer   r   )rW   r[   r   rV   ziprY   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_   rp   rb   r   rq   r   rc   Zmasksrx   maskZdata_raveledr   Zeb_strZec_strZres1dar   Zres1dbZebZres1dcecZok_msgZdesired_warningsZall_resultsitemr   )r   ra   r   !test_axis_nan_policy_axis_is_None  s   	

	


 "

 

r   zignore::UserWarningzignore::RuntimeWarning)rt   rs   )sample_shape
axis_cases))r-   r4   r4   rG   )Nr   rU   )r   r-   )r,   rU   )r4   r,   r-   r   ))
   )r   rU   ))rP   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   rw   r   ra   r   r   r   ry   Z  rJ   z!test_keepdims.<locals>.<listcomp>c                 S   r   r   )copyrv   r   r   r   ry   [  r   c                    s   g | ]	}  d k qS )皙?r   r   r   r   r   ry   \  r   r,   T)rT   keepdimsF)rT   r   rq   rS   gؗҜ<)Zatol)r   skewtestkurtosistest
normaltestdifferential_entropyr   r   rW   r[   r   rV   r   rY   r   rX   len
isinstanceintrM   rl   Zsqueezer   )r   r   r   r_   rp   rb   r   r   r   rq   Zsmall_sample_raisesrc   Znan_datar{   rx   r   rT   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   )rw   xir   r   r   ry     r   z5test_hypotest_back_compat_no_axis.<locals>.<listcomp>)rW   r[   r   r   )	r   r   mnra   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-sidedrS   z6mannwhitneyu() got multiple values for argument 'axis'r   )rW   r[   r   r   mannwhitneyur   r   r   	TypeErrorreescape)rT   rl   ra   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   )rg   rg   )rW   r[   r   rY   r   r   r   r   r   r   r   )rl   ra   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   )rW   r[   r   rY   r   r   r   r   r   r   r   r   )rl   ra   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-      rQ   rT   rU   g-q=r   )__name__r   r   rW   r[   r   uniformpickledumpsloadsr   )r   r   r   r_   rp   rb   r   ra   rc   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.rN   r   rS   )rV   r   r   rW   r   r   Z_axis_nan_policyZ_check_empty_inputsr   r   r   r   meanr   )rd   comborT   rg   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)rw   arrr   r   r   ry      s    z/_check_arrays_broadcastable.<locals>.<listcomp>r   r,   FT)maxrV   setr  rl   addr   )ZarraysrT   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   rW   r   )r  rd   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   ry   ,  r   z<test_empty.<locals>.small_data_generator.<locals>.<listcomp>)rV   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   NrQ   rv   r   r   r   	<genexpr>3  s    ztest_empty.<locals>.<genexpr>c                 s   s    | ]}|j V  qd S r   r  rv   r   r   r   r  6  s    )rb   r   rN   rS   r   r,   r   rT   zall input arrays have length 1/Array shapes are incompatible for broadcasting.)!r   r   friedmanchisquarer   r   r   r~   r|   r  rV   r(   Z_broadcast_concatenaterW   r   r   r   r   r   rY   empty_special_case_funcsr   asarrayru   rR   r   r   r   r   r
   r   r}   r  r   )r   r   r   r_   rp   rb   r   r  r  r  rg   Zmax_axisrT   concatr   expectedZ	empty_valr   r   r   rd   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,   )rW   r[   r   axis_nan_policy_cases)	ra   caser   r   r   r_   rp   rb   r   r   r   r   paired_non_broadcastable_casesj  s   r  )r   r   r   r_   rp   rb   r   ra   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   rQ   )r[   integersr   r   r   r   ry   }  r   z*test_non_broadcastable.<locals>.<listcomp>rS   r  r   r-   r   rQ   c                    s   g | ]} j d qS )rQ   r   r   ra   rl   r   r   ry     s    r,   )rV   r  r   r   r}   r  r   r[   )r   r   r   r_   rp   rb   r   ra   rT   Zget_samplesrg   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   rO   r4   r   rC   rO   )rW   r[   seedrandmamasked_arrayfinfoZfloat64r  	nextafterinfrY   r	   rc   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,   




r0  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   rU   Tr   z7This function replaces masked elements with sentinel...r   r  )r   r   )rW   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)               )rP   r"     r#  rP   r"  rE  r#  rt   )rq   )rP   r"  rE    r#  )FFFTFr4  rF  )FFFFTF)FFFTTFrs   rn   )r   r   rW   rY   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.   rH  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,   皙?)FFFTr4  rt   rq   rT   rS   )rW   r[   r$  r%  r&  r'  r   rY   r   r   r   r+  )rT   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   

rM  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   rP   rU   r   r   rI  333333?Tr-   r4  rt   rJ  rn   rs   )rW   r[   r$  r%  r   rY   r&  r'  r   wilcoxonr   r+  )r   r   rT   r<  r=  mask_a1mask_a2mask_b1mask_b2rL  b_nans	a_masked1	b_masked1	a_masked2	b_masked2	a_masked3	b_masked3r   r   r   r   rG  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,   r3  r,   r,   r,   r2  r4  rG   r   rO   rt   rU   rJ  rs   )
rW   rY   r&  r'  r   ranksumsr   r   r   r+  )	r<  r   rK  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   rT   r   )rW   r[   r   r   r   r   r+  )rl   ra   r@   r   r   r   r   r   test_axis_None_vs_tuple  s   
ra  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   rS   r   )rW   r[   r   Zbroadcast_arraysr   r   r   )	ra   r@   r   x2y2Zres0r   r   r   r   r   r   )test_axis_None_vs_tuple_with_broadcasting  s   

rd  )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,   rO   c                 S   s    g | ]}|d kr
|nd| qS )r   r4   r   r   r   r   r   ry     s     z*test_other_axis_tuples.<locals>.<listcomp>z*`axis` must contain only distinct elementsr   rS   rU   r-   z0`axis` is out of bounds for array of dimension 3>   r   r,   r-   )r,   r,   rO   )r,   r-   r,   )rW   r[   r   rM   sortedr   r	  r   r   r   r   r   r   r   nextiterr   rl   r]   r\   r   r+  )rT   ra   Zshape_xZshape_yr@   r   Zaxis_originalr   r   Znot_axisrb  Zshape_y_broadcastedrc  r   r   r   r   r   test_other_axis_tuples  sL   




ri  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;     rj  pmeanc                 C   r   r   r   r?   r   r   r   r;     rj  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 )Nrl  c                 [   s   t j| fddi|S )NpgzG?)r   rl  )r<  r   r   r   r   weighted_fun  s   z6test_mean_mixed_mask_nan_weights.<locals>.weighted_func                     s    | i |S r   r   r)   r   rn  r   r   func  s   z.test_mean_mixed_mask_nan_weights.<locals>.funcrN  rU   l    rQ   r   rI  rO  Tr-   r4  rN   rt   )r.   rq   rT   rn   rs   )getattrr   rW   r[   r   r   r   rY   r&  r'  r   r   r   r   r+  )Zweighted_fun_namer   rp  r   r   rT   ra   r<  r=  rQ  rR  rS  rT  rL  rU  rV  rW  rX  rY  rZ  r[  r   r   r   r   r   r   rG  r   ro  r    test_mean_mixed_mask_nan_weights  sR   





	rr  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    
"rt  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 )Nr1  )rW   r  ru  )rv  r   r   r?   r   r   	__array__@  s   z0test_array_like_input.<locals>.ArrLike.__array__)NN)r   
__module____qualname__rw  rx  r   r?   r   r   ArrLike;  s    r{  r,   r-   )r4   rG   r   r1  )r   r6   rD   )r   r{  r   r   r?   r   test_array_like_input6  s
   r|  )F)FT)	itertoolsr   r   r   osr   r   r   r   numpyrW   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   rM   dictr_  r   rP  r;  rk  rl  ZsemZiqrZkurtosisZskewZkstatZkstatvarZmomentZjarque_beraZttest_1sampr7  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   rj   rm   r   markfilterwarningsZparametrizer   rV   r   r   r   r   r   r   r   r   r   r  r  Zslowr  r  r!  r0  r?  rH  rM  r\  r`  ra  rd  r   ri  rr  rt  r5  r:  r6  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
#



/
*


.




	;