Ë
    âQ(h|  ã                   óŒ   — d dl Z d dlZd dlmZmZ d dlmZmZ d dl	m
Z
 d„ Z e j                  d¬«      d„ «       Z G d	„ d
«      Zy)é    N)Úassert_equalÚassert_allclose©Úlog_ndtrÚ	ndtri_exp)Úassert_func_equalc                 ó*   — t        t        | «      «      S ©Nr   ©Úys    ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/special/tests/test_ndtri_exp.pyÚlog_ndtr_ndtri_expr      s   € Ü”I˜a“LÓ!Ð!ó    Úclass)Úscopec                  óf   — t         j                  j                  d«      } | j                  d«      }|S )NiÒ  iè  )ÚnpÚrandomÚRandomStateÚrandom_sample)Úrandom_stateÚpointss     r   Úuniform_random_pointsr      s+   € ä—9‘9×(Ñ(¨Ó.€LØ×'Ñ'¨Ó-€FØ€Mr   c            
       óî   — e Zd ZdZej
                  j                  ddddd ej                  e	«      j                   g«      d„ «       Zej
                  j                  dg d	¢«      d
„ «       Zd„ Zd„ Zd„ Zy)ÚTestNdtriExpaè  Tests that ndtri_exp is sufficiently close to an inverse of log_ndtr.

    We have separate tests for the five intervals (-inf, -10),
    [-10, -2), [-2, -0.14542), [-0.14542, -1e-6), and [-1e-6, 0).
    ndtri_exp(y) is computed in three different ways depending on if y
    is in (-inf, -2), [-2, log(1 - exp(-2))], or [log(1 - exp(-2), 0).
    Each of these intervals is given its own test with two additional tests
    for handling very small values and values very close to zero.
    Ú
test_inputg      $Àg      YÀg    _ Âg@Œµx¯Äc                 óH   — |}|d|z  dz   z  }t        t        d„ |dd¬«       y )Ng      à?c                 ó   — | S r
   © r   s    r   ú<lambda>z2TestNdtriExp.test_very_small_arg.<locals>.<lambda>&   ó   € �a€ r   ç›+¡†›„=T©ÚrtolÚnan_ok©r   r   )Úselfr   r   Úscaler   s        r   Útest_very_small_argz TestNdtriExp.test_very_small_arg   s4   € ð ˆØ˜#Ð 5Ñ5¸Ñ;Ñ<ˆÜÜÙ˜ØØö		
r   zinterval,expected_rtol)))iöÿÿÿéþÿÿÿr"   ))r*   çÌ—`�Â¿çê-�™—q=))r+   ç�íµ ÷Æ°¾g»½×Ùß|Û=))r-   r   g�íµ ÷Æ°>c                 óN   — |\  }}||z
  |z  |z   }t        t        d„ ||d¬«       y )Nc                 ó   — | S r
   r   r   s    r   r    z/TestNdtriExp.test_in_interval.<locals>.<lambda>9   r!   r   Tr#   r&   )r'   ÚintervalÚexpected_rtolr   ÚleftÚrightr   s          r   Útest_in_intervalzTestNdtriExp.test_in_interval+   s7   € ð ‰ˆˆeØ˜$‘,Ð"7Ñ7¸$Ñ>ˆÜÜÙ˜ØØö		
r   c                 ó6  — t         j                  j                  t        j                  t        «      j
                  ddddg«      }t        j                  t        «      j                   }t        j                  ||g«      }t        |«      }t        ||d¬«       y )Nr   r,   )r$   )
r   Ú	nextafterÚreduceÚfinfoÚfloatÚminÚtinyÚarrayr   r   )r'   ÚbignegÚtinynegÚxÚresults        r   Útest_extremezTestNdtriExp.test_extreme>   sp   € ô* —‘×$Ñ$¤b§h¡h¬u£o×&9Ñ&9¸1¸aÀÀAÐ%FÓGˆä—8‘8œE“?×'Ñ'Ð'ˆÜ�H‰H�g˜vÐ&Ó'ˆÜ# AÓ&ˆÜ˜ ¨Ö.r   c                 óŽ   — t        t        t        j                   dg«      t        j                   t        j                  g«       y )Ng        )r   r   r   Úinf©r'   s    r   Útest_asymptoteszTestNdtriExp.test_asymptotesZ   s*   € Ü”Y¤§¡ ¨˜~Ó.´"·&±&°¼"¿&¹&Ð0AÕBr   c                 óD   — t        j                  t        d«      «      sJ ‚y )Ng      ð?)r   Úisnanr   rD   s    r   Útest_outside_domainz TestNdtriExp.test_outside_domain]   s   € Ü�x‰xœ	 #›Ô'Ð'Ñ'r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚpytestÚmarkÚparametrizer   r8   r9   Úmaxr)   r4   rA   rE   rH   r   r   r   r   r      sˆ   „ ñð ‡[�[×ÑØ�t˜T 5¨%°(°"·(±(¸5³/×2EÑ2EÐ1EÐFóñ
óð
ð ‡[�[×ÑØ ò	
óñ
óð
ò/ò8Có(r   r   )rM   Únumpyr   Únumpy.testingr   r   Úscipy.specialr   r   Úscipy.special._testutilsr   r   Úfixturer   r   r   r   r   ú<module>rV      sD   ðÛ Û ß 7ß -Ý 6ò"ð €‡��gÔñó ð÷K(ò K(r   