o
    Ge+                     @   s   d dl Z d dlZd dlmZ d dlmZmZ d dlm	Z
 d dlm  mZ d dlmZ d dlmZ d-ddZd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Z d!d" Z!d#d$ Z"d%d& Z#d'd( Z$d)d* Z%d+d, Z&dS ).    N)assert_allcloseassert_equal)raises)getfullargspec_no_self)statsFc                 C   sH   t |D ]\}}|rt| | t| | qt| | t| | qd S N)	enumeratema_nptr   getattrnpt)res
attributesmaiattr r   h/var/www/html/SPIRAL.web.tool/spiral_venv/lib/python3.10/site-packages/scipy/stats/tests/common_tests.pycheck_named_results   s
   r   c           
      C   s   | j dg|R  }t|d |dkrd\}}nd\}}| jdd |d}tj|d|||d	d
 | j| \}}| j|g|R  }	t|	d d S )Nr         ?ncf)h㈵>r   )Hz>r   c                 S   s   dS )N   r   xr   r   r   <lambda>!       z%check_normalization.<locals>.<lambda>)argsT)atolrtolerr_msgverbose)momentr   r   expectsupportcdf)
distfnr   distnamenorm_momentr   r   normalization_expect_a_bnormalization_cdfr   r   r   check_normalization   s   
r-   c                 C   s   | j dg|R  }| j dg|R  }t|s#tj||d|d d ntt||dt|   t|sHtj|||  |d|d d d S tt||dt|   d S )	Nr      
   z - 1st momentdecimalr    z - 1st moment -infinite, m1=%sz - 2ndt momentz - 2nd moment -infinite, m2=%s)r"   npisinfr   assert_almost_equalassert_str)r&   argmvmsgm1m2r   r   r   check_moment*   s    


r=   c                 C   s8   t |r| dd |}tj||d|d d d S d S )Nc                 S   s   | S r   r   r   r   r   r   r   >   r   z#check_mean_expect.<locals>.<lambda>   z - 1st moment (expect)r0   r2   isfiniter#   r   r4   )r&   r7   r8   r:   r;   r   r   r   check_mean_expect<   s   
rA   c                 C   s@   t |r| dd |}tj||||  d|d d d S d S )Nc                 S   s   | |  S r   r   r   r   r   r   r   E   s    z"check_var_expect.<locals>.<lambda>r>   z - 2st moment (expect)r0   r?   )r&   r7   r8   r9   r:   r<   r   r   r   check_var_expectC   s   
rB   c                    sX   t |r"|  fdd|}tj||t |d d|d d d S tt | d S )Nc                       t |   dS )N   r2   powerr   r8   r   r   r   L       z#check_skew_expect.<locals>.<lambda>g      ?r>   z - skewr0   )r2   r@   r#   r   r4   rF   r5   isnan)r&   r7   r8   r9   sr:   m3er   rG   r   check_skew_expectJ   s   

rL   c                    sl   t |r%|  fdd|}tj||d t |d dd|d d d S t |s4tt | d S d S )Nc                    rC   )N   rE   r   rG   r   r   r   U   rH   z#check_kurt_expect.<locals>.<lambda>g      @r.   r   z - kurtosis)r   r   r    )	r2   r@   r#   r   r   rF   isposinfr5   rI   )r&   r7   r8   r9   kr:   m4er   rG   r   check_kurt_expectS   s   


rQ   c                 C   s&   | j | }tt| |d  d S )Nztest Entropy is nan)entropyr   r5   r2   rI   )r&   r7   r:   entr   r   r   check_entropy\   s   
rT   c                 C   s$   t | j| |j| g|R   d S r   )r   r   _entropy)r&   r   
superclassr   r   r   check_private_entropya   s   rW   c                    s   t ddgddgg}j d|i} fdd| D }t ||j}t||dd	 g d
}j d|i} fdd|D }t ||j}t||dd	 d S )Nr   r.   rD   rM   scalec                       g | ]
}j  d |iqS rX   rR   .0rJ   r7   r&   r   r   
<listcomp>k       z,check_entropy_vect_scale.<locals>.<listcomp>g+=)r   )r   r.   c                    rY   rZ   r[   r\   r^   r   r   r_   r   r`   )r2   asarrayrR   ravelreshapeshaper   )r&   r7   scv_ents_entr   r^   r   check_entropy_vect_scaleg   s   ri   c                 C   sJ  | j | }t| tjr|d d |d f}t| j|g|R  ddg t| j|g|R  ddg | jdvrZt| j	|g|R  t
j dg t| j|g|R  dt
j g t| jddgg|R  | t| jddgg|R  |d d d  tt
| jddgg|R    tt
| jddgg|R    d S )Nr   r   g        r   )skellamdlaplacer.   )r$   
isinstancer   rv_discreter   r   r%   sfnamelogcdfr2   inflogsfppfisfr5   rI   all)r&   r   r   r   r   r   check_edge_supportw   s   

""(&*rw   c                    s  t | j}t|jd u  t|jd u  t|j  tt|jt|k |j	d t
|  }| jr?| jdd }nd}tt
|| jk tt
|t
|k tfdd|D }ttt| |d d  d d  i }	 |	r|	   i  fdd|D }
t||
 d vrt| jdg R i | jdgR   |	sd	d
i tt| jfi  d S )N,  c                    s   g | ]
}|g R  qS r   r   r]   meth)
shape_argsr   r   r   r_      r`   z$check_named_args.<locals>.<listcomp>c                    s"   g | ]}|g R i qS r   r   r{   )arO   r   r   r   r_      s   " nr   kaboom*   )_getfullargspec_parse_argsr   r5   varargsvarkw
kwonlyargslistdefaultsr   lenshapesreplacesplitnumargsr2   rv   r@   updatepopassert_array_equalkeysr   r"   assert_raises	TypeErrorr%   )r&   r   r}   r   meths	signatureshape_argnamesshapes_valsnamesr9   r   )r~   rO   r}   r   r   check_named_args   s4   
 
r   c           	      C   s   | j }tjd d | _ | j|ddi}d| _ | j|ddi}t|| tjd| _ | j|ddi}t|| ttjdrOtj	d}| j|d|d d| _ | j 
 }| j|dtjdd}t|| t| j 
 | || _ d S )N  size   default_rngr   )r   random_stater.   )r   r2   randomseedrvsr   r   RandomStatehasattrr   	get_state)	r&   r   rndmr0r1r2rng
orig_stater3r   r   r   check_random_state_property   s&   

r   c                    s   g d}| j |g|R    fddtjtjtjtjfD }|D ])}| j|  || j|k || jk @  }|D ]}||g|R  }t	
|jtjk q5q d S )N      ?      ?      ?c                       g | ]}  |qS r   astyper]   tpx0r   r   r_          z$check_meth_dtype.<locals>.<listcomp>)rt   r2   int_float16float32float64	_argcheckr~   br   r5   dtypefloat_)r&   r7   r   q0x_castr   r|   valr   r   r   check_meth_dtype   s   

r   c                    sn   t g d  fddt jt jt jfD }|D ]}| j| jfD ]}||g|R  }t|j	t j
k q qd S )Nr   c                    r   r   r   r   r   r   r   r_      r   z#check_ppf_dtype.<locals>.<listcomp>)r2   rb   r   r   r   rt   ru   r   r5   r   r   )r&   r7   q_castqr|   r   r   r   r   check_ppf_dtype   s   r   c                    sn  dd }| j g dg|R    fddtjtjtjtjfD }|D ]}| j|  || j|k || jk @  }| j	|g|R  | j
|g|R  | j|g|R  }}}t|| j
|g|R  |dd t|| j|g|R  || dd t|| j|g|R  | dd t|| j|g|R  | | dd t|| j|g|R  || j	|g|R  | j	|g|R   dd q"d S )Nc                 W   s,   t |}d}| ||d  g|R  | jS )Ng|=y              ?)r2   rb   imag)fr   r7   hr   r   r   deriv   s   
z check_cmplx_deriv.<locals>.deriv)r   gRQ?r   c                    r   r   r   r   r   r   r   r_      r   z%check_cmplx_deriv.<locals>.<listcomp>r   r   )rt   r2   r   r   r   r   r   r~   r   pdfr%   ro   r   rq   rs   logpdf)r&   r7   r   r   r   r   r%   ro   r   r   r   check_cmplx_deriv   s$   

:" $$r   c           
      C   s  | j }d| _ | j|ddi t| }| j|ddi}t|}|j|ddi}t|| | jdg|R  |jdg|R  g}t|d |d  t| j|d g|R  |j|d g|R   | | }t|}	t|	}|jdd}|jdd}t|| || _ d S )Nr   r   r   r   r   r   )r   )	r   r   pickledumpsloadsr   r   rt   r%   )
r&   r   r   rJ   r   	unpickledr   mediansfrozen_distpklr   r   r   check_pickling  s(   

$


r   c                 C   sZ   t | tjrddd}nddi}| |i |}|j| | jks!J |j| | jks+J d S )Nr   r.   )locrX   r   )rm   r   rv_continuousr~   r   )r&   r   locscalervr   r   r   check_freezing5  s   r   c           	         sl   t jd  j| }t|j|d|  |s4t j fdd|d}t jd || }t||dd d S d S )N{   z%s: rvs failed to broadcastc                     s
    j |  S r   )r   )allargsdistfuncr   r   r   G  s   
 z%check_rvs_broadcast.<locals>.<lambda>)otypesgvIh%<=r   )r2   r   r   r   r   re   	vectorizer   )	r   r'   r   re   
shape_onlyotypesampler   expectedr   r   r   check_rvs_broadcastB  s   
r   )F)'r   numpyr2   numpy.testingtestingr   r   r   pytestr   r   numpy.ma.testutilsr   	testutilsr	   scipy._lib._utilr   r   scipyr   r   r-   r=   rA   rB   rL   rQ   rT   rW   ri   rw   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s6    
		')	$