o
    h                     @   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pvaluedf_standard_error	_estimate)reslowhigh r   Z/var/www/vscode/kcb/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_py_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!   r2   r   r   r   xp_mean_2samp0   s   *r3   c                  O   r&   r'   )r*   r   r+   _xp_varr-   r   r   r   xp_var6   r/   r5   c                  O   s.   t j| d g| dd  R | d dd|S )Nr   r1   r0   stouffer)r2   method)r   combine_pvaluesr-   r   r   r   combine_pvalues_weighted;   s
    r9      r1   F)lessr7   
asymptotic)prattmodeautoTc                 C      | j | jfS r   r   r   r   r   r   r   <lambda>H       rC   r0   c                 C   r@   r   rA   rB   r   r   r   rC   J   rD   c                 C   s   | j | j| jfS r   )r   r   
zstatisticrB   r   r   r   rC   L       c                 C      | fS r   r   xr   r   r   rC   M       c                 C   rG   r   r   rH   r   r   r   rC   N   rJ   )gQ?c                 C   rG   r   r   rH   r   r   r   rC   O   rJ   c                 C   rG   r   r   rH   r   r   r   rC   P   rJ   c                 C   rG   r   r   rH   r   r   r   rC   Q   rJ   c                 C   rG   r   r   rH   r   r   r   rC   R   rJ   c                 C   rG   r   r   rH   r   r   r   rC   S   rJ   c                 C   rG   r   r   rH   r   r   r   rC   T   rJ   c                 C   rG   r   r   rH   r   r   r   rC   U   rJ   c                 C   rG   r   r   rH   r   r   r   rC   V   rJ   )order   )r   c                 C   r@   r   )r>   countrH   r   r   r   rC   `   rD   c                 C   rG   r   r   rH   r   r   r   rC   a   rJ   c                 C   rG   r   r   rH   r   r   r   rC   b   rJ   normal)distribution   c                 C      g | | j | jR S r   statistic_locationstatistic_signrB   r   r   r   rC   h       c                 C   rQ   r   rR   rB   r   r   r   rC   j   rU   c                 C   rQ   r   rR   rB   r   r   r   rC   l   rU   c                 C   rQ   r   rR   rB   r   r   r   rC   n   rU   trimmedg{Gz?)centerproportiontocutc                 C   rG   r   r   rH   r   r   r   rC   s   rJ   c                 C   rG   r   r   rH   r   r   r   rC   t   rJ   c                 C   r@   r   rA   rB   r   r   r   rC   y   rD   c                 C   r@   r   rA   rB   r   r   r   rC   {   rD   c                 C   rG   r   r   rH   r   r   r   rC   ~   rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   r@   r   rA   rB   r   r   r   rC      rD   c                 C   s   t | S r   )tuplerH   r   r   r   rC      s    c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   rG   r   r   rH   r   r   r   rC      rJ   c                 C   r@   r   rA   rB   r   r   r   rC      rD   >   division by zeroMean of empty sliceNot enough observations.divide by zero encounteredData input must not be emptyNot enough test observations`skewtest` requires at leastNot enough other observationsData must be at least length 3 `kurtosistest` requires at least!Degrees of freedom <= 0 for slice!x and y must contain at least two#No array values within given limits$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)One or more sample arguments is too small*attempt to get argmax of an empty sequence+Input sample size must be greater than one.+The exact distribution of the Wilcoxon test+Window length (0) must be positive and less+Window length (1) must be positive and less+Window length (2) must be positive and less.zero-size array to reduction operation maximum/At least one slice along `axis` has zero lengthinvalid value encounteredz-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   r0   r1   r:   sizeaxis)
rangenponesnan	enumeratepermutationrandomreshapemoveaxisappend)	n_samplesn_repetitionsr{   rngpaireddatai
n_patternsn_obsrI   jsampleskn_realsindices	new_shaper   r   r   _mixed_data_generator   s"    
r   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 )Nrw   r0   r1   r|   )r}   r~   r   r   r   r   r   )r   r   r{   r   r   all_nansr   r   r   shaperI   r   r   r   _homogeneous_data_generator   s   r   raise	n_outputs
nan_policyr   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 )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   r0   c                    s   g | ]}|   qS r   r   r   nan_maskr   r   r     rU   r(   )r~   anyr   
ValueErroroverride_propagate_funcsfullr   
logical_or)
hypotestdata1dunpackerr   r   r   r(   r    kwdsr   r   r   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   r   r   r   r   )r   r   r   r{   )r0   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   r   r   r   r   r{   r   r   r   r   test_axis_nan_policy_fast  s
   
r   z1ignore:Degrees of freedom <= 0 for:RuntimeWarning)r   
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   rB   r   r   r   r   e     z'_axis_nan_policy_test.<locals>.unpackerr   r:   )r   r   r{   r   r   r   rv   r   r1   Tr   Fc                    s   g | ]	}t | d qS r|   )r~   r   r   rz   r   r   r         z)_axis_nan_policy_test.<locals>.<listcomp>c                    s$   g | ]}t | |jd  g qS r   )r~   broadcast_tor   r   )output_shaper   r   r         c                    s   g | ]}|  qS r   r   r   )r   r   r   r         c                 S   s   g | ]	}t | qS r   )r~   r   r   r   r   r   r   r     r   r   r   matchr   r   c                       g | ]	}t  |qS r   str
startswithr   msgea_strr   r   r     r   r   V瞯<rtolr|   r{   r   >   r   r   g+=r   )r~   r   default_rngr   r   zerosndenumerater   r   raisesr   r   RuntimeWarningZeroDivisionErrorr   too_small_messagesr   r   too_small_special_case_funcswarnsr
   r   testingsuppress_warningsfilterr   r   r   )r   r    r   r   r   r   r   r   r{   r   r   r   data_gen_kwdsinherent_sizer   data_bres_1d_r   contains_nanmessageres_1daear   supres_1dbres_ndr   )r{   r   r   r   r   r   ]  s   

	


 

 r   )r   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   rB   r   r   r   r     r   z3test_axis_nan_policy_axis_is_None.<locals>.unpackerr   r   c                       g | ]}  d qS ))r1   r   r   r   r   r   r   r   r     rU   z5test_axis_nan_policy_axis_is_None.<locals>.<listcomp>c                    r   )r1   rw   r   r   r   r   r   r     rU   r   c                    s   g | ]	}  d dkqS )r   g?r   r   r   r   r   r     r   r   c                 S   s   g | ]}|t j qS r   )r~   r   r   r   r   r   r     rU   c                 S      g | ]}|  qS r   ravelr   r   r   r   r     r   r   >   r   r   r   r   r   error)NNNTr   r   c                    r   r   r   r   r   r   r   r   !  r   ignorer   r   )r~   r   r   r}   zipr   r   r   r   warningscatch_warningssimplefilterr   r   r   r   r
   r   r   r   r   r   listr   
issubdtypedtypenumberisscalar)r   r    r   r   r   r   r   r   r   r   masksr   maskdata_raveledr   eb_strec_strres1dar   res1dbebres1dcecok_msgdesired_warningsall_resultsitemr   )r   r   r   !test_axis_nan_policy_axis_is_None  s   	

	


 "

 

r  zignore::UserWarningzignore::RuntimeWarning)r   r   )sample_shape
axis_cases))r1   r:   r:   rP   )Nr   r|   )r   r1   )r0   r|   )r:   r0   r1   r   ))
   )r   r|   ))rw   r   r   r0   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   rB   r   r   r   r   W  r   ztest_keepdims.<locals>.unpackerr   c                    s   g | ]}  qS r   r   r   r   r   r  r   r   r   Z  rU   z!test_keepdims.<locals>.<listcomp>c                 S   r   r   )copyr   r   r   r   r   [  r   c                    s   g | ]	}  d k qS )皙?r   r  r  r   r   r   \  r   r0   T)r{   keepdimsF)r{   r  r   rz   gؗҜ<)atol)r   skewtestkurtosistest
normaltestdifferential_entropyr   r   r~   r   r   r}   r   r   r   r   len
isinstanceintrY   r   squeezer   )r   r    r   r   r   r   r   r  r  r   small_sample_raisesr   nan_datar   r   r  r{   expected_shapeaxr   res_basenan_resnan_res_baserr_basern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   )r   xir   r   r   r     r   z5test_hypotest_back_compat_no_axis.<locals>.<listcomp>)r~   r   r   r   )	r.  r/  mnr   rI   r   res2res3r   r   r   !test_hypotest_back_compat_no_axis  s   
r7  r   r0   r1   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)r0  r1  r  r   Tz	two-sidedrz   z6mannwhitneyu() got multiple values for argument 'axis'r   )r~   r   r   r   mannwhitneyur   r   r   	TypeErrorreescape)r{   r   r   rI   yres1r5  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r:   r0  r1  r  r   r   r   r   r   z6kruskal() got an unexpected keyword argument 'samples'r   )r   r   )r~   r   r   r   r   r   r   r   r:  r;  r<  )r   r   rI   r   r   r   r   .test_axis_nan_policy_decorated_positional_args  s   


"rB  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)r1   r0  r1  r  r   rA  r0   )rI   r=  z/mannwhitneyu() got multiple values for argumentr   )r~   r   r   r   r   r9  r   r   r   r:  r;  r<  )r   r   rI   r>  r5  r   r   r   r   .test_axis_nan_policy_decorated_keyword_samples  s   



"rC  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   rB   r   r   r   r     r   z8test_axis_nan_policy_decorated_pickled.<locals>.unpackerr1      rx   r{   r|   g-q=r   )__name__r   r   r~   r   r   uniformpickledumpsloadsr   )r   r    r   r   r   r   r   r   r   pickled_hypotestunpickled_hypotestr>  r5  r   r   r   &test_axis_nan_policy_decorated_pickled  s   



  rL  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   r8  Mean of empty slice.ru   r   rz   )r}   r   r  r~   r   r   _axis_nan_policy_check_empty_inputsr   r   r   r   meanr   )r   combor{   r   outputr   	referencer   r   r   test_check_empty_inputs  s$   rU  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)r   arrr   r   r   r      s    z/_check_arrays_broadcastable.<locals>.<listcomp>r   r0   FT)maxr}   setrW  r   addr  )arraysr{   n_dimsdimdim_lengthsrX  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   r0   r   rB   r   r   r   rC      rF   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 )Nr8  )r   r~   r   )r]  r   rR  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]  rb  r   r   r   ,  r   z<test_empty.<locals>.small_data_generator.<locals>.<listcomp>)r}   r   )r   r]  gensr   rc  r   small_data_generator"  s   z(test_empty.<locals>.small_data_generatorr0   r1   r:   c                 s   s    | ]}|j d kV  qdS )r   Nrx   r   r   r   r   	<genexpr>3  s    ztest_empty.<locals>.<genexpr>c                 s   s    | ]}|j V  qd S r   rV  r   r   r   r   rg  6  s    )r   rN  ru   rz   r   r0   r   r{   zall input arrays have length 1/Array shapes are incompatible for broadcasting.)!r   r   friedmanchisquarer   r   r   r   r   rY  r}   r+   _broadcast_concatenater~   r   r   r   r   rQ  r   empty_special_case_funcsr  asarrayr   ry   r   r   r   r   r
   r   r   r`  r   )r   r    r   r   r   r   r   ra  re  r]  r   max_axisr{   concatr   expected	empty_valr  r   r   r   r   r   r   
test_empty  sx   

"


rq  c            	      c   sD    t jd} tD ]}|\}}}}}}}|dkrq	|| f V  q	d S )Nl   T;]L r0   )r~   r   r   axis_nan_policy_cases)	r   caser   r    r   r   r   r   r   r   r   r   paired_non_broadcastable_casesj  s   rt  )r   r    r   r   r   r   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 )r1   d   rx   )r   integersr   r   r   r   r   }  r   z*test_non_broadcastable.<locals>.<listcomp>rz   rh  r   r1   r  rx   c                    s   g | ]} j d qS )rx   r   r   r   r   r   r   r     s    r0   )r}   r`  r   r   r   rv  r   r   )r   r    r   r   r   r   r   r   r{   get_samplesr   r   most_samplesother_sampler   rw  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      ?)r:   rP   r0   )rP   rM  r1   )rM  rv   r:   r0  rL   rv   )r~   r   seedrandmamasked_arrayfinfofloat64rY  	nextafterinfr   r	   r   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 )Nr0   r1   r   )r0   r1   r0   r   r0   r   )r   r  r   r   r   r   r|   Tr  z7This function replaces masked elements with sentinel...r   rf  )r  r   )r~   iinfoint16rY  r  
complex128arrayr  int8r	   r   r   r  MaskedArrayminarange
zeros_likeboolr   r   r   float32r   gmean)max16max128cabcr  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)               )rw   r|     r}  rw   r|  r  r}  r   )r   )rw   r|  r    r}  )FFFTFr  r  )FFFFTF)FFFTTFr   r   )r   r9  r~   r   r   r  r  r  )malesfemalesr   females2r5  females3mask3r6  females4mask4res4females5mask5res5res6r   r   r   test_masked_stat_1d  s.   r  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   r:   rP   rM  r0   皙?)FFFTr  r   r   r{   rz   )r~   r   r~  r  r  r  r  r   r   r   r   r  )r{   r  r  r  mask_amask_ca_maskedc_maskeda_nansc_nansr   r5  r   r   r   test_masked_stat_3d  s   

r  c                  C   s  d\} }d}t jd t j| |}t j| |}t j| |dk }t j| |dk }t j| |dk }t j| |dk }d|dd d f< | }	| }
t j|	||B < t j|
||B < t jj||d	}t jj||d	}t j||< t j||< t jj||d	}t jj||d	}t j||< t j||< t jj|||B d	}t jj|||B d	}tj	|	|
d
|d}tj	||d
|d}tj	||d
|d}tj	||d|d}tj	||d|d}t j
|| t j
|| t j
|| t j
|| d S )Nr:   rw   r|   r   r  r  333333?Tr1   r  r   r  r   r   )r~   r   r~  r  r  r   r  r  r   wilcoxonr   r  )r3  r4  r{   r  r  mask_a1mask_a2mask_b1mask_b2r  b_nans	a_masked1	b_masked1	a_masked2	b_masked2	a_masked3	b_masked3r   r>  r5  r6  r  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 )Nr0   r1   rf  r:   )r0   r   r0   r  r0   r0   r0   r  r  rP   rM  rv   r   r|   r  r   )
r~   r   r  r  r   ranksumsr   r   r   r  )	r  r  r  r  ref1ref2r   stat_ref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   r{   r8  )r~   r   r   r   r   r   r  )r   r   rI   r   r5  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   )rM  r0   )r0   rM  rz   r  )r~   r   r   broadcast_arraysr   r9  r   )	r   rI   r=  x2y2res0r>  r5  r6  r   r   r   )test_axis_None_vs_tuple_with_broadcasting  s   

r  )r0   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  )r0   rv   c                 S   s    g | ]}|d kr
|nd| qS )r   r:   r   r   r   r   r   r     s     z*test_other_axis_tuples.<locals>.<listcomp>z*`axis` must contain only distinct elementsr   rz   r|   r1   z0`axis` is out of bounds for array of dimension 3>   r   r0   r1   )r0   r0   rv   )r0   r1   r0   )r~   r   r   rY   sortedr  rZ  r   r   r   r;  r<  r   r9  nextiterr   r   r   r   r   r  )r{   r   shape_xshape_yrI   r=  axis_originalr   r   not_axisr  shape_y_broadcastedr  r3  r5  r   r   r   test_other_axis_tuples  sL   




r  zweighted_fun_name, unpackerr  c                 C   r   r   r   rH   r   r   r   rC         hmeanc                 C   r   r   r   rH   r   r   r   rC     r  pmeanc                 C   r   r   r   rH   r   r   r   rC     r  r8   c                 C   r@   r   )r   r   rH   r   r   r   rC     rD   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 )Nr  c                 [   s   t j| fddi|S )NpgzG?)r   r  )r  r!   r   r   r   weighted_fun  s   z6test_mean_mixed_mask_nan_weights.<locals>.weighted_func                     s    | i |S r   r   r-   r   r  r   r   func  s   z.test_mean_mixed_mask_nan_weights.<locals>.funcr  r|   l    rx   r  r  r  Tr1   r  ru   r   )r2   r   r{   r   r   )getattrr   r~   r   r   rF  r  r   r  r  r   r   r   r   r  )weighted_fun_namer   r  r3  r4  r{   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r>  r5  r6  r  r   r  r    test_mean_mixed_mask_nan_weights  sR   





	r  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   rf  T)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    
"r  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   )_x_dtype)selfrI   r   r   r   r   __init__<  s   
z/test_array_like_input.<locals>.ArrLike.__init__Nc                    s   t j | jdS )Nr  )r~   rl  r  )r  r   r  rH   r   r   	__array__@  s   z0test_array_like_input.<locals>.ArrLike.__array__)NN)rE  
__module____qualname__r  r  r   rH   r   r   ArrLike;  s    r	  r0   r1   )r:   rP   rM  r  )r   r>   rM   )r   r	  r   r   rH   r   test_array_like_input6  s
   r
  )F)FT)	itertoolsr   r   r   osr;  rG  r   r   numpyr~   numpy.testingr   r   scipyr   scipy.statsr   scipy.stats._axis_nan_policyr	   r
   r   r   r   r   scipy._lib._utilr   scipy.conftestr   r   environgetr   r   r%   r.   r3   r5   r9   r   rY   dictr  r9  r  r  r  r  semiqrkurtosisskewkstatkstatvarmomentjarque_berattest_1sampr  	ttest_rel	ttest_indr>   r  	variationri  brunnermunzelmoodshapiroks_1sampcdfks_2sampkstestlevenefligneransarientropyr  r  r  cramervonmisesr   epps_singleton_2sampbartletttmeantvartmintmaxtstdtsemcircmeancircvarcircstdf_onewayalexandergovernr8   lmomentchatterjeexirr  r   inaccuracy_messagesr   rk  r   r   r   r   markfilterwarningsparametrizer   r}   r   r   r  r-  r7  r?  rB  rC  rL  rU  r`  slowrq  rt  r{  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  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
#



/
*


.




	;