
    Ug                     f    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
dS )    N)assert_allcloseassert_equalc                      e Zd Zd Zd Zej                            dddej	        g          ej                            dddej	        g          ej                            dd	d
ej	        g          d                                     Z
dS )
TestHyperuc           	          t          j        g dg dt          j        ddd                    \  }}}t          j        t          j        t          j        |||                              sJ d S )N)      r         ?   r   
   )npmeshgridlinspaceallisnanschyperuselfabxs       f/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/special/tests/test_hypergeometric.pytest_negative_xzTestHyperu.test_negative_x	   sr    +!!!!!!Kb"%%
 
1a
 vbhryAq11223333333    c                 >    t          j        ddd          dk    sJ d S )Nr   r   g      ?)r   r   r   s    r   test_special_caseszTestHyperu.test_special_cases   s'    yAq!!S((((((r   r   r
   r   r      r         ?   c                     t          j        t          j        |||                    t          j        t          j        |||g                    k    sJ d S N)r   r   r   r   anyr   s       r   test_nan_inputszTestHyperu.test_nan_inputs   sM     x	!Q**++rvbh1ay6I6I/J/JJJJJJJr   N)__name__
__module____qualname__r   r   pytestmarkparametrizer   nanr&    r   r   r   r      s        4 4 4) ) ) [S326"233[S1a.11[S4BF"344K K 54 21 43K K Kr   r   c                   z   e Zd Zej                            dej        ddfdej        dfddej        fg          d             Zd Z	ej                            dg d          d             Z
ej                            dg d          d	             Zej                            dg d
          d             Zej                            dg d          d             Zd Zej                            dg d          d             Zej                            dddg          d             Ze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                            d%g d&          d'             Zd( Zd)S )*
TestHyp1f1za, b, xr   c                 Z    t          j        t          j        |||                    sJ d S r$   )r   r   r   hyp1f1r   s       r   r&   zTestHyp1f1.test_nan_inputs   s.     x	!Q**+++++++r   c                 f    t          t          j        dg dd          t          j                   d S )Nr   )r   r   r
   r   r   r2   r   infr   s    r   
test_poleszTestHyp1f1.test_poles%   s/    RYq"5"5"5s;;RVDDDD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                 T    t          t          j        |||          |dd           d S Nr   gV瞯<atolrtolr   r   r2   r   r   r   r   results        r   r   zTestHyp1f1.test_special_cases(   /     		!Q**FGGGGG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                 T    t          t          j        |||          |dd           d S r<   r@   rA   s        r   test_geometric_convergencez%TestHyp1f1.test_geometric_convergence4   s/     		!Q**FGGGGG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                 T    t          t          j        |||          |dd           d S )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                 T    t          t          j        |||          |dd           d S )Nr   g+=r=   r@   )r   r   r   r   expecteds        r   test_assorted_caseszTestHyp1f1.test_assorted_casesP   s/     		!Q**H15IIIIIIr   c                 h    d}d}d}d}t          j        |||          }t          ||dd           d S )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^   sH     +9Q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 d S r$   r   r2   )r   r   r   r   desireds        r   test_gh_11099zTestHyp1f1.test_gh_11099k   s)     yAq!!W,,,,,,r   r   r5   r4   c                 >    t          j        |dd          dk    sJ d S )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'    y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                 V    t          j        |||          }t          ||d           d S )NgV瞯<)r?   r\   )r   r   r   zrefhs         r   test_complex_zzTestHyp1f1.test_complex_z   s2    " IaA3U++++++r   r   )r   r   c                     t          t          j        d|g d          t          j        t          j        t          j        g           d S )Nr   )rI   r   rG   r7   )r   r   s     r   test_legacy_case1zTestHyp1f1.test_legacy_case1   s9     	RYq!^^^44rvrvrv6NOOOOOr   c                 R    t          j        ddd          t          j        k    sJ d S )Nr6   r5   r   )r   r2   r   r8   r   s    r   test_legacy_case2zTestHyp1f1.test_legacy_case2   s+     yR##rv------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	
BFA	
Arv)  
, , 
,E E E [. 1 1 1  H H H
 [. 1 1 1  H H H [. 1 1 1  H H H [0 	3 	3 	3 	 	J J	 	J@ @ @ [/ 2 2 2  
- - 
- [S2r(++( ( ,+( [	C	B	?	D	fD;$
 
 
 
!UA;$
 
 
	  , ,!  , [S+++..P P /.P. . . . .r   r0   )r*   numpyr   numpy.testingr   r   scipy.specialspecialr   r   r0   r.   r   r   <module>rz      s         7 7 7 7 7 7 7 7      K K K K K K K K(Q. Q. Q. Q. Q. Q. Q. Q. Q. Q.r   