
    ЏkhY                         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            	       r   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ej                  j                  de	j                   d	d
de	j                  e	j                  g      d        Zej                  j                  de	j                   d	d
de	j                  e	j                  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      ]/var/www/teggl/fontify/venv/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   r                        c                 v    t        j                  t        j                  t         j                  |            sJ y r   r   r   r   r   nanr   r   s     r   
test_a_nanzTestGammainc.test_a_nan)   s#    xxBFFA.///r   r   c                 v    t        j                  t        j                  |t         j                              sJ y r   r&   r   r   s     r   
test_x_nanzTestGammainc.test_x_nan-   s#    xxArvv.///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_limits1   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+   s     r   test_x_zerozTestGammainc.test_x_zero<   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_check@   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_lineE   sw     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   rA   gdy=r1   )
r   logspacelog10vstackrI   Tr   r   r   check)r   r   r   datasets       r   	test_linezTestGammainc.test_lineS   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 )Nr6   r/   r;   rL   )r   rM   r   gammaincinvr   r   r   r   r   ys       r   test_roundtripzTestGammainc.test_roundtripY   sM    KKB$KKB$NN1bkk!Q/015)r   N)__name__
__module____qualname__pytestmarkparametrizeINVALID_POINTSr   r   r   r2   r'   r!   r)   r,   r3   r8   r?   rI   rS   rY    r   r   r	   r	      s3   [[V^4+ 5+& [[_	A	A	 	
BFFA	/ %% [[SBFF7D$RVVRVV"LM0 N0 [[SBFF7D$RVVRVV"LM0 N0	B1)
F*r   r	   c            	       f   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ej                  j                  de	j                   d	d
de	j                  e	j                  g      d        Zej                  j                  de	j                   d	d
de	j                  e	j                  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_domainc   s    xxQ*+++r   c                 :    t        j                  dd      dk(  sJ y r   )r   re   r   s    r   r   z TestGammaincc.test_a_eq_0_x_gt_0g   s    ||Aq!Q&&&r   r   r   r   c                     t        j                  ||      }t        j                  |      rt        j                  |      sJ y ||k(  sJ y r   )r   re   r   r   r   s        r   r!   z%TestGammaincc.test_infinite_argumentsj   s@     a#88G88F###W$$$r   r   r"   r#   r$   c                 v    t        j                  t        j                  t         j                  |            sJ y r   r   r   r   re   r'   r(   s     r   r)   zTestGammaincc.test_a_nanw   s#    xxRVVQ/000r   r   c                 v    t        j                  t        j                  |t         j                              sJ y r   ri   r+   s     r   r,   zTestGammaincc.test_x_nan{   s#    xxQ/000r   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   re   r   r2   r   r   s    r   r3   z"TestGammaincc.test_infinite_limits   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 r:   )r   re   r   r<   r=   s      r   r?   zTestGammaincc.test_limit_check   s6    eA&Qq!zz&%(((r   c                 p    t        j                  dd      }t        t        j                  |d      d       y r5   )r   r7   r   r   re   r+   s     r   r8   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 )NrU   r6   r/   g+=rL   )r   rM   r   gammainccinvre   r   rW   s       r   rY   zTestGammaincc.test_roundtrip   sM    KKB$KKB$OOAr||Aq1215)r   N)rZ   r[   r\   r]   r^   r_   r`   r   r   r   r2   r'   r!   r)   r,   r3   r?   r8   rY   ra   r   r   rc   rc   a   s'   [[V^4, 5,' [[_	A	A	 	
BFFA	/ %% [[SBFF7D$RVVRVV"LM1 N1 [[SBFF7D$RVVRVV"LM1 N1	
)
2*r   rc   )r]   numpyr   numpy.testingr   r   scipy.specialspecialr   scipy.special._testutilsr   r'   r`   r	   rc   ra   r   r   <module>ru      sS      =  - 
VVQKKK* K*\7* 7*r   