a
    h                     @   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   ]/var/www/html/assistant/venv/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   gN~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;dp?g4;GE?g{>Lg
6r   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,   gdy=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 )Nr"   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