U
    ¯9%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t‚d S ©N)ÚnpÚisnanÚscÚgammaincÚAssertionError©ÚselfÚaÚx© r   ú`/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/scipy/special/tests/test_gammainc.pyÚtest_domain   s    zTestGammainc.test_domainc                 C   s   t  dd¡dkst‚d S ©Nr   r   )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 |¡s2t‚n||ks2t‚d S r	   )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@t‚d S ©Niè  éd   g¬÷N’~hr   )ZatolÚrtol)r   r   r   r
   Úinfr   r   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(t‚d S ©Nç»½×Ùß|Û=r   r   )r   r   r
   Úiscloser   ©r   r   Úlimitr   r   r   Útest_limit_check8   s    zTestGammainc.test_limit_checkc                 C   s`   t  ddddddg¡}d}d}|D ]}||| 8 }|| }q"|t  d	t j | ¡ }|d
7 }|S )NgUUUUUUÕ¿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vstackr3   Ú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(   r5   )r
   r6   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,   r3   r:   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t‚d S r	   )r
   r   r   Ú	gammainccr   r   r   r   r   r   [   s    zTestGammaincc.test_domainc                 C   s   t  dd¡dkst‚d S r   )r   rH   r   r   r   r   r   r   _   s    z TestGammaincc.test_a_eq_0_x_gt_0r   r   r   c                 C   s6   t  ||¡}t |¡r&t |¡s2t‚n||ks2t‚d S r	   )r   rH   r
   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t‚tt  dd¡t  dtj¡ddd d S r   )r   rH   r
   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(t‚d S r'   )r   rH   r
   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   rH   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›+¡†›„=r5   )r
   r6   r   ZgammainccinvrH   r   r<   r   r   r   r>   ƒ   s    zTestGammaincc.test_roundtripN)r?   r@   rA   rB   rC   rD   rE   r   r   r
   r    rF   r   r!   r,   r&   r>   r   r   r   r   rG   Y   s   



ü
rG   )rB   Únumpyr
   Znumpy.testingr   r   Zscipy.specialÚspecialr   Zscipy.special._testutilsr   rF   rE   r   rG   r   r   r   r   Ú<module>   s   û	F