
    > j>                        S SK r S SKrS SKrS SK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$                  R/                  SS9S 5       5       r\ R$                  R3                  \SS9\ R$                  R5                  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$                  RS                  S(5       " S) S*5      5       r*S+ r+g),    N)assert_array_equalassert_allclose)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    z/root/GenerationalWealth/GenerationalWealth/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_stater3       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 )argusr6   )r:   )gffffff@)beta)r   ?)cosiner9   )	betaprime)r   gffffff
@)bradfordr   )burr)r   333333@)burr12ffffff?r   )cauchyr9   )chi2r6   )chi)r   )crystalballrD   )exponr9   )r   r   )gennorm)g@)gumbel_lr9   )gumbel_rr9   )	hypsecantr9   )invgauss)g@)
invweibullrK   )laplacer9   )logisticr9   )maxwellr9   )moyalr9   r   r9   )pareto)r   )powerlaw)gffffff@)rayleighr9   )semicircularr9   )t)r   )waldr9   )weibull_max)rB   )weibull_minr@   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argsr0   rng1rvs1rng2rvs2qs           r   test_rvs_and_ppfrt   j   s     99  !12D5(#T*D88480D!$:D888D%%d1884??? 	&ADHHQK!59r4   c                 
   [        [        U 5      " U6 n[        R                  " 5          [        R                  " S[
        5        [        U5      nS S S 5        WR                  SSSS9u  pEUS::  d   eg ! , (       d  f       N*= f)Nignore'  r`   Fr$   r   x_errorrf   )ri   r   warningscatch_warningssimplefilterRuntimeWarningr   r,   rm   rn   distrngu_errorry   s         r   test_u_errorr   y   s{     5(#T*D		 	 	"h7$T* 
# ))"2E * G e 
#	"s   'A44
B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	 rb   r   rf   )r   geninvgaussr   r,   )r   r   errs      r   test_geninvgauss_uerrorr      sE     S#&D
 
&C


&u

=Cq6E>>r4   z!Hits RecursionError, see gh-23172r%   )r;   ))\(?r   c                    [         R                  " 5          [         R                  " S[        5        [	        [
        U 5      " U6 n[        U5      nS S S 5        WR                  SSSS9u  pEUS:  a	  US:  d   eg g ! , (       d  f       N1= f)Nrv   rw   l   c}u -SRTrx   g&.=g&.>)rz   r{   r|   r}   ri   r   r   r,   r~   s         r   test_error_extreme_paramsr      s     
	 	 	"h7uh'.$T*	 
#
 ))"7 * G +~~  
#	"s   :A;;
B	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
   r7   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)r7   ffffff@r   r   i  r     r#   r   rc   rd   rf   rg   )	r   r   r   r'   cramervonmisesrk   r   _ppfrl   )r   r   r   r   r
r_rescaledrs   s          r   test_rvs_ppf_loc_scaler      s    JC::#+D
 D
9CTA'U"J
F3::TAAA%ACHHQK%8r4   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   )r7   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(((((r4   zdistname, args, expected)r;   r7   r   r   r   r   r9   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   )	ri   r   r   r   supportr   r   r(   array)rm   rn   expectedr   r   s        r   test_supportr      s`     5(#T*D
 
&Cs{{}h/CGCIs{{}a!BHHX,>*>&>?r4   )r;   r   rV   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)re   rE   r   r   r   )       @rB   )ri   r   r   r   r   r   r   )rm   rn   r   r   s       r   test_support_truncationr      sP     5(#T*D
 j
9Cs{{}j1CGCIs{{}&@Ar4   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   )	rz   r{   r|   r   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   rB         @g333333@rc   re   gGz?)r   r   r   r   r   r   r7   )g333333?rE   )      @      @)gQ@Gz@Q@gGz@r   r   r   )r   r   r   r   )r   r   r   r   r   _cdfcdfr   rl   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%=>r4   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   )re   r   r   )r   r   r   r(   linspacer   r   r   r   rl   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2r4   z	domain, x))Nre   )r   re   )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   re   N)r   r   r   r(   isscalarr   r   )r   r   r   s      r   test_scalar_inputsr     sP     !f
=C;;sxx{####;;sxx}%%%%r4   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  ra   r#   c                    > T" U 5      T-  $ )Nr9   )r   r   probs    r   <lambda>-test_domain_argus_large_chi.<locals>.<lambda>5  s    SVd]r4   皙?)
r   r   r:   r   r'   r   r   r   r   rk   )rH   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Ir4   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   rj   rk   )r   r1r2s      r   test_setting_loc_scaler   8  s    
 I
FC	d	BCGCI	B%%b6S.9@@4GGGCGCI	B%%b-44t;;;r4   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      rb   gư>)r   r   r   r   r   r[   r,   )r   r   u_errr1   s       r   test_ignore_shape_ranger   G  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)TestQRVSiQ  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_validationU  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=rg   )r   r   r   r   r   r   r   r   r   shaper)   r(   prodrl   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_consistencyl  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   rg   )r   r   r   r   r   r)   r(   r   r   rl   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 r4   r9   )__name__
__module____qualname____firstlineno__r   r   r   Sobolr   qrngstuplesizesdsr   markparametrizer   r   __static_attributes__r9   r4   r   r   r   Q  s    	: 599??11?-uyy/?/?/?/JKE 
uwE /Auw<	3B[[VU+[[0%8[[]B/5 0 9 ,569r4   r   c                     Sn [         R                  " 5          [         R                  " S[        5        [	        [
        R                  " U 6 5      nS S S 5        WR                  SS9u  p#US::  d   eg ! , (       d  f       N(= f)N)gA;B?gעG-S?rv   i  r   rf   )rz   r{   r|   r}   r   r   rA   r,   )rn   r-   r   r1   s       r   test_burr_overflowr    sk    
 $D		 	 	"h7$UZZ%67 
# ###6JGe 
#	"s   8A22
B ),r   rz   numpyr(   numpy.testingr   r   copyr   scipy.stats.samplingr   scipyr   scipy._lib._testutilsr   r    r3   dists_with_paramsr  r  rt   r   xslowxfailr   skipif	fail_slowr   r   r   r   infr   r   r   r   r   r   r   r   r   xfail_on_32bitr   r  r9   r4   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r4   