
    e!h'                     X    d dl Z d dlZd dlmZmZ d dlmZ  G d d      Z	 G d d      Z
y)    N)assert_allcloseassert_equalc                   t   e Zd Zd Zd Zej                  j                  dddej                  g      ej                  j                  dddej                  g      ej                  j                  dd	d
ej                  g      d                      Z
ej                  j                  dg d      d        Zd Zy)
TestHyperuc           	          t        j                  g dg dt        j                  ddd            \  }}}t        j                  t        j                  t        j                  |||                  sJ y )N)      r         ?   r   
   )npmeshgridlinspaceallisnanschyperuselfabxs       o/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/special/tests/test_hypergeometric.pytest_negative_xzTestHyperu.test_negative_x	   sV    ++!!KKb"%
1a
 vvbhhryyAq12333    c                 <    t        j                  ddd      dk(  sJ y )Nr   r         ?)r   r   r   s    r   test_special_caseszTestHyperu.test_special_cases   s    yyAq!S(((r   r   r
   r   r      r         ?   c                     t        j                  t        j                  |||            t        j                  t        j                  |||g            k(  sJ y N)r   r   r   r   anyr   s       r   test_nan_inputszTestHyperu.test_nan_inputs   s@     xx		!Q*+rvvbhh1ay6I/JJJJr   za,b,x,expected))~?r   h㈵>g{n@)r(   r   LEN=,?g@)r(   r   珙s?gS?K=@)r(   r   皙?g%?)瀸<}Zi?r   r)   gU?)r-   r   r*   gWYk?)r-   r   r+   g{У D?)r-   r   r,   g('?)4vQS?r   r)   gFs@)r.   r   r*   g`5)Fy@)r.   r   r+   g]?)r.   r   r,   g).?)@{~ޅr   r)   g?)r/   r   r*   gj?)r/   r   r+   g.6z*?)r/   r   r,   gdm25?)`nȰr   r)   gɛI.?)r0   r   r*   gGG?)r0   r   r+   g 3?)r0   r   r,   g?)ez$˿r   r)   gܔ)r1   r   r*   gJ|t)r1   r   r+   g)")r1   r   r,   gMȍ?c                 J    t        t        j                  |||      |d       y )NvIh%<=rtol)r   r   r   r   r   r   r   expecteds        r   test_gh_15650_mpzTestHyperu.test_gh_15650_mp   s    d 			!Q*H5Ar   c                    t        j                  ddd      }t        j                  ddd      }t        j                  ||      \  }}t        j                  |d|      }t        j
                  t        j                  |      dk        sJ y )Nr	   r
   i  gư>r,   r   g     @@)r   r   r   r   r   r   abs)r   r   r   resultss       r   test_gh_15650_sanityzTestHyperu.test_gh_15650_sanityN   sm     KKc3'KKdC({{1a 1))AsA&vvbffWo+,,,r   N)__name__
__module____qualname__r   r    pytestmarkparametrizer   nanr'   r8   r<    r   r   r   r      s    4) [[S3266"23[[S1a.1[[S4BFF"34K 5 2 4K [[	?6B76B2-r   r   c                      e Zd Zej                  j                  dej                  ddfdej                  dfddej                  fg      d        Zd Z	ej                  j                  dg d      d        Z
ej                  j                  dg d      d	        Zej                  j                  dg d
      d        Zej                  j                  dg d      d        Zd Zej                  j                  dg d      d        Zej                  j                  dddg      d        Zej                  j                  ddddd ej"                  ddddej                  j$                          ej"                  d!dd"d#ej                  j$                         g      d$        Zej                  j                  d%g d&      d'        Zd( Zy))*
TestHyp1f1za, b, xr   c                 \    t        j                  t        j                  |||            sJ y r%   )r   r   r   hyp1f1r   s       r   r'   zTestHyp1f1.test_nan_inputs[   s#     xx		!Q*+++r   c                 f    t        t        j                  dg dd      t        j                         y )Nr   )r   r   r
   r   r   rH   r   infr   s    r   
test_poleszTestHyp1f1.test_polesc   s    RYYq"5s;RVVDr   za, b, x, result))r   r   r
   r
   )r   r   r
   g)a?)r!   r   r
   g*@)r   r!   r
   g8<S?)r   r
   gO§ؿc                 L    t        t        j                  |||      |dd       y Nr   gV瞯<atolr5   r   r   rH   r   r   r   r   results        r   r    zTestHyp1f1.test_special_casesf        			!Q*FGr   ))r   r   )\(?gO<?)r   r   rY   gQ?)d   rZ   {Gz?gz.A%{@)r   rZ   r[   gG; ?)      ?rZ   QM@gݕtu@)      rZ   r]   gcmB?c                 L    t        t        j                  |||      |dd       y rR   rU   rV   s        r   test_geometric_convergencez%TestHyp1f1.test_geometric_convergencer   s     			!Q*FGr   ))r   r   r\   r	   )rP   r   r\   gӐs?)ir   r\   g*A ?)ir   r\   gIpп)ir   r\   gi%omϿ)ijr   r\   gNO0ƿc                 L    t        t        j                  |||      |dd       y )Nr   g+=rS   rU   rV   s        r   test_a_negative_integerz"TestHyp1f1.test_a_negative_integer   rX   r   za, b, x, expected)){Gz?   rL   g_?)r      rc   g 
4?)2   rZ   rc   g#?)r   333333?g     @gnF)r   rg   g     g
VkZ)	         !@ig@l)rh   ri   igB	b )K   g     ^   g%C"JAc                 L    t        t        j                  |||      |dd       y )Nr   g+=rS   rU   r6   s        r   test_assorted_caseszTestHyp1f1.test_assorted_cases   s     			!Q*H15Ir   c                 `    d}d}d}d}t        j                  |||      }t        ||dd       y )Ng      $      @g.^?r   r3   rS   r   rH   r   )r   r   r   r   r7   computeds         r   test_a_neg_int_and_b_equal_xz'TestHyp1f1.test_a_neg_int_and_b_equal_x   s8     +99Q1%(?r   za, b, x, desired))r   rJ   r!   r!   )r   rL   r   g      @)rJ   rJ   r   ro   c                 <    t        j                  |||      |k(  sJ y r%   r   rH   )r   r   r   r   desireds        r   test_gh_11099zTestHyp1f1.test_gh_11099   s     yyAq!W,,,r   r   rK   rJ   c                 <    t        j                  |dd      dk(  sJ y )NrK   r   r   rt   )r   r   s     r   'test_x_zero_a_and_b_neg_ints_and_a_ge_bz2TestHyp1f1.test_x_zero_a_and_b_neg_ints_and_a_ge_b   s    yyB"a'''r   za, b, z, ref)g      пr
         ?       @y"=?rBw)r"   r
   ry   y{[?;8?)   r\   y              yI,/j!I篩py@)   r^   y      $      4@yßsS
z4r      y      $@      .yQw-?<kʁ()marksr,   y      @      8y/_
N@7@c                 N    t        j                  |||      }t        ||d       y )NgV瞯<r4   rp   )r   r   r   zrefhs         r   test_complex_zzTestHyp1f1.test_complex_z   s"    " IIaA3U+r   r   )r   r   c                     t        t        j                  d|g d      t        j                  t        j                  t        j                  g       y )Nr   )r^   r   r\   rM   )r   r   s     r   test_legacy_case1zTestHyp1f1.test_legacy_case1   s.     	RYYq!^4rvvrvvrvv6NOr   c                 X    t        j                  ddd      t        j                  k(  sJ y )NrL   rK   r   )r   rH   r   rN   r   s    r   test_legacy_case2zTestHyp1f1.test_legacy_case2   s#     yyR#rvv---r   N)r=   r>   r?   r@   rA   rB   r   rC   r'   rO   r    r`   rb   rm   rr   rv   rx   paramxfailr   r   r   rD   r   r   rF   rF   Y   s   [[Y	A	
BFFA	
Arvv) 
,
,E [[. 1 HH
 [[. 1 HH [[. 1 HH [[0 	3 	J	J@ [[/ 2 
-
- [[S2r(+( ,( [[	C	B	?	D	fD;;$$
 
!UA;;$$
	 ,! , [[S+.P /P.r   rF   )r@   numpyr   numpy.testingr   r   scipy.specialspecialr   r   rF   rD   r   r   <module>r      s*      7 O- O-dQ. Q.r   