
    Џkh_                        d Z ddlZddlZddlmZmZ ddlZddlm	Z
 ddlmZmZmZ ddlmZmZmZmZmZ 	 ddlZ G d d      Z G d	 d
      Z G d d      Zd Zd Zd Zd2dZd Zd2dZd Z ejB                  jD                   eed       G d d                    Z#g dZ$ejB                  jK                  de$e$D  cg c]  } | d   	 c}       d        Z&d Z'd Z(d Z)d Z*ejB                  jK                  dg d g d!g d"g d#g d$g d%g d&g d'g d(g d)g d*g d+g      d,        Z+ejB                  jK                  d-g d.      d/        Z, G d0 d1      Z-y# e$ r  ed      ZY .w xY wc c} w )3z
Test cdflib functions versus mpmath, if available.

The following functions still need tests:

- ncfdtridfn
- ncfdtridfd
- ncfdtrinc
- nbdtrik
- nbdtrin
- pdtrik
- nctdtridf
- nctdtrinc

    N)assert_equalassert_allclose)MissingModulecheck_versionFuncData)ArgIntArgget_args	mpf2floatassert_mpmath_equalmpmathc                       e Zd ZdZd Zd Zy)ProbArgz*Generate a set of probabilities on [0, 1].c                      d| _         d| _        y )Nr      )abselfs    [/var/www/teggl/fontify/venv/lib/python3.12/site-packages/scipy/special/tests/test_cdflib.py__init__zProbArg.__init__%   s        c                 b   t        d|dz        }t        j                  dt        j                  d      |      }t        j                  dd|dz   d      dd }dt        j                  t        j                  d      d	|      z
  }t        j
                  |||f   }t        j                  |      S )
z3Return an array containing approximately n numbers.r      i333333?gffffff?F)endpointNi)maxnplogspacelog10linspacer_unique)r   nmv1v2v3vs          r   valueszProbArg.values*   s    1a4L[[bhhsmQ/[[c1q559!"=RXXc]C33EE"b"*yy|r   N)__name__
__module____qualname____doc__r   r*    r   r   r   r   "   s    4
r   r   c                       e Zd Zd Zd Zy)EndpointFilterc                 <    || _         || _        || _        || _        y N)r   r   rtolatol)r   r   r   r4   r5   s        r   r   zEndpointFilter.__init__5   s    		r   c                    t        j                  || j                  z
        | j                  t        j                  | j                        z  | j                  z   k  }t        j                  || j
                  z
        | j                  t        j                  | j
                        z  | j                  z   k  }t        j                  ||z  dd      S )NFT)r   absr   r4   r5   r   where)r   xmask1mask2s       r   __call__zEndpointFilter.__call__;   s    q466z"TYYrvvdff~%=		%IIq466z"TYYrvvdff~%=		%IIxxud33r   N)r+   r,   r-   r   r<   r/   r   r   r1   r1   4   s    4r   r1   c                   ,    e Zd Z	 	 	 ddZd Zd Zd Zy)_CDFDataNc                    || _         || _        || _        || _        || _        || _        || _        || _        |	| _        t        |t              sd | _        d | _        y |
|mt        |
t              r|
| _        n|
gt        | j                        z  | _        t        |t              r|| _        y |gt        | j                        z  | _        y d | _        d | _        y r3   )spfuncmpfuncindexargspecspfunc_firstdpsr$   r4   r5   
isinstancelist
endpt_rtol
endpt_atollen)r   r@   rA   rB   rC   rD   rE   r$   r4   r5   rH   rI   s               r   r   z_CDFData.__init__B   s     
(		'4("DO"DO#z'=*d+",#-,s4<</@"@*d+",#-,s4<</@"@"DO"DOr   c                    | j                   r | j                  | }t        j                  |      rt        j                  S t        |      }||| j                  <   t        j                  | j                        5   | j                  t        |       }t        |j                        }d d d        |S t        j                  | j                        5   | j                  | }t        |j                        }d d d        t        |      }|| j                  <    | j                  t        |       }|S # 1 sw Y   |S xY w# 1 sw Y   JxY wr3   )rD   r@   r   isnannanrG   rB   r   workdpsrE   rA   tupler   real)r   argsress      r   idmapz_CDFData.idmap_   s   $++t$Cxx}vv:D"D) *!dkk5;/)* 
 ) *!dkk4()* :D"D$++uT{+C
* 
* *s   :.D2%D?2D<?Ec           	      D   | j                   | j                  y g }t        | j                   | j                  | j                        D ]V  \  }}}|||j	                  d        |d}n|d}|j	                  t        |j                  |j                  ||             X |S )N        )rH   rI   ziprC   appendr1   r   r   )r   filtersr4   r5   specs        r   get_param_filterz_CDFData.get_param_filters   s    ??"t'> #DOOT__dll S 		GD$|t$NN>$&&$&&$EF		G r   c           
         t        | j                  | j                        }| j                         }t	        t        |j                  d               }|j                  d   }t        j                  ||d d | j                  f   j                  |j                  d   d      f      }t        | j                  |||| j                  | j                  d|      j                          y )Nr   r   F)param_columnsresult_columnsr4   r5   
vectorizedparam_filter)r
   rC   r$   rZ   rO   rangeshaper   hstackrB   reshaper   rS   r4   r5   check)r   rQ   r_   r\   r]   s        r   rd   z_CDFData.check   s    dff-,,.eDJJqM23Ayy$Q

] 3 ; ;DJJqM1 MNOT,^iidiiE*	, -2EGr   )T   i  NNNN)r+   r,   r-   r   rS   rZ   rd   r/   r   r   r>   r>   A   s    DH15-1#:("
4r   r>   c                  :    t        | i |}|j                          y r3   )r>   rd   )r   kwds      r   _assert_invertsri      s    !rAGGIr   c                 V   t        j                  |       t        j                  |      t        j                  |      }}} | dk  rt        j                  d      S | |k\  rt        j                  d      S t        j                  d|d      }t        j                  || z
  | dz   |d      S )Nr   r   T)exactx2regularized)r   mpffsubbetainc)kr$   ponemps       r   _binomial_cdfru      s    jjmVZZ]FJJqM!qAAvzz!}	
azz!}KK1D)E>>!a%Q5dCCr   c                    |dk  rt        j                  d      S t        j                  |       t        j                  |      t        j                  |      }}} | |z  | |z  |z   z  }t        j                  | dz  |dz  |d      }|S )Nr      Trl   )r   ro   rq   )dfndfdr9   ubrR   s        r   _f_cdfr{      ss    1uzz!}**S/6::c?FJJqMaC	QA	B
..QA"$
?CJr   c                    |t         j                  j                  }t        j                  |      5  t        j                  |       t        j                  |      }} t        j
                  dd| dz   z  d|dz   | z        }||t        j                  d| dz   z        z  z  }|t        j                  t         j                  | z        t        j                  d| z        z  z  }d|z   cd d d        S # 1 sw Y   y xY w)N      ?r         ?rw   )	r   mprE   rN   ro   hyp2f1gammasqrtpi)dftrE   facs       r   _student_t_cdfr      s    
{iimm		 

2

1AmmCb1fsQTE"H=qc26l+++v{{699R<(c"f)===Sy  s   B7C33C<c                     t        j                  |dz  dz
  t        j                  || z              }|t        j                  | |z    dz        | |z  |dz  dz
  z  z  dz  z  }|S )Nrw   r      r}   )r   besselir   exp)r   r   ncrR   s       r   _noncentral_chi_pdfr      sd    
..A6;;r!t#4
5C6::Bik"AbDBqD3J#7799CJr   c                 P   |t         j                  j                  }t        j                  |       t        j                        t        j                        c} t        j                  |      5  t        j
                  fdd| g      }|cd d d        S # 1 sw Y   y xY w)Nc                     t        |       S r3   )r   )r   r   r   s    r   <lambda>z%_noncentral_chi_cdf.<locals>.<lambda>   s    $72r$B r   r   )r   r   rE   ro   rN   quad)r9   r   r   rE   rR   s    ``  r   _noncentral_chi_cdfr      su    
{iimm

1vzz"~vzz"~IAr2		 kkBQFK  s   4BB%c                 $    | |z  d| z
  |z  z
  |z  S )Nr   r/   )rs   lmbdas     r   _tukey_lmbda_quantiler      s    uHA~%u,,r   z0.19c                   @   e Zd Zej                  j                  d      d        Zd Zd Zd Z	ej                  j                  d      d        Z
d Zd	 Zd
 Zd Zd Zd Zej                  j                  d      d        Zd Zd Zej                  j                  d      d        Zej                  j                  d      d        Zd Zd Zd Zej                  j                  d      d        Zej                  j5                  dg d      d        Zy)
TestCDFlibF)runc           
          t        t        j                  t        dt	               t        dd      t	               gd       y )Nr   r     -C6?r4   )ri   spbdtrikru   r   r	   r   s    r   test_bdtrikzTestCDFlib.test_bdtrik   s-    II	6!T?GI6		r   c           	          t        t        j                  t        dt	        dd      t               t               gdg d       y )Nr   r   r   )NNư>r4   rI   )ri   r   bdtrinru   r	   r   r   s    r   test_bdtrinzTestCDFlib.test_bdtrin   s0    IIq$GI6"4		6r   c                     t        t        j                  d dt               t	        ddd      t	        dddd      gd	       y )
Nc                 4    t        j                  | ||d      S NTrl   r   rq   r   r   r9   s      r   r   z)TestCDFlib.test_btdtria.<locals>.<lambda>       FNN1aA4H r   r         Y@Finclusive_ar   r   inclusive_br   r   )ri   r   btdtriar   r   r   s    r   test_btdtriazTestCDFlib.test_btdtria   s=    JJH	3q#59Aqe?A	r   c                     t        t        j                  d dt        ddd      t	               t        dddd      gdg d	
       y )Nc                 4    t        j                  | ||d      S r   r   r   s      r   r   z)TestCDFlib.test_btdtrib.<locals>.<lambda>   r   r   r   r   r   Fr   r   Hz>)NgC]r2<V瞯<r   )ri   r   btdtribr   r   r   s    r   test_btdtribzTestCDFlib.test_btdtrib   s@    JJHCU+WYA5e<>+	-r   c                     t        t        j                  t        dt	        dd      t               t        ddd      gd       y )Nr   d   r   Fr   r   r   )ri   r   fdtridfdr{   r	   r   r   r   s    r   test_fdtridfdzTestCDFlib.test_fdtridfd   s5    KKAs^WYAs(FG	r   c                     t        t        j                  d dt               t	        ddd      t	        ddd      gdg d	       y )
Nc                 8    t        j                  || |z  d      S NTr   rn   r   gammaincr   s      r   r   z(TestCDFlib.test_gdtria.<locals>.<lambda>       FOOA1$G r   r        @@Fr   g     @r   Nr   绽|=r   )ri   r   gdtriar   r   r   s    r   test_gdtriazTestCDFlib.test_gdtria   s>    IIGYAs6CU+-*	,r   c                     t        t        j                  d dt        ddd      t	               t        ddd      gd	       y )
Nc                 8    t        j                  || |z  d      S r   r   r   s      r   r   z(TestCDFlib.test_gdtrib.<locals>.<lambda>  r   r   r   r   r   Fr   r   h㈵>r   )ri   r   gdtribr   r   r   s    r   test_gdtribzTestCDFlib.test_gdtrib  s;    IIGCU+WYCU+-	r   c                     t        t        j                  d dt        ddd      t        ddd      t	               gdg d	       y )
Nc                 8    t        j                  || |z  d      S r   r   r   s      r   r   z(TestCDFlib.test_gdtrix.<locals>.<lambda>  r   r   rw   r   r   Fr   r   r   r   )ri   r   gdtrixr   r   r   s    r   test_gdtrixzTestCDFlib.test_gdtrix  s>    IIGCU+SCU-KY*	,r   c                     t        t        j                  d dt               t	        dt
        j                  dd      t	        dd      gd	       y )
Nc                 0    t        j                  || |      S r3   r   ncdfr9   yzs      r   r   z*TestCDFlib.test_nrdtrimn.<locals>.<lambda>      FKK1a0 r   r   皙?Fr   g    _g    _Br   r   )ri   r   nrdtrimnr   r   r   infr   s    r   test_nrdtrimnzTestCDFlib.test_nrdtrimn  sB    KK0Ybff%UC 	r   c                     t        t        j                  d dt        t        j
                   ddd      t               t        dd      gd       y )	Nc                 0    t        j                  || |      S r3   r   r   s      r   r   z*TestCDFlib.test_nrdtrisd.<locals>.<lambda>)  r   r   r   
   Fr   g}Ô%ITr   r   )ri   r   nrdtrisdr   r   r   r   r   s    r   test_nrdtrisdzTestCDFlib.test_nrdtrisd&  sC    KK0"&&"%UCYU^ 	r   c           	          t        t        j                  t        t	        dd      t        dt        j                        gd       y )Nr   r   r   r   r   )r   r   stdtrr   r	   r   r   r   r   s    r   
test_stdtrzTestCDFlib.test_stdtr0  s/    HHAs^S/0t	=r   c                 l    t        t        j                  t        dt	               t               gd       y )Nr   r   r   )ri   r   stdtridfr   r   r   r   s    r   test_stdtridfzTestCDFlib.test_stdtridf7  s$    KK	35!	.r   c           	      v    t        t        j                  t        dt	        dd      t               gdd dg       y )Nr   r   r   r   r   )ri   r   stdtritr   r	   r   r   s    r   test_stdtritzTestCDFlib.test_stdtrit>  s/    JJq#	*e}		&r   c           
      j    t        t        j                  d dt               t	        dd      gd       y )Nc                 >    t        j                  | dz  |dz  d      S )Nrw   Tr   r   )r)   r9   s     r   r   z)TestCDFlib.test_chdtriv.<locals>.<lambda>H  s    1!F r   r   r   r   r   r   )ri   r   chdtrivr   r	   r   s    r   test_chdtrivzTestCDFlib.test_chdtrivE  s(    JJF	6!S>*	7r   c                     t        t        j                  t        dt	        ddd      t               t	        ddd      gddd	       y )
Nr   r   r   Fr   r   r   r   r$   r4   r5   )ri   r   	chndtridfr   r   r   r   s    r   test_chndtridfzTestCDFlib.test_chndtridfK  s@     	LLAs.	As.0E	+r   c           
          t        t        j                  t        dt	        ddd      t        dd      t               gddd	
       y )Nrw   r   r   Fr   r   r   r   r   r   )ri   r   	chndtrincr   r   r	   r   r   s    r   test_chndtrinczTestCDFlib.test_chndtrincU  s:     	LLAs.q#	JE		+r   c                     t        t        j                  t        dt	               t        dd      t        ddd      gdddg d	
       y )Nr   r   r   Fr   r   r   r   )r   NN)r$   r4   r5   rI   )ri   r   chndtrixr   r   r	   r   r   s    r   test_chndtrixzTestCDFlib.test_chndtrix^  s;    KK	6!S>3q#5+IJE)	+r   c                 h    t        j                  d      t        d fdt               gd       y )Nr   c                 .    t        j                  | d      S )Nr   )r   tklmbdar9   s    r   r   z4TestCDFlib.test_tklmbda_zero_shape.<locals>.<lambda>k  s    bjjA& r   c                 <    t        j                  |        z   z  S r3   )r   r   )r9   ones    r   r   z4TestCDFlib.test_tklmbda_zero_shape.<locals>.<lambda>l  s    c6::qb>C/0 r   r   r   )r   ro   r   r   )r   r   s    @r   test_tklmbda_zero_shapez"TestCDFlib.test_tklmbda_zero_shapeg  s'    jjm&0UG$	 r   c                 |    t        t        j                  t        dt	               t        ddd      gddddg       y )Nr   iF)r   r   g&.>)rD   r4   rI   ri   r   r   r   r   r   r   s    r   test_tklmbda_neg_shapez!TestCDFlib.test_tklmbda_neg_shapeo  s5    JJ!	3sA59:Td|	%r   c                 v    t        t        j                  t        dt	               t        ddd      gdd       y )Nr   r   Fr   r   )rD   r4   r  r   s    r   test_tklmbda_pos_shapez!TestCDFlib.test_tklmbda_pos_shapew  s.    JJ!	3q#59:T		+r   r   )r}         ?g       @c                 X    d|z  }t        t        j                  | |g|      ddg       y )Nr   rU   r  )r   r   r   )r   r   bounds      r   test_tklmbda_lmbda1zTestCDFlib.test_tklmbda_lmbda1  s*    %RZZ%7#sDr   N)r+   r,   r-   pytestmarkxfailr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  parametrizer  r/   r   r   r   r      sS    [[5! "6	- [[5! ",, = [[5!. ".&7 [[5!+ "+ [[5!+ "++ % [[5!+ "+ [[Wo6E 7Er   r   ))r   r   )r   r   )r   r   )r   r   )r   rw   )chndtrr   )r   r   )r   r   )r   r   )r   r   )ncfdtrr   )ncfdtrir   )
ncfdtridfnr   )
ncfdtridfdr   )	ncfdtrincr   )r   r   )r   r   )r   r   )nbdtrikr   )nbdtrinr   )r   r   )r   r   )pdtrikrw   )r   rw   )r   rw   )r   rw   )nctdtrr   )nctdtritr   )	nctdtridfr   )	nctdtrincr   )r   rw   zfunc,numargs)idsc                    t         j                  j                  d      }t        t        |       } |j                  |      D cg c]<  }t        |      t         j                  t         j                  t         j                   f> }}t        j                  | D ]4  } | | }t        d |D              rt        |t         j                         56 y c c}w )Nl   7'}?J-0 c              3   F   K   | ]  }t        j                  |        y wr3   )r   rL   ).0r9   s     r   	<genexpr>z!test_nonfinite.<locals>.<genexpr>  s     )qrxx{)s   !)r   randomdefault_rnggetattrr   floatrM   r   	itertoolsproductanyr   )funcnumargsrngr9   args_choicesrQ   rR   s          r   test_nonfiniter*    s     ))

 0
1C2tDADGATUAU1Xrvvrvvw7ULU!!<0 	Dk)D))bff% 	 Vs   ACc                  ~    t        j                  ddt        j                  d      dz         } g d}t	        | |       y )Ng!?rw         4@r   )gyY;@gA@gʾC@g-E@g-oG@gNCEI@g0_{J@gY-L@gjrM@gZǧ9N@g-]fP@gmj#P@ggAQ@gl@Q@gndhR@g$܂R@g@FTxS@gēT@g]gϖT@gc$U@)r   r   r   aranger   )rR   res_exps     r   test_chndtrix_gh2158r/    s4    
++h299S>$#6
7C5G C!r   c                  p    g d} g d}g d}g d}t        j                  | ||      }t        ||dd       y )N)
MbP?\(\?皙#@b     i'  r4  r3  r2  r1  )
r1  r   r   皙?+?r1  r   r   r6  r7  )
~jtX?333333?r~      ,  r8  r9  r~   r:  r;  )
K ˸@gtI?x9" @g.$Bt+@gO,oq@r<  gZc^?r=  g@gjgdy=rU   r4   r5   )r   r  r   )dfarrparrtarrdesiredactuals        r   test_nctdtrinc_gh19896rD    s=     EEEDCD#G \\%t,FFG%c:r   c                     t        j                  t        j                  t        j                  t         j
                   t         j
                   dddt         j
                  g                  sJ t        j                  t        j                  t        j                  t         j
                   g d                  sJ y )N      rU   r  )rU   g      ?r}   g      ?r  )r   allrL   r   r   r   r   r/   r   r   test_stdtr_stdtrit_neg_infrH    sp    66"((288RVVGrvvgtS#rvv-NOPQQQ66"((2::rvvg/JKLMMMr   c                  r   t        j                  t         j                  t         j                   ddddddddt         j                  g      } | d d d f   } t        j                  t         j                  t         j                   ddddddt         j                  g	      }t        j
                  t        j                  t        j                  | t         j                  |                  sJ t        j
                  t        j                  t        j                  | t         j                  |                  sJ y )	Ng      $rF  rU   r   r}   gH.?r        $@)
r   arrayrM   r   
atleast_2drG  rL   r   r   r  )r   rs   s     r   test_bdtrik_nbdtrik_infrM    s    
	tS&"fc4P	RA	!D&	A
	"&&%sFBRVVD	FA66"((299Q2344466"((2::a34555r   zdfn,dfd,nc,f,expected_cdf)r   r   r   r   g,]?)r   r   {Gz?r   gsCr:)r   rN  r   rN  gnhUg?)rJ  rN  r  r   g%g{E?)r   r   rN  rN  g 	
1)r  r   r   r   gڞ^)k;)r  rN  r   rJ  glB?)r  rN  rJ  rN  g)Dt^\,?)rJ  r  r   r   g|?)r   r   r  r  g?)r   r   r   rJ  r  )r  r   r   rJ  g*}?c                     t        t        j                  | |||      |dd       d|cxk  rdk  r(n y t        t        j                  | |||      |d       y y )NvIh%<=r   r>  r   g|=r   )r   r   r  r  )rx   ry   r   fexpected_cdfs        r   test_ncfdtr_ncfdtrirS    sQ    t BIIc3A.5qQ 	<!

3R>N r   rQ   ))rF  r   r   r}   )r   rF  r   r}   )r   r   rF  r}   )r   r   r   r   )r   r   r   c                     t        j                  d      5  t        j                  t         j                  d      5  t        j
                  |   d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nraise)domainrW  )match)r   errstater	  raisesSpecialFunctionErrorr  )rQ   s    r   test_ncfdtri_domain_errorr\  ,  s_     
G	$ ]]222(C 	JJ	 	 	 s"   &A-A!A-!A*	&A--A6c                      e Zd Zej                  j                  dg dddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d? ej                  d@dAdBdCej                  j                  dDE      F      dG      dH        ZdI Z	ej                  j                  dJg dKg dLg dMg dNdOdOe
j                  dOdPgdOdOe
j                   dPdPgg      dQ        Zej                  j                  dg dR      dS        ZyT)UTestNoncentralTFunctionszdf, nc, x, expected_cdf)r2  ffffffr8  gD i?)r2  r_  r9  g?)r2  r_  r~   g7?r2  r_  r:  gU?)r2  RQ?r8  g?)r2  ra  r9  gx$p?)r2  ra  r~   g7?)r2  ra  r:  g]ŧe?)r2  ffffff@r8  g樼?)r2  rb  r9  g:GF ?)r2  rb  r~   gpa?)r2  rb  r:  gfO!t?)r2  &   r8  g    )r2  rc  r9  gQb] r2  rc  r~   gy+)r2  rc  r:  guQRm?)r3  r_  r8  g/C*i?)r3  r_  r9  g.b?)r3  r_  r~   gI'v?)r3  r_  r:  g?)r3  ra  r8  g?)r3  ra  r9  gD-?)r3  ra  r~   gy0 ?)r3  ra  r:  gC?)r3  rb  r8  g?)r3  rb  r9  g:e!?)r3  rb  r~   gh?)r3  rb  r:  g?)r3  rc  r8  g+    )r3  rc  r9  gPDp   )r3  rc  r~   gMr3  rc  r:  ggS>^X#>)r4  r_  r8  gNG0i?)r4  r_  r9  g%Wح?)r4  r_  r~   g?)r4  r_  r:  r  )r4  ra  r8  g aYҏ?)r4  ra  r9  gpku+?)r4  ra  r~   gZVq?)r4  ra  r:  r  )r4  rb  r8  g_a?)r4  rb  r9  g+,!?)r4  rb  r~   gqgb?)r4  rb  r:  g?)r4  rc  r8  gQ    )r4  rc  r9  g%Q   )r4  rc  r~   gTh-1)r4  rc  r:  g¤5)r5  r_  r8  geK0i?)r5  r_  r9  g?)r5  r_  r~   gjS?)r5  r_  r:  r  )r5  ra  r8  g|S׏?)r5  ra  r9  gfG-?)r5  ra  r~   g^"?)r5  ra  r:  r  )r5  rb  r8  gm?)r5  rb  r9  g|q]/!?)r5  rb  r~   g+%αs?)r5  rb  r:  r  )r5  rc  r8  gn    )r5  rc  r9  gm   r5  rc  r~   gDdz+Bug in underlying Boost math implementation)reason)marks)r5  rc  r:  g>H*c                 P    t        j                  |||      }t        ||dd       y )NrP  gr>  )r   r  r   )r   r   r   r9   rR  nctdtr_results         r   test_gh19896z%TestNoncentralTFunctions.test_gh19896a  s%    R 		"b!,|%fMr   c                 Z    d\  }}}d}t        t        j                  |||      |d       y )N)  r   r   -^?g+=r   r   r   r  )r   r   r   r9   expecteds        r   test_nctdtr_gh8344z+TestNoncentralTFunctions.test_nctdtr_gh8344  s+     	B(		"b!,hUCr   zdf, nc, x, expected, rtol)g      @g      @g       gG>g:0y5>)r   rJ  r  g'$ <rP  )r   g      g       @gjx?rP  )rJ  r,  r9  ge*mt-rP  r  rU   c                 J    t        t        j                  |||      ||       y )Nr   rn  )r   r   r   r9   ro  r4   s         r   test_nctdtr_accuracyz-TestNoncentralTFunctions.test_nctdtr_accuracy  s     			"b!,hTBr   )rd  )rl  r   r   rm  r`  re  c                 J    t        t        j                  |||      |d       y )Nr   r   )r   r   r  )r   r   r   r9   rR  s        r   test_nctdtritz&TestNoncentralTFunctions.test_nctdtrit  s     	BL915Ir   N)r+   r,   r-   r	  r
  r  paramr  rj  rp  r   r   rr  rt  r/   r   r   r^  r^  9  s   P [[6 C90C9.C9 	.C9 	-	C9
 	/C9 	0C9 	-C9 	-C9 	2C9 	2C9 	/C9 	,C9 	,C9 	1C9 	/C9  	-!C9" 	0#C9$ 	.%C9& 	-'C9( 	,)C9* 	0+C9, 	/-C9. 	-/C90 	,1C92 	23C94 	15C96 	.7C98 	*9C9: 	+;C9< 	,=C9> 	0?C9@ 	-AC9B 	/CC9D 	-EC9F 	,GC9H 	IC9J 	0KC9L 	.MC9N 	,OC9P 	QC9R 	1SC9T 	/UC9V 	-WC9X 	*YC9Z 	*[C9\ 	*]C9^ 	/_C9` 	-aC9b 	0cC9d 	.eC9f 	-gC9h 	iC9j 	0kC9l 	.mC9n 	-oC9p 	qC9r 	2sC9t 	1uC9v 	.wC9x 	yC9z 	*{C9| 	+}C9~ 	S"c#:!;;,,L - N	OC9D 	.EC9 CHNICHND [[#	4	8	3	7
b"&&#s	#
b266'3	$	
	C	C [[6 9 JJr   r^  r3   ).r.   r#  numpyr   numpy.testingr   r   r	  scipy.specialspecialr   scipy.special._testutilsr   r   r   scipy.special._mptestutilsr   r	   r
   r   r   r   ImportErrorr   r1   r>   ri   ru   r{   r   r   r   r   r
  slowr   funcsr  r*  r/  rD  rH  rM  rS  r\  r^  r   s   0r   <module>r     s     7  , ,; ;%
 $
4 
4M4 M4`
D-
 vvxE xE  xEv 	F 54IaQqT4IJ K$"$;N6 263175310-#13/O/Ob 

OJ OJw  %8$F%V 5Js   E =E,E)(E)