
    tKg                     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                   &   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
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       k/home/alanp/www/video.onchill/myenv/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   g      ?)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   N)__name__
__module____qualname__r   r   pytestmarkparametrizer   nanr&    r   r   r   r      s    4) [[S3266"23[[S1a.1[[S4BFF"34K 5 2 4K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   r2   r   infr   s    r   
test_poleszTestHyp1f1.test_poles%   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瞯<atolrtolr   r   r2   r   r   r   r   results        r   r   zTestHyp1f1.test_special_cases(        			!Q*FGr   ))r   r   )\(?gO<?)r   r   rD   gQ?)d   rE   {Gz?gz.A%{@)r   rE   rF   gG; ?)      ?rE   QM@gݕtu@)      rE   rH   gcmB?c                 L    t        t        j                  |||      |dd       y r<   r@   rA   s        r   test_geometric_convergencez%TestHyp1f1.test_geometric_convergence4   s     			!Q*FGr   ))r   r   rG   r	   )r:   r   rG   gӐs?)ir   rG   g*A ?)ir   rG   gIpп)ir   rG   gi%omϿ)ijr   rG   gNO0ƿc                 L    t        t        j                  |||      |dd       y )Nr   g+=r=   r@   rA   s        r   test_a_negative_integerz"TestHyp1f1.test_a_negative_integerD   rC   r   za, b, x, expected)){Gz?   r6   g_?)r      rN   g 
4?)2   rE   rN   g#?)r   333333?g     @gnF)r   rR   g     g
VkZ)	         !@ig@l)rS   rT   igB	b )K   g     ^   g%C"JAc                 L    t        t        j                  |||      |dd       y )Nr   g+=r=   r@   )r   r   r   r   expecteds        r   test_assorted_caseszTestHyp1f1.test_assorted_casesP   s     			!Q*H15Ir   c                 `    d}d}d}d}t        j                  |||      }t        ||dd       y )Ng      $      @g.^?r   gvIh%<=r=   r   r2   r   )r   r   r   r   rX   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   r4   r    r    )r   r6   r   g      @)r4   r4   r   r[   c                 <    t        j                  |||      |k(  sJ y r$   r   r2   )r   r   r   r   desireds        r   test_gh_11099zTestHyp1f1.test_gh_11099k   s     yyAq!W,,,r   r   r5   r4   c                 <    t        j                  |dd      dk(  sJ y )Nr5   r   r   r`   )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_bt   s    yyB"a'''r   za, b, z, ref)g      пr
         ?       @y"=?rBw)r!   r
   re   y{[?;8?)   rG   y              yI,/j!I篩py@)   rI   y      $      4@yßsS
z4r      y      $@      .yQw-?<kʁ()marksg?y      @      8y/_
N@7@c                 N    t        j                  |||      }t        ||d       y )NgV瞯<)r?   r\   )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   )rI   r   rG   r7   )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 )Nr6   r5   r   )r   r2   r   r8   r   s    r   test_legacy_case2zTestHyp1f1.test_legacy_case2   s#     yyR#rvv---r   N)r'   r(   r)   r*   r+   r,   r   r-   r&   r9   r   rK   rM   rY   r^   rb   rd   paramxfailrn   rq   rs   r.   r   r   r0   r0      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   r0   )r*   numpyr   numpy.testingr   r   scipy.specialspecialr   r   r0   r.   r   r   <module>rz      s)      7 K K(Q. Q.r   