
    S_f;                        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                  j                  dg d      e j                  j                  dg d      d               Ze j                  j                  dg d      e j                  j                  dg d	      d
               Ze j                  j                  dg d      e j                  j                  dg d      e j                  j                  dg d      d                      Z ej                   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                  j                  d"edddd#f   j)                               d$               Ze j                  j                  d%ej)                               d&        Zy)'    N)assert_equalassert_allclose)rgammawright_bessela)r   ư>皙?      ?   
   bc                 D    t        t        | |d      t        |             y)zTest at x = 0.        N)r   r   r   )r   r   s     Flib/python3.12/site-packages/scipy/special/tests/test_wright_bessel.pytest_wright_bessel_zeror      s     q!R(&)4    x)r   r   r	   r
   r   c                     |dk7  rY| dz
  }t        d|dz   |dz  dz        }t        t        j                  |dz  |      |z  t	        j
                  ||      dd       yy)	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=rtolatolN)r   r   nppowersciv)r   r   vwbs       r   test_wright_bessel_ivr    "   se     	AvE1a!eQTBY/ 	R+b0a"	0 r   )r   gjt?r      r   )r   r   r	   r
   r   r!   r   d   c           
          t        t        | |dz
  |      | |z  t        | || z   |      z  |dz
  t        | ||      z  z   dd       y)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   s      r   test_wright_functionalr&   4   sS     M!QUA.EM!QUA661uaA 667D*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.   )r0   g      =r1   gsc&Br.   )r0   g|=r1   gB&Br.   )r0   gh㈵>r1   g]%Br.   )r0   r	   r1   gKӨwqBgdy=)r0   r,   r-   g@IgA:)>r0   gmxi%%za, b, x, phi   c                 6    t        t        | ||      |d       y)zDTest cases of test_data that do not reach relative accuracy of 1e-11r   r   Nr%   )r   r   r   phis       r   test_wright_data_grid_failuresr6   _   s     M!Q*Ce<r   za, b, x, phi, accuracyc                     t        j                  |      r#t        j                  t        | ||            sJ yt        t        | ||      ||       y)z}Test cases of test_data that do not reach relative accuracy of 1e-11

    Here we test for reduced accuracy or even nan.
    r4   N)r   isnanr   r   )r   r   r   r5   accuracys        r   #test_wright_data_grid_less_accurater:   h   s@     
xxxxaA.///aA.(Cr   )pytestnumpyr   numpy.testingr   r   scipy.specialspecialr   r   r   markparametrizer   r    r&   arraynangrid_a_b_x_value_accxfailtolistr6   r:    r   r   <module>rH      s  &   7  / 89895 : :5
 89450 6 :0  8956@A* B 7 :**  rxx@?479%1266:H*@"&&I0B22/5%1266:!  & BQB&&(*=* =
 !#D#Dr   