
    ^Mh                         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	          Z G d
 d          ZdS )    N)assert_allcloseassert_array_equal)FuncData)   )r   r   )r   r   r   c            	       $   e Zd Zej                            de          d             Z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             Zd Zd	 Zd
 Zd Zd Zd ZdS )TestGammainca, xc                 X    t          j        t          j        ||                    sJ d S N)npisnanscgammaincselfaxs      a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/special/tests/test_gammainc.pytest_domainzTestGammainc.test_domain   s*    xAq))*******    c                 <    t          j        dd          dk    sJ d S Nr   r   )r   r   r   s    r   test_a_eq_0_x_gt_0zTestGammainc.test_a_eq_0_x_gt_0   s%    {1a  A%%%%%%r   a, x, desiredr   r   c                     t          j        ||          }t          j        |          rt          j        |          sJ d S ||k    sJ d S r   )r   r   r   r   r   r   r   desiredresults        r   test_infinite_argumentsz$TestGammainc.test_infinite_arguments   sZ     Q""8G 	%8F#######W$$$$$$r   c                     t          t          j        dd          t          j        t          j        d          dd           t          j        dd          t          j        dt          j                  k    sJ d S Ni  d   gN~hr   )atolrtol)r   r   r   r   infr   s    r   test_infinite_limitsz!TestGammainc.test_infinite_limits)   st     	Kc""K$$		
 	
 	
 	
 {3%%S"&)A)AAAAAAAr   c                 v    t          j        dd          }t          t          j        |d          d           d S Nr   
   r   )r   aranger   r   r   r   r   s     r   test_x_zerozTestGammainc.test_x_zero4   s5    Ia2;q!,,a00000r   c                     t          j        dd          }t          j        dd          }t          j        ||          sJ d S N绽|=r   r   )r   r   r   iscloser   r    limits      r   test_limit_checkzTestGammainc.test_limit_check8   sB    UA&&Aq!!z&%(((((((r   c                     t          j        g d          }d}d}|D ]}|||z  z  }||z  }|t          j        dt           j        z  |z            z  }|dz  }|S )N)gUUUUUUտgt:W^g;dp?g4;GE?g{>Lg
6r   r      g      ?)r   arraysqrtpi)r   r   cresxfaccks         r   gammainc_linezTestGammainc.gammainc_line=   s     H @ @ @ A A 	 	B2d7NCAIDDrwqwqy!!!s

r   c                    t          j        t          j        d          dd          }|}t          j        |||                     |          f          j        }t          t          j        |ddd          	                                 d S )N   i,  i  )r   r   r7   gdy=r&   )
r   logspacelog10vstackr?   Tr   r   r   check)r   r   r   datasets       r   	test_linezTestGammainc.test_lineK   sv    Kc3//)Q4#5#5a#8#89::<gvqu===CCEEEEEr   c                     t          j        ddd          }t          j        ddd          }t          j        |t          j        ||                    }t          ||d           d S )Nr+   r$   r1   rB   )r   rC   r   gammaincinvr   r   r   r   r   ys       r   test_roundtripzTestGammainc.test_roundtripQ   s`    KB$$KB$$N1bk!Q//0015))))))r   N)__name__
__module____qualname__pytestmarkparametrizeINVALID_POINTSr   r   r   r'   nanr!   r(   r.   r5   r?   rI   rO    r   r   r	   r	      s       [V^44+ + 54+& & & [_	A	A	 	
BFA	/  % % %	B 	B 	B1 1 1) ) )
  F F F* * * * *r   r	   c            	          e Zd Zej                            de          d             Z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             Zd Zd	 Zd
 Zd ZdS )TestGammainccr
   c                 X    t          j        t          j        ||                    sJ d S r   )r   r   r   	gammainccr   s      r   r   zTestGammaincc.test_domain[   s*    xQ**+++++++r   c                 <    t          j        dd          dk    sJ d S r   )r   r\   r   s    r   r   z TestGammaincc.test_a_eq_0_x_gt_0_   s%    |Aq!!Q&&&&&&r   r   r   r   c                     t          j        ||          }t          j        |          rt          j        |          sJ d S ||k    sJ d S r   )r   r\   r   r   r   s        r   r!   z%TestGammaincc.test_infinite_argumentsb   sZ     a##8G 	%8F#######W$$$$$$r   c                     t          j        dd          t          j        t          j        d          k    sJ t	          t          j        dd          t          j        dt          j                  dd           d S r#   )r   r\   r   r'   r   r   s    r   r(   z"TestGammaincc.test_infinite_limitso   sv     |D#&&",rvs*C*CCCCCLd##Lbf%%		
 	
 	
 	
 	
 	
r   c                     t          j        dd          }t          j        dd          }t          j        ||          sJ d S r0   )r   r\   r   r2   r3   s      r   r5   zTestGammaincc.test_limit_checkz   sB    eA&&Qq!!z&%(((((((r   c                 v    t          j        dd          }t          t          j        |d          d           d S r*   )r   r,   r   r   r\   r-   s     r   r.   zTestGammaincc.test_x_zero   s5    Ia2<1--q11111r   c                     t          j        ddd          }t          j        ddd          }t          j        |t          j        ||                    }t          ||d           d S )NrK   r+   r$   g+=rB   )r   rC   r   gammainccinvr\   r   rM   s       r   rO   zTestGammaincc.test_roundtrip   s`    KB$$KB$$OAr|Aq112215))))))r   N)rP   rQ   rR   rS   rT   rU   rV   r   r   r   r'   rW   r!   r(   r5   r.   rO   rX   r   r   rZ   rZ   Y   s        [V^44, , 54,' ' ' [_	A	A	 	
BFA	/  % % %	
 	
 	
) ) )
2 2 2* * * * *r   rZ   )rS   numpyr   numpy.testingr   r   scipy.specialspecialr   scipy.special._testutilsr   rW   rV   r	   rZ   rX   r   r   <module>ri      s         = = = = = = = =       - - - - - - 
VQKKC* C* C* C* C* C* C* C*L/* /* /* /* /* /* /* /* /* /*r   