
    (ph                         S SK r S SKrS SKJrJrJr  S SKJr	  S SK
Jr  S rS rS rS r\ R                   R#                  S\R$                  * S 4\R$                  \R$                  4/5      S	 5       rS
 rS rS rS rg)    N)assert_assert_equalassert_allclose)assert_func_equalc                      [        [        R                  S5      [        S[        R                  5      [        [        R                  [        R                  5      [        [        R                  S5      [        S[        R                  5      /n U  Hk  n[        R                  " U5      n[        [        R                  " UR                  5      5        [        [        R                  " UR                  5      5        Mm     g )Nr      )	complexnpnanscwrightomegar   isnanrealimagptspress      W/var/www/html/venv/lib/python3.13/site-packages/scipy/special/tests/test_wrightomega.pytest_wrightomega_nanr   	   s    26611bff266266"26611bff	C
 nnQ"#"#     c                     [        [        R                  * [        R                  S-  5      [        [        R                  * [        R                  * S-  5      [        [        R                  * S[        R                  -  S-  5      [        [        R                  * S[        R                  -  S-  5      /n [        SS5      [        SS5      [        SS5      [        SS5      /n[	        X5       H[  u  p#[
        R                  " U5      n[        UR                  UR                  5        [        UR                  UR                  5        M]     g )N      g        g       )
r	   r
   infpizipr   r   r   r   r   )r   expected_resultsr   expectedr   s        r   test_wrightomega_inf_branchr!      s    BFF7BEE!G$BFF7RUUF1H%BFF7AbeeGAI&BFF7BruuHQJ')C  S)T*c*d+- 31nnQ
 	SXXx}}-SXXx}}- 2r   c                  &   [        [        R                  S5      [        [        R                  * S5      [        S[        R                  5      [        S[        R                  * 5      /n U  H#  n[        [        R
                  " U5      U5        M%     g )N
   )r	   r
   r   r   r   r   )r   r   s     r   test_wrightomega_infr$   (   sd    2662BFF7B2rvv2w!C R^^A&* r   c                  D   [        S[        R                  5      [        S[        R                  * 5      /n U  He  n[        R                  " U5      n[        US5        [        [        R                  " UR                  5      [        R                  " S5      :H  5        Mg     g )Ng      F)
r	   r
   r   r   r   r   r   signbitr   bool_r   s      r   test_wrightomega_singularr(   1   sk    44"%% "CnnQS$

388$78 r   z
x, desiredc                 <    [         R                  " U 5      U:X  d   eg N)r   r   )xdesireds     r    test_wrightomega_real_infinitiesr-   :   s    
 >>!'''r   c                      [         R                  " [        R                  " [         R                  5      5      (       d   eg r*   )r
   r   r   r   r    r   r   test_wrightomega_real_nanr0   B   s$    88BNN266*++++r   c                  t   S[         R                  " [        5      R                  -  n Sn[         R                  " U[         R
                  * 5      n[         R                  " U[         R
                  5      nSnSn[        [        R                  " U5      USU S9  [        [        R                  " U5      USU S9  g )N   g@xDg?xDgAxDr   atolrtol	r
   finfofloateps	nextafterr   r   r   r   desired_error	crossoverx_before_crossoverx_after_crossoverdesired_before_crossoverdesired_after_crossovers         r   &test_wrightomega_real_series_crossoverrB   F   s    +++MIi"&&9Y777
)* 	 
()	r   c                  t   S[         R                  " [        5      R                  -  n Sn[         R                  " U[         R
                  5      n[         R                  " U[         R
                  * 5      nSnSn[        [        R                  " U5      USU S9  [        [        R                  " U5      USU S9  g )Nr2   igy~T}%m;g~T}%m;r   r3   r6   r;   s         r   ,test_wrightomega_exp_approximation_crossoverrD   \   s    +++MIi8Y887
)* 	 
()	r   c                      [         R                  " SSS5      n [        R                  " U S-   5      R                  n[        [        R                  XSSS9  g )Nii  i  y                r   g+=r3   )r
   linspacer   r   r   r   )r+   resultss     r   $test_wrightomega_real_versus_complexrH   r   s>    
D#t$AnnQV$))GbnngquEr   )pytestnumpyr
   numpy.testingr   r   r   scipy.specialspecialr   scipy.special._testutilsr   r   r!   r$   r(   markparametrizer   r-   r0   rB   rD   rH   r/   r   r   <module>rQ      s      @ @  6	$.&+9 ffWaLVVRVV( (	(,,,Fr   