
    (phb                     6   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Jr  S SKrS SKJrJrJrJr  S SKJr  S SKJr  S SKJ r   \ RB                  RE                  S/ S	Q5      S
 5       r#\ RB                  RE                  SSS/5      S 5       r$S r%S r&S r'S r(S r)S r*S r+S r,\ RB                  RE                  S\RZ                  " \.\/4/S-  6 5      S 5       r0S r1S r2S r3S r4S r5S r6S r7\ RB                  RE                  S / S!Q5      S" 5       r8S# r9S$ r:S% r;S& r<S' r= " S( S)5      r> " S* S+5      r?\ RB                  RE                  S,/ S-Q/ S.Q/5      S/ 5       r@S0 rA " S1 S25      rB " S3 S45      rCS5 rD " S6 S75      rE " S8 S95      rFg):    N)stats)	betabinom
betanbinom	hypergeom
nhypergeom	bernoulli	boltzmannskellamzipfzipfianbinomnbinomnchypergeom_fishernchypergeom_walleniusrandintpoisson_binom)assert_almost_equalassert_equalassert_allclosesuppress_warnings)r   )root_scalar)quadzk, M, n, N, expected, rtol))   
         g<<?V瞯<)k   '       g?r   )r   r   r    r!   gS;绽|=c                 F    [         R                  " XX#5      n[        XdUS9  g Nrtol)r   cdfr   kMnNexpectedr&   ps          Y/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_discrete_distns.pytest_hypergeom_cdfr0      s     	aA!AAd+    )   r   r    r!   g?r   )}   r   r    r!   g!:<r"   c                 F    [         R                  " XX#5      n[        XdUS9  g r$   )r   sfr   r(   s          r/   test_hypergeom_sfr6   #   s     	Q1 AAd+r1   c                     Sn SnSnSn[         R                  " XX#5      n[         R                  " X0-
  XU-
  U5      n[         R                  " X -
  XX-
  5      n[         R                  " XX25      n[        XESS9  [        XFSS9  [        XGSS9  Sn SnSnSn[         R                  " XX#5      n[        R                  " XU-  5      n	[        XSS9  g )Nr   2   r      )decimal      )r   logpmfr   r   )
r)   r,   Kr+   logpmf1logpmf2logpmf3logpmf4hypergeom_logpmfbernoulli_logpmfs
             r/   test_hypergeom_logpmfrE   -   s     	
A
A
A	AqQ*GquaQ2GquaAE2GqQ*G"5"5"5 	
A
A	A	A ''a3 ''Q3/(BGr1   c                      Su  pnSn[         R                  " X0X5      n[        R                  " X0XU-   S-
  5      X-
  US-
  -
  -  XU-   S-
  -
  -  n[        XTSS9  g )N)-            r;   绽|=r%   )r   pmfr   r   )r*   r+   rr)   NHGHGs         r/   test_nhypergeom_pmfrP   G   s`    GA!	A
..q
$C	qQ!A	&!%1Q3-	8A1QK	HBB%(r1   c                      Sn SnSn[         R                  " US-   5      n[        R                  " X0X5      n[        R                  " X0X5      n[        U/ SQSS9  [        U/ SQSS9  g )	NrI   r   r   r;   )$I$I?g۶m۶m?m۶m?rS   vIh%<=r%   )rR   $I$I?g%I$I?      ?)nparanger   rL   r'   r   )r*   r+   rM   supportrL   r'   s         r/   test_nhypergeom_pmfcdfrZ   P   s\    	A	A	Aii!nG
..Q
*C
..Q
*CC1>C0u=r1   c                  n    Sn SnSn[         R                  " / SQ/ SQ/XU5      n[        U/ SQ/ SQ/SS	9  g )
Nr   r   r   )r   r;      r   )r;   r\   r   r   )r;   r   r   r;   )r   r   r;   r   rT   r%   )r   rL   r   )r*   r+   rM   rL   s       r/   test_nhypergeom_r0r]   \   s9    
A	A	A
..,5qQ
?CC,5EBr1   c                  b    [         R                  " S/ SQS/S//SS9n U R                  S:X  d   eg )N   )r<   rI   	   r9   rH   r   r;   r\   r   size)r   rvsshape)xs    r/   test_nhypergeom_rvs_shaperg   e   s2     	r9tbTlFA77l"""r1   c                  0   [         R                  R                  S5        [        R                  " SSSSS9n [         R                  R                  S5        [         R                  R                  SS9n[        R                  " USSS5      n[        X5        g )Nr   r_   r<      d   rb   )rW   randomseedr   rd   uniformppfr   )rf   r.   ys      r/   test_nhypergeom_accuracyrp   m   sk     IINN1r1bs+AIINN1
		s#Aq"a$Ar1   c                  J   [         R                  " SS5      n Sn[        R                  " U SU5      nU S:H  n[	        X#5        [         R
                  " S5      nSn[        R                  " XU5      n/ SQn[        X#S	S
9  [        R                  " XU5      n/ SQn[        XSS	S
9  g )Nr   r;   grh|?r   r\   r   )r   r   r   $I$I?rU   g$I$I?r   r   rT   r%   )r   r   r   rs   g۶m۶m?r;   r;   r;   )rW   rX   r	   rL   r   logr   r'   )r)   r,   r.   r-   lamcs         r/   test_boltzmann_upper_boundrw   x   s    
		"aA	Aa"AAvH
&&)C	Aaa A-HAe,aa A+HAe,r1   c                      Sn [         R                  " U S-   5      n[        U SS5      R                  U5      n[         R                  " SU S-   -  U S-   5      n[        X#5        g )N   r;   )rW   rX   r   rL   repeatr   )r+   r)   r.   r-   s       r/   test_betabinom_a_and_b_unityr{      sX     	A
		!a%A!Qq!Ayya!ea!e,H$r1   dtypesr   c           	      |    U u  pnU" S5      U" S5      U" S5      pen[        [        R                  " XEUSS9S5        g )Nr   r\   r   r)   momentsgaa)r   r   r   )r|   n_typea_typeb_typer+   abs          r/   -test_betabinom_stats_a_and_b_integers_gh18026r      s=     $FFRj&)VAY!AIOOA!S9;NOr1   c                      Sn Sn[         R                  " S5      n[        SX5      R                  U5      n[	        X U-   -  5      R                  U5      n[        X45        g )Ngffffff@g)\(?r\   r;   )rW   rX   r   rL   r   r   )r   r   r)   r.   r-   s        r/   test_betabinom_bernoullir      sS    AA
		!A!Qq!A!e%))!,H$r1   c                  L    Su  pn[        [        R                  " XUS9S5        g )N)g?r   r;   
confidencer+   r.   r   r   )r   r   intervalalphar+   r.   s      r/   test_issue_10317r      s     KEaE!<fEr1   c                  L    Su  pn[        [        R                  " XUS9S5        g )N)gffffff?r   r   r   r   )r   r   r   r   s      r/   test_issue_11134r      s     KEa5;VDr1   c                  H   [         R                  R                  S5        [        [        R
                  " [         R                  R                  S5      SS5      S5        [        [        R
                  " SSS5      S5        [        [        R
                  " SSS5      S5        g )Nr   r         ?r;   )rW   rk   rl   r   r   rn   rand r1   r/   test_issue_7406r      sf    IINN1299>>"-q#6: 1a%r*1a%q)r1   c                  L   Sn [         R                  R                  SSS9nSn[        R                  " X!U 5      n[        US5        [         R                  " SSS5      n[        R                  " X!U 5      n[        US5        Sn[        R                  " X!U 5      n[        X15        g )	Nr   rj   r   rb   r   {Gz?Gz?r;   )rW   rk   r   r   rn   r   linspace)r.   r+   rf   rn   s       r/   test_issue_5122r      s    	A
		#B'A	A
))A!
Cb
D$#A
))A!
Ca	A
))A!
Cr1   c            	      x    [        [        S[        R                  " SS5      5      R	                  S5      S5        g )N  rr   ir   r   )r   r   rW   logspacern   r   r1   r/   test_issue_1603r      s)    tR[[T2377=qAr1   c                      Sn [         R                  " SSS5      n[        [        R                  " USU-  U 5      SSS9  g )Nr   r      r9   r\   r   )atol)rW   r   r   r   r'   )r.   rf   s     r/   test_issue_5503r      s6    A
Ar2AEIIa1a(#D9r1   zx, n, p, cdf_desired)	)i,  r   333333?g24?)r    r   r   gU7i(?)i0u  i r   gέ̑?)i i@B r   g8@
?)i- 逖 r   gf(G?)i r   gwtg ?)ir   r   gV}ֈ?)ipr   r   gz̍?)i0 r   r   gnC:c                 F    [        [        R                  " XU5      U5        g Nr   r   r'   )rf   r+   r.   cdf_desireds       r/   test_issue_5503pt2r      s     EIIaA&4r1   c                  H    [        [        R                  " SSS5      S5        g )Nr\   l    J)g-q=gB.+n?r   r   r1   r/   test_issue_5503pt3r      s    EIIa13IJr1   c                  H    [        [        R                  " SSS5      S5        g )N   r8   gAA?g_[Cˮi8)r   r   r5   r   r1   r/   test_issue_6682r      s     FIIc2w/1FGr1   c                  v    [         R                  " / SQSS5      n S[        R                  * S/n[	        X5        g )N)r   r   r;   r   r   gG޿g1D&+)r   logcdfrW   infr   )result	references     r/   test_issue_19747r      s.    ]]:q#.Frvvg{3IF&r1   c                  R    Sn SnSn[        [        R                  " X U5      S5        g )Nr   r   i          )r   r   rL   )r+   r.   r)   s      r/   %test_boost_divide_by_zero_issue_15101r      s&    AAAEIIaA&,r1   c                  X    / SQn [         R                  " SX 5      n/ SQn[        X5        g )N)	r;   r   rj   r     i  i  i  ip  r   )	g>l?gzo?gVrRs?g$?gVWCW?g4yB?g4.?g.Lr?gD?)r
   r'   r   )mur'   cdf_expecteds      r/   test_skellam_gh11474r      s)    	9B
++a
 CPL C&r1   c                   <   \ rS rSrS rS rS r\R                  R                  S5        \R                  " \R                  " SSS5      \R                  R                  S	S
S5      45      R                  r\R                   R#                  S\5      S 5       rS rSrg)TestZipfiani  c                    SnSn[         R                  " SS5      n[        [        R                  " X1U5      [
        R                  " X15      5        [        [        R                  " X1U5      [
        R                  " X15      5        [        [        R                  " X1U5      [
        R                  " X15      5        [        [        R                  " XSS9[
        R                  " USS95        g )Ng      @r   r;      msvkr~   )	rW   rX   r   r   rL   r   r'   r5   r   )selfr   r,   r)   s       r/   test_zipfian_asymptotic#TestZipfian.test_zipfian_asymptotic  s    IIaA!,dhhqn=A!,dhhqn=

1+TWWQ];aF;

1f5	7r1   c           	         Su  pSn[         R                  " SUS-   5      n[        [        R                  " XAU5      [        R                  " XBU5      SS9  [        [        R
                  " XAU5      [        R
                  " XBU5      SS9  [        [        R                  " XAU5      [        R                  " XBU5      SS9  [        [        R                  " XSS9[        R                  " X#SS9SS9  g )N)gG?g1  ?   r;   gƠ>r%   r   r~   )rW   rX   r   r   rL   r'   r5   r   )r   alt1agt1r,   r)   s        r/   test_zipfian_continuity#TestZipfian.test_zipfian_continuity  s     ,
IIaQAQ/Qa1H!	#AQ/Qa1H!	#

1A.

1A0F!	#dv>dv>T	Kr1   c                    [         R                  R                  S5        [         R                  R                  SSSS9n[         R                  R	                  S5      S-  S-   n[         R                  R                  SSSS9n/ SQn/ SQn[        [        R                  " XU5      SS  USS  S	S
9  [        [        R                  " XU5      SS  USS  SS
9  g )Nr   r;   ry   r   rb   rj   )
gĹԨ?gءk>	]x[?g>g	W4?g
-?g$fhn=g9[.>g`֔>gnm?)
gaj?gZk=?r   g?g90?gɸU?rV   gJ_9?g2h2-?gB0?ư>r%   g-C6
?)	rW   rk   rl   r   r   r   r   rL   r'   )r   r)   r   r+   rL   r'   s         r/   test_zipfian_RTestZipfian.test_zipfian_R)  s     			qIIa"-IINN2r!A%IIa2.+F 	A!,QR0#ab'EA!,QR0#ab'Er1   r   r;   r   r\   (   za, nc                 z  ^ [         R                  S 5       m[         R                  U4S j5       n[         R                  " US-   5      nU" XAU5      n[         R                  " U5      n[         R                  " XES9n[         R                  " XG-
  S-  US9nUS-  n	[         R                  " XG-
  U	-  S-  US9n
[         R                  " XG-
  U	-  S-  US9S-
  n[        [        R                  " XAU5      U5        [        [        R                  " XAU5      U5        [        [        R                  " XS	S
9XxX/5        g )Nc                 ^    S[         R                  " SU S-   5      U-  -  R                  5       $ )z$Naive implementation of harmonic sumr;   )rW   rX   sum)r+   ss     r/   Hns+TestZipfian.test_zipfian_naive.<locals>.HnsI  s,     bii1Q3'**//11r1   c                 <   > U S:  d  X:  a  gSX-  -  T" X!5      -  $ )z#Naive implementation of zipfian pmfr;   r   r   )r)   r   r+   r   s      r/   pzip,TestZipfian.test_zipfian_naive.<locals>.pzipN  s(     1u14x#a)++r1   r;   )weightsr\   r   r   r   mvskr~   )
rW   	vectorizerX   cumsumaverager   r   rL   r'   r   )r   r   r+   r   r)   rL   r'   meanvarstdskewkurtosisr   s               @r/   test_zipfian_naiveTestZipfian.test_zipfian_naiveE  s    
	2 
	2 
	, 
	, IIacN1miinzz!)jj!(Q43hzzAFC<!+S9::|a/=AA!,c2A!,c2aF;D3	5r1   c                     [         R                  " SS5      nUR                  [         R                  5      n[	        SS5      nUR                  U5      nUR                  U5      n[        XE5        g )Nr   r   o   r_   )rW   rX   astypeint32r   rL   r   r   r)   k_int32distrL   pmf_k_int32s         r/   test_pmf_integer_kTestZipfian.test_pmf_integer_kc  sS    IIa((288$sBhhqkhhw'S&r1   r   N)__name__
__module____qualname____firstlineno__r   r   r   rW   rk   rl   vstackr   r   Tnaive_testspytestmarkparametrizer   r   __static_attributes__r   r1   r/   r   r     s    	7KF0 IINN1))R[[Q3YY..q"b9; <<=A  [[V[15 25:'r1   r   c                   x   \ rS rSr\R
                  R                  S5        SrSr\R
                  R                  S\\S9r
\R
                  R                  S\\S9r\
\-   r\	R                  " S\\R                  S9r\R                  " S\\-
  5      r\R"                  " \\
5      r\	R                  " \\\R                  S9r\R
                  R(                  " \R                  6 S-  r\R.                  R1                  SS	S
/5      S 5       rS rS rS r\R.                  R1                  SS	S
/5      S 5       rSrg)TestNCHil  r\   r\   r   r   rj   r;   rb   r   	dist_namer   r   c           
          [         [        S.nX!   nU R                  U R                  U R                  U R
                  4u  pEpg[        UR                  XEXgSS9[        R                  " XEXg5      5        g )Nr   r   r;   )odds)	r   r   rf   r,   m1r+   r   rL   r   )r   r  distsr   rf   r,   r  r+   s           r/   test_nch_hypergeomTestNCH.test_nch_hypergeomz  sc    
 (:*?Affdffdggtvv5br15!aB2	4r1   c           
         U R                   U R                  U R                  U R                  U R                  4u  pp4n[
        R                  S 5       nU" XX4U5      u  pxn	[        [        R                  " XX4U5      U5        [        [        R                  " X#XESS9U5        [        [        R                  " X#XESS9U	5        g )Nc                   ^^^^^^^ UT-
  m[         R                  " STT-
  5      m[         R                  " TT5      mUUUU4S jmUUU4S jnU" S5      nU" S5      nU" S5      nT" U 5      U-  n	Xv-  n
X-  Xv-  S-  -
  nXU4$ )Nr   c                 N   > [        TU 5      n[        TTU -
  5      nX-  TU -  -  $ r   )special_binom)rf   t1t2r  m2r+   ws      r/   fFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.f  s/    "2q)"2q1u-wA~%r1   c                 L   >^  [        UU 4S j[        TTS-   5       5       5      $ )Nc              3   @   >#    U  H  nT" U5      UT-  -  v   M     g 7fr   r   ).0ro   r  r)   s     r/   	<genexpr>YTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P.<locals>.<genexpr>  s     @.?1Q419.?s   r;   )r   range)r)   r  xlxus   `r/   PFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P  s    @eBQ.?@@@r1   r;   r\   rW   maximumminimum)rf   r,   r  r+   r  r  P0P1P2rL   r   r   r  r  r  r  s     ```       @@@@r/   pmf_mean_var;TestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var  s     RBAqt$BAr"B& &
A 1B1B1BA$)C7D'RWqL(Cc>!r1   mr~   v)rf   r,   r  r+   r  rW   r   r   r   rL   r   )
r   rf   r,   r  r+   r  r$  rL   r   r   s
             r/   test_nchypergeom_fisher_naive%TestNCH.test_nchypergeom_fisher_naive  s     FFDFFDGGTVVTYYFbT		" 
	", &aB483*..qRDA3G*00M	*00M	r1   c                 d  ^^ [         R                  R                  S5        SnSn[         R                  R                  SX!S9n[         R                  R                  SX!S9nX4-   n[        R                  " SXUR
                  S9n[         R                  " SXd-
  5      n[         R                  " Xc5      n[        R                  " XxUR
                  S9n	[         R                  R                  " U	R
                  6 S-  n
S m[         R                  U4S j5       m[        5        nUR                  [        S	S
9  [        [        R                  " XSXj5      T" XSXj5      SS9  S S S 5        [         R                  U4S j5       n[        5        nUR                  [        S	S
9  [        [        R                   " XSXjSS9U" XSXj5      SS9  S S S 5        [         R                  U4S j5       nU" XX6U
5      n[        R"                  " XX6U
5      nSu  nn[         R$                  " X-
  5      UU[         R$                  " U5      -  -   :  nUR'                  5       [         R(                  " U5      S-  :  d   e[+        UU)    UU)    UU)    U
U)    5       H|  u  pSpjXS-
  nT" XSXj5      u  px[         R,                  " XxS-   5      n	U" XX6U
5      R'                  5       S:  d   e[        [        R"                  " XX6U
5      R'                  5       S5        M~     g ! , (       d  f       GN= f! , (       d  f       GNb= f)Nr\   r  rj   r;   rb   r   c                 n    X-
  n[         R                  " SX$-
  5      n[         R                  " X!5      nXV4$ )Nr   r  )r,   r  r+   r  r  r  r  s          r/   rY   9TestNCH.test_nchypergeom_wallenius_naive.<locals>.support  s0    BAqt$BA"B6Mr1   c                 l   >^^^^ U T-
  mT" U TTT5      u  pEUUUU4S jn[        XdU4S9R                  $ )Nc                 2   > U T-  STU -
  T-  -
  T-  -   S-
  $ Nr;   r   )ur  r  r+   r  s    r/   funCTestNCH.test_nchypergeom_wallenius_naive.<locals>.mean.<locals>.fun  s(    tqAaC8|a//!33r1   )bracket)r   root)	r,   r  r+   r  r  r  r1  r  rY   s	    ```   @r/   r   6TestNCH.test_nchypergeom_wallenius_naive.<locals>.mean  s?    RBQAq)FB4 4 sH5:::r1   z!invalid value encountered in mean)messageg{Gz?r%   c                 r   > X-
  nT" XX#5      nXQU-
  -  nX%-
  XT-   U-
  -  nX-  U-  U S-
  X-  XF-  -   -  -  $ r/  r   )	r,   r  r+   r  r  r0  r   r   r   s	           r/   variance:TestNCH.test_nchypergeom_wallenius_naive.<locals>.variance  sU    BQA!A!VAqvz"A3q5QqSRTBD[122r1   r'  r~   g?c                 j   >^ ^^^^^	 UT-
  m	T
" UTTT5      u  pVUU	UUU 4S jmUUU	U4S jnU" T 5      $ )Nc                 j   > TTT-
  -  TTT-
  -
  -   nSU TU-  -  -
  T-  SU SU-  -  -
  TT-
  -  -  nU$ r/  r   )tDresr  r  r+   r  rf   s      r/   	integrandHTestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.integrand  sQ    rAvJ"!*-QqSzAo1qs8qs(;;
r1   c                 h   > [        TU 5      n[        TTU -
  5      n[        TSSSSS9nX-  US   -  $ )Nr   r;   gؗҜ<)epsrelepsabs)r  r   )rf   r  r  the_integralr?  r  r  r+   s       r/   r  @TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.f  sF    "2q)"2q1u-#Iq!+0 @wa00r1   r   )rf   r,   r  r+   r  r  r  r  r?  r  rY   s   ` ```   @@r/   rL   5TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf  s=    RBQAq)FB 
1 1 Q4Kr1   )r   r   r   )rW   rk   rl   r   rd   re   r  r   r   r   r   filterRuntimeWarningr   r   r   r   rL   absr   prodziprX   )r   re   max_mr  r  r,   r+   r  r  rf   r  supr8  rL   pmf0pmf1r   r&   ir   rY   s                      @@r/    test_nchypergeom_wallenius_naive(TestNCH.test_nchypergeom_wallenius_naive  s    			qYYq%4YYq%4GKK177+ZZ14 ZZKKRXX.IINNAGG$Q&	 
	; 
	;  CJJ~B  D166qaC -D: ! 
	3 
	3  CJJ~B  D%++A1E% ! 
	 
	$ 1"$((ra8
dFF4;$bffTl):"::uuw!++++ q!ub!faeQrU;KA1BQA)FB		"1f%A qRA&**,r111155aB1EIIKQO <e !  ! s   #<L
;L 
L 
L/c           	      <   SnSnSnSn[         R                  " S5      n[         R                  " / SQ5      nSnSn[        [        R
                  " XQX#U5      US	S	S
9  [        [        R                  " XX45      US	S9  [        [        R                  " XX45      USS9  g )Nr8   r   ry   g      @r   )g9T;gr<gD,P=g4 V=g'	,=gCG>gyztj>gt>g+k?g MeGD?gqNZVɒo?gc2n?g~ZN?gE}?Y?g?g·aQ?g]??gr)?gp{?g39	y?g m>?gJ򕴝-@gih@rT   )r&   r   r%   gdy=)rW   rX   arrayr   r   rL   r   r   )	r   r*   r+   r,   r  rM  rL   r   r   s	            r/   test_wallenius_against_mpmath%TestNCH.test_wallenius_against_mpmath  s     iimhh / 0* "  	-11#!Es"	0-221A5	*-11!@%	)r1   c                 |    [         [        S.nX!   nUR                  SSS/S/// SQSS9nUR                  S:X  d   eg )	Nr  r8   r   r   ry   )r   rV   g       @ra   rb   )r   r   rd   re   )r   r  r  r   rf   s        r/   test_rvs_shapeTestNCH.test_rvs_shape.  sL     (:*?AHHRrdRD\?HNww,&&&r1   r   N)r   r   r   r   rW   rk   rl   re   rL  r   r  r  r,   rd   r+   r  r  r   r  rf   r   r  r   r   r   r  r(  rQ  rU  rX  r   r   r1   r/   r   r   l  s:   IINN1EE			1e%		0B			1e%		0B
RAAqqww'A	Aqt	B	Ar	BB*A99>>177#A%D [[[24KLN4N4 DZPx()T [[[24KLN'N'r1   r   zmu, q, expected)r   x   g@	#)i  r   g"qVUc                 X    SnX3X0-   -  pT[        [        R                  " XU5      U5        g )Nry   )r   r   r   )r   qr-   rc   r+   r.   s         r/   test_nbinom_11465r]  ;  s+    
 Dtwq FMM!*H5r1   c                      [         R                  " SSS5      n Sn[        U5      R                  U 5      nU S-  S:H  n[	        US   U5        [	        US   SU-
  5        [        X#)    S5        g )Nr   r;   ri   g?r   )rW   r   r   rL   r   r   )rf   r.   rL   rP  s       r/   test_gh_17146r_  H  sj     	Aq"AA
A,

1
C	
Q!ACGQCFAaC R!r1   c                       \ rS rSr\R
                  R                  S/ SQ/ SQ/ SQ/5      S 5       r\R
                  R                  S/ SQ/ S	Q/ S
Q/5      S 5       rSr	g)TestBetaNBinomiT  zx, n, a, b, ref)r   g    SAr   ry   g:[Y))rj   r8   r   ry   g dg?)r   r   r   ry   gL&[>c                 D    [        [        R                  " XX45      USS9  g )NrK   r%   )r   r   rL   )r   rf   r+   r   r   refs         r/   test_betanbinom_pmf"TestBetaNBinom.test_betanbinom_pmfU  s      	
qQ2CeDr1   zn, a, b, ref)r   r   r8   g:o?)r   r`   r`   g>["@)rj   r   r   g >[?c           	      B    [        [        R                  " XUSS9USS9  g )Nr)   r~   g [n<r%   )r   r   r   )r   r+   r   r   rc  s        r/   test_betanbinom_kurtosis'TestBetaNBinom.test_betanbinom_kurtosish  s"    * 	
((q#>%	)r1   r   N)
r   r   r   r   r   r   r   rd  rg  r   r   r1   r/   ra  ra  T  so    [[.EBHJKE	KE [[^C:?AB)	B)r1   ra  c                       \ rS rSrS rSrg)TestZipfi  c                     [         R                  " SS5      nUR                  [         R                  5      n[	        S5      nUR                  U5      nUR                  U5      n[        XE5        g )Nr   r   r`   )rW   rX   r   r   r   rL   r   r   s         r/   test_gh20692TestZipf.test_gh20692  sP    IIa((288$Awhhqkhhw'S&r1   r   N)r   r   r   r   rl  r   r   r1   r/   rj  rj    s    'r1   rj  c                       " S S[         R                  5      n U " [        R                  S9nSn[        R
                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)#test_gh20048.<locals>.test_dist_geni  c                      [        US-  S5      $ )Nrj   r   )min)r   r)   s     r/   _cdf(test_gh20048.<locals>.test_dist_gen._cdf  s    q3w%%r1   r   N)r   r   r   r   rs  r   r   r1   r/   test_dist_genrp    s    	&r1   ru  )r   zArguments that bracket...)matchg+?)r   rv_discreterW   r   r   raisesRuntimeErrorrn   )ru  	test_distr6  s      r/   test_gh20048r{    sO    &)) & 'I)G	|7	3e 
4	3	3s   	A$$
A2c                       \ rS rSrS rSrg)TestPoissonBinomiali  c                    [         R                  R                  S5      nUR                  S5      n[         R                  " US-   5      nUR                  U5      n[
        R                  " X45      n/ SQn[        XV5        g )Nl   zb} r   r;   )gcƙ?g!)@*?g/_?g?TxY^?gg	SUH?)rW   rk   default_rngintegersrX   r   rL   r   )r   rngr+   r)   r.   r>  rc  s          r/   test_pmfTestPoissonBinomial.test_pmf  sd     ii##L1LLIIa!eJJqM%=!r1   r   N)r   r   r   r   r  r   r   r1   r/   r}  r}    s    "r1   r}  c                       \ rS rSrS rSrg)TestRandInti  c                 2   Sn[        U5      n[        U5       Vs/ s H
  o1S-   U-   PM     nn[        R                  " SX5      nUS:  R	                  5       (       d   eS[
        R                  " U[
        R                  S9U-
  -  n[        XV5        g s  snf )Nil        iE  r   r;   )dtype)	rI  r  r   rL   allrW   asarrayfloat64r   )r   r   	max_rangerP  all_b_1r>  rc  s          r/   test_gh19759TestRandInt.test_gh19759  s    F	,1),<=,<qw;?,<=kk#q*a}}2::gRZZ81<=!	 >s   Br   N)r   r   r   r   r  r   r   r1   r/   r  r    s    "r1   r  )Gr   	itertoolsscipyr   scipy.statsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   numpyrW   numpy.testingr   r   r   r   scipy.specialr  scipy.optimizer   scipy.integrater   r   r   r0   r6   rE   rP   rZ   r]   rg   rp   rw   r{   productintfloatr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r]  r_  ra  rj  r{  r}  r  r   r1   r/   <module>r     s     1 1 1 1 1
   1 &  
 5:;,;, 56:;<
,<
,
H4)	>C#-&% 9#4#4U|nQ6F#GHP IP%F
E
*"B: / 
2 
5
5K
H'-'[' ['|L' L'^ *;79:6:6	*) *)Z' '" "2	" 	"r1   