o
    Ö­j’0  ã                   @   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mZ d dlmZ d dlmZ d0d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.d/„ Z*dS )1é    N)Úassert_allcloseÚassert_equal)Úraises)Úgetfullargspec_no_selfÚnp_long)Úxp_assert_equal)ÚstatsFc                 C   sf   t |ƒD ],\}}|rt | | t| |ƒ¡ q|d ur%t| | t| |ƒƒ qt | | t| |ƒ¡ qd S ©N)Ú	enumerateÚma_nptr   Úgetattrr   Únpt)ÚresÚ
attributesÚmaÚxpÚiÚattr© r   ú[/var/www/html/CropPilot/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   ç      ð?Úrv_histogram_instance)çñhãˆµøä>r   )çH¯¼šò×z>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   
ÿr0   c                 C   s²   | j dg|¢R Ž }| j dg|¢R Ž }t |¡s#tj||d|d d� nt t |¡|dt|ƒ› � ¡ t |¡sItj|||  |d|d d� d S t t |¡|d|›� ¡ d S )	Nr   é   é
   z - 1st moment©Údecimalr#   z - 1st moment -infinite, m1=z - 2ndt momentz - 2nd moment -infinite, m2=)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)r3   )r5   Úisfiniter&   r   r7   )r)   r:   r;   r=   r>   r   r   r   Úcheck_mean_expect>   s   


ÿþrC   c                 C   sZ   ddh}||v rddini }t  |¡r+|  dd„ |¡}tj||||  fi |¤Ž d S d S )Nr   Úksoner"   gñhãˆµøÔ>c                 S   s   | |  S r	   r   r   r   r   r   r   I   ó    z"check_var_expect.<locals>.<lambda>)r5   rB   r&   r   r   )r)   r:   r;   r<   r=   Údist_looser_tolerancesÚkwargsr?   r   r   r   Úcheck_var_expectE   s   
 þrH   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é   ©r5   Úpowerr   ©r;   r   r   r   O   ó    z#check_skew_expect.<locals>.<lambda>g      ø?rA   z - skewr3   )r5   rB   r&   r   r7   rL   r8   Úisnan)r)   r:   r;   r<   Úsr=   Úm3er   rM   r   Úcheck_skew_expectM   s   

ÿrR   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                    rI   )Né   rK   r   rM   r   r   r   X   rN   z#check_kurt_expect.<locals>.<lambda>g      @r1   r   z - kurtosis©r!   r"   r#   )	r5   rB   r&   r   r   rL   Úisposinfr8   rO   )r)   r:   r;   r<   Úkr=   Úm4er   rM   r   Úcheck_kurt_expectV   s   

þ
ÿrX   c                 C   sj   | j jtjj kr3| jdg|¢R Ž }| jdd„ |tj tjd�}t |¡s&d S t	||dd|d d� d S d S )	NrA   c                 S   s   | d S )NrA   r   r   r   r   r   r   e   rE   z#check_munp_expect.<locals>.<lambda>)ÚlbÚubç»½×Ùß|Û=g-Cëâ6?z - higher moment / _munprT   )
Ú_munpÚ__func__r   Úrv_continuousr%   r&   r5   ÚinfrB   r   )Údistr    r=   r   Úrefr   r   r   Úcheck_munp_expect`   s   


ÿúrb   c                 C   s&   | j |Ž }t t |¡ |d ¡ d S )Nztest Entropy is nan)Úentropyr   r8   r5   rO   )r)   r:   r=   Úentr   r   r   Úcheck_entropym   s   
re   c                 C   s$   t  | j|Ž |j| g|¢R Ž ¡ d S r	   )r   r   Ú_entropy)r)   r    Ú
superclassr   r   r   Úcheck_private_entropyr   s   ÿrh   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   r1   rJ   rS   Úscalec                    ó   g | ]
}ˆj ˆ d |iŽ‘qS ©ri   ©rc   ©Ú.0rP   ©r:   r)   r   r   Ú
<listcomp>|   ó    z,check_entropy_vect_scale.<locals>.<listcomp>g›+¡†›„=)r!   )r   r1   éýÿÿÿc                    rj   rk   rl   rm   ro   r   r   rp   ƒ   rq   )r5   Úasarrayrc   ÚravelÚreshapeÚshaper   )r)   r:   ÚscÚv_entÚs_entr   ro   r   Úcheck_entropy_vect_scalex   s   rz   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Údlaplaceéÿÿÿÿr1   )r'   Ú
isinstancer   Úrv_discreter   r   r(   ÚsfÚnameÚlogcdfr5   r_   ÚlogsfÚppfÚisfr8   rO   Úall)r)   r    r   r   r   r   Úcheck_edge_supportˆ   s   

""(&*r‡   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rºt | 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   ©rn   Úmeth)Ú
shape_argsr   r   r   rp   ³   rq   z$check_named_args.<locals>.<listcomp>c                    s"   g | ]}|ˆgˆ ¢R i ˆ¤Ž‘qS r   r   r‹   )ÚarV   r   r   r   rp   ¹   s   " Únr   Úkaboomé*   )Ú_getfullargspecÚ_parse_argsr   r8   ÚvarargsÚvarkwÚ
kwonlyargsÚlistÚdefaultsr    ÚlenÚshapesÚreplaceÚsplitÚnumargsr5   r†   rB   ÚupdateÚpopÚassert_array_equalÚkeysr   r%   Úassert_raisesÚ	TypeErrorr(   )r)   r   r�   r˜   ÚmethsÚ	signatureÚshape_argnamesÚshapes_ÚvalsÚnamesr<   r   )rŽ   rV   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_stater1   )r¯   r5   Ú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tjtjtjfD ƒ}|D ])}| j|Ž  || j|k || jk @  }|D ]}||g|¢R Ž }t	 
|jtjk¡ q4qd S )N©ç      Ð?ç      à?ç      è?c                    ó   g | ]}ˆ   |¡‘qS r   ©Úastype©rn   Útp©Úx0r   r   rp   ñ   ó    z$check_meth_dtype.<locals>.<listcomp>)r„   r   r5   Úfloat16Úfloat32Úfloat64Ú	_argcheckrŽ   Úbr   r8   Údtype)r)   r:   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   rp   ÿ   rÉ   z#check_ppf_dtype.<locals>.<listcomp>)
r5   rs   rÊ   rË   rÌ   r„   r…   r   r8   rÏ   )r)   r:   Úq_castÚqrŒ   rÒ   r   rÔ   r   Úcheck_ppf_dtypeý   s   þÿr×   c                    sl  dd„ }| j g d¢g|¢R Ž ‰ ‡ fdd„t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 )Nr[   y              ð?)r5   rs   Úimag)Úfr   r:   Úhr   r   r   Úderiv  s   
z check_cmplx_deriv.<locals>.deriv)r¿   gR¸…ëQà?rÁ   c                    rÂ   r   rÃ   rÅ   rÇ   r   r   rp     rÉ   z%check_cmplx_deriv.<locals>.<listcomp>r   ©r"   )r„   r   r5   rÊ   rË   rÌ   rÍ   rŽ   rÎ   Úpdfr(   r€   r   r‚   rƒ   Úlogpdf)r)   r:   rÛ   rÑ   r   rÝ   r(   r€   r   rÇ   r   Úcheck_cmplx_deriv  s$   ÿ
:" $$þôrß   c                 C   sR  | 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 ||¡ t	| dƒr¤| j
}
t |
¡}t |¡}|
j|j  kr¡dks¤J ‚ J ‚|| _ d S )	Nr«   r¬   r­   rÀ   r   r   )r¬   Úfit)r¯   r²   ÚpickleÚdumpsÚloadsr   r   r„   r(   r´   rà   Ú__name__)r)   r    r¶   rP   r·   Ú	unpickledr¸   ÚmediansÚfrozen_distÚpklÚfit_functionÚpickled_fit_functionÚunpickled_fit_functionr   r   r   Úcheck_pickling"  s2   

$ÿ




 
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   r1   )Úlocri   rí   )r~   r   r^   rŽ   rÎ   )r)   r    ÚlocscaleÚrvr   r   r   Úcheck_freezingM  s   rð   c           	         sn   t j d¡ ˆ j|Ž }t|j||› d�ƒ |s5t j‡ fdd„|d�}t j d¡ ||Ž }t||dd� d S d S )Né{   z: rvs failed to broadcastc                     s
   ˆ j | Ž S r	   )r²   )Úallargs©Údistfuncr   r   r   _  s   
 z%check_rvs_broadcast.<locals>.<lambda>)Úotypesg‚vIhÂ%<=rÜ   )r5   r°   r±   r²   r   rv   Ú	vectorizer   )	rô   r*   rò   rv   Ú
shape_onlyÚotypeÚsampler²   Úexpectedr   ró   r   Úcheck_rvs_broadcastZ  s   
ürû   )FN)+rá   Únumpyr5   Únumpy.testingÚtestingr   r   r   Úpytestr   r¢   Únumpy.ma.testutilsr   Ú	testutilsr   Úscipy._lib._utilr   r’   r   Úscipy._lib._array_api_no_0dr   Úscipyr   r   r0   r@   rC   rH   rR   rX   rb   re   rh   rz   r‡   rª   r½   rÓ   r×   rß   rì   rð   rû   r   r   r   r   Ú<module>   s:    

	
')	+