
    S_f                     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       Glib/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   g      ?   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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   r1   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   r1   r   r   r   r   results        r   r   zTestHyp1f1.test_special_cases(        			!Q*FGr   ))r   r   )\(?gO<?)r   r   rC   gQ?)d   rD   {Gz?gz.A%{@)r   rD   rE   gG; ?)      ?rD   QM@gݕtu@)      rD   rG   gcmB?c                 L    t        t        j                  |||      |dd       y r;   r?   r@   s        r   test_geometric_convergencez%TestHyp1f1.test_geometric_convergence4   s     			!Q*FGr   ))r   r   rF   r	   )r9   r   rF   gӐs?)ir   rF   g*A ?)ir   rF   gIpп)ir   rF   gi%omϿ)ijr   rF   gNO0ƿc                 L    t        t        j                  |||      |dd       y )Nr   g+=r<   r?   r@   s        r   test_a_negative_integerz"TestHyp1f1.test_a_negative_integerD   rB   r   za, b, x, expected)){Gz?   r5   g_?)r      rM   g 
4?)2   rD   rM   g#?)r   333333?g     @gnF)r   rQ   g     g
VkZ)	         !@ig@l)rR   rS   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   r1   r   )r   r   r   r   rW   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   r3   r    r    )r   r5   r   g      @)r3   r3   r   rZ   c                 <    t        j                  |||      |k(  sJ y r#   r   r1   )r   r   r   r   desireds        r   test_gh_11099zTestHyp1f1.test_gh_11099k   s     yyAq!W,,,r   r   r4   r3   c                 <    t        j                  |dd      dk(  sJ y )Nr4   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   r   )r   r   c                     t        t        j                  d|g d      t        j                  t        j                  t        j                  g       y )Nr   )rH   r   rF   r6   )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 )Nr5   r4   r   )r   r1   r   r7   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%   r8   r   rJ   rL   rX   r\   r`   rb   re   rg   r-   r   r   r/   r/      s   [[Y	A	
BFFA	
Arvv) 
,
,E [[. 1 HH
 [[. 1 HH [[. 1 HH [[0 	3 	J	J@ [[/ 2 
-
- [[S2r(+( ,( [[S+.P /P.r   r/   )r)   numpyr   numpy.testingr   r   scipy.specialspecialr   r   r/   r-   r   r   <module>rl      s)      7 K K(q. q.r   