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   é
   )ÚnpÚmeshgridÚlinspaceÚallÚisnanÚscÚhyperu©ÚselfÚaÚbÚx© r   úb/var/www/edux/Edux_v2/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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   Ú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   gVçž¯Ò<©ÚatolÚrtol©r   r   r)   ©r   r   r   r   Úresultr   r   r   r   (   ó   
zTestHyp1f1.test_special_cases))r   r   ç)\Âõ(Ü?gO<†ã×ø?)r   r   r9   gìQ¸…ëá?)éd   r:   ç{®Gázì?gªz.A%{@)r	   r:   r;   gG;« °Ú?)ç      ø?r:   ç…ëQ¸þM@g¸Ý•¡tu@)ç      ø¿r:   r=   gÄcämBÐ?c                 C   r0   r1   r5   r6   r   r   r   Útest_geometric_convergence4   s   z%TestHyp1f1.test_geometric_convergence))r   r   r<   r   )r/   r   r<   gÓsŸÍÀÚ?)içÿÿÿr   r<   g*A° ÂÐ?)iÎÿÿÿr   r<   gÐöIpÐ¿)i°ÿÿÿr   r<   gi†%oömÏ¿)ijÿÿÿr   r<   gN‚OÑ0Æ¿c                 C   r0   ©Nr   g›+¡†›„=r2   r5   r6   r   r   r   Útest_a_negative_integerD   r8   z"TestHyp1f1.test_a_negative_integerza, b, x, expected))ç{®Gáz„?é–   r,   g•_€Øýï?)r   é   rB   g 
ú¦4ð?)é2   r:   rB   g¶#ˆð?)r   ç333333Ó?g     @Àg½nüúF¿)r   rF   g     ˆÃÀg
»ªVkZ¿)é	   ç      !@i¢þÿÿgó©Æ@lÖî»)rG   rH   iþÿÿgBœ˜	b ë»)éK   g     à^Àé   g%CÝõì"JAc                 C   r0   r@   r5   )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Â%<=r2   )r   r)   r   )r   r   r   r   rK   Ú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   rM   c                 C   s   t  |||¡|ksJ ‚d S r   ©r   r)   )r   r   r   r   Ú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   rP   )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   r<   )r   r   r)   r   Úinf)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   rU   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?   rA   rL   rO   rR   rS   rV   rW   r   r   r   r   r(      s0    


ý









r(   )r$   Únumpyr   Únumpy.testingr   r   Úscipy.specialÚspecialr   r   r(   r   r   r   r   Ú<module>   s    