
    tKg                         d dl Z d dlZd dlmZmZmZ d dlmZ	 d dl
mZ d Zd Zd Zd Ze j                   j#                  dej$                   d fej$                  ej$                  fg      d	        Zd
 Zd Zd Zd Zy)    N)assert_assert_equalassert_allclose)assert_func_equalc                     t        t        j                  d      t        dt        j                        t        t        j                  t        j                        t        t        j                  d      t        dt        j                        g} | D ]g  }t        j                  |      }t        t        j                  |j                               t        t        j                  |j                               i y )Nr      )	complexnpnanscwrightomegar   isnanrealimagptspress      h/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/special/tests/test_wrightomega.pytest_wrightomega_nanr   	   s    26611bff266266"26611bff	C
 nnQ"#"#     c                     t        t        j                   t        j                  dz        t        t        j                   t        j                   dz        t        t        j                   dt        j                  z  dz        t        t        j                   dt        j                  z  dz        g} t        dd      t        dd      t        dd      t        dd      g}t	        | |      D ]Z  \  }}t        j                  |      }t        |j                  |j                         t        |j                  |j                         \ y )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 018nnQ
 	SXXx}}-SXXx}}- 2r   c                      t        t        j                  d      t        t        j                   d      t        dt        j                        t        dt        j                         g} | D ]!  }t        t	        j
                  |      |       # y )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                  :   t        dt        j                        t        dt        j                         g} | D ]a  }t        j                  |      }t        |d       t        t        j                  |j                        t        j                  d      k(         c y )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                 8    t        j                  |       |k(  sJ y N)r   r   )xdesireds     r    test_wrightomega_real_infinitiesr-   :   s    
 >>!'''r   c                  t    t        j                  t        j                  t         j                              sJ y r*   )r
   r   r   r   r    r   r   test_wrightomega_real_nanr0   B   s!    88BNN266*+++r   c                  v   dt        j                  t              j                  z  } d}t        j                  |t         j
                         }t        j                  |t         j
                        }d}d}t        t        j                  |      |d|        t        t        j                  |      |d|        y )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                  v   dt        j                  t              j                  z  } d}t        j                  |t         j
                        }t        j                  |t         j
                         }d}d}t        t        j                  |      |d|        t        t        j                  |      |d|        y )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                      t        j                  ddd      } t        j                  | dz         j                  }t        t        j                  || dd       y )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bnngqqu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   