o
    i                     @   sL   d dl Z d dlZd dlmZmZ d dlmZ G dd dZ	G dd dZ
dS )    N)assert_allcloseassert_equalc                   @   sf   e Zd Zdd Zd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d Z
dS )
TestHyperuc              	   C   sH   t g dg dt ddd\}}}t t t|||s"J d S )N)      r         ?   r   
   )npZmeshgridZlinspaceallisnanschyperuselfabx r   v/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/scipy/special/tests/test_hypergeometric.pytest_negative_x	   s   
"zTestHyperu.test_negative_xc                 C   s   t ddddksJ d S )Nr   r   g      ?)r   r   r   r   r   r   test_special_cases   s   zTestHyperu.test_special_casesr   r   r   r      r   g      ?   c                 C   s2   t t|||t t |||gksJ d S N)r   r   r   r   anyr   r   r   r   test_nan_inputs   s   2zTestHyperu.test_nan_inputsN)__name__
__module____qualname__r   r   pytestmarkparametrizer   nanr   r   r   r   r   r      s    r   c                   @   s  e Zd Zejdejddfdejdfddejfgdd Zdd Z	ejdg dd	d
 Z
ejdg ddd Zejdg ddd Zejdg ddd Zdd Zejdg ddd Zejdddgdd Zejd g d!d"d# Zd$d% Zd&S )'
TestHyp1f1za, b, xr   c                 C   s   t t|||sJ d S r   )r   r   r   hyp1f1r   r   r   r   r      s   zTestHyp1f1.test_nan_inputsc                 C   s   t tdg ddtj d S )Nr   )r   r   r   r   r   r'   r   infr   r   r   r   
test_poles%   s   zTestHyp1f1.test_polesz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                 C      t t||||ddd d S Nr   gV瞯<ZatolZrtolr   r   r'   r   r   r   r   resultr   r   r   r   (      
zTestHyp1f1.test_special_cases))r   r   )\(?gO<?)r   r   r6   gQ?)d   r7   {Gz?gz.A%{@)r	   r7   r8   gG; ?)      ?r7   QM@gݕtu@)      r7   r:   gcmB?c                 C   r/   r0   r2   r3   r   r   r   test_geometric_convergence4   s   z%TestHyp1f1.test_geometric_convergence))r   r   r9   r   )r.   r   r9   gӐs?)ir   r9   g*A ?)ir   r9   gIpп)ir   r9   gi%omϿ)ijr   r9   gNO0ƿc                 C   r/   )Nr   gt=r1   r2   r3   r   r   r   test_a_negative_integerD   r5   z"TestHyp1f1.test_a_negative_integerza, b, x, expected)){Gz?   r*   g_?)r      r>   g 
4?)2   r7   r>   g#?)r   333333?g     @gnF)r   rB   g     g
VkZ)	         !@ig@l)rC   rD   igB	b )K   g     ^   g%C"JAc                 C   r/   )Nr   g+=r1   r2   )r   r   r   r   expectedr   r   r   test_assorted_casesP   s   zTestHyp1f1.test_assorted_casesc                 C   s2   d}d}d}d}t |||}t||ddd d S )Ng      $      @g.^?r   gvIh%<=r1   )r   r'   r   )r   r   r   r   rG   Zcomputedr   r   r   test_a_neg_int_and_b_equal_x^   s   z'TestHyp1f1.test_a_neg_int_and_b_equal_xza, b, x, desired))r   r(   r   r   )r   r*   r
   g      @)r(   r(   r   rI   c                 C   s   t ||||ksJ d S r   r   r'   )r   r   r   r   Zdesiredr   r   r   test_gh_11099k   s   zTestHyp1f1.test_gh_11099r   r)   r(   c                 C   s   t |dddksJ d S )Nr)   r   r   rK   )r   r   r   r   r   'test_x_zero_a_and_b_neg_ints_and_a_ge_bt   s   z2TestHyp1f1.test_x_zero_a_and_b_neg_ints_and_a_ge_br   )r   r   c                 C   s(   t td|g dtjtjtjg d S )Nr   )r;   r   r9   r+   )r   r   r   r   r   test_legacy_case1   s   (zTestHyp1f1.test_legacy_case1c                 C   s   t dddtjksJ d S )Nr*   r)   r   )r   r'   r   r,   r   r   r   r   test_legacy_case2   s   zTestHyp1f1.test_legacy_case2N)r   r    r!   r"   r#   r$   r   r%   r   r-   r   r<   r=   rH   rJ   rL   rM   rO   rP   r   r   r   r   r&      s0    












r&   )r"   numpyr   Znumpy.testingr   r   Zscipy.specialZspecialr   r   r&   r   r   r   r   <module>   s    