+
    0ii~                     |   R t ^ RIt^ RIt^ RIHtHtHt ^ RIt^ RI	H
t ^ RIHtHtHt ^ RIHtHtHtHtHt  ^ RIt ! R R4      t ! R R	4      t ! R
 R4      tR tR tR tR.R ltR tR.R lt R t!]PD                  PF                  ]! ]R4       ! R R4      4       4       t$. R/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNt%]PD                  PM                  R]%]% U u. uF  q ^ ,          NK  	  up R7      R 4       t'R t(R t)R t*R t+]PD                  PM                  R. RNO. ROO. RPO. RQO. RRO. RSO. RTO. RUO. RVO. RWO. RXO. RYO. RZO.4      R 4       t,]PD                  PM                  R . R[O4      R! 4       t- ! R" R#4      t. ! R$ R%4      t/]PD                  PM                  R&R^d.4      R' 4       t0 ! R( R)4      t1]PD                  PM                  R*^ ^ ^ ]Pd                  3^ ^ ^]Pd                  3^ ]Pf                  ^ ]Pd                  3^ ]Pf                  ^]Pd                  3]Pf                  ^ ^ ]Pd                  3]Pf                  ^ ^]Pd                  3]Pf                  ]Pf                  ^ ]Pd                  3]Pf                  ]Pf                  ^]Pd                  3.4      R+ 4       t4]PD                  PM                  R,^ ^ ^ ]Pd                  3^ ^ ]Pf                  ]Pd                  3^ ^^ ]Pd                  3^ ^]Pf                  ^ 3]Pf                  ^ ^ ]Pd                  3]Pf                  ^ ]Pf                  ]Pd                  3]Pf                  ^^ ]Pd                  3]Pf                  ^]Pf                  ]Pd                  3.4      R- 4       t5R#   ] d    ]! R4      t ELyi ; iu up i )\z
Test cdflib functions versus mpmath, if available.

The following functions still need tests:

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

N)assert_equalassert_allcloseassert_array_equal)MissingModulecheck_versionFuncData)ArgIntArgget_args	mpf2floatassert_mpmath_equalmpmathc                   0   a  ] tR t^!t o RtR tR tRtV tR# )ProbArgz*Generate a set of probabilities on [0, 1].c                "    ^ V n         ^V n        R# )    Nabselfs   &]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/special/tests/test_cdflib.py__init__ProbArg.__init__$   s        c                   \        ^V^,          4      p\        P                  ! R\        P                  ! R4      V4      p\        P                  ! RRV^,           RR7      R,          p^\        P                  ! \        P                  ! R4      RV4      ,
          p\        P
                  W4V3,          p\        P                  ! V4      # )z3Return an array containing approximately n numbers.333333?gffffff?F)endpoint:   NNii)maxnplogspacelog10linspacer_unique)r   nmv1v2v3vs   &&     r   valuesProbArg.values)   s    1a4L[[bhhsmQ/[[c1q559"=RXXc]C33EE""*yy|r   r   N)	__name__
__module____qualname____firstlineno____doc__r   r,   __static_attributes____classdictcell____classdict__s   @r   r   r   !   s     4
 r   r   c                   ,   a  ] tR t^3t o R tR tRtV tR# )EndpointFilterc                6    Wn         W n        W0n        W@n        R # N)r   r   rtolatol)r   r   r   r;   r<   s   &&&&&r   r   EndpointFilter.__init__4   s    		r   c                   \         P                  ! WP                  ,
          4      V P                  \         P                  ! V P                  4      ,          V P                  ,           8  p\         P                  ! WP
                  ,
          4      V P                  \         P                  ! V P
                  4      ,          V P                  ,           8  p\         P                  ! W#,          R R4      # )FT)r    absr   r;   r<   r   where)r   xmask1mask2s   &&  r   __call__EndpointFilter.__call__:   s    q66z"TYYrvvdff~%=		%IIq66z"TYYrvvdff~%=		%IIxxud33r   )r   r<   r   r;   N)r.   r/   r0   r1   r   rD   r3   r4   r5   s   @r   r8   r8   3   s     4 4r   r8   c                   <   a  ] tR t^@t o RR ltR tR tR tRtV t	R# )_CDFDataNc                   Wn         W n        W0n        W@n        WPn        W`n        Wpn        Wn        Wn        \        V\        4      '       g   R V n        R V n        R # V
f   Ve   \        V
\        4      '       d   Wn        M"V
.\        V P                  4      ,          V n        \        V\        4      '       d	   Wn        R # V.\        V P                  4      ,          V n        R # R V n        R V n        R # r:   )spfuncmpfuncindexargspecspfunc_firstdpsr&   r;   r<   
isinstancelist
endpt_rtol
endpt_atollen)r   rI   rJ   rK   rL   rM   rN   r&   r;   r<   rQ   rR   s   &&&&&&&&&&&&r   r   _CDFData.__init__A   s     
(		'4(("DO"DO#z'=*d++",#-,s4<</@"@*d++",#-,s4<</@"@"DO"DOr   c                   V P                   '       d   V P                  ! V!  p\        P                  ! V4      '       d   \        P                  # \        V4      pW!V P                  &   \        P                  ! V P                  4      ;_uu_ 4        V P                  ! \        V4      !  p\        VP                  4      pR R R 4       V# \        P                  ! V P                  4      ;_uu_ 4        V P                  ! V!  p\        VP                  4      pR R R 4       \        V4      pXWP                  &   V P                  ! \        V4      !  pV#   + '       g   i     T# ; i  + '       g   i     LX; ir:   )rM   rI   r    isnannanrP   rK   r   workdpsrN   rJ   tupler   real)r   argsress   &* r   idmap_CDFData.idmap^   s   ++t$Cxx}}vv:D"))kk5;/) * 
 ))kk4() * :D"D++uT{+C
 *) 
 *)s   /E1&E'E$	'E7	c           	     `   V P                   f   V P                  f   R # . p\        V P                   V P                  V P                  4       F^  w  r#pVf   Vf   VP	                  R 4       K!  Vf   RpMVf   RpVP	                  \        VP                  VP                  W#4      4       K`  	  V# )N        )rQ   rR   ziprL   appendr8   r   r   )r   filtersr;   r<   specs   &    r   get_param_filter_CDFData.get_param_filterr   s    ??"t'> #DOOT__dll SD|t$NN>$&&$&&$EF !T r   c                   \        V P                  V P                  4      pV P                  4       p\	        \        VP                  ^,          4      4      pVP                  ^,          p\        P                  ! WRV P                  3,          P                  VP                  ^ ,          ^4      34      p\        V P                  VW4V P                  V P                  RVR7      P                  4        R# )r   NNNF)param_columnsresult_columnsr;   r<   
vectorizedparam_filterN)r
   rL   r&   re   rY   rangeshaper    hstackrK   reshaper   r]   r;   r<   check)r   r[   rl   ri   rj   s   &    r   rq   _CDFData.check   s    dff-,,.eDJJqM23Ayy$Q

] 3 ; ;DJJqM1 MNOT,iidiiE*	, -2EGr   )rL   r<   rN   rR   rQ   rK   rJ   r&   r;   rI   rM   )T   i  NNNN)
r.   r/   r0   r1   r   r]   re   rq   r3   r4   r5   s   @r   rG   rG   @   s     #:("
4 
4r   rG   c                  <    \        V / VB pVP                  4        R # r:   )rG   rq   )r   kwds   *, r   _assert_invertsrw      s    !rAGGIr   c                 v   \         P                  ! V 4      \         P                  ! V4      \         P                  ! V4      r!p V ^ 8:  d   \         P                  ! ^ 4      # W8  d   \         P                  ! ^4      # \         P                  ! ^VRR7      p\         P                  ! W,
          V ^,           VRR7      # )r   T)exactx2regularized)r   mpffsubbetainc)kr&   ponemps   &&& r   _binomial_cdfr      sz    jjmVZZ]FJJqM!AAvzz!}	
zz!}KK1D)E>>!%Q5dCCr   c                 J   V^ 8  d   \         P                  ! ^ 4      # \         P                  ! V 4      \         P                  ! V4      \         P                  ! V4      r!p W,          W,          V,           ,          p\         P                  ! V ^,          V^,          VRR7      pV# )r   Trz   )r   r}   r   )dfndfdrA   ubr\   s   &&&  r   _f_cdfr      sm    1uzz!}**S/6::c?FJJqMaC		B
..QA"$
?CJr   c           	         Vf   \         P                  P                  p\         P                  ! V4      ;_uu_ 4        \         P                  ! V 4      \         P                  ! V4      r\         P
                  ! RRV ^,           ,          RV^,          ) V ,          4      pW1\         P                  ! RV ^,           ,          4      ,          ,          pV\         P                  ! \         P                  V ,          4      \         P                  ! RV ,          4      ,          ,          pRV,           uuR R R 4       #   + '       g   i     R # ; i)N      ?      ?)	r   mprN   rX   r}   hyp2f1gammasqrtpi)dftrN   facs   &&& r   _student_t_cdfr      s    
{iimm			

2

1AmmCb1fsQTE"H=c26l+++v{{699R<(c"f)===Sy 
			s   C/D77E	c                 ,   \         P                  ! V^,          ^,
          \         P                  ! W ,          4      4      pV\         P                  ! W,           ) ^,          4      W,          V^,          R,
          ,          ,          ^,          ,          pV# )   r   )r   besselir   exp)r   r   ncr\   s   &&& r   _noncentral_chi_pdfr      s^    
..A6;;rt#4
5C6::ik"ADBqD3J#7799CJr   c                   aa Vf   \         P                  P                  p\         P                  ! V 4      \         P                  ! S4      \         P                  ! S4      up oo\         P                  ! V4      ;_uu_ 4        \         P
                  ! VV3R l^ V .4      pVuuR R R 4       #   + '       g   i     R # ; i)Nc                    < \        V SS4      # r:   )r   )r   r   r   s   &r   <lambda>%_noncentral_chi_cdf.<locals>.<lambda>   s    $72r$Br   )r   r   rN   r}   rX   quad)rA   r   r   rN   r\   s   &ff& r   _noncentral_chi_cdfr      sr    
{iimm

1vzz"~vzz"~IAr2			kkBQFK 
			s    B--B>	c                 J    W,          ^V ,
          V,          ,
          V,          # )r    )r   lmbdas   &&r   _tukey_lmbda_quantiler      s    HA~%u,,r   z0.19c                   T  a  ] tR t^t o ]P
                  P                  RR7      R 4       tR tR t	R t
]P
                  P                  RR7      R 4       tR tR	 tR
 tR tR tR t]P
                  P                  RR7      R 4       tR tR t]P
                  P                  RR7      R 4       t]P
                  P                  RR7      R 4       tR tR tR t]P
                  P                  RR7      R 4       t]P
                  P7                  R. RO4      R 4       tRtV tR# )
TestCDFlibF)runc           
         \        \        P                  \        ^ \	        4       \        ^R4      \	        4       .RR7       R# )r     -C6?r;   N)rw   spbdtrikr   r   r	   r   s   &r   test_bdtrikTestCDFlib.test_bdtrik   s-    II	6!T?GI6		r   c           	         \        \        P                  \        ^\	        ^R4      \        4       \        4       .R. ROR7       R# )r   r   r   Nr;   rR   )NNư>)rw   r   bdtrinr   r	   r   r   s   &r   test_bdtrinTestCDFlib.test_bdtrin   s0    IIq$GI6"4		6r   c                    \        \        P                  R  ^ \        4       \	        ^ RRR7      \	        ^ ^RRR7      .RR7       R# )c                 4    \         P                  ! WVR R7      # Trz   r   r   r   r   rA   s   &&&r   r   )TestCDFlib.test_btdtria.<locals>.<lambda>       FNN1A4Hr        r@Finclusive_ar   inclusive_b-q=r   N)rw   r   btdtriar   r   r   s   &r   test_btdtriaTestCDFlib.test_btdtria   s=    JJH	3q#59Aqe?A	r   c                    \        \        P                  R  ^\        ^ RRR7      \	        4       \        ^ ^RRR7      .R. ROR7       R# )	c                 4    \         P                  ! WVR R7      # r   r   r   s   &&&r   r   )TestCDFlib.test_btdtrib.<locals>.<lambda>   r   r         Y@Fr   r   Hz>Nr   )NgC]r2<V瞯<)rw   r   btdtribr   r   r   s   &r   test_btdtribTestCDFlib.test_btdtrib   s@    JJHCU+WYA5e<>+	-r   c                    \        \        P                  \        ^\	        ^^d4      \        4       \        ^ ^dRR7      .RR7       R# )r   Fr   r   r   N)rw   r   fdtridfdr   r	   r   r   r   s   &r   test_fdtridfdTestCDFlib.test_fdtridfd   s5    KKAs^WYAs(FG	r   c                    \        \        P                  R  ^ \        4       \	        ^ RRR7      \	        ^ RRR7      .R. ROR7       R# )	c                 @    \         P                  ! WV,          R R7      # Tr   r|   r   gammaincr   s   &&&r   r   (TestCDFlib.test_gdtria.<locals>.<lambda>       FOOA1$Gr        @@Fr   g     @r   Nr   Nr   绽|=)rw   r   gdtriar   r   r   s   &r   test_gdtriaTestCDFlib.test_gdtria   s>    IIGYAs6CU+-*	,r   c                    \        \        P                  R  ^\        ^ RRR7      \	        4       \        ^ RRR7      .RR7       R# )c                 @    \         P                  ! WV,          R R7      # r   r   r   s   &&&r   r   (TestCDFlib.test_gdtrib.<locals>.<lambda>  r   r   r   Fr   r   h㈵>r   N)rw   r   gdtribr   r   r   s   &r   test_gdtribTestCDFlib.test_gdtrib  s;    IIGCU+WYCU+-	r   c                    \        \        P                  R  ^\        ^ RRR7      \        ^ RRR7      \	        4       .R. ROR7       R# )c                 @    \         P                  ! WV,          R R7      # r   r   r   s   &&&r   r   (TestCDFlib.test_gdtrix.<locals>.<lambda>  r   r   r   Fr   r   Nr   r   )rw   r   gdtrixr   r   r   s   &r   test_gdtrixTestCDFlib.test_gdtrix  s>    IIGCU+SCU-KY*	,r   c                    \        \        P                  R  ^ \        4       \	        R\
        P                  RRR7      \	        RR4      .RR7       R# )	c                 0    \         P                  ! W V4      # r:   r   ncdfrA   yzs   &&&r   r   *TestCDFlib.test_nrdtrimn.<locals>.<lambda>      FKKa0r   皙?Fr   g    _Br   r   Ng    _)rw   r   nrdtrimnr   r   r    infr   s   &r   test_nrdtrimnTestCDFlib.test_nrdtrimn  sB    KK0Ybff%UC 	r   c                    \        \        P                  R  ^\        \        P
                  ) ^
RRR7      \        4       \        ^
R4      .RR7       R# )c                 0    \         P                  ! W V4      # r:   r   r   s   &&&r   r   *TestCDFlib.test_nrdtrisd.<locals>.<lambda>(  r   r   Fr   }Ô%ITr   r   N)rw   r   nrdtrisdr   r    r   r   r   s   &r   test_nrdtrisdTestCDFlib.test_nrdtrisd%  sC    KK0"&&"%UCYU^ 	r   c           	         \        \        P                  \        \	        ^^d4      \        R\        P                  4      .RR7       R# )r   r   r   r   N)r   r   stdtrr   r	   r   r    r   r   s   &r   
test_stdtrTestCDFlib.test_stdtr/  s/    HHAs^S/0t	=r   c                n    \        \        P                  \        ^ \	        4       \        4       .RR7       R# )r   r   r   N)rw   r   stdtridfr   r   r   r   s   &r   test_stdtridfTestCDFlib.test_stdtridf6  s$    KK	35!	.r   c           	     x    \        \        P                  \        ^\	        ^^d4      \        4       .RRR.R7       R# )r   r   Nr   r   )rw   r   stdtritr   r	   r   r   s   &r   test_stdtritTestCDFlib.test_stdtrit=  s/    JJq#	*e}		&r   c           
     l    \        \        P                  R  ^ \        4       \	        ^^d4      .RR7       R# )c                 P    \         P                  ! V ^,          V^,          RR7      # )r   Tr   r   )r+   rA   s   &&r   r   )TestCDFlib.test_chdtriv.<locals>.<lambda>G  s    1!Fr   r   r   N)rw   r   chdtrivr   r	   r   s   &r   test_chdtrivTestCDFlib.test_chdtrivD  s(    JJF	6!S>*	7r   c                    \        \        P                  \        ^\	        ^ ^dRR7      \        4       \	        ^ ^dRR7      .RRRR7       R# )r   Fr   r   r   r   r&   r;   r<   N)rw   r   	chndtridfr   r   r   r   s   &r   test_chndtridfTestCDFlib.test_chndtridfK  s@     	LLAs.	As.0E	+r   c                    \        \        P                  \        ^\	        ^ ^dRR7      \        ^^d4      \        4       .RRRR7       R# )r   Fr   r   r   r   r  N)rw   r   	chndtrincr   r   r	   r   r   s   &r   test_chndtrincTestCDFlib.test_chndtrincU  s:     	LLAs.q#	JE		+r   c                    \        \        P                  \        ^ \	        4       \        ^^d4      \        ^ ^dRR7      .RRR. ROR7       R# )	r   Fr   r   r   r   N)r&   r;   r<   rR   )r   NN)rw   r   chndtrixr   r   r	   r   r   s   &r   test_chndtrixTestCDFlib.test_chndtrix^  s;    KK	6!S>3q#5+IJE)	+r   c                n   a \         P                  ! ^4      o\        R V3R l\        4       .RR7       R# )r   c                 0    \         P                  ! V ^ 4      # )r   )r   tklmbdarA   s   &r   r   4TestCDFlib.test_tklmbda_zero_shape.<locals>.<lambda>k  s    bjjA&r   c                 N   < S\         P                  ! V ) 4      S,           ,          # r:   )r   r   )rA   ones   &r   r   r&  l  s    c6::qb>C/0r   r   r   N)r   r}   r   r   )r   r(  s   &@r   test_tklmbda_zero_shape"TestCDFlib.test_tklmbda_zero_shapeg  s'    jjm&0UG$	 r   c                ~    \        \        P                  \        ^ \	        4       \        R^ RR7      .RRRR.R7       R# )r   F)r   r   &.>)rM   r;   rR   Nirw   r   r$  r   r   r   r   s   &r   test_tklmbda_neg_shape!TestCDFlib.test_tklmbda_neg_shapeo  s5    JJ!	3sA59:Td|	%r   c                x    \        \        P                  \        ^ \	        4       \        ^ ^dRR7      .RRR7       R# )r   Fr   r   )rM   r;   Nr-  r   s   &r   test_tklmbda_pos_shape!TestCDFlib.test_tklmbda_pos_shapew  s.    JJ!	3q#59:T		+r   r   c                d    ^V,          p\        \        P                  ! V) V.V4      RR.4       R# )r   r`         ?N)r   r   r$  )r   r   bounds   && r   test_tklmbda_lmbda1TestCDFlib.test_tklmbda_lmbda1  s*    %RZZ%7#sDr   r   N)r   r4         @)r.   r/   r0   r1   pytestmarkxfailr   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r   r)  r.  r1  parametrizer6  r3   r4   r5   s   @r   r   r      sV     [[5! "6	- [[5! ",, = [[5!. ".&7 [[5!+ "+ [[5!+ "++ % [[5!+ "+ [[Wo6E 7Er   r   zfunc,numargs)idsc                    \         P                  P                  R 4      p\        \        V 4      p VP                  V4       Uu. uF=  p\        V4      \         P                  \         P                  \         P                  ) 3NK?  	  pp\        P                  ! V!   F_  pV ! V!  p\        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   \        V\         P                  4       K_  Ka  	  R# u upi )l   7'}?J-0 c              3   N   "   T F  p\         P                  ! V4      x  K  	  R # 5ir:   r    rV   ).0rA   s   & r   	<genexpr>!test_nonfinite.<locals>.<genexpr>  s     )Dqrxx{{Ds   #%TFN)r    randomdefault_rnggetattrr   floatrW   r   	itertoolsproductanyr   )funcnumargsrngrA   args_choicesr[   r\   s   &&     r   test_nonfiniterO    s     ))

 0
1C2tDADGATUATAU1Xrvvrvvw7ATLU!!<0Dk3)D)333)D)))bff%  1 Vs   ADc                      \         P                  ! R ^\        P                  ! R4      R,           4      p . ROp\	        W4       R# )g!?      4@r   N)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   )r\   res_exps     r   test_chndtrix_gh2158rT    s2    
++h299S>$#6
7C5G C!r   c                  p    . ROp . ROp. ROp. ROp\         P                  ! WV4      p\        WCRRR7       R# )	MbP?dy=r`   r;   r<   N)
rV  \(\?皙#@b     i'  r[  rZ  rY  rV  )
rV  r   r   皙?+?rV  r   r   r]  r^  )
~jtX?333333?r      ,  r_  r`  r   ra  rb  )
K ˸@gtI?x9" @g.$Bt+@gO,oq@rc  gZc^?rd  g@gj)r   	nctdtrincr   )dfarrparrtarrdesiredactuals        r   test_nctdtrinc_gh19896rk    s9     EEEDCD#G \\%t,FF%c:r   c                     \         P                  ! \         P                  ! \        P                  ! \         P
                  ) \         P
                  ) RRR \         P
                  .4      4      4      '       g   Q h\         P                  ! \         P                  ! \        P                  ! \         P
                  ) . RO4      4      4      '       g   Q hR# )r4  r`   N      )r`         ?r   g      ?r4  )r    allrV   r   r  r   r  r   r   r   test_stdtr_stdtrit_neg_infrp    sv    66"((288RVVGrvvgtS#rvv-NOPQQQQ66"((2::rvvg/JKLMMMMr   c                     \         P                  ! \         P                  \         P                  ) RRRRRRRR \         P                  .4      p V R	,          p \         P                  ! \         P                  \         P                  ) RRRRRR\         P                  .	4      p\         P
                  ! \         P                  ! \        P                  ! V \         P                  V4      4      4      '       g   Q h\         P
                  ! \         P                  ! \        P                  ! V \         P                  V4      4      4      '       g   Q hR# )
      $@r4  r`   r   r   gH.?Ng      $rm  )rh   N)
r    arrayrW   r   
atleast_2dro  rV   r   r   nbdtrik)r   r   s     r   test_bdtrik_nbdtrik_infrv    s    
	tS&"fc4P	RA	&	A
	"&&%sFBRVVD	FA66"((299Q23444466"((2::a345555r   zdfn,dfd,nc,f,expected_cdfr   c                     \        \        P                  ! WW#4      VR ^ R7       ^ Tu;8  d   ^8  d*   M R# \        \        P                  ! WW$4      VRR7       R# R# )vIh%<=rX  g|=r   N)r   r   ncfdtrncfdtri)r   r   r   fexpected_cdfs   &&&&&r   test_ncfdtr_ncfdtrir}    sL    x BIIc.5qQ 	<!

3R>N r   r[   c           	      :   \         P                  ! R R7      ;_uu_ 4        \        P                  ! \         P                  RR7      ;_uu_ 4        \         P
                  ! V !   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; iraise)domainr  )matchN)r   errstater9  raisesSpecialFunctionErrorrz  )r[   s   &r   test_ncfdtri_domain_errorr  .  sW     
G	$	$]]222(CCJJ D 
%	$CC 
%	$	$s#   /B	A6	$B	6BB		B	c                     a  ] tR tRt o ]P
                  P                  R. RNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRON]P                  ! R^&RR]P
                  P                  RR7      R	7      NRPN4      R
 4       t	R t
]P
                  P                  R. RQO. RRO. RSO. RTORR]P                  RR.RR]P                  ) RR..4      R 4       t]P
                  P                  R. RUO4      R 4       tRtV tR# )VTestNoncentralTFunctionsi;  zdf, nc, x, expected_cdfr   r4  r\  gDdz+Bug in underlying Boost math implementation)reason)marksc                P    \         P                  ! WV4      p\        WTR RR7       R# )rx  grX  N)r   nctdtrr   )r   r   r   rA   r|  nctdtr_results   &&&&& r   test_gh19896%TestNoncentralTFunctions.test_gh19896c  s!    V 		"!,%fMr   c                Z    R ^Rr2pRp\        \        P                  ! WV4      VRR7       R# )  r   -^?g+=r   Nr   r   r  )r   r   r   rA   expecteds   &    r   test_nctdtr_gh8344+TestNoncentralTFunctions.test_nctdtr_gh8344  s)    !S(		"!,hUCr   zdf, nc, x, expected, rtolr`   c                J    \        \        P                  ! WV4      WER 7       R# )r   Nr  )r   r   r   rA   r  r;   s   &&&&&&r   test_nctdtr_accuracy-TestNoncentralTFunctions.test_nctdtr_accuracy  s     			"!,hBr   c                L    \        \        P                  ! WV4      VR R7       R# )r   r   N)r   r   nctdtrit)r   r   r   rA   r|  s   &&&&&r   test_nctdtrit&TestNoncentralTFunctions.test_nctdtrit  s     	BL915Ir   r   N)rY  ffffffr_  gD i?)rY  r  r`  g?)rY  r  r   g7?rY  r  ra  gU?)rY  RQ?r_  g?)rY  r  r`  gx$p?)rY  r  r   g7?)rY  r  ra  g]ŧe?)rY  ffffff@r_  g樼?)rY  r  r`  g:GF ?)rY  r  r   gpa?)rY  r  ra  gfO!t?)rY  &   r_  g    )rY  r  r`  gQb] rY  r  r   gy+)rY  r  ra  guQRm?)rZ  r  r_  g/C*i?)rZ  r  r`  g.b?)rZ  r  r   gI'v?)rZ  r  ra  g?)rZ  r  r_  g?)rZ  r  r`  gD-?)rZ  r  r   gy0 ?)rZ  r  ra  gC?)rZ  r  r_  g?)rZ  r  r`  g:e!?)rZ  r  r   gh?)rZ  r  ra  g?)rZ  r  r_  g+    )rZ  r  r`  gPDp   )rZ  r  r   gMrZ  r  ra  ggS>^X#>)r[  r  r_  gNG0i?)r[  r  r`  g%Wح?)r[  r  r   g?)r[  r  ra  r4  )r[  r  r_  g aYҏ?)r[  r  r`  gpku+?)r[  r  r   gZVq?)r[  r  ra  r4  )r[  r  r_  g_a?)r[  r  r`  g+,!?)r[  r  r   gqgb?)r[  r  ra  g?)r[  r  r_  gQ    )r[  r  r`  g%Q   )r[  r  r   gTh-1)r[  r  ra  g¤5)r\  r  r_  geK0i?)r\  r  r`  g?)r\  r  r   gjS?)r\  r  ra  r4  )r\  r  r_  g|S׏?)r\  r  r`  gfG-?)r\  r  r   g^"?)r\  r  ra  r4  )r\  r  r_  gm?)r\  r  r`  g|q]/!?)r\  r  r   g+%αs?)r\  r  ra  r4  )r\  r  r_  gn    )r\  r  r`  gm   )r\  r  ra  g>H*)      @g      @g       gG>g:0yU>)r   rr  r4  g'$ <rx  )r   g             @gjx?rx  )rr  rQ  r`  ge*mt-rx  )r  )r     r   r  r  r  )r.   r/   r0   r1   r9  r:  r<  paramr;  r  r  r    r   r  r  r3   r4   r5   s   @r   r  r  ;  s    P [[6 E90E9.E9 	.E9 	-	E9
 	/E9 	0E9 	-E9 	-E9 	2E9 	2E9 	/E9 	,E9 	,E9 	1E9 	/E9  	-!E9" 	0#E9$ 	.%E9& 	-'E9( 	,)E9* 	0+E9, 	/-E9. 	-/E90 	,1E92 	23E94 	15E96 	.7E98 	*9E9: 	+;E9< 	,=E9> 	0?E9@ 	-AE9B 	/CE9D 	-EE9F 	,GE9H 	IE9J 	0KE9L 	.ME9N 	,OE9P 	QE9R 	1SE9T 	/UE9V 	-WE9X 	*YE9Z 	*[E9\ 	*]E9^ 	/_E9` 	-aE9b 	0cE9d 	.eE9f 	-gE9h 	iE9j 	0kE9l 	.mE9n 	-oE9p 	qE9r 	2sE9t 	1uE9v 	.wE9x 	yE9z 	*{E9| 	+}E9B 	S"c#:!;;,,L - N	OCE9H 	.IE9 ELNMELND [[# 
5	8	3	7
b"&&#s	#
b266'3	$	
	CC [[6 9 JJr   r  c                     a  ] tR tRt o R t]P                  P                  R. RO4      R 4       t]P                  P                  RRR^]	P                  3]	P                  ^3.4      R 4       t]P                  P                  R]P                  ]P                  ]P                  ]P                   .4      ]P                  P                  R. RO4      R	 4       4       t]P                  P                  R]P                  ]P                  ]P                  ]P                   .4      ]P                  P                  R]	P$                  ^^3^]	P$                  ^3^^]	P$                  3]	P$                  ]	P$                  ^3]	P$                  ^]	P$                  3^]	P$                  ]	P$                  3]	P$                  ]	P$                  ]	P$                  3.4      R
 4       4       t]P                  P                  R^^ ^]	P$                  3^^ ]	P                  ]	P$                  3^]	P                  ^]	P$                  3^]	P                  ]	P                  ^ 3^^]	P                  ^ 3]	P                  ^ ^]	P$                  3]	P                  ^]	P                  ]	P$                  3]	P                  ^^^3]	P                  ]	P                  ]	P                  ]	P$                  3.	4      R 4       tRtV tR# )!TestNoncentralChiSquaredFunctionsi  c                   \         P                  ! . RO. RO. RO. RO. R	O. R
O. RO. RO. RO. RO. RO. RO. RO.4      p\        P                  ! VR,          VR,          VR,          4      p\	        W!R,          RR7       \        P
                  ! VR,          VR,          VR,          4      p\	        VRR VRR1^ 3,          RR7       \        P                  ! VR,          VR,          VR,          4      p\	        VRR VRR1^3,          RR7       \        P                  ! VR,          VR,          VR,          4      p\	        VRR VRR1^3,          RR7       R# )      9@rx  r   Ng:0yE>)r  rQ    gL94)r  r8     g7Fh9)rV  r8        D@ggåc;){Gz?r8  r  g	;)rQ  r  k   g8x@x>)g     6@r  r  gg1\>>)r  r  r  g`>)r  r  r4  gp!P?)g     u@r   rr  g j
?)r         +@rr  g]?)g     @rQ  r  g4ۙ?)g     b@r  rr  g?)g      d@r  rr  r4  )rh   r   )rh   r   )rh   r   )rh   r  )r    rs  r   chndtrr   r  r  r  )r   r,   cdfrA   r   r   s   &     r   .test_chndtr_and_inverses_against_wolfram_alphaPTestNoncentralChiSquaredFunctions.test_chndtr_and_inverses_against_wolfram_alpha  s"    999:999666666
  iitfTlF4LAD\6 KKtfTlF4LA#2ssAvT:\\&,tfTlC3BQd;\\&,tfTlC3BQd;r   z+x, df, nc, expected_cdf, rtol_cdf, rtol_invc                   \         P                  ! WV4      p\        WtVR 7       \        \         P                  ! WBV4      WR 7       \        \         P                  ! WV4      W&R 7       \        \         P
                  ! WV4      W6R 7       \        \         P                  ! WrV4      WR 7       \        \         P                  ! WV4      VRR 7       \        \         P
                  ! WV4      VRR 7       R# )r   r   r   N)r   r  r   r  r  r  )r   rA   r   r   r|  rtol_cdfrtol_invchndtr_results   &&&&&&& r   
test_tails,TestNoncentralChiSquaredFunctions.test_tails  s     		!,(CLb91LQb92MQL92M 	Mr:AMQr:BTJQM:BTJr   zx, dfc                t    \        \        P                  ! W^ 4      \        P                  ! W!4      RR7       R# )r   r   r   N)r   r   r  chdtr)r   rA   r   s   &&&r   %test_chndtr_with_nc_zero_equals_chdtrGTestNoncentralChiSquaredFunctions.test_chndtr_with_nc_zero_equals_chdtr  s#     			!+RXXb_5Ir   funr[   c           	        \         P                  ! R R7      ;_uu_ 4        \        P                  ! \         P                  RR7      ;_uu_ 4        V! V!   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir  )r   r  r9  r  r  )r   r[   r  s   &&&r   test_domain_error3TestNoncentralChiSquaredFunctions.test_domain_error$  sR     [[((r66hGGT
 H )(GG )((s#   /A;A(	A;(A83A;;B	c                J    \         P                  ! V! V!  4      '       g   Q hR # r:   r@  )r   r  r[   s   &&&r   test_nan_propagation6TestNoncentralChiSquaredFunctions.test_nan_propagation0  s     xxT
####r   zx, df, nc, expectedc                L    \        \        P                  ! WV4      VR R7       R# r   r   N)r   r   r  )r   rA   r   r   r  s   &&&&&r   test_chndtr_edge_cases8TestNoncentralChiSquaredFunctions.test_chndtr_edge_cases;  s     			!,hUCr   r   N))r      2   g
8DLrx  rx  )r   rs   r  g"rx  rx  )r   r  r  ggI˘rx  rx  )g     @g     j@r   grd\\"rW  rW  )   r  r   gk?-a=r  )  rb  r   g;?rx  r   )ix  r  r   g.?rx  r,  )r  r  r  g#%?rx  gdy=)r   r  )r   r   ))r   r   )r   r  r   )r   r   r  )r  r  r   )r  r   r  )r   r  r  )r  r  r  )r.   r/   r0   r1   r  r9  r:  r<  r  r    r   r  r   r  r  r  r  r  rW   r  r  r3   r4   r5   s   @r   r  r    s    <h [[5	;

K

K [[W	!RVVrvvqk2JJ [[U	BKKr||< [[V	1	
 [[U	BKKr||< [[V
&&!Q!RVVQ!Q
&&"&&!	rvvq"&&1Arvvrvv3F
&&"&&"&&	!	#
$$ [[
Q266	
Q	
RVVQ	
RVVRVVQ	
Q	
&&!Q	
&&!RVVRVV	$
&&!Q	
&&"&&"&&"&&	)	+DDr   r  rA   c                 B    \         P                  ! ^V 4      ^ 8X  g   Q hR# r   N)r   r  r%  s   &r   !test_chdtriv_p_equals_1_returns_0r  K  s    ::aq   r   c                      a  ] tR tRt o ]P
                  P                  RRR.4      R 4       t]P
                  P                  RR4      R 4       tR t	R t
]P
                  P                  R. RO4      R	 4       tR
tV tR# )
TestPdtrikiP  zp, m, expectedc                @    \         P                  ! W4      V8X  g   Q hR # r:   )r   pdtrik)r   r   r'   r  s   &&&&r   test_edge_casesTestPdtrik.test_edge_casesQ  s     yy(***r   r'   c                l    \         P                  ! \        P                  ! ^V4      4      '       g   Q hR# r  )r    rV   r   r  )r   r'   s   &&r   test_p_equals_1_returns_nan&TestPdtrik.test_p_equals_1_returns_nanW  s!    xx		!Q((((r   c                    \         P                  ! ^ .R.R... RO4      p\        V\        P                  ! R4      4       R# )r   rn  gffffff?N)r   g#B;r   )r  r  )r   r  r   r    zeros)r   r   s   & r   test_small_probabilities#TestPdtrik.test_small_probabilities[  s3    IIsTFTF+-=>1bhhv./r   c                    . ROp^p\         P                  ! W!4      p\        \         P                  ! W14      VRR7       R# )
   r   r   N)r  r  r  )r   pdtrr   r  )r   r'   r   r   s   &   r   test_roundtrip_against_pdtr&TestPdtrik.test_roundtrip_against_pdtr`  s-    GGAM		!7r   zp, m, kc                J    \        \        P                  ! W4      VR R7       R# r  )r   r   r  )r   r   r'   r   s   &&&&r   test_accuracyTestPdtrik.test_accuracyf  s     			!7r   r   N)r   r   r   )r   r   r   )r   r   r  ))gG:Ї7d   r   )g;(&?r  c   )gkͧ1r   r  )g-i i_ )r.   r/   r0   r1   r9  r:  r<  r  r  r  r  r  r3   r4   r5   s   @r   r  r  P  s     [[-))+,+,+ [[S,/) 0)0
8 [[YIJ
8J
8r   r  za, b, p, refc                 H    \        \        P                  ! WV4      V4       R # r:   )r   r   r   )r   r   r   refs   &&&&r   test_gdtrix_edge_casesr  p       1#S)r   zp, b, x, refc                 H    \        \        P                  ! WV4      V4       R # r:   )r   r   r   )r   r   rA   r  s   &&&&r   test_gdtria_edge_casesr  }  r  r   r:   )r   r  )r   r  )r   r  )r   r  )r  r   )r  r  )r  r  )r  r  )r  r  )r   r  )ry     )rz  r  )
ncfdtridfnr  )
ncfdtridfdr  )	ncfdtrincr  )r   r  )r   r  )r   r  )ru  r  )nbdtrinr  )r   r  )r   r  )r  r   )r  r   )r  r   )r  r   )r  r  )r  r  )	nctdtridfr  )re  r  )r$  r   )r   r   r   r   g,]?)r   r   r  r   gsCr:)r   r  r   r  gnhUg?)rr  r  r4  r   g%g{E?)r   r   r  r  g 	
1)r4  r   r   r   gڞ^)k;)r4  r  r   rr  glB?)r4  r  rr  r  g)Dt^\,?)rr  r4  r   r   g|?)r   r   r4  r4  g?)r   r   r   rr  r4  )r4  r   r   rr  g*}?)g0.++r  r   r   g0J?))rm  r   r   r   )r   rm  r   r   )r   r   rm  r   )r   r   r   r  )r   r   r   r  )6r2   rH  numpyr    numpy.testingr   r   r   r9  scipy.specialspecialr   scipy.special._testutilsr   r   r   scipy.special._mptestutilsr   r	   r
   r   r   r   ImportErrorr   r8   rG   rw   r   r   r   r   r   r   r:  slowr   funcsr<  rO  rT  rk  rp  rv  r}  r  r  r  r  r  rW   r   r  r  r%  s   0r   <module>r     s     K K  , ,; ;%
 $
4 
4M4 M4`
D-
 vvyE yE  yEx 	 	 	  	 	 	
  	  	  	  	  	  	  	  	  	  	  	  ! 	" # 	$ % 	& ' 	( ) 	* + 	, - 	. / 	0 1 	2 3 	4 5 	6 7 	8 9 	: ; 	< = 	> ? 	F 54I5aqTT54IJ K$"$;N6 263175310-#1/"/O#"/Ob 

SJ SJlwD wDt sCj)! *!8 8@ 1bff1bff266266VVQ266VVQ266VVRVVQVVRVVQ	* 	*	* 1bff2662661bff2661VVQ266VVQVVQ266VVQ	* 	*	*U  %8$F%X 5Js   N# =N9#N65N6