Ë
    âQ(h'  ã                   óX   — d dl Z d dlZd dlmZmZ d dlmZ  G d„ d«      Z	 G d„ d«      Z
y)é    N)Úassert_allcloseÚassert_equalc                   ót  — e Zd Zd„ Zd„ Zej                  j                  dddej                  g«      ej                  j                  dddej                  g«      ej                  j                  dd	d
ej                  g«      d„ «       «       «       Z
ej                  j                  dg d¢«      d„ «       Zd„ Zy)Ú
TestHyperuc           	      óê   — t        j                  g d¢g d¢t        j                  ddd«      «      \  }}}t        j                  t        j                  t        j                  |||«      «      «      sJ ‚y )N)éÿÿÿÿç      à¿r   ç      à?é   éœÿÿÿr   é
   )ÚnpÚmeshgridÚlinspaceÚallÚisnanÚscÚhyperu©ÚselfÚaÚbÚxs       úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/special/tests/test_hypergeometric.pyÚtest_negative_xzTestHyperu.test_negative_x	   sV   € Ü—+‘+Ú!Ú!Ü�K‰K˜˜b "Ó%ó
‰ˆˆ1ˆaô
 �v‰v”b—h‘hœrŸy™y¨¨A¨qÓ1Ó2Ô3Ð3Ñ3ó    c                 ó<   — t        j                  ddd«      dk(  sJ ‚y )Nr   r   ç      ð?)r   r   ©r   s    r   Útest_special_caseszTestHyperu.test_special_cases   s   € Ü�y‰y˜˜A˜qÓ! SÒ(Ð(Ñ(r   r   r
   r   r   é   r   ç      Ð?é   c                 ó´   — t        j                  t        j                  |||«      «      t        j                  t        j                  |||g«      «      k(  sJ ‚y ©N)r   r   r   r   Úanyr   s       r   Útest_nan_inputszTestHyperu.test_nan_inputs   s@   € ô �x‰xœŸ	™	 ! Q¨Ó*Ó+¬r¯v©v´b·h±hÀÀ1Àa¸yÓ6IÓ/JÒJÐJÑJr   za,b,x,expected))ç~›çŸË?r   çñhãˆµøä>g{n™öÓ@)r(   r   çLE˜N=,?gÅøç„Ï@)r(   r   ç�™Þs?gËS?K=@)r(   r   çš™™™™™¹?g›ù–%÷?)ç€¸Ù<}Zi?r   r)   g‘ˆU’ð?)r-   r   r*   g“WYkð?)r-   r   r+   g{äÐ£ Dð?)r-   r   r,   gæ('ð?)ç4“vQ¸SÃ?r   r)   gFs@)r.   r   r*   gÔ`5)Fy@)r.   r   r+   g]“•³©ý?)r.   r   r,   gà�ä)ÿ.õ?)ç@{~ÞÞ…¿r   r)   g´ÙÁ£ì?)r/   r   r*   gjÜì‹í?)r/   r   r+   g.Ø6¢z*î?)r/   r   r,   gdm2¶5ï?)ç`n¸«òÈ°¿r   r)   g¨É›I.ëÐ?)r0   r   r*   göÑÀGGÝ?)r0   r   r+   g ­–3¢Òä?)r0   r   r,   gêØâÍÍë?)çè”ez$¯Ë¿r   r)   gÆùÜ”µó¿)r1   r   r*   gôšÈJ|tå¿)r1   r   r+   g)"¿­¢»¿)r1   r   r,   gûöMÈ�ÿÝ?c                 óJ   — t        t        j                  |||«      |d¬«       y )Nç‚vIhÂ%<=©Úrtol)r   r   r   ©r   r   r   r   Úexpecteds        r   Útest_gh_15650_mpzTestHyperu.test_gh_15650_mp   s   € ôd 	œŸ	™	 ! Q¨Ó*¨H¸5ÖAr   c                 ó  — t        j                  ddd«      }t        j                  ddd«      }t        j                  ||«      \  }}t        j                  |d|«      }t        j
                  t        j                  |«      dk  «      sJ ‚y )Nr	   r
   iô  g�íµ ÷Æ°>r,   r   g     @�@)r   r   r   r   r   r   Úabs)r   r   r   Úresultss       r   Útest_gh_15650_sanityzTestHyperu.test_gh_15650_sanityN   sm   € ô �K‰K˜˜c 3Ó'ˆÜ�K‰K˜˜d CÓ(ˆÜ�{‰{˜1˜aÓ ‰ˆˆ1Ü—)‘)˜A˜s AÓ&ˆÜ�v‰v”b—f‘f˜W“o¨Ñ+Ô,Ð,Ñ,r   N)Ú__name__Ú
__module__Ú__qualname__r   r    ÚpytestÚmarkÚparametrizer   Únanr'   r8   r<   © r   r   r   r      s·   „ ò4ò)ð ‡[�[×Ñ˜S 3¨¨2¯6©6Ð"2Ó3Ø‡[�[×Ñ˜S 1 a¨¯© .Ó1Ø‡[�[×Ñ˜S 4¨¨B¯F©FÐ"3Ó4ñKó 5ó 2ó 4ðKð ‡[�[×ÑØò	?óñ6Bó7ð6Bó2-r   r   c                   ó¢  — e Zd Zej                  j                  dej                  ddfdej                  dfddej                  fg«      d„ «       Zd„ Z	ej                  j                  dg d¢«      d„ «       Z
ej                  j                  dg d¢«      d	„ «       Zej                  j                  dg d
¢«      d„ «       Zej                  j                  dg d¢«      d„ «       Zd„ Zej                  j                  dg d¢«      d„ «       Zej                  j                  dddg«      d„ «       Zej                  j                  ddddd ej"                  ddddej                  j$                  ¬ «       ej"                  d!dd"d#ej                  j$                  ¬ «      g«      d$„ «       Zej                  j                  d%g d&¢«      d'„ «       Zd(„ Zy))*Ú
TestHyp1f1za, b, xr   c                 ó\   — t        j                  t        j                  |||«      «      sJ ‚y r%   )r   r   r   Úhyp1f1r   s       r   r'   zTestHyp1f1.test_nan_inputs[   s#   € ô �x‰xœŸ	™	 ! Q¨Ó*Ô+Ð+Ñ+r   c                 óf   — t        t        j                  dg d¢d«      t        j                  «       y )Nr   )r   r   éþÿÿÿéýÿÿÿéüÿÿÿr
   ©r   r   rH   r   Úinfr   s    r   Ú
test_poleszTestHyp1f1.test_polesc   s   € Ü”R—Y‘Y˜qÒ"5°sÓ;¼R¿V¹VÕDr   z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                 óL   — t        t        j                  |||«      |dd¬«       y ©Nr   gVçž¯Ò<©Úatolr5   ©r   r   rH   ©r   r   r   r   Úresults        r   r    zTestHyp1f1.test_special_casesf   ó   € ô 	œŸ	™	 ! Q¨Ó*¨F¸ÀÖGr   ))r   r   ç)\�Âõ(Ü?gO<†ã×ø?)r   r   rY   gìQ¸…ëá?)éd   rZ   ç{®Gázì?gªz.A%{@)r   rZ   r[   gG;« °Ú?)ç      ø?rZ   ç…ëQ¸þM@g¸Ý•¡tu@)ç      ø¿rZ   r]   gÄcämBÐ?c                 óL   — t        t        j                  |||«      |dd¬«       y rR   rU   rV   s        r   Útest_geometric_convergencez%TestHyp1f1.test_geometric_convergencer   s   € ô 	œŸ	™	 ! Q¨Ó*¨F¸ÀÖGr   ))r   r   r\   r	   )rP   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                 óL   — t        t        j                  |||«      |dd¬«       y )Nr   g›+¡†›„=rS   rU   rV   s        r   Útest_a_negative_integerz"TestHyp1f1.test_a_negative_integer‚   rX   r   za, b, x, expected))ç{®Gáz„?é–   rL   g•_€Øýï?)r   é   rc   g 
ú¦4ð?)é2   rZ   rc   g¶#ˆð?)r   ç333333Ó?g     @�Àg½nüúF¿)r   rg   g     ˆÃÀg
»ªVkZ¿)é	   ç      !@i¢þÿÿgó©Æ@lÖî»)rh   ri   i�þÿÿgBœ˜	b ë»)éK   g     à^Àé   g%CÝõì"JAc                 óL   — t        t        j                  |||«      |dd¬«       y )Nr   g›+¡†›„=rS   rU   r6   s        r   Útest_assorted_caseszTestHyp1f1.test_assorted_casesŽ   s   € ô 	œŸ	™	 ! Q¨Ó*¨H¸1À5ÖIr   c                 ó`   — d}d}d}d}t        j                  |||«      }t        ||dd¬«       y )Ng      $Àç      @gŽ.Î^´¢?r   r3   rS   ©r   rH   r   )r   r   r   r   r7   Úcomputeds         r   Útest_a_neg_int_and_b_equal_xz'TestHyp1f1.test_a_neg_int_and_b_equal_xœ   s8   € ð ˆØˆØˆØ+ˆÜ—9‘9˜Q  1Ó%ˆÜ˜ (°¸Ö?r   za, b, x, desired))r   rJ   r!   r!   )r   rL   r   g      @)rJ   rJ   r   ro   c                 ó<   — t        j                  |||«      |k(  sJ ‚y r%   ©r   rH   )r   r   r   r   Údesireds        r   Útest_gh_11099zTestHyp1f1.test_gh_11099©   s   € ô �y‰y˜˜A˜qÓ! WÒ,Ð,Ñ,r   r   rK   rJ   c                 ó<   — t        j                  |dd«      dk(  sJ ‚y )NrK   r   r   rt   )r   r   s     r   Ú'test_x_zero_a_and_b_neg_ints_and_a_ge_bz2TestHyp1f1.test_x_zero_a_and_b_neg_ints_and_a_ge_b²   s   € ä�y‰y˜˜B Ó" aÒ'Ð'Ñ'r   za, b, z, ref)g      Ð¿r
   ù      ð?       @y"±=çò?rBº¨wô¿)r"   r
   ry   y{¯­[üˆÏ?„;à8è±ô?)é   r\   y       €       ÀyI,/Áj!€ÀIç¯©py@)é   r^   y      $À      4@yÃŸÛsSÁ†ðéÍ
z4Ár   éú   y      $@      .ÀyQ¸w-ó?<kÊ�(�ë¿)Úmarksr,   y      @      8Ày/�Ï_ä²À
N@¥ò7@c                 óN   — t        j                  |||«      }t        ||d¬«       y )NgVçž¯ò<r4   rp   )r   r   r   ÚzÚrefÚhs         r   Útest_complex_zzTestHyp1f1.test_complex_zÂ   s"   € ô" �I‰I�a˜˜AÓˆÜ˜˜3 UÖ+r   r   )r   r   éûÿÿÿc                 ó¤   — t        t        j                  d|g d¢«      t        j                  t        j                  t        j                  g«       y )Nr   )r^   r   r\   rM   )r   r   s     r   Útest_legacy_case1zTestHyp1f1.test_legacy_case1Ý   s.   € ô 	”R—Y‘Y˜q !¢^Ó4´r·v±v¼r¿v¹vÄrÇvÁvÐ6NÕOr   c                 óX   — t        j                  ddd«      t        j                  k(  sJ ‚y )NrL   rK   r   )r   rH   r   rN   r   s    r   Útest_legacy_case2zTestHyp1f1.test_legacy_case2æ   s#   € ô �y‰y˜˜R Ó#¤r§v¡vÒ-Ð-Ñ-r   N)r=   r>   r?   r@   rA   rB   r   rC   r'   rO   r    r`   rb   rm   rr   rv   rx   ÚparamÚxfailr‚   r…   r‡   rD   r   r   rF   rF   Y   s  „ à‡[�[×Ñ˜YØ	�‰��AˆØ	
ˆB�F‰F�AˆØ	
ˆAˆr�v‰vˆð)ó ñ
,óð
,òEð ‡[�[×ÑÐ.ò 1ó ñHóðHð
 ‡[�[×ÑÐ.ò 1ó ñHóðHð ‡[�[×ÑÐ.ò 1ó ñHóðHð ‡[�[×ÑÐ0ò 	3ó 	ñJó	ðJò@ð ‡[�[×ÑÐ/ò 2ó ñ
-óð
-ð ‡[�[×Ñ˜S 2 r (Ó+ñ(ó ,ð(ð ‡[�[×ÑØØ	CØ	BØ	?Ø	DØ	ˆ�‰Ø��fÐDØ—;‘;×$Ñ$ô
ð 
ˆ�‰Ø�!�UÐAØ—;‘;×$Ñ$ô
ð	óñ ,ó!ð ,ð ‡[�[×Ñ˜S¢+Ó.ñPó /ðPó.r   rF   )r@   Únumpyr   Únumpy.testingr   r   Úscipy.specialÚspecialr   r   rF   rD   r   r   ú<module>rŽ      s*   ðÛ Û ß 7Ý ÷O-ñ O-÷dQ.ò Q.r   