o
    Eb                     @   s   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d Zdd Zdd	 Zd
d Ze jdej d fejejfgdd Zdd Zdd Zdd Zdd ZdS )    N)assert_assert_equalassert_allclose)assert_func_equalc                  C   sp   t tjdt dtjt tjtjt tjdt dtjg} | D ]}t|}tt|j tt|j qd S )Nr      )	complexnpnanscwrightomegar   isnanrealimagptspres r   F/usr/lib/python3/dist-packages/scipy/special/tests/test_wrightomega.pytest_wrightomega_nan	   s   




r   c                  C   s   t tj tjd t tj tj d t tj dtj d t tj dtj d g} t ddt ddt ddt ddg}t| |D ]\}}t|}t|j|j t|j	|j	 qBd S )N      g        g       )
r   r   infpizipr
   r   r   r   r   )r   Zexpected_resultsr   Zexpectedr   r   r   r   test_wrightomega_inf_branch   s   
r   c                  C   sN   t tjdt tj dt dtjt dtj g} | D ]
}tt|| qd S )N
   )r   r   r   r   r
   r   )r   r   r   r   r   test_wrightomega_inf(   s   

r   c                  C   sP   t dtjt dtj g} | D ]}t|}t|d tt|jdk qd S )Ng      F)	r   r   r   r
   r   r   r   Zsignbitr   r   r   r   r   test_wrightomega_singular1   s   


r   z
x, desiredc                 C   s   t | |ks	J d S N)r
   r   )xZdesiredr   r   r    test_wrightomega_real_infinities:   s   r"   c                   C   s   t tt jsJ d S r    )r   r   r
   r   r	   r   r   r   r   test_wrightomega_real_nanB   s   r#   c                  C   sj   dt tj } d}t |t j }t |t j}d}d}tt||d| d tt||d| d d S )N   g@xDg?xDgAxDr   ZatolZrtol	r   ZfinfofloatZepsZ	nextafterr   r   r
   r   Zdesired_errorZ	crossoverZx_before_crossoverZx_after_crossoverZdesired_before_crossoverZdesired_after_crossoverr   r   r   &test_wrightomega_real_series_crossoverF   s$   
r)   c                  C   sj   dt tj } d}t |t j}t |t j }d}d}tt||d| d tt||d| d d S )Nr$   igy~T}%m;g~T}%m;r   r%   r&   r(   r   r   r   ,test_wrightomega_exp_approximation_crossover\   s$   
r*   c                  C   s6   t ddd} t| d j}ttj|| ddd d S )Nii  i  y                r   g+=r%   )r   Zlinspacer
   r   r   r   )r!   resultsr   r   r   $test_wrightomega_real_versus_complexr   s   r,   )ZpytestZnumpyr   Znumpy.testingr   r   r   Zscipy.specialZspecialr
   Zscipy.special._testutilsr   r   r   r   r   ZmarkZparametrizer   r"   r#   r)   r*   r,   r   r   r   r   <module>   s$    		


