o
    `^h                     @   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   b/home/air/shanriGPT/back/venv/lib/python3.10/site-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   expected_resultsr   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   sV   t dtjt dtj g} | D ]}t|}t|d tt|jt	dk qd S )Ng      F)
r   r   r   r
   r   r   r   signbitr   bool_r   r   r   r   test_wrightomega_singular1   s   


r#   z
x, desiredc                 C   s   t | |ks	J d S N)r
   r   )x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   atolrtol	r   finfofloateps	nextafterr   r   r
   r   desired_error	crossoverx_before_crossoverx_after_crossoverdesired_before_crossoverdesired_after_crossoverr   r   r   &test_wrightomega_real_series_crossoverF   s$   
r9   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-   r2   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   linspacer
   r   r   r   )r%   resultsr   r   r   $test_wrightomega_real_versus_complexr   s   r=   )pytestnumpyr   numpy.testingr   r   r   scipy.specialspecialr
   scipy.special._testutilsr   r   r   r    r#   markparametrizer   r'   r(   r9   r:   r=   r   r   r   r   <module>   s$    		


