o
    Eb                     @   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   
   )npZmeshgridZlinspaceallisnanschyperuselfabx r   I/usr/lib/python3/dist-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   Z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瞯<ZatolZrtolr   r   r'   r   r   r   r   resultr   r   r   r   )   s   
zTestHyp1f1.test_special_cases))r   r   )\(?gO<?)r   r   r4   gQ?)d   r5   {Gz?gz.A%{@)r	   r5   r6   gG; ?)      ?r5   QM@gݕtu@)g      r5   r8   gcmB?c                 C   r-   r.   r1   r2   r   r   r   test_geometric_convergence5   s   z%TestHyp1f1.test_geometric_convergence))r   r   r7   r   )r,   r   r7   gӐs?)ir   r7   g*A ?)ir   r7   gIpп)ir   r7   gb#5fɿc                 C   r-   )Nr   g&.>r0   r1   r2   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   r/   r0   r1   r   desiredr   r   r   test_gh_3492R      
zTestHyp1f1.test_gh_3492c                 C   r;   )Ng 
4?r      r<   r   r/   r0   r1   r>   r   r   r   test_gh_3593[   rA   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   r?   r   r   r   test_gh_11099d   s   zTestHyp1f1.test_gh_11099N)r   r    r!   r"   r#   r$   r   r%   r   r+   r   r9   r:   r@   rC   rD   r   r   r   r   r&      s$    






		r&   )r"   Znumpyr   Znumpy.testingr   r   Zscipy.specialZspecialr   r   r&   r   r   r   r   <module>   s    