
    tKg                         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y)    N)assert_allcloseassert_array_equal)FuncData)   )r   r   )r   r   r   c            	       V   e Zd Zej                  j                  de      d        Zd Zej                  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y)TestGammainca, xc                 Z    t        j                  t        j                  ||            sJ y N)npisnanscgammaincselfaxs      e/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/tests/test_gammainc.pytest_domainzTestGammainc.test_domain   s    xxAq)***    c                 :    t        j                  dd      dk(  sJ y 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 y ||k(  sJ y r   )r   r   r   r   r   r   r   desiredresults        r   test_infinite_argumentsz$TestGammainc.test_infinite_arguments   s@     Q"88G88F###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 y Ni  d   gN~hr   )atolrtol)r   r   r   r   infr   s    r   test_infinite_limitsz!TestGammainc.test_infinite_limits)   s\     	KKc"KK$		
 {{3%S"&&)AAAAr   c                 p    t        j                  dd      }t        t        j                  |d      d       y Nr   
   r   )r   aranger   r   r   r   r   s     r   test_x_zerozTestGammainc.test_x_zero4   s'    IIa2;;q!,a0r   c                     t        j                  dd      }t        j                  dd      }t        j                  ||      sJ y N绽|=r   r   )r   r   r   iscloser   r    limits      r   test_limit_checkzTestGammainc.test_limit_check8   s6    UA&Aq!zz&%(((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=   sr     HH @ AB2d7NCAID  	rwwqwqy!!s

r   c                    t        j                  t        j                  d      dd      }|}t        j                  ||| j	                  |      f      j
                  }t        t        j                  |ddd      j                          y )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   sd    KKc3/))Q4#5#5a#89:<<gvqu=CCEr   c                     t        j                  ddd      }t        j                  ddd      }t        j                  |t        j                  ||            }t        ||d       y )Nr+   r$   r1   rB   )r   rC   r   gammaincinvr   r   r   r   r   ys       r   test_roundtripzTestGammainc.test_roundtripQ   sM    KKB$KKB$NN1bkk!Q/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+ 5+& [[_	A	A	 	
BFFA	/ %%	B1)
F*r   r	   c            	       J   e Zd Zej                  j                  de      d        Zd Zej                  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y)TestGammainccr
   c                 Z    t        j                  t        j                  ||            sJ y r   )r   r   r   	gammainccr   s      r   r   zTestGammaincc.test_domain[   s    xxQ*+++r   c                 :    t        j                  dd      dk(  sJ y 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 y ||k(  sJ y r   )r   r\   r   r   r   s        r   r!   z%TestGammaincc.test_infinite_argumentsb   s@     a#88G88F###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       y r#   )r   r\   r   r'   r   r   s    r   r(   z"TestGammaincc.test_infinite_limitso   sZ     ||D#&",,rvvs*CCCCLLd#LLbff%		
r   c                     t        j                  dd      }t        j                  dd      }t        j                  ||      sJ y r0   )r   r\   r   r2   r3   s      r   r5   zTestGammaincc.test_limit_checkz   s6    eA&Qq!zz&%(((r   c                 p    t        j                  dd      }t        t        j                  |d      d       y r*   )r   r,   r   r   r\   r-   s     r   r.   zTestGammaincc.test_x_zero   s'    IIa2<<1-q1r   c                     t        j                  ddd      }t        j                  ddd      }t        j                  |t        j                  ||            }t        ||d       y )NrK   r+   r$   g+=rB   )r   rC   r   gammainccinvr\   r   rM   s       r   rO   zTestGammaincc.test_roundtrip   sM    KKB$KKB$OOAr||Aq1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, 5,' [[_	A	A	 	
BFFA	/ %%	
)
2*r   rZ   )rS   numpyr   numpy.testingr   r   scipy.specialspecialr   scipy.special._testutilsr   rW   rV   r	   rZ   rX   r   r   <module>ri      sS      =  - 
VVQKKC* C*L/* /*r   