U
    Q»{j<  ã                   @   s  d dl Z 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 d1d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/d0„ Z)dS )2é    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   ú]/var/www/html/bwave/python/venv/lib/python3.8/site-packages/scipy/stats/tests/common_tests.pyÚcheck_named_results   s    r   c           
      C   sŠ   | j d|žŽ }t |d¡ |dkr,d\}}nd\}}| jdd„ |d�}tj|d|||d	d
� | j|Ž \}}| j|f|žŽ }	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)r   )Úmomentr   r   ÚexpectÚsupportÚcdf)
Údistfnr   ÚdistnameZnorm_momentr   r   Znormalization_expectZ_aÚ_bZnormalization_cdfr   r   r   Úcheck_normalization   s    
 ÿr)   c                 C   s¨   | j d	|žŽ }| j d
|žŽ }t |¡s>tj||d|d d� nt t |¡|dt|ƒ  ¡ t |¡s†tj|||  |d|d d� n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   )r*   )r"   ÚnpÚisinfr   Úassert_almost_equalÚassert_Ústr)r&   ÚargÚmÚvÚmsgÚm1Úm2r   r   r   Úcheck_moment)   s     
ÿ
ÿ
ÿ
ÿr9   c                 C   s4   t  |¡r0|  dd„ |¡}tj||d|d d� d S )Nc                 S   s   | S r   r   r   r   r   r   r   =   r   z#check_mean_expect.<locals>.<lambda>é   z - 1st moment (expect)r,   )r.   Úisfiniter#   r   r0   )r&   r3   r4   r6   r7   r   r   r   Úcheck_mean_expect;   s
    
ÿr<   c                 C   sJ   |dkrddini }t  |¡rF|  dd„ |¡}tj||||  f|Ž d S )Nr   r   gñhãˆµøÔ>c                 S   s   | |  S r   r   r   r   r   r   r   E   r   z"check_var_expect.<locals>.<lambda>)r.   r;   r#   r   r   )r&   r3   r4   r5   r6   Úkwargsr8   r   r   r   Úcheck_var_expectB   s    
r>   c                    sV   t  |¡rB|  ‡ fdd„|¡}tj||t  |d¡ d|d d� nt t  |¡¡ d S )Nc                    s   t  | ˆ  d¡S )Né   ©r.   Úpowerr   ©r4   r   r   r   K   r   z#check_skew_expect.<locals>.<lambda>g      ø?r:   z - skewr,   )r.   r;   r#   r   r0   rA   r1   Úisnan)r&   r3   r4   r5   Úsr6   Zm3er   rB   r   Úcheck_skew_expectI   s    
 ÿrE   c                    sf   t  |¡rH|  ‡ fdd„|¡}tj||d t  |d¡ dd|d d� nt  |¡sbt t  |¡¡ d S )Nc                    s   t  | ˆ  d¡S )Né   r@   r   rB   r   r   r   T   r   z#check_kurt_expect.<locals>.<lambda>g      @r*   r   z - kurtosis)r   r   r    )	r.   r;   r#   r   r   rA   Zisposinfr1   rC   )r&   r3   r4   r5   Úkr6   Zm4er   rB   r   Úcheck_kurt_expectR   s    
ÿ
rH   c                 C   s&   | j |Ž }t t |¡ |d ¡ d S )Nztest Entropy is nan)Úentropyr   r1   r.   rC   )r&   r3   r6   Zentr   r   r   Úcheck_entropy[   s    
rJ   c                 C   s"   t  | j|Ž |j| f|žŽ ¡ d S r   )r   r   Z_entropy)r&   r   Z
superclassr   r   r   Úcheck_private_entropy`   s    ÿrK   c                    s°   t  ddgddgg¡}ˆjˆ d|iŽ}‡ ‡fdd„| ¡ D ƒ}t  |¡ |j¡}t||dd	� ddd
g}ˆjˆ d|iŽ}‡ ‡fdd„|D ƒ}t  |¡ |j¡}t||dd	� d S )Nr   r*   r?   rF   Úscalec                    s   g | ]}ˆj ˆ d |iŽ‘qS ©rL   ©rI   ©Ú.0rD   ©r3   r&   r   r   Ú
<listcomp>j   s     z,check_entropy_vect_scale.<locals>.<listcomp>g›+¡†›„=)r   éýÿÿÿc                    s   g | ]}ˆj ˆ d |iŽ‘qS rM   rN   rO   rQ   r   r   rR   q   s     )r.   ÚasarrayrI   ZravelZreshapeÚshaper   )r&   r3   ÚscZv_entZs_entr   rQ   r   Úcheck_entropy_vect_scalef   s    
rW   c                 C   s:  | j |Ž }t| tjƒr*|d d |d f}t | j|f|žŽ ddg¡ t | j|f|žŽ ddg¡ | jdkr¬t | j	|f|žŽ t
j dg¡ t | j|f|žŽ dt
j g¡ t | jddgf|žŽ |¡ t | jddgf|žŽ |d d d… ¡ t t
 | jddgf|žŽ ¡ ¡ ¡ t t
 | jddgf|žŽ ¡ ¡ ¡ d S )Nr   r   g        r   )ZskellamZdlaplaceéÿÿÿÿr*   )r$   Ú
isinstancer   Zrv_discreter   r   r%   ÚsfÚnameÚlogcdfr.   ÚinfÚlogsfÚppfÚisfr1   rC   Úall)r&   r   r   r   r   r   Úcheck_edge_supportv   s    

  &$rb   c                    s�  t | jƒ}t |jd k¡ t |jd k¡ 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   }	‰ ‰|	�rlˆ |	 ¡ ˆ  ¡ i¡ ‡ ‡‡fdd„|D ƒ}
t ||
¡ dˆ ¡ krþt | jdˆ žˆŽ| jdˆžŽ ¡ qþˆ d	d
i¡ tt| jˆfˆŽ d S )Nú,ú Ú c                    s   g | ]}|ˆfˆ žŽ ‘qS r   r   ©rP   Úmeth)Ú
shape_argsr   r   r   rR   ¡   s     z$check_named_args.<locals>.<listcomp>c                    s   g | ]}|ˆfˆ žˆŽ‘qS r   r   rf   )ÚarG   r   r   r   rR   §   s     Únr   Zkaboomé*   )r   )r   )Ú_getfullargspecÚ_parse_argsr   r1   ÚvarargsÚvarkwÚ
kwonlyargsÚlistÚdefaultsr   ÚlenÚshapesÚreplaceÚsplitZnumargsr.   ra   r;   ÚupdateÚpopZassert_array_equalÚkeysr   r"   Úassert_raisesÚ	TypeErrorr%   )r&   r   rh   rr   ÚmethsÚ	signatureZshape_argnamesZshapes_ÚvalsÚnamesr5   r   )ri   rG   rh   r   r   Úcheck_named_argsŒ   s2    
 ÿ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ƒržt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…   r.   ÚrandomÚseedÚrvsr   r   ZRandomStateÚhasattrr„   Z	get_state)	r&   r   ÚrndmÚr0Úr1Úr2ÚrngZ
orig_stateZr3r   r   r   Úcheck_random_state_property³   s&    
r�   c                    s–   dddg}| j |f|žŽ ‰ ‡ fdd„tjtjtjtjfD ƒ}|D ]P}| j|Ž  || j|k || jk @  }|D ]$}||f|žŽ }t	 
|jtjk¡ qjq@d S )Nç      Ð?ç      à?ç      è?c                    s   g | ]}ˆ   |¡‘qS r   ©Zastype©rP   Útp©Zx0r   r   rR   ß   s     z$check_meth_dtype.<locals>.<listcomp>)r_   r.   Úint_Úfloat16Úfloat32Úfloat64Ú	_argcheckri   Úbr   r1   ÚdtypeÚfloat_)r&   r3   r|   Úq0Úx_castr   rg   Úvalr   r–   r   Úcheck_meth_dtypeÜ   s    

ÿ
r¢   c                    sn   t  dddg¡‰ ‡ fdd„t jt jt jfD ƒ}|D ]6}| j| jfD ]$}||f|žŽ }t |j	t j
k¡ qBq2d S )Nr�   r‘   r’   c                    s   g | ]}ˆ   |¡‘qS r   r“   r”   ©rŸ   r   r   rR   í   s     z#check_ppf_dtype.<locals>.<listcomp>)r.   rT   r˜   r™   rš   r_   r`   r   r1   r�   rž   )r&   r3   Zq_castÚqrg   r¡   r   r£   r   Úcheck_ppf_dtypeë   s    r¥   c                    s\  dd„ }| j dddgf|žŽ ‰ ‡ fdd„tjtjtjtjfD ƒ}|D �]}| j|Ž  || j|k || jk @  }| j	|f|žŽ | j
|f|žŽ | j|f|žŽ   }}}t|| j
|f|žŽ |dd	� t|| j|f|žŽ || dd	� t|| j|f|žŽ | dd	� t|| j|f|žŽ | | dd	� t|| j|f|žŽ || j	|f|žŽ | j	|f|žŽ  dd	� qDd S )
Nc                 W   s*   t  |¡}d}| ||d  f|žŽ | jS )Ng»½×Ùß|Û=y              ð?)r.   rT   Úimag)Úfr   r3   Úhr   r   r   Úderivö   s    
z check_cmplx_deriv.<locals>.derivr�   gR¸…ëQà?r’   c                    s   g | ]}ˆ   |¡‘qS r   r“   r”   r–   r   r   rR   ü   s     z%check_cmplx_deriv.<locals>.<listcomp>r   ©r   )r_   r.   r—   r˜   r™   rš   r›   ri   rœ   Úpdfr%   rZ   r   r\   r^   Zlogpdf)r&   r3   r©   r    r   r«   r%   rZ   r   r–   r   Úcheck_cmplx_derivô   s"    
ÿ

4 " þr¬   c                 C   sJ  | j }d| _ | j|ddiŽ t | ¡}| j|ddiŽ}t |¡}|j|ddiŽ}t ||¡ | jd	|žŽ |jd
|žŽ g}t |d |d ¡ t | j|d f|žŽ |j|d f|žŽ ¡ | |Ž }t |¡}	t |	¡}|jdd�}|jdd�}t ||¡ t	| dƒ�r@| j
}
t |
¡}t |¡}|
j|j  k�r:dk�s@n t‚|| _ d S )Nr�   r‚   rƒ   r‘   r   r   )r‚   Úfit)r‘   )r‘   )r…   rˆ   ÚpickleÚdumpsÚloadsr   r   r_   r%   r‰   r­   Ú__name__ÚAssertionError)r&   r   rŠ   rD   r‹   Z	unpickledrŒ   ZmediansZfrozen_distZpklZfit_functionZpickled_fit_functionZunpickled_fit_functionr   r   r   Úcheck_pickling  s2    

ÿ



"r³   c                 C   sV   t | tjƒrdddœ}nddi}| ||Ž}|j| |Ž jks>t‚|j| |Ž jksRt‚d S )Nr   r*   )ÚlocrL   r´   )rY   r   Zrv_continuousri   r²   rœ   )r&   r   ZlocscaleÚrvr   r   r   Úcheck_freezing;  s    
r¶   c           	         sh   t j d¡ ˆ j|Ž }t|j|d| ƒ |sdt j‡ fdd„|d�}t j d¡ ||Ž }t||dd� d S )Né{   z%s: rvs failed to broadcastc                     s
   ˆ j | Ž S r   )rˆ   )Úallargs©Údistfuncr   r   r   M  r   z%check_rvs_broadcast.<locals>.<lambda>)Zotypesg‚vIhÂ%<=rª   )r.   r†   r‡   rˆ   r   rU   Z	vectorizer   )	rº   r'   r¸   rU   Z
shape_onlyÚotypeÚsamplerˆ   Úexpectedr   r¹   r   Úcheck_rvs_broadcastH  s    
r¾   c              	   C   sÚ  | j d krg n
| j  d¡}tt||p&g ƒƒ}| dd ¡}d}d}d}d|k�r | jf d|i|—Ž}	| jdd|i|—Ž}
t|
|	ƒ tt	t
 |¡d�� | jf d|i|—Ž W 5 Q R X tt	t
 |¡d�� | jd	|Ž W 5 Q R X | jd
|žŽ }
t|
|	ƒ tt	t
 |¡d�� | jf |Ž W 5 Q R X n¶| jf |Ž}	tt	t
 |¡d�� | jdddi|—Ž}
W 5 Q R X tj t¡�$ | jf ddi|—Ž}
t|
|	ƒ W 5 Q R X | jd|žŽ }
t|
|	ƒ tt	t
 |¡d�� | jf |Ž W 5 Q R X d S )Nú, rj   z/moment() missing 1 required positional argumentz9_parse_args() missing 1 required positional argument: 'n'z/moment() got multiple values for first argumentr   ©Úmatch)r   )r   )r   )r   )r   )rt   rv   ÚdictÚziprx   Zmeanr"   r   rz   r{   ÚreÚescaper.   ÚtestingÚassert_warnsÚDeprecationWarning)r&   r3   r'   rt   Ú
kwd_shapesrj   Úmessage1Úmessage2Úmessage3r½   r   r   r   r   Ú'check_deprecation_warning_gh5982_momentS  s8    



rÍ   c              	      sâ  ˆ j d krg n
ˆ j  d¡}tt||p&g ƒƒ}| dd ¡}‡ fdd„}d}d}d}	d|k�r*|f d|i|—Ž}
ˆ jdd|i|—Ž}t||
ƒ ttt	 
|¡d	�� ˆ jf d|i|—Ž W 5 Q R X ttt	 
|¡d	�� ˆ jd|Ž W 5 Q R X ˆ jd|žŽ }t||
ƒ ttt	 
|¡d	�� ˆ jf |Ž W 5 Q R X n´|f |Ž}
ttt	 
|	¡d	�� ˆ jddd
i|—Ž}W 5 Q R X tj t¡�$ ˆ jf ddi|—Ž}t||
ƒ W 5 Q R X ˆ jd|žŽ }t||
ƒ ttt	 
|¡d	�� ˆ jf |Ž W 5 Q R X d S )Nr¿   Úalphac                     s    ˆ j d| ž|Žˆ j d| ž|ŽfS )Nr�   r’   )r�   )r’   )r_   )r   Úkwds©r&   r   r   Úmy_interval‘  s    ÿz>check_deprecation_warning_gh5982_interval.<locals>.my_intervalz1interval() missing 1 required positional argumentz=_parse_args() missing 1 required positional argument: 'alpha'z1interval() got multiple values for first argumentr‘   rÀ   r   )r‘   )r‘   )r‘   )r‘   )r‘   )rt   rv   rÂ   rÃ   rx   Úintervalr   rz   r{   rÄ   rÅ   r.   rÆ   rÇ   rÈ   )r&   r3   r'   rt   rÉ   rÎ   rÑ   rÊ   rË   rÌ   r½   r   r   rÐ   r   Ú)check_deprecation_warning_gh5982_intervalŠ  s:    




rÓ   )F)*r®   rÄ   Únumpyr.   Znumpy.testingrÆ   r   r   r   Zpytestr   rz   Znumpy.ma.testutilsr   Z	testutilsr	   Zscipy._lib._utilr   rl   Zscipyr   r   r)   r9   r<   r>   rE   rH   rJ   rK   rW   rb   r€   r�   r¢   r¥   r¬   r³   r¶   r¾   rÍ   rÓ   r   r   r   r   Ú<module>   s:   
		')	+7