o
    ?Hh                     @   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      t t||sJ d S N)npisnanscgammaincselfax r   a/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/scipy/special/tests/test_gammainc.pytest_domain      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      zTestGammainc.test_a_eq_0_x_gt_0a, x, desiredr   r   c                 C   8   t ||}t|rt|sJ d S ||ksJ d S r
   )r   r   r   r   r   r   r   desiredresultr   r   r   test_infinite_arguments      
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   )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      zTestGammainc.test_x_zeroc                 C   ,   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      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resxfac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   r6   gdy=r%   )
r   logspacelog10vstackr>   Tr   r   r   check)r   r   r   datasetr   r   r   	test_lineK   s   zTestGammainc.test_linec                 C   B   t ddd}t ddd}t|t||}t||dd d S )Nr)   r#   r0   r@   )r   rA   r   gammaincinvr   r   r   r   r   yr   r   r   test_roundtripQ      zTestGammainc.test_roundtripN)__name__
__module____qualname__pytestmarkparametrizeINVALID_POINTSr   r   r   r&   nanr    r'   r,   r4   r>   rG   rM   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   r	   r
   )r   r   r   	gammainccr   r   r   r   r   [   r   zTestGammaincc.test_domainc                 C   s   t dddks
J d S r   )r   rX   r   r   r   r   r   _   r   z TestGammaincc.test_a_eq_0_x_gt_0r   r   r   c                 C   r   r
   )r   rX   r   r   r   r   r   r   r    b   r!   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   rX   r   r&   r   r   r   r   r   r'   o   s   

z"TestGammaincc.test_infinite_limitsc                 C   r.   r/   )r   rX   r   r1   r2   r   r   r   r4   z   r5   zTestGammaincc.test_limit_checkc                 C   s"   t dd}tt|dd d S r(   )r   r*   r   r   rX   r+   r   r   r   r,      r-   zTestGammaincc.test_x_zeroc                 C   rH   )NrI   r)   r#   g+=r@   )r   rA   r   gammainccinvrX   r   rK   r   r   r   rM      rN   zTestGammaincc.test_roundtripN)rO   rP   rQ   rR   rS   rT   rU   r   r   r   r&   rV   r    r'   r4   r,   rM   r   r   r   r   rW   Y   s    




rW   )rR   numpyr   numpy.testingr   r   scipy.specialspecialr   scipy.special._testutilsr   rV   rU   r   rW   r   r   r   r   <module>   s    	F