
    ^Mh'                     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                   h   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
ej                            dg d          d             Z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       g/var/www/html/test/jupyter/venv/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         ?)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   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                 R    t          t          j        |||          |d           d S )NvIh%<=rtol)r   r   r   r   r   r   r   expecteds        r   test_gh_15650_mpzTestHyperu.test_gh_15650_mp   s.    d 		!Q**H5AAAAA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 d S )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   s{     Kc3''KdC(({1a  1)AsA&&vbfWoo+,,,,,,,r   N)__name__
__module____qualname__r   r    pytestmarkparametrizer   nanr'   r8   r<    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 [	? 	? 	? 6B B7 6B2- - - - -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   rH   r   infr   s    r   
test_poleszTestHyp1f1.test_polesc   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瞯<atolr5   r   r   rH   r   r   r   r   results        r   r    zTestHyp1f1.test_special_casesf   /     		!Q**FGGGGG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                 T    t          t          j        |||          |dd           d S rR   rU   rV   s        r   test_geometric_convergencez%TestHyp1f1.test_geometric_convergencer   s/     		!Q**FGGGGG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                 T    t          t          j        |||          |dd           d S )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                 T    t          t          j        |||          |dd           d S )Nr   g+=rS   rU   r6   s        r   test_assorted_caseszTestHyp1f1.test_assorted_cases   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   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   sH     +9Q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 d S r%   r   rH   )r   r   r   r   desireds        r   test_gh_11099zTestHyp1f1.test_gh_11099   s)     yAq!!W,,,,,,r   r   rK   rJ   c                 >    t          j        |dd          dk    sJ d S )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'    y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                 V    t          j        |||          }t          ||d           d S )NgV瞯<r4   rp   )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   )r^   r   r\   rM   )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 )NrL   rK   r   )r   rH   r   rN   r   s    r   test_legacy_case2zTestHyp1f1.test_legacy_case2   s+     yR##rv------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	
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   rF   )r@   numpyr   numpy.testingr   r   scipy.specialspecialr   r   rF   rD   r   r   <module>r      s         7 7 7 7 7 7 7 7      O- O- O- O- O- O- O- O-dQ. Q. Q. Q. Q. Q. Q. Q. Q. Q.r   