a
    Q¹§eē  ć                   @   sr   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dejdfdejfgZG dd	 d	ZG d
d dZdS )é    N)Śassert_allcloseŚassert_array_equal)ŚFuncData)é   é’’’’)r   r   )r   r   r   c                	   @   s   e Zd Zej de”dd Zdd Zej de	j
ddfe	j
ddfe	j
e	j
e	jfde	j
dfg”d	d
 Zdd Zdd Zdd Zdd Zdd Zdd ZdS )ŚTestGammaincśa, xc                 C   s   t  t ||””sJ d S ©N)ŚnpŚisnanŚscŚgammainc©ŚselfŚaŚx© r   śU/var/www/sunrise/env/lib/python3.9/site-packages/scipy/special/tests/test_gammainc.pyŚtest_domain   s    zTestGammainc.test_domainc                 C   s   t  dd”dksJ d S ©Nr   r   )r   r   ©r   r   r   r   Śtest_a_eq_0_x_gt_0   s    zTestGammainc.test_a_eq_0_x_gt_0śa, x, desiredr   r   c                 C   s6   t  ||”}t |”r&t |”s2J n||ks2J d S r	   )r   r   r
   r   ©r   r   r   ZdesiredŚresultr   r   r   Śtest_infinite_arguments   s    
z$TestGammainc.test_infinite_argumentsc                 C   sD   t t dd”t tjd”ddd t dd”t dtj”ks@J d S ©Nič  éd   g¬÷N~hr   )ZatolŚrtol)r   r   r   r
   Śinfr   r   r   r   Śtest_infinite_limits)   s    
üz!TestGammainc.test_infinite_limitsc                 C   s"   t  dd”}tt |d”d d S ©Nr   é
   r   )r
   Śaranger   r   r   ©r   r   r   r   r   Śtest_x_zero4   s    zTestGammainc.test_x_zeroc                 C   s,   t  dd”}t  dd”}t ||”s(J d S ©Nē»½×Łß|Ū=r   r   )r   r   r
   Śisclose©r   r   Ślimitr   r   r   Śtest_limit_check8   s    zTestGammainc.test_limit_checkc                 C   sX   t  g d¢”}d}d}|D ]}||| 8 }|| }q|t  dt j | ” }|d7 }|S )N)gUUUUUUÕægtåÉ:W^ægę;dīp?g¶ā4;ŁGE?gł{Ś>Læg
Į6ær   r   é   g      ą?)r
   ŚarrayŚsqrtŚpi)r   r   ŚcŚresZxfacZckr   r   r   Śgammainc_line=   s    
zTestGammainc.gammainc_linec                 C   sL   t  t  d”dd”}|}t  |||  |”f”j}ttj|dddd 	”  d S )Né   i,  iō  )r   r   r,   gdyįż„=©r   )
r
   ŚlogspaceŚlog10Zvstackr2   ŚTr   r   r   Ścheck)r   r   r   Zdatasetr   r   r   Ś	test_lineK   s    zTestGammainc.test_linec                 C   sB   t  ddd”}t  ddd”}t |t ||””}t||dd d S )Néū’’’r"   r   r'   r4   )r
   r5   r   Zgammaincinvr   r   ©r   r   r   Śyr   r   r   Śtest_roundtripQ   s    zTestGammainc.test_roundtripN)Ś__name__Ś
__module__Ś__qualname__ŚpytestŚmarkŚparametrizeŚINVALID_POINTSr   r   r
   r   Śnanr   r    r%   r+   r2   r9   r=   r   r   r   r   r      s    



ü
r   c                	   @   s   e Zd Zej de”dd Zdd Zej de	j
ddfe	j
ddfe	j
e	j
e	jfde	j
dfg”d	d
 Zdd Zdd Zdd Zdd ZdS )ŚTestGammainccr   c                 C   s   t  t ||””sJ d S r	   )r
   r   r   Ś	gammainccr   r   r   r   r   [   s    zTestGammaincc.test_domainc                 C   s   t  dd”dksJ d S r   )r   rG   r   r   r   r   r   _   s    z TestGammaincc.test_a_eq_0_x_gt_0r   r   r   c                 C   s6   t  ||”}t |”r&t |”s2J n||ks2J d S r	   )r   rG   r
   r   r   r   r   r   r   b   s    
z%TestGammaincc.test_infinite_argumentsc                 C   sD   t  dd”t  tjd”ksJ tt  dd”t  dtj”ddd d S r   )r   rG   r
   r   r   r   r   r   r   r    o   s    
üz"TestGammaincc.test_infinite_limitsc                 C   s,   t  dd”}t  dd”}t ||”s(J d S r&   )r   rG   r
   r(   r)   r   r   r   r+   z   s    zTestGammaincc.test_limit_checkc                 C   s"   t  dd”}tt |d”d d S r!   )r
   r#   r   r   rG   r$   r   r   r   r%      s    zTestGammaincc.test_x_zeroc                 C   sB   t  ddd”}t  ddd”}t |t ||””}t||dd d S )Nr:   r"   r   g+”=r4   )r
   r5   r   ZgammainccinvrG   r   r;   r   r   r   r=      s    zTestGammaincc.test_roundtripN)r>   r?   r@   rA   rB   rC   rD   r   r   r
   r   rE   r   r    r+   r%   r=   r   r   r   r   rF   Y   s   



ü
rF   )rA   Śnumpyr
   Znumpy.testingr   r   Zscipy.specialZspecialr   Zscipy.special._testutilsr   rE   rD   r   rF   r   r   r   r   Ś<module>   s   ū	F