
    (phR                        S SK Jr  S SK Jr  S SKrS SKrS SKJr  SSK	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJr  S SKJrJr  S SKJr  / SQ/ S	Q4r\\R<                  " \S
9S//-  rSS1rSS0r S r!\RD                  RG                  S\!" 5       5      S 5       r$\RD                  RG                  S\5      S 5       r%\RD                  RG                  S\5      S 5       r&\RD                  RG                  S\5      S 5       r'\RD                  RG                  S\5      S 5       r(S r)S r*S r+S r,S r-S  r.\RD                  RG                  S!/ S"Q5      \RD                  RG                  S#\5      S$ 5       5       r/\RD                  RG                  S#\5      S% 5       r0S& r1\RD                  RG                  S'\1" 5       5      S( 5       r2S) r3\RD                  RG                  S*\5      S+ 5       r4\RD                  Rk                  S,5      S- 5       r6S. r7g)/    N)assert_allclose)stats   )check_normalizationcheck_momentcheck_mean_expectcheck_var_expectcheck_skew_expectcheck_kurt_expectcheck_entropycheck_private_entropycheck_edge_supportcheck_named_argscheck_random_state_propertycheck_picklingcheck_rvs_broadcastcheck_freezing)distdiscreteinvdistdiscrete)rv_discrete_frozen)r            )皙?皙?g333333?g?values zipfian
nhypergeomnbinom   c               #      #    [        5       n [         HY  u  pU[        ;   a1  [        R                  " XU[        R
                  R                  S9v   OXX;  4v   U R                  U5        M[     g 7f)N)marks)setr   distslowpytestparammarkslowadd)seendistnameargs      X/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_discrete_basic.pycases_test_discrete_basicr0      sW     5D%x,,xhfkk>N>NOO!555 &s   A/A1zdistname,arg,first_casec                     [        [        U 5      n[        R                  R                  S5        UR                  " USS06n[        R                  " U5      nUR                  " U6 u  pg[        X1XPS-   5        [        X1U 5        [        X1XPS-   5        [        X15        Sn[        X1XHU S-   5        U(       a  S	n	UR                  UR                  UR                  UR                   UR"                  /n
S
SSSS.nUR%                  U S5      n['        X<XU
5        U S:w  a  [)        U5        [+        X15        U S;  a  [-        X15        [/        X15        [1        X1U 5        UR2                  R4                  [        R6                  R4                  :w  a  [9        X1[        R6                  5        g g g ! [         a    U nSn  GNf = f)Nsample distributioniP sizei  z cdf_ppfz oth{Gz?z
 chisquare)r      r   r      )randint	hypergeom	bernoullinchypergeom_walleniusr   >   poisson_binom)getattrr   	TypeErrornprandomseedrvsuniquecheck_cdf_ppfcheck_pmf_cdf	check_othr   check_discrete_chisquarepmflogpmfcdflogcdflogsfgetr   check_scale_docstringr   r   r   r   	__class___entropyrv_discreter   )r-   r.   
first_casedistfnrA   suppmvalphalocscale_defaultsmethsspec_kks                r/   test_discrete_basicr[   &   s   )) IINN7
**
%$
%C99S>D<<DA&t
%:;&x(f4F!23v#EV#%46  V]]FJJ  aa+,.JJx#CEB,,!&)#F0,,6'v# 	f8,$$(9(9(B(BB!&u/@/@A C' #  )()s   F, ,F>=F>zdistname,argc           	          [        [        U 5      nUR                  " USS06u  p4pV[        X!U 5        [	        X!X4U 5        [        X!X05        [        X!X4U 5        [        X!X4XP5        [        R                  R                  5        nU S;   a  UR                  [        5        [        X!X4X`5        S S S 5        [        X!US5        [        X!XCU-  -   S5        g ! [         a    U nSn  Nf = f! , (       d  f       NB= f)Nr2   momentsmvsk)zipf
betanbinomr   r   )r<   r   r=   r   r   r   r	   r
   r>   testingsuppress_warningsfilterRuntimeWarningr   check_moment_frozen)r-   r.   rR   rT   rU   srZ   sups           r/   test_momentsrh   R   s    )) s3F3JA!X. aH-f1/V!1f15		%	%	'3--JJ~&&qQ9 
( Q*QsUA.%  )() 
(	's   C )C)C&%C&)
C7zdist,shape_argsc           
         U S;   n [        [        U 5      n[
        R                  " S5      nUR                  n/ n/ nU S:X  aD  [
        R                  " SS5      nX4nS	n[        X0UXr[
        R                  " [        5      /5        g [        U5       HP  n	U	S
-   4SU	S-   -  -   n
X   nUR                  [
        R                  " X5      5        UR                  SU
S   5        MR     UR                  U5        UR                  UR                  5        [        X0XgU[
        R                  " [        5      /5        g ! [         a%    U nSU R                  < SU R                  < S3n  GNQf = f)N)	betabinomr`   skellam	yulesimondlaplacenchypergeom_fisherr:   r;   zrv_discrete(values=(z, z))r   r;   )r   r   
         ?)r   r   r   )r   r   r   )r<   r   r=   xkpkr>   zerosnumargsfullr   dtypeintrangeappendinsertr3   )dist
shape_args
shape_onlydistfunclocnargsallargsbshapeprZ   shp	param_vals               r/   test_rvs_broadcastr   k   sS     D DJA5$' ((1+CEGFGGJ$(HG"#	A 5\1uhq1u%M	rwws./aQ 	 
 NN3
MM#(( bhhsm_7  A%dgg[477+R@As   D: :+E)(E)z	dist,argsc           
          [        [        U 5      n[        R                  R                  S5        [        R                  R                  SS5      S[        R                  R                  SS5      /nUR                  " U6 u  pEU HN  n[        R                  " US-
  U-   XV-   /UR                  " S/UQ7SU06UR                  " S	/UQ7SU06/5        MP     g ! [         a    U n Nf = f)
NM r   r   ro           r         ?)r<   r   r=   r>   r?   r@   r7   supportnptassert_array_equalppf)r{   argsrR   re_locs_a_br   s          r/   test_ppf_with_locr      s    % IINN7yy  b)1bii.?.?2.FGG^^T"FBT#XrvZZ,d,,fjj.Mt.M.MN	   s   C C'&C'z
dist, argsc                 R    [        [        U 5      n[        R                  R                  S5        [        R                  R                  SS5      S[        R                  R                  SS5      /nUR                  " U6 u  pEU HQ  nXV-   US-
  U-   4nUR                  " S/UQ7SU06UR                  " S	/UQ7SU064n[        R                  " Xx5        MS     [        R                  R                  SSS
S9[        R                  " S
5      [        R                  R                  SSS
S9/nUR                  " U6 u  pEU HQ  nXV-   US-
  U-   4nUR                  " S/UQ7SU06UR                  " S	/UQ7SU064n[        R                  " Xx5        MS     g ! [         a    U n GNf = f)Nr   r   r   r   r   ro   r   r   r   )   r   r3   )r<   r   r=   r>   r?   r@   r7   r   isfr   r   rs   )	r{   r   rR   r   r   r   r   expectedress	            r/   test_isf_with_locr      s   % IINN7yy  b)1bii.?.?2.FGG^^T"FB8R!Vc\)jj,d,,fjj.Ld.L.LLx- 
 yy  bv 6xxyy  BV 46G ^^T"FB8R!Vc\)jj,d,,fjj.Ld.L.LLx-   s   F F&%F&c                 `   U R                   " U/UQ76 n[        R                  U R                  S5      nXE[        R
                  " U5      -  -
  n[        R                  " U R                  " U/UQ76 X#S-   5        [        R                  " U R                  " U R                   " U/UQ76 S-
  /UQ76 X#S-   5        [        U S5      (       de  U R                  " U6 u  pxX"U:     n	[        R                  " U R                  " U R                   " U	/UQ76 S-   /UQ76 XR                  -   US-   5        g g )N   z
-roundtrip:0yE>rq   z ppf-cdf-next)rI   roundtrip_cdf_ppf_exceptionsrL   namer>   spacingr   r   r   hasattrr   inc)
rR   r.   rS   msgcdf_suppn_ulps	cdf_supp0r   r   supp1s
             r/   rC   rC      s    zz$%%H *--fkk2>F"**X"666I6::i6#6|!35 6::fjj&<&<t&CJcJ|!35 64  %BYvzz&**U*AS*AD*HO3O$zz133H	J !    c           	      0   [        U S5      (       a  U R                  nO6[        U R                  " S/UQ76 S-
  5      n[	        [        XDS-   5      5      nU R                  " U/UQ76 nU R                  " U/UQ76 R                  5       nSu  pxUS:X  a  Su  px[        R                  " XUS   -
  XfS   -
  XxS	9  [        R                  " U5      n	U	S S
 [        R                  " U	5      S-  -   n
[        R                  " U R                  " U
/UQ76 S5        SnU " USU06n[        R                  " UR                  U	SS  U-   5      [        R                  " UR                  X-   5      5      5        [        R                  " UR                  X-   5      S5        g )Nrq   r4   r   ro   )绽|=r   rk   )h㈵>r   r   atolrtolr   r   rp   r   )r   rq   rw   r   listrx   rI   rG   cumsumr   r   r>   asarraydiffassert_equal)rR   r.   r-   indexstartindcdfspmfs_cumr   r   rZ   	k_shiftedr   r{   s                r/   rD   rD      sa   vt		vzz$--12U8]34::e"c"Dzz%&#&--/HJD9
AwA;(>!. 	

5A#2A%IVZZ	0C0!4 CC c D12-rwwtxx7H/IJTXXio.2r   c                 V    [         R                  " U " U6 R                  U5      USSS9  g )Nr   r   )r   r   moment)rR   r.   rT   rZ   s       r/   re   re      s(    ++A."0r   c                    [         R                  " U R                  " U/UQ76 SU R                  " U/UQ76 -
  SSS9  [        R
                  " SSS5      n[         R                  " U R                  " U/UQ76 U R                  " SU-
  /UQ76 SSS9  U R                  " S/UQ76 n[         R                  " U R                  " US-
  /UQ76 S:  5        [         R                  " U R                  " US-   /UQ76 S:  5        g )	Nr   r   r   r4   Gz?   rp   r   )	r   r   sfrI   r>   linspacer   r   assert_)rR   r.   rS   r   q	median_sfs         r/   rE   rE      s    		$--rFJJt4Jc4J/J"0 	D$#A

1+s+VZZQ-E-E"0 

3%%IKK		)a-.#.45KK

9q=/3/#56r   c                 6   SnU R                   " U6 u  pg[        [        US5      5      n[        [        US5      5      S-   n	[	        X5      n
SnU/n/ nU
 HT  nU R
                  " U/UQ76 nX-
  US-
  :  d  M#  UR                  U5        UR                  X-
  5        UnUSU-
  :  d  MT    O   US   U:  a%  UR                  U5        UR                  SU-
  5        [        R                  " U5      n[        R                  " U5      nUS-   nUUS'   [        R                  " UU5      u  nn[        R                  " [        R                  " U5      [        U5      U-  5      u  nn[        R                  " UU:  S	U S
[        U5       S[        U5       35        g)a?  Perform chisquare test for random sample of a discrete distribution

Parameters
----------
distname : string
    name of distribution function
arg : sequence
    parameters of distribution
alpha : float
    significance level, threshold for p-value

Returns
-------
result : bool
    0 if test passes, 1 if test fails

g?ii  r   r   g+=r   r   zchisquare - test for z
 at arg = z with pval = N)r   rw   maxminrx   rI   ry   r>   array	histogramr   	chisquarelenr   r   str)rR   r.   rA   rV   r   wsuppr   r   lohighdistsupportlastdistsuppdistmassiicurrenthistsuppfreqhsuppchispvals                        r/   rF   rF     sy   $ E ^^S!FB	SU^	Bs2t}!D/KDtHH**R&#&>UU]*OOBOOGN+D!e)$  |bD!xx!Hxx!H $HHQK ,,sH-KD%$S(1BCJD$KKu
uJs3xjc$i[Qr   c                 f    U R                   b$  [        R                  " SU R                   ;  5        g g )Nscale)__doc__r   r   )rR   s    r/   rM   rM   G  s&    ~~!G6>>12 "r   method)rG   rH   rI   rJ   r   rK   r   r   zdistname, argsc           	      D    [        [        U5      n[        X05      nU S;   a  SS/nOSS/nU Vs/ s H  of/S-  PM
     nnSS/nU" U/UQ7SU06n	[        R                  " U	[        U/UQUP76  V
s/ s H  o" U
6 PM	     sn
SSS	9  g ! [         a     g f = fs  snf s  sn
f )
N)r   r   r   r   r   r   r   r   V瞯<)r   r   )r<   r   r=   r   r   zip)r   r-   r   r{   dist_methodzr   p2r   resultrU   s              r/   test_methods_with_listsr   M  s    uh' $'K#JF	A#a%B	a&C)R)S)F25a2B"2Bc2BC2BQa2BC"0   
 Ds   B B2B

BBc                     [        [        U 5      n[        R                  " SS5      nUR                  " U/UQ76 n[        R
                  n[        R                  " XE5        g )Nr   )r<   r   r>   arangerI   nanr   r   )r-   r   r{   xvalsr   s         r/   test_cdf_gh13280_regressionr   d  sJ     5(#D
		"bA88ADvvHT$r   c               #     #    S1S1S.n [        5       n[         H  u  p#X!;   a  M  UR                  U5         [        [        U5      nUR                  5       n[        U5       HP  u  pgUR                  U R                  U[        5       5      ;   d  UR                  (       d  M@  X'R                  U4v   MR     M     g ! [
         a     M  f = f7f)Nn)r!   r`   )r%   r   r+   r<   r   r=   _shape_info	enumerater   rL   integrality)integrality_exceptionsr,   r-   shapesr{   
shape_infoishapes           r/   "cases_test_discrete_integer_shapesr   n  s      *-cUC5D(	5(+D %%'
!*-HA

48835II))JJ.. . )  		s)   5CB<A4C<
C
C	C

Czdistname, shapename, shapesc                    [        [        U 5      nUR                  5       nU Vs/ s H  oUR                  PM     nnUR	                  U5      n[        U5      nX'   n	U	S-
  n
U	S-
  nU	/U
/U//X'   UR                  " U6 u  p[        R                  " [        R                  " XS5      5      nUR                  " U/UQ76 n[        R                  " [        R                  " USS S 24   5      5      (       a   e[        R                  " [        R                  " USS S 24   5      5      (       d   e[        R                  " [        R                  " USS S 24   5      5      (       a   eg s  snf )Nrp   r   r   r   r   )r<   r   r   r   r   r   r   r>   roundr   rG   anyisnanall)r-   	shapenamer   r{   r   r   shape_namesr   shapes_copyvalid_shapeinvalid_shapenew_valid_shapeabr   rG   s                   r/   test_integer_shapesr    s2    5(#D!!#J+56:%:::K6)$Av,K)K#%M!AoO"mm_6GHKN<< DA
Q1%&A
((1
#{
#Cvvbhhs1a4y)****66"((3q!t9%&&&&vvbhhs1a4y)*****! 7s   E(c                     Sn [         R                  " [        U S9   [        R                  " SS5      R
                    S S S 5        [         R                  " [        U S9   [        R                  " SS5      R                    S S S 5        S[        R                  l        [        R                  " SS5      n[        U[        5      (       d   e[        [        R                  S5        g ! , (       d  f       N= f! , (       d  f       N}= f)Nz,'rv_discrete_frozen' object has no attribute)matchro   rp   herringpdf)
r'   raisesAttributeErrorr   binomr
  logpdf
isinstancer   delattr)messagefrozen_binoms     r/   test_frozen_attributesr    s     =G	~W	5B   
6	~W	5B## 
6EKKO;;r3'Ll$67777EKK 
6	5	5	5s   "C'"C8'
C58
Dzdistname, shapesc                    [        U [        5      (       a  [        [        U 5      nOU nUR                  " U6 u  p4[
        R                  " UR                  " SS//UQ76 US-
  U45        [
        R                  " UR                  " SS//UQ76 US-
  U45        [
        R                  " UR                  " S/UQ76 US-
  U45        g )Nr   r   )
r  r   r<   r   r   r   r   r   r   interval)r-   r   r{   r  r  s        r/   test_intervalr    s     (C  uh'<< DATXXq!f.v.1a9TXXq!f.v.1a9T]]1.v.1a9r   zSensible to machine precisionc            	        ^ [         R                  R                  S5      n [         R                  " U R                  S5      S-  5      nU R                  S5      nU[         R                  " U5      -  n[
        R                  " X4S9m[         R                  " S/US S R                  5       -   5      U-   S-  n[         R                  " USS  R                  5       US   S-   /-   5      U-   S-  n[         R                  " U5      n[         R                  " S/US S R                  5       -   5      U-   S-  n[         R                  " USS  R                  5       S/-   5      U-   S-  nTR                  5       u  p[        XS   5        [        XS   5        [        TR                  U5      U5        [        TR                  U5      S5        [        TR                  U5      S5        [         R                  " SS	9   [        TR                  U5      [         R                  " U5      5        [        TR                  U5      [         R                   * 5        [        TR                  U5      [         R                   * 5        S S S 5        [        TR#                  U5      U5        [        TR#                  U5      U5        [        TR#                  U5      S/US S R                  5       -   5        [         R                  " SS	9   [        TR%                  U5      [         R                  " TR#                  U5      5      S
S9  [        TR%                  U5      [         R                  " TR#                  U5      5      S
S9  [        TR%                  U5      [         R                  " TR#                  U5      5      S
S9  S S S 5        [        TR'                  U5      STR#                  U5      -
  5        [        TR'                  U5      STR#                  U5      -
  5        [        TR'                  U5      STR#                  U5      -
  5        [         R                  " SS	9   [        TR)                  U5      [         R                  " TR'                  U5      5      S
S9  [        TR)                  U5      [         R                  " TR'                  U5      5      S
S9  [        TR)                  U5      [         R                  " TR'                  U5      5      S
S9  S S S 5        [        TR+                  U5      U5        [        TR+                  U5      U5        [        TR+                  U5      S S USS  5        [        TR+                  S5      US-
  5        [        TR+                  S5      U	5        TR'                  U5      n
[        TR-                  U
5      U5        [        TR-                  SU-
  5      TR+                  U5      5        [        TR-                  SU-
  5      TR+                  U5      5        [        TR-                  S5      U	5        [        TR-                  S5      US-
  5        [         R.                  " SSS5      nTR+                  US-  5      TR-                  US-  5      4n[        TR1                  SU-
  5      U5        [        TR1                  S5      TR3                  5       5        [        TR1                  S5      US-
  U	45        TR+                  S5      n[        TR3                  5       U5        [         R                  " X-  5      n[         R                  " X-
  S-  U-  5      n[         R                  " X-
  S-  U-  5      US-  -  n[         R                  " X-
  S-  U-  5      US-  -  S-
  n[        TR5                  5       U5        [        TR7                  5       [         R8                  " U5      5        [        TR;                  5       U5        [        TR                  SS9XUU45        [         R                  " US-  U-  5      n[        TR=                  S5      U5        [        TR?                  S 5      S5        [        TR?                  5       U5        [        TR?                  S 5      U5        [         R                  " SS	9   [        TR?                  U4S j5      * TRA                  5       5        S S S 5        [         R                  R                  S5      n TRC                  SU S9n[         R                  R                  S5      n TR+                  U R                  SS95      n[        UU5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f)Nl   KU[ ro   r   r   r   r   r   ignore)divider   )r   r4   r   rp   r   g      ?r   r^   )r]   c                     g)Nr   r   r   s    r/   <lambda> test_rv_sample.<locals>.<lambda>%  s    !r   c                     U S-  $ )Nr   r   r  s    r/   r  r  '  s    !Q$r   c                 &   > TR                  U 5      $ )N)rH   )r   r{   s    r/   r  r  +  s    t{{1~r   d   )r3   random_stater   )"r>   r?   default_rngsortsumr   rP   r   tolistr   r   r   rG   errstaterH   loginfrI   rJ   r   rK   r   r   r   r  medianmeanstdsqrtvarr   expectentropyrA   )rngrq   rr   xk_leftxk_rightcdf2	cdf2_left
cdf2_rightr  r  sf2psint2med2mean2var2skew2kurt2mom3rA   rvs0r{   s                        @r/   test_rv_sampler@    s1   
 ))


,C	B"$	%B	BB"&&*BRH-D xxb"gnn../"4a7GABBrF1H:56;Q>H 99R=D1#Sb	 0 0 223d:A=I((48??,s23d:A=J <<>DAA!uA"v DHHRL"%DHHX&*DHHW%q) 
H	%B4H-w7G,rvvg6 
& DHHRL$'DHHX&-DHHW%s49+;+;+='=>	H	%B)="	$H-rvvdhhx6H/I"	$G,bffTXXg5F.G"	$ 
& DGGBK488B<0DGGH%q();';<DGGG$a(9&9:	H	%

2twwr{(;"	$

8,bffTWWX5F.G"	$

7+RVVDGGG4D-E"	$ 
& DHHTNB'DHHY',DHHZ("-r!"v6DHHQKQ'DHHQK# ''"+CDHHSM2&DHHQy[)488I+>?DHHQz\*DHHZ,@ADHHQK#DHHQKQ' 
T4	$B88BqD>488BqD>)DDMM!B$'.DMM!$dkkm4DMM!$qsAh/ 88C=DDKKM4( FF25ME662:/B&'DFFBJ?R'(4#;6EFFBJ?R'(472Q6EDIIK'DHHJ.DHHJ%DJJvJ.eU0KL 662q5B,DDKKND) DKK,a0DKKM5)DKK/6 
H	%%=>>O 
& ))


,C
((#(
.C
))


,C88CJJCJ()DCk 
&	% 
&	% 
&	%l 
&	%s3   ;Bf	B8fB8f-/f?	
f
f*-
f<?
gc                       " S S[         R                  5      n U " S[        S5      S9nUR                  SS9n[	        US5        g )	Nc                       \ rS rSrS rSrg)-test__pmf_float_input.<locals>.rv_exponentiali8  c                     SSSU-
  -  -  $ )NgUUUUUU?r   r   r   )selfr   s     r/   _pmf2test__pmf_float_input.<locals>.rv_exponential._pmf9  s    QU##r   r   N)__name__
__module____qualname____firstlineno__rF  __static_attributes__r   r   r/   rv_exponentialrC  8  s    	$r   rM  r   r(  )r  r  *   )r!  r   )r   rP   floatrA   r   )rM  rvrA   s      r/   test__pmf_float_inputrQ  4  s@    $** $ 
#u	.B
&&b&
!CCr   )8numpy.testingra   r   r   numpyr>   r'   scipyr   common_testsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   scipy.stats._distr_paramsr   r   !scipy.stats._distn_infrastructurer   r   rP   r&   r   r0   r)   parametrizer[   rh   r   r   r   rC   rD   re   rE   rF   rM   r   r   r   r  r  r  xfail_on_32bitr@  rQ  r   r   r/   <module>rZ     sO    )   , , , , D @*+ %##40"56 6 |$ !)"~  24M4OP(B Q(BV 6/ 7/0 *L9- :-` l3 4  |4. 5.0J4360
76r3  $A B)<80 9B0( )?;% <%/4 6;=?+?+,  +\:: ;: ;<s =sj
r   