a
    Q¹§eÞ  ã                   @   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 |||¡¡¡sDJ ‚d S )N)éÿÿÿÿç      à¿r   ç      à?é   éœÿÿÿr   é
   )ÚnpZmeshgridZlinspaceÚallÚisnanÚscÚhyperu©ÚselfÚaÚbÚx© r   ú[/var/www/sunrise/env/lib/python3.9/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    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   s   t t |||¡|ddd d S ©Nr   g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   gìQ¸…ëá?)éd   r5   ç{®Gázì?gªz.A%{@)r	   r5   r6   gG;« °Ú?)ç      ø?r5   ç…ëQ¸þM@g¸Ý•¡tu@)ç      ø¿r5   r8   gÄcämBÐ?c                 C   s   t t |||¡|ddd d S r/   r1   r2   r   r   r   Útest_geometric_convergence4   s    z%TestHyp1f1.test_geometric_convergence))r   r   r7   r   )r.   r   r7   gÓsŸÍÀÚ?)içÿÿÿr   r7   g*A° ÂÐ?)iÎÿÿÿr   r7   gÐöIpÐ¿)i°ÿÿÿr   r7   gi†%oömÏ¿)ijÿÿÿr   r7   gN‚OÑ0Æ¿c                 C   s   t t |||¡|ddd d S )Nr   g´àø¤tã=r0   r1   r2   r   r   r   Útest_a_negative_integerD   s    
z"TestHyp1f1.test_a_negative_integerza, b, x, expected))ç{®Gáz„?é–   r*   g•_€Øýï?)r   é   r<   g 
ú¦4ð?)é2   r5   r<   g¶#ˆð?)r   ç333333Ó?g     @Àg½nüúF¿)r   r@   g     ˆÃÀg
»ªVkZ¿)é	   ç      !@i¢þÿÿgó©Æ@lÖî»)rA   rB   iþÿÿgBœ˜	b ë»)éK   g     à^Àé   g%CÝõì"JAc                 C   s   t t |||¡|ddd d S )Nr   g›+¡†›„=r0   r1   )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   g‚vIhÂ%<=r0   )r   r'   r   )r   r   r   r   rE   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   rG   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   rI   )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   )r9   r   r7   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;   rF   rH   rJ   rK   rM   rN   r   r   r   r   r&      s.   


ý








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