o
    tBh                     @   sT   d dl Z d dlZd dlmZ d dl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   
   )npmeshgridlinspaceallisnanschyperuselfabx r   ~/var/www/html/riverr-enterprise-integrations-main/venv/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dd Zdd Zejdg d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   inftyr   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   V瞯<atolrtolr   r   r)   r   r   r   r   resultr   r   r   r   )   s   
zTestHyp1f1.test_special_cases))r   r   )\(?gO<?)r   r   r9   gQ?)d   r:   {Gz?gz.A%{@)r	   r:   r;   gG; ?)      ?r:   QM@gݕtu@)g      r:   r=   gcmB?c                 C   r0   r1   r6   r7   r   r   r   test_geometric_convergence5   s   z%TestHyp1f1.test_geometric_convergence))r   r   r<   r   )r/   r   r<   gӐs?)ir   r<   g*A ?)ir   r<   gIpп)ir   r<   gb#5fɿc                 C   r0   )Nr   g&.>r3   r6   r7   r   r   r   test_a_negative_integerE   s   z"TestHyp1f1.test_a_negative_integerc                 C   "   d}t tddd|ddd d S )Ng_?{Gz?   r,   r   r2   r3   r6   r   desiredr   r   r   test_gh_3492R      
zTestHyp1f1.test_gh_3492c                 C   r@   )Ng 
4?r      rA   r   r2   r3   r6   rC   r   r   r   test_gh_3593[   rF   zTestHyp1f1.test_gh_3593za, b, x, desired))r   r*   r   r   )r   r,   r
   g      @)r*   r*   r   g      @c                 C   s   t ||||ksJ d S r   )r   r)   )r   r   r   r   rD   r   r   r   test_gh_11099d   s   zTestHyp1f1.test_gh_11099N)r!   r"   r#   r$   r%   r&   r   r'   r    r.   r   r>   r?   rE   rH   rI   r   r   r   r   r(      s$    






		r(   )r$   numpyr   numpy.testingr   r   scipy.specialspecialr   r   r(   r   r   r   r   <module>   s    