a
    Qe;                     @   s  d dl Z d dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
 e jdg de jdg ddd Ze jdg de jd	g d
dd Ze jdg de jdg de jd	g ddd Zeg dg dg dg dg dddddejgg dddddejgg dg dg dg d g d!g d"d#ddd$ejggZe jje jd%edddd&f  d'd( Ze jd)e d*d+ ZdS ),    N)assert_equalassert_allclose)rgammawright_bessela)r   ư>皙?      ?   
   bc                 C   s   t t| |dt| dS )zTest at x = 0.        N)r   r   r   )r   r    r   Z/var/www/sunrise/env/lib/python3.9/site-packages/scipy/special/tests/test_wright_bessel.pytest_wright_bessel_zero   s    r   x)r   r   r   r	   r
   c                 C   sT   |dkrP| d }t d|d |d d }tt|d || t||ddd dS )	zTest relation of wright_bessel and modified bessel function iv.

    iv(z) = (1/2*z)**v * Phi(1, v+1; 1/4*z**2).
    See https://dlmf.nist.gov/10.46.E2
    r   r
      g      @g       @dy=rtolZatolN)r   r   nppowerscZiv)r   r   vwbr   r   r   test_wright_bessel_iv"   s    
r   )r
   gjt?r      r   )r   r   r   r	   r
   r   r   d   c                 C   sH   t t| |d || | t| ||  | |d t| ||  ddd dS )a=  Test functional relation of wright_bessel.

    Phi(a, b-1, z) = a*z*Phi(a, b+a, z) + (b-1)*Phi(a, b, z)

    Note that d/dx Phi(a, b, x) = Phi(a, b-1, x)
    See Eq. (22) of
    B. Stankovic, On the Function of E. M. Wright,
    Publ. de l' Institut Mathematique, Beograd,
    Nouvelle S`er. 10 (1970), 113-124.
    r
   :0yE>r   Nr   r   )r   r   r   r   r   r   test_wright_functional4   s    r    )r         Y@9B.@gS
[.Gg:0yU>)r	         $@r"   gUqZ+YIgv(x>)r	   r#        @@g]a(aaHMr   )r	   r!   r$   g	5U4'g+i)+p>)      ?      4@     j@g+^%np~=r%   r!   r'   g
+eD)d     ?r&   r'   g'^%nr(   r)   gc+eD)      ?r        @@guc&Br(   )r*   g      =r+   gsc&Br(   )r*   g|=r+   gB&Br(   )r*   gh㈵>r+   g]%Br(   )r*   r   r+   gKӨwqBgdy=)r*   r&   r'   g@IgA:)>r*   gmxi%%za, b, x, phi   c                 C   s   t t| |||dd dS )zDTest cases of test_data that do not reach relative accuracy of 1e-11r   r   Nr   )r   r   r   phir   r   r   test_wright_data_grid_failures_   s    r/   za, b, x, phi, accuracyc                 C   s<   t |r"t t| ||s8J ntt| ||||d dS )z}Test cases of test_data that do not reach relative accuracy of 1e-11

    Here we test for reduced accuracy or even nan.
    r-   N)r   isnanr   r   )r   r   r   r.   Zaccuracyr   r   r   #test_wright_data_grid_less_accurateh   s    
r1   )Zpytestnumpyr   Znumpy.testingr   r   Zscipy.specialZspecialr   r   r   markZparametrizer   r   r    arraynanZgrid_a_b_x_value_accZxfailtolistr/   r1   r   r   r   r   <module>   sT   