o
    e                      @   s  d dl mZmZmZ d dlZd dlZd dlZd dlZd dl	m
Z
mZmZ d dlmZ d dlmZ dd Zdd	 Zeje e d
dddfejde ddddfeje ddiddddfejdddiddddd feje e ddddd feje ddidd
ddd feje e ddddd feje e ddddd fejde ddddd feje e ddddd feje e ddddd feje e dddd d feje e dddd!d fej e e dddd"d fej!e e dddd#d fej"e e dddd$d fej"e eddgd%ddddfej#e e ddddfej$e%d gfe dd&defej&e e dd&defej'e e dd&defeej$d'e 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d(d fgZ)h d)Z*d*d+hZ+ej(hZ,	dd,d-Z-	dd.d/Z.dd0ddd1d2d3Z/ej01d4ej01d5ej02d6e)ej02d7d8ej02d9d:ej02d;d<d=d> Z3ej0j4ej01d4ej01d5ej02d6e)ej02d7d8ej02d9e5d?d
ej02d;d@dAdB Z6dCdD Z7ej01d4ej02d6e)ej02d7d8ej02d;dEdFdG Z8ej02d7dHej02dIeje e ddJd feje ddiddffej02dKdLdMdN Z9ej02dOej dfej!dfgdPdQ Z:ej02d9dRdSdT Z;dUdV Z<dWdX Z=ej02d6e)dYdZ Z>d[d\ Z?d]d^ Z@ej0j4ej02d6e)d_d` ZAdadb ZBdcdd ZCdedf ZDej02d9e5d?d
dgdh ZEdidj ZFdkdl ZGdmdn ZHdodp ZIej02d9eJee5d?d
ddqg drds ZKej02dtg dudvdw ZLdxdy ZMej02dzeJejNd{ ejNd|  ejNd}  d~d ZOdS )    )productcombinations_with_replacementpermutationsN)assert_allcloseassert_equalsuppress_warnings)stats) _masked_arrays_2_sentinel_arraysc                 C   s(   |   \}}| j| j| j| j| j||fS N)confidence_interval	statisticpvaluedf_standard_error	_estimate)reslowhigh r   U/var/www/myenv/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         F)lessmethod
asymptotic)prattmodeautoTc                 C      | j | jfS r
   r   r   r   r   r   r   <lambda>(       r(      c                 C   r%   r
   r&   r'   r   r   r   r(   *   r)   approxc                 C   s   | j | j| jfS r
   )r   r   
zstatisticr'   r   r   r   r(   ,       c                 C      | fS r
   r   xr   r   r   r(   -       c                 C   r.   r
   r   r/   r   r   r   r(   .   r1   )gQ?c                 C   r.   r
   r   r/   r   r   r   r(   /   r1   c                 C   r.   r
   r   r/   r   r   r   r(   0   r1   c                 C   r.   r
   r   r/   r   r   r   r(   1   r1   c                 C   r.   r
   r   r/   r   r   r   r(   2   r1   c                 C   r.   r
   r   r/   r   r   r   r(   3   r1   c                 C   r.   r
   r   r/   r   r   r   r(   4   r1   c                 C   r.   r
   r   r/   r   r   r   r(   5   r1   c                 C   r.   r
   r   r/   r   r   r   r(   6   r1   )moment   )r   c                 C   r%   r
   )r#   countr/   r   r   r   r(   @   r)   >   division by zeroMean of empty sliceThe input contains nanData input must not be emptyNot enough test observationsNot enough other observationsData must be at least length 3!Degrees of freedom <= 0 for slice!x and y must contain at least two$At least one observation is required$The sample must contain at least two$`x` and `y` must be of nonzero size.'x and y should have at least 5 elements)Data passed to ks_2samp must not be empty+The exact distribution of the Wilcoxon test.zero-size array to reduction operation maximumz-Precision loss occurred in moment calculation/Sample size too small for normal approximation.c              	   C   s  g }t | D ]z}d}|rdnd| }t|||ftj }	t |D ]<}
|	|
d d d d f }tdddd|d |gD ]\}}||d | }|j|d|||f< q:|j|dd|d d < q!|gdg|   |g }d|d| < |	|}	t|	d	|}	|	|	 q|S )
N      r   r*   r   r   sizeaxis)
rangenponesnan	enumeratepermutationrandomreshapemoveaxisappend)	n_samplesn_repetitionsrK   rngpaireddatai
n_patternsn_obsr0   jsampleskn_realsindices	new_shaper   r   r   _mixed_data_generator_   s"    
re   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 )NrG   r*   r   rL   )rM   rN   rO   rP   rS   rU   rV   )rW   rX   rK   rY   rZ   all_nansr[   r\   r^   shaper0   r   r   r   _homogeneous_data_generator   s   rh   raise	n_outputs
nan_policyrZ   _no_decoc          
         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 )Nri   The input contains nan values	propagateomitc                 S   s   g | ]
}|t |  qS r   )rN   isnan.0sampler   r   r   
<listcomp>   s    z!nan_policy_1d.<locals>.<listcomp>r   r*   c                    s   g | ]}|   qS r   r   rr   nan_maskr   r   ru          rm   )rN   anyrq   
ValueErroroverride_propagate_funcsfullrP   
logical_or)
hypotestdata1dunpackerrk   rl   rZ   rm   r   kwdsrt   r   rv   r   nan_policy_1d   s*    r   zignore::RuntimeWarningzignore::UserWarning)r~   r   r   rW   rk   rZ   r   rl   )ro   rp   ri   rK   )r*   data_generator)mixedc
           
      C      t | |||||||||	
 d S r
   _axis_nan_policy_test
r~   r   r   rW   rk   rZ   r   rl   rK   r   r   r   r   test_axis_nan_policy_fast   s   
r   )rf   
all_finiter   c
           
      C   r   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 }t }t |D ]=\}fdd|D }t jddd z<t| ||g|R |||d
d|}|| g ||R d|i|}t	|d |d  t
|d	krt	|d |d  W n ttttfy  ztjtttd t| ||g|R |||d
d| W d    n1 sw   Y  tjtttd | g ||R d|i| W d    n	1 s(w   Y  tfddtD rAt |t j}n?tfddtD r~t $}|t |t t| ||g|R |||d
d|}W d    n	1 sxw   Y  nW Y d nd ww W d    n	1 sw   Y  |d |< t
|d	kr|d |< qp|dkr|	dksd}tjt|d | g ||R  |d| W d    d S 1 sw   Y  d S t =}t jddd% |td |td || g ||R  |d|}W d    n	1 sw   Y  W d    n	1 s)w   Y  t|d |dd t	|d j|j t
|d	kr[t|d |dd t	|d j|j d S d S )!Nc                 S      | S r
   r   r'   r   r   r   r         z'_axis_nan_policy_test.<locals>.unpackerr   r   )rW   rX   rK   rY   rZ   r   rF   rf   r   Tr   Fc                    s   g | ]	}t | d qS rL   )rN   rU   rr   rJ   r   r   ru          z)_axis_nan_policy_test.<locals>.<listcomp>c                    s$   g | ]}t | |jd  g qS r   )rN   broadcast_torg   rr   )output_shaper   r   ru      s    c                    s   g | ]}|  qS r   r   rr   )r\   r   r   ru          ignoredivideinvalidrj   rl   r*   matchc                       g | ]	}t  |qS r   str
startswithrs   messageer   r   ru   !      c                    r   r   r   r   r   r   r   ru   $  r   ri   rn   rK   rl   z!Precision loss occurred in momentrE   gV瞯<rtolr   )rN   rS   default_rngre   rh   zerosndenumerateerrstater   r   lenRuntimeWarningUserWarningrz   ZeroDivisionErrorpytestraisestypereescaper   ry   too_small_messagesr|   rP   inaccuracy_messagesr   filterr   dtype)r~   r   r   rW   rk   rZ   r   rl   rK   r   rY   rX   data_gen_kwdsinherent_sizer[   data_b
statisticspvalues_r   res1dres1dbsupr   r   r   )rK   r   r\   r   r   r      s   








	1 $

 r   )rf   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 d\ }}t j	ddd zt
| ||g|R |||dd|}W n tttfy } z
t| W Y d }~nd }~ww z|| g ||R d|i|}W n tttfy } z
t|}W Y d }~nd }~ww z|| g |	|R d |d|}W n tttfyF } z
t|}W Y d }~nd }~ww  sP|sP|rot fddtD s^J  |  krk|ksnJ  J n%t|| t|| t|t| t| D ]}t |jt jsJ qW d    d S W d    d S 1 sw   Y  d S )Nc                 S   r   r
   r   r'   r   r   r   r   X  r   z3test_axis_nan_policy_axis_is_None.<locals>.unpackerr   r   c                       g | ]}  d qS ))r   r   rS   rs   r\   rY   r   r   ru   ^  rx   z5test_axis_nan_policy_axis_is_None.<locals>.<listcomp>c                    r   )r   rG   r   r   r   r   r   ru   `  rx   r   c                    s   g | ]	}  d dkqS )r   g?r   r   r   r   r   ru   c  r   rf   c                 S   s   g | ]}|t j qS r   )rN   rP   rr   r   r   r   ru   g  rx   c                 S      g | ]}|  qS r   ravelrr   r   r   r   ru   i  r   ri   >   r   r   rn   r   r   )NNNr   r   Trj   rl   c                    r   r   r   r   )ea_strr   r   ru     r   )rN   rS   r   rM   ziprP   r   r   rz   r   r   r   r   r   ry   r   r   list
issubdtyper   number)r~   r   r   rW   rk   rZ   r   rl   r   r[   masksrt   maskdata_raveledr   eb_strec_strres1daear   ebres1dcecitemr   )r   rY   r   !test_axis_nan_policy_axis_is_NoneL  s   "
	
"

$r   )rp   ro   )r~   r   r   rW   r   c                 C   r.   r
   r   r/   r   r   r   r(     r1   )sample_shape
axis_cases)))r   r   r      )Nr   rL   )r   r   )r*   rL   )r   r*   r   r   ))
   )r   rL   ))rG   r   r   r*   c                    s  |sdd }t jd  fddt|D }dd |D }	 fddt|D }
t|	|
D ]	\}}t j||< q0|D ]}t}|d u rNt t}nt	|t
rXd||< n	|D ]}d||< qZt|}|| g ||R |d	d
|}|| g ||R |dd
|}|| g |	|R |d	|d|}|| g |	|R |d|d|}t||||D ],\}}}}|j|ksJ t j||d}t|| |j|ksJ t j||d}t|| qq<d S )Nc                 S   r   r
   r   r'   r   r   r   r     r   ztest_keepdims.<locals>.unpackerr   c                    s   g | ]}  qS r   r   rs   r   rY   r   r   r   ru     rx   z!test_keepdims.<locals>.<listcomp>c                 S   r   r   )copyrr   r   r   r   ru     r   c                    s   g | ]	}  d k qS )皙?r   r   r   r   r   ru     r   r*   T)rK   keepdimsF)rK   r   rl   rJ   )rN   rS   r   rM   r   rP   r   rO   r   
isinstanceinttuplerg   squeezer   )r~   r   r   rW   r   r   r   rl   r[   nan_datarw   rt   r   rK   expected_shapeaxr   res_basenan_resnan_res_baserr_basernrn_baser   r   r   test_keepdims  sZ   



r   )funnsampc           	      C   sd   d\}}t jd}||||f}| | }| |ddi}| dd |D }t|| t|| d S )N)   	   r   rm   Tc                 S   r   r   r   )rs   xir   r   r   ru     r   z5test_hypotest_back_compat_no_axis.<locals>.<listcomp>)rN   rS   r   r   )	r   r   mnrY   r0   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-sidedrJ   z6mannwhitneyu() got multiple values for argument 'axis'r   )rN   rS   r   r   mannwhitneyur   r   r   	TypeErrorr   r   )rK   rg   rY   r0   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r   r   r   r   r   r   r   r   r   z6kruskal() got an unexpected keyword argument 'samples'r   )r`   r`   )rN   rS   r   rP   r   kruskalr   r   r   r   r   )rg   rY   r0   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*   )r0   r   z/mannwhitneyu() got multiple values for argumentr   )rN   rS   r   rP   r   r   r   r   r   r   r   r   )rg   rY   r0   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      rH   rK   rL   g-q=r   )__name__r   skiprN   rS   r   uniformpickledumpsloadsr   )r~   r   r   rW   rk   rZ   r   rY   r[   pickled_hypotestunpickled_hypotestr  r   r   r   r   &test_axis_nan_policy_decorated_pickled!  s   



  r  c                  C   s   t dD ]V} tg d| D ]L}t t|D ]C}t|f}tj||}|d urXtj	 }|
td |
td |d j|d}W d    n1 sLw   Y  tj|| qqqd S )N   r   Mean of empty slice.invalid value encounteredr   rJ   )rM   r   r   rN   r   r   _axis_nan_policy_check_empty_inputstestingr   r   r   meanr   )r\   comborK   r`   outputr   	referencer   r   r   test_check_empty_inputs8  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)rs   arrr   r   r   ru   \  s    z/_check_arrays_broadcastable.<locals>.<listcomp>r   r*   FT)maxrM   setr  rg   addr   )arraysrK   n_dimsdimdim_lengthsr  r   r   r   _check_arrays_broadcastableN  s   
r'  c                 C   s  | t v rd}tj|d |d u rdd }dd }ddg}	|||	D ]}
td	d
 |
D s-q!tdd
 |
D }t| |D ]}zTtj|
|}t	j
 }|td |td t	j||dt	j }W d    n1 slw   Y  | g |
|R d|i|}||}t|D ]	}t|| | qW q< ty   t|
|rJ d}tjt|d tj|
| W d    n1 sw   Y  tjt|d | g |
|R d|i| W d    n1 sw   Y  Y q<w q!d S )Nz4Doesn't follow the usual pattern. Tested separately.)reasonc                 S   s   | d | d fS )Nr   r*   r   r'   r   r   r   r(   z  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   rN   r   )r$  r\   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   ru     r   z<test_empty.<locals>.small_data_generator.<locals>.<listcomp>)rM   r   )rW   r$  gensr   r*  r   small_data_generator|  s   z(test_empty.<locals>.small_data_generatorr   r   c                 s   s    | ]}|j d kV  qdS )r   NrH   rr   r   r   r   	<genexpr>  s    ztest_empty.<locals>.<genexpr>c                 s   s    | ]}|j V  qd S r
   r  rr   r   r   r   r-    s    r  r  rJ   rK   z/Array shapes are incompatible for broadcasting.r   )r{   r   r
  ry   r   rM   r   	_stats_py_broadcast_concatenaterN   r  r   r   r   r  rP   r   rz   r'  r   )r~   r   r   rW   rk   rZ   r   r(  r,  r$  r`   max_axisrK   concatr   expectedr   r\   r   r   r   r   
test_emptyo  sJ   r3  c                  C   s
  t jd t jddd} t jd}| dk }t j| |} t t jj}t 	|t j
 }t 	|t j
 }t j| d< t j
| d< || d< t j|d	< t j
|d
< ||d< t| |g\}}|\}}	||krf||kshJ ||ksnJ | j}
||
| j< t j||
 |	|u sJ d S )Nr   r         g      ?)r   r   r*   )r   r  r   )r  rF   r   r   r3   rF   )rN   rS   seedrandmamasked_arrayfinfofloat64r   	nextafterinfrP   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,   




rI  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   rL   Tr   z7This function replaces masked elements with sentinel...r   r*   r   r   )r   r   )rN   iinfoint16r   r:  
complex128arrayr8  int8r	   r   r   r   MaskedArrayminarange
zeros_likeboolr   r   rz   float32r   gmean)max16max128cabcrD  rE  a_outb_outc_outmin8max8mask1mask0a1a0r   r   r   r   test_masked_dtype  sF   ri  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)               )rG   r4     r5  rG   r4  ro  r5  rp   )rl   )rG   r4  ro    r5  )FFFTFrM  rp  )FFFFTF)FFFTTFro   ri   )r   r   rN   rP   r  r>  r8  r9  )malesfemalesr   females2r   females3mask3r   females4mask4res4females5mask5res5res6r   r   r   test_masked_stat_1d  s.   r}  c                 C   s   t jd t jddd}t jdd}t jdd}|dk }g d}t jj||d}t jj||d}| }t j||< | }	t j|	|< tj	|||	d	| d
}
tj	|||| d}t j
|
| d S )Nr   r   r   r  r*   皙?)FFFTrM  rp   rl   rK   rJ   )rN   rS   r6  r7  r8  r9  r   rP   r   r  r  r>  )rK   r]  r^  r_  mask_amask_ca_maskedc_maskeda_nansc_nansr   r   r   r   r   test_masked_stat_3d1  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   rG   rL   r   r   r~  333333?Tr   rM  rp   r  ri   ro   )rN   rS   r6  r7  r   rP   r8  r9  r   wilcoxonr  r>  )r   r   rK   r]  r^  mask_a1mask_a2mask_b1mask_b2r  b_nans	a_masked1	b_masked1	a_masked2	b_masked2	a_masked3	b_masked3r   r  r   r   rx  r   r   r   test_mixed_mask_nan_1H  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   rN  r   )r*   r   r*   rL  r*   r*   r*   rK  rM  r   r  rF   rp   rL   r  ro   )
rN   rP   r8  r9  r   ranksumsr   r   r  r>  )	r]  r   r  r^  ref1ref2r   stat_refp_refr   r   r   test_mixed_mask_nan_2w  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   rK   r   )rN   rS   r   r   r  r  r>  )rg   rY   r0   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  rJ   r   )rN   rS   r   broadcast_arraysr   r   r   )	rY   r0   r   x2y2res0r  r   r   r   r   r   )test_axis_None_vs_tuple_with_broadcasting  s   

r  )r*   c                 C   s  t jd}d}d}||}||}| }tdd | D } t| } tt| t| krUd}tjt j	t
|d tj|||d W d    d S 1 sNw   Y  d S | d dk sa| d	 d
krd}tjt j	t
|d tj|||d W d    d S 1 sw   Y  d S tj|||d}h dt|  }	tt|	}	|}
g d}||	 ||	< t ||}|
j|	 }t |
| d}
t || d}t |
|d	f}
t ||d	f}tj|
|dd}t j|| d S )Nr   r  )r*   rF   c                 S   s    g | ]}|d kr
|nd| qS )r   r   r   r   r   r   r   ru     s     z*test_other_axis_tuples.<locals>.<listcomp>z*`axis` must contain only distinct elementsr   rJ   rL   r   z0`axis` is out of bounds for array of dimension 3>   r   r*   r   )r*   r*   rF   )r*   r   r*   )rN   rS   r   r   sortedr   r!  r   r   	AxisErrorr   r   r   r   nextiterr   rg   rU   rT   r  r>  )rK   rY   shape_xshape_yr0   r   axis_originalr   r   not_axisr  shape_y_broadcastedr  r   r   r   r   r   test_other_axis_tuples  sL   




r  weighted_fun_name)rZ  hmeanpmeanc                  C   s  | dkr	dd }nt t| }d\}}d}tjd}|j||fd}|j||fd}|j||fddk }|j||fdd	k }	|j||fdd
k }
|j||fdd
k }d|dd d f< | }| }tj|||	B < tj||
|B < tjj	||d}tjj	||
d}tj||	< tj||< tjj	||	d}tjj	||d}tj||< tj||
< tjj	|||	B d}tjj	||
|B d}||	B |
B |B }tjj	||d}tjj	||d}tj
 K}d}|t| |||d|d}|||d|d}|||d|d}|||d|d}|||d|d}| dvrt tj| }||||dd}W d    n	1 s$w   Y  tj
|| tj
|| tj
|| tj
|| | dvr[tj
| |t|   d S d S )Nr  c                 [   s   t j| fddi|S )NpgzG?)r   r  )r]  r   r   r   r   weighted_fun  s   z6test_mean_mixed_mask_nan_weights.<locals>.weighted_funr  rL   l    rH   r   r~  r  Tr   rM  r  rp   )weightsrl   rK   ri   ro   >   rZ  r  )r  rK   rm   )getattrr   rN   rS   r   r  r   rP   r8  r9  r  r   r   r   mstatsr>  r   
compressedrq   ) r  r  r   r   rK   rY   r]  r^  r  r  r  r  r  r  r  r  r  r  r  r  mask_all	a_masked4	b_masked4r   r   r   r  r   r   rx  weighted_fun_mar{  r   r   r    test_mean_mixed_mask_nan_weights  s|   







"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   rN  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   rZ  float)r   r   r   r   test_raise_invalid_args_g177139  s    
"r  r   FloatIntegerComplexc                    sT   G  fddd}dgd g d t |}|jdks!J |jdks(J d S )Nc                       s"   e Zd Zdd Z fddZdS )z&test_array_like_input.<locals>.ArrLikec                 S   s
   || _ d S r
   )_x)selfr0   r   r   r   __init__W  s   
z/test_array_like_input.<locals>.ArrLike.__init__c                    s   t j dS )NrJ  )rN   asarray)r  r   r0   r   r   	__array__Z  s   z0test_array_like_input.<locals>.ArrLike.__array__N)r	  
__module____qualname__r  r  r   r  r   r   ArrLikeV  s    r  r*   r   )r   r   r  )r   r#   r4   )r   r  r   r   r  r   test_array_like_inputM  s
   	r  )F)FT)P	itertoolsr   r   r   r   r  r   numpyrN   numpy.testingr   r   r   scipyr   scipy.stats._axis_nan_policyr	   r   r   r  r   dictr  r   r  rZ  r  r  semiqrkurtosisskewkstatkstatvarr2   jarque_berattest_1samprR  	ttest_rel	ttest_indr#   axis_nan_policy_casesr   r   r{   re   rh   r   markfilterwarningsparametrizer   slowrM   r   r   r   r   r   r  r  r  r  r  r'  r3  rI  ri  r}  r  r  r  r  r  r   r  r  r  	typecodesr  r   r   r   r   <module>   s"  %
(

 



xR+


!@#9#
/*

.
K
