
    -i>                        S SK r S SKrS SKrS SKJrJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S rS r/ S	Qr\ R&                  R)                  S
\5      S 5       r\ R&                  R)                  S
\5      S 5       r\ R&                  R.                  \ R&                  R1                  SS9S 5       5       r\ R&                  R5                  \SS9\ R&                  R7                  S5      \ R&                  R)                  S
S/5      S 5       5       5       rS rS rS r\ R&                  R)                  SSSS\R@                  * \R@                  44/5      S 5       r!\ R&                  R)                  S
SS/5      S 5       r"S r#S  r$S! r%\ R&                  R)                  S"/ S#Q5      S$ 5       r&S% r'S& r(S' r)\ R&                  RU                  S(5       " S) S*5      5       r+S+ r,g),    N)assert_array_equalassert_allclosesuppress_warnings)deepcopy)FastGeneratorInversion)stats)IS_MUSLc                     [         R                  " [        SS9   [        [        R
                  " SS95        S S S 5        [         R                  " [        SS9   [        [        R
                  " SS/S95        S S S 5        [         R                  " [        S	S9   [        [        R
                  " 5       S
S9  S S S 5        Sn [         R                  " [        U S9   [        [        R                  " SS/5      5        S S S 5        [         R                  " [        SS9   [        S5        S S S 5        [         R                  " [        SS9   [        [        R                  " SS5      5        S S S 5        g ! , (       d  f       GND= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nzloc must be scalarmatch)333333??)loczscale must be scalar      ?@)scalez'test' cannot be used to seedtestrandom_statez/Each of the 1 shape parameters must be a scalarr         @z`dist` must be a frozenxyzDistribution 'truncnorm' is not      @)pytestraises
ValueErrorr   r   normgamma	truncnorm)msgs    \/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_fast_gen_inversion.pytest_bad_argsr!      s*   	z)=	>uzzj9: 
?	z)?	@uzzc
;< 
A 
z)H	Iuzz|&A 
J <C	z	-u{{C:67 
. 
z)B	Ct$ 
D 
z)J	KusC89 
L	K 
?	>	@	@ 
J	I 
.	- 
D	C 
L	KsG   E5 FF"F*F;!G5
F
F
F'*
F8;
G	
Gc                     [        [        R                  " 5       SS9n U R                  SS9nSU l        U R                  SS9n[        X5        [        R                  R                  S5      n[        [        R                  " 5       US9n U R                  SS9n[        R                  R                  S5      U l        U R                  SS9n[        X5        [        R                  R                  S5      n[        [        R                  " 5       US9n U R                  SS9n[        R                  R                  S5      U l        U R                  SS9n[        X5        [        [        R                  " 5       SS9n U R                  SS9nU R                  SS9nU R                  SS9nSU l        U R                  SS9n[        X%SS  5        g )	Ni-r   
   sizei16i<	        )r   r   r   rvsr   r   nprandomdefault_rngRandomStateevaluate_error)genx1x2urng_x3s         r    test_random_stater4   !   s   
 H
EC	b	BC	b	Br 99  *D
 D
AC	b	Byy,,X6C	b	Br 99  &D
 D
AC	b	Byy,,T2C	b	Br !H
EC	b	B"A	b	BC	b	Brbc7#    )#)alpha      @)anglit )argusr7   )r;   )gffffff@)beta)r   ?)cosiner:   )	betaprime)r   gffffff
@)bradfordr   )burr)r   333333@)burr12ffffff?r   )cauchyr:   )chi2r7   )chi)r   )crystalballrE   )exponr:   )r   r   )gennorm)g@)gumbel_lr:   )gumbel_rr:   )	hypsecantr:   )invgauss)g@)
invweibullrL   )laplacer:   )logisticr:   )maxwellr:   )moyalr:   r   r:   )pareto)r   )powerlaw)gffffff@)rayleighr:   )semicircularr:   )t)r   )waldr:   )weibull_max)rC   )weibull_minrA   zdistname, argsc                 ^   [         R                  R                  S5      n[        [        U 5      " U6 nUR                  SUS9n[        X2S9nUR                  SS9n[        R                  " XF5      R                  S:  d   e/ SQn[        UR                  U5      UR                  U5      SS	9  g )
N   IOi^  r%   r   r   r$   {Gz?gMbP?g?      ?r=   g+?绽|=atol)r)   r*   r+   getattrr   r(   r   cramervonmises_2samppvaluer   ppf)distnameargsr1   rng1rvs1rng2rvs2qs           r    test_rvs_and_ppfru   k   s     99  !12D5(#T*D88480D!$:D888D%%d1884??? 	&ADHHQK!59r5   c                     [        [        U 5      " U6 n[        5        nUR                  [        5        [        U5      nS S S 5        WR                  SSSS9u  pVUS::  d   eg ! , (       d  f       N*= f)N'  ra   Fr%   r   x_errorrg   )rj   r   r   filterRuntimeWarningr   r-   )rn   ro   distsuprngu_errorry   s          r    test_u_errorr   z   ss     5(#T*D		

>"$T* 
 ))"2E * G e 
	s   !A##
A1zgeninvgauss CDF is not accurate)reasonc                  ~    [         R                  " SS5      n [        U 5      nUR                  SSS9nUS   S:  d   eg )N皙	@r   rw   i	 rc   r   rg   )r   geninvgaussr   r-   )r|   r~   errs      r    test_geninvgauss_uerrorr      sE     S#&D
 
&C


&u

=Cq6E>>r5   z!Hits RecursionError, see gh-23172r&   )r<   ))\(?r   c                     [        5        nUR                  [        5        [        [        U 5      " U6 n[        U5      nS S S 5        WR                  SSSS9u  pVUS:  a	  US:  d   eg g ! , (       d  f       N1= f)Nrw   l   c}u -SRTrx   g&.=g&.>)r   rz   r{   rj   r   r   r-   )rn   ro   r}   r|   r~   r   ry   s          r    test_error_extreme_paramsr      s~     
	

>"uh'.$T*	 

 ))"7 * G +~~  
	s   4A**
A8c                  H   [        [        R                  " 5       5      n [        R                  " [
        SS9   U R                  SS9  S S S 5        [        R                  " [
        SS9   U R                  SS9  S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)Nzsize must be an integerr   r8   r$   )   r   )r   r   r   r   r   r   r-   )r.   s    r    test_evaluate_error_inputsr      sr    
 
.C	z)B	C$ 
D	z)B	C' 
D	C 
D	C	C	Cs   B)B
B
B!c                     Su  p[         R                  " XS9n[        USS9nUR                  SS9nX@-
  U-  n[         R                  " US5      R
                  S:  d   e/ S	Qn[        UR                  U5      UR                  U5      S
S9  g )N)r8   ffffff@r   r   i  r     r$   r   rd   re   rg   rh   )	r   r   r   r(   cramervonmisesrl   r   _ppfrm   )r   r   r|   r~   r
r_rescaledrt   s          r    test_rvs_ppf_loc_scaler      s    JC::#+D
 D
9CTA'U"J
F3::TAAA%ACHHQK%8r5   c                     [        [        R                  " 5       SS9n U R                  SS9nSUR	                  5       s=::  a  UR                  5       s=:  a  S::  d   e   eSu  p#[        R                  " X#S9n[        US	S9n U R                  SS9nX#S
-  -
  X#S-  -   peXQR	                  5       s=::  a  UR                  5       s=:  a  U::  d   e   eg )N)   domaind   r$   r   r   )r8   r   r   )g         r   r   )r   r   r   r(   minmax)r~   r   r   r   r|   lbubs          r    test_domainr      s     !g
>CSA'1557'a''''' JC::#+D
 i
8CSA3;ai(1557(b(((((r5   zdistname, args, expected)r<   r8   r   r   r   r   r:   c                     [        [        U 5      " U6 n[        U5      n[        UR	                  5       U5        SUl        SUl        [        UR	                  5       SS[        R                  " U5      -  -   5        g )Nr   r   )	rj   r   r   r   supportr   r   r)   array)rn   ro   expectedr|   r~   s        r    test_supportr      s`     5(#T*D
 
&Cs{{}h/CGCIs{{}a!BHHX,>*>&>?r5   )r<   r   rW   c                     [        [        U 5      " U6 n[        USS9n[        UR	                  5       S5        SUl        SUl        [        UR	                  5       S5        g )N)rf   rF   r   r   r   )       @rC   )rj   r   r   r   r   r   r   )rn   ro   r|   r~   s       r    test_support_truncationr      sP     5(#T*D
 j
9Cs{{}j1CGCIs{{}&@Ar5   c                  P   [         R                  " 5          [         R                  " S5        [        [        R
                  " 5       SS9n S S S 5        W R                  SS9nSUR                  5       s=::  a  UR                  5       s=:  a  S::  d   e   eg ! , (       d  f       NS= f)Nerror)r   r   r   r   r$   r   r   )	warningscatch_warningssimplefilterr   r   r   r(   r   r   )r~   r   s     r    test_domain_shift_truncationr      sz     
	 	 	"g&$UZZ\&A 
# 	SA&!%%'&Q&&&&&	 
#	"s   4B
B%c                     [        [        R                  " 5       SS9n [        R                  " SS5      nSnSn[	        U R                  U5      UR                  U5      5        [	        U R                  U5      UR                  U5      5        Su  pESU l	        S	U l
        [        R                  " SSXES
9n[        R                  " U5      U-  U-   n[	        U R                  U5      UR                  U5      5        [	        U R                  U5      UR                  U5      5        [        [        R                  " SS5      SS9n SU l	        SU l
        [        U R                  5       S5        [        R                  " / SQ5      nU R                  U5      n[        US   US	   4S5        [        R                   " USS	 5      S:  d   e[	        U R                  U5      S5        g )N)r   r   r   r   r   )r   rC         @g333333@rd   rf   gGz?)r   r   r   r   r   r   r8   )g333333?rF   )      @      @)gQ@Gz@Q@gGz@r   r   r   )r   r   r   r   )r   r   r   r   r   _cdfcdfr   rm   r   r   r)   r   r<   r   r   r   )r~   
trunc_normxpr   r   y_cdfs          r     test_non_rvs_methods_with_domainr      sr   
 j
ACc*JAACHHQK!23CHHQK!23JCCGCIcs@J
ec!ACHHQK!23CHHQK!23
 !C!5j
ICCGCIs{{}l3
)*AHHQKEa%(+V466%!*!!!CHHUO%=>r5   c                     [         R                  " 5       n [        U 5      n[        R                  " SSSS9nSn[        UR                  U5      U R                  U5      5        [        UR                  U5      U R                  U5      5        Su  pEXAl
        XQl        [         R                  " XES9n [        UR                  U5      U R                  U5      5        [        UR                  U5      U R                  U5      5        g )Nr   r#   )numr   )rf   r   r   )r   r   r   r)   linspacer   r   r   r   rm   r   r   )	norm_distr~   r   r   r   r   s         r    #test_non_rvs_methods_without_domainr     s    

I
 
+C
Br"AACHHQKq!12CHHQKq!12JCGI

s0ICHHQKq!12CHHQKq!12r5   z	domain, x))Nrf   )r   rf   )r   r   c                     [        [        R                  " 5       U S9n[        R                  " UR                  U5      5      (       d   e[        R                  " UR                  S5      5      (       d   eg)zpdf, cdf etc should map scalar values to scalars. check with and
w/o domain since domain impacts pdf, cdf etc
Take x inside and outside of domain r   rf   N)r   r   r   r)   isscalarr   r   )r   r   r~   s      r    test_scalar_inputsr     sP     !f
=C;;sxx{####;;sxx}%%%%r5   c                    ^^ Su  pn[        [        R                  " U 5      X4S9nSUl        UR	                  SS9nXR                  5       s=::  a  UR                  5       s=:  a  U::  d   e   e[        R                  " U 5      R                  mT" U5      T" U5      -
  m[        R                  " UUU4S j5      R                  S:  d   eg )N)g      @g      ?g      ?r   i  rb   r$   c                    > T" U 5      T-  $ )Nr:   )r   r   probs    r    <lambda>-test_domain_argus_large_chi.<locals>.<lambda>6  s    SVd]r5   皙?)
r   r   r;   r   r(   r   r   r   r   rl   )rI   r   r   r~   r   r   r   s        @@r    test_domain_argus_large_chir   +  s     "KCR
 S!12(
CCCSA(1557(b(((((
++c


Cr7SWD#:;BBTIIIr5   c                  |   [        [        R                  " 5       SS9n U R                  SS9nSU l        SU l        U R                  S5      n[        R                  " XS-
  S-  5      R                  S:  d   eS	U l        S
U l        U R                  S5      n[        R                  " X5      R                  S:  d   eg )Ni訤-r   r   r$   r   r   r   r   r   r   )r   r   r   r(   r   r   rk   rl   )r~   r1r2s      r    test_setting_loc_scaler   9  s    
 I
FC	d	BCGCI	B%%b6S.9@@4GGGCGCI	B%%b-44t;;;r5   c                     Sn [         R                  " [        U S9   [        [        R
                  " S5      5      nS S S 5        [        [        R
                  " S5      SS9nUR                  SSS9u  p#US	:  d   eg ! , (       d  f       NG= f)
Nz0No generator is defined for the shape parametersr   gQ?T)ignore_shape_ranger      rc   gư>)r   r   r   r   r   r\   r-   )r   r~   u_errr2   s       r    test_ignore_shape_ranger   H  sn    
<C	z	-$UWWT]3 
.
 4
HC !!t#!>HED== 
.	-s    A==
Bz4NumericalInversePolynomial.qrvs fails for Win 32-bitc                      \ rS rSrS rS\R                  R                  SSS9\R                  R                  SSS9/r	S\
" 5       4SS	S
S/rS\
" 5       4S\
" 5       4S/r\R                  R                  S\	5      \R                  R                  S\5      \R                  R                  S\5      S 5       5       5       rS rSrg)TestQRVSiR  c                    [        [        R                  " 5       5      nSn[        R                  " [
        US9   UR                  SS9  S S S 5        Sn[        R                  " [
        US9   UR                  S[        R                  R                  S5      S9  S S S 5        g ! , (       d  f       N`= f! , (       d  f       g = f)	Nz&`qmc_engine` must be an instance of...r   r   )
qmc_engine6`d` must be consistent with dimension of `qmc_engine`.r   r   dr   )	r   r   r   r   r   r   qrvsqmcHalton)selfr.   r   s      r    test_input_validationTestQRVS.test_input_validationV  s    $UZZ\28]]:U3HHH" 4 I]]:U3HHqUYY%5%5a%8H9 43	 43 43s   B$-.B5$
B25
CNr   r   seedr   )r   )r   )   r   )r   r   )r   r   r   )r   )r   qrngzsize_in, size_outzd_in, d_outc                 z   [        [        R                  " 5       5      nUbH  UbE  UR                  U:w  a5  Sn[        R
                  " [        US9   UR                  X$US9  S S S 5        g Uc   Ub  UR                  S:w  a  UR                  4nX5-   n[        U5      n	UR                  X$US9n
Ub  U
R                  U:X  d   eU	bg  U	R                  [        R                  " U5      =(       d    S5      n[        R                  R                  U5      R                  U5      n[        XSS9  g g ! , (       d  f       g = f)Nr   r   r   r   r%   r   r   -q=rh   )r   r   r   r   r   r   r   r   r   shaper*   r)   prodrm   reshaper   )r   r   size_insize_outd_ind_outr.   r   shape_expectedqrng2r   uniformqrvs2s                r    test_QRVS_shape_consistency$TestQRVS.test_QRVS_shape_consistencym  s   
 %UZZ\2  0TVVt^LEz7T: 8 <D,1VVIE!)xxWx>::///ll2777#3#8q9GJJNN7+33NCEDe4  87s   D,,
D:c                    [        [        R                  " 5       5      nSnSn[        R                  R	                  USS9n[        R                  R	                  USS9nUR                  [        R                  " U5      5      nUR                  X#US9n[        R                  R                  U5      n[        U5       H,  n	USU	4   n
US S 2U	4   R                  U5      n[        XSS9  M.     g )	N)r   r   r&   r   r   r   .r   rh   )r   r   r   r   r   r*   r)   r   r   rm   ranger   r   )r   r.   r%   r   r   r   r   r   r   isamplesample2s               r    test_QRVS_size_tupleTestQRVS.test_QRVS_size_tuple  s     %UZZ\2yy*		   +,,rwwt}-xxT4x8

w'qA#q&\FAqDk))$/GF%8 r5   r:   )__name__
__module____qualname____firstlineno__r   r   r   Sobolr   qrngstuplesizesdsr   markparametrizer   r  __static_attributes__r:   r5   r    r   r   R  s    	: 599??11?-uyy/?/?/?/JKE 
uwE /Auw<	3B[[VU+[[0%8[[]B/5 0 9 ,569r5   r   c                      Sn [        5        nUR                  [        5        [        [        R
                  " U 6 5      nS S S 5        WR                  SS9u  p4US::  d   eg ! , (       d  f       N(= f)N)gA;B?gעG-S?i  r   rg   )r   rz   r{   r   r   rB   r-   )ro   r}   r.   r   r2   s        r    test_burr_overflowr    sc    
 $D		

>"$UZZ%67 
 ###6JGe 
	s   2A!!
A/)-r   r   numpyr)   numpy.testingr   r   r   copyr   scipy.stats.samplingr   scipyr   scipy._lib._testutilsr	   r!   r4   dists_with_paramsr  r  ru   r   xslowxfailr   skipif	fail_slowr   r   r   r   infr   r   r   r   r   r   r   r   r   xfail_on_32bitr   r  r:   r5   r    <module>r     s'     . .  7  ):* $F$ N *->?: @: *->?
 @
 ;< =  G$GHq*.D-EF G  I(9)  46!2'89;<
@<
@ *.=?B?B'?D3 +()&	)&J< :P9 P9P9fr5   