
    doii                     :   S SK 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J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   \ 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)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          b/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/stats/tests/test_discrete_distns.pytest_hypergeom_cdfr/      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_sfr5   $   s     	Q1 AAd+r0   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_logpmfrD   .   s     	
A
A
A	AqQ*GquaQ2GquaAE2GqQ*G"5"5"5 	
A
A	A	A ''a3 ''Q3/(BGr0   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_pmfrO   H   s`    GA!	A
..q
$C	qQ!A	&!%1Q3-	8A1QK	HBB%(r0   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 )	NrH   r   r   r:   )$I$I?g۶m۶m?m۶m?rR   vIh%<=r$   )rQ   $I$I?g%I$I?      ?)nparanger   rK   r&   r   )r)   r*   rL   supportrK   r&   s         r.   test_nhypergeom_pmfcdfrY   Q   s\    	A	A	Aii!nG
..Q
*C
..Q
*CC1>C0u=r0   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   rS   r$   )r   rK   r   )r)   r*   rL   rK   s       r.   test_nhypergeom_r0r\   ]   s9    
A	A	A
..,5qQ
?CC,5EBr0   c                  b    [         R                  " S/ SQS/S//SS9n U R                  S:X  d   eg )N   )r;   rH   	   r8   rG   r   r:   r[   r   size)r   rvsshape)xs    r.   test_nhypergeom_rvs_shaperf   f   s2     	r9tbTlFA77l"""r0   c                     [         R                  R                  S5      n [        R                  " SSSSU S9n[         R                  R                  S5      n U R                  SS9n[        R                  " USSS5      n[        X5        g )Nr   r^   r;      d   rb   random_statera   )rV   randomRandomStater   rc   uniformppfr   )rngre   r-   ys       r.   test_nhypergeom_accuracyrr   n   sn     ))


"Cr1bs=A
))


"CAq"a$Ar0   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?rT   g$I$I?r   r   rS   r$   )r   r   r   ru   g۶m۶m?r:   r:   r:   )rV   rW   r	   rK   r   logr   r&   )r(   r+   r-   r,   lamcs         r.   test_boltzmann_upper_boundry   y   s    
		"aA	Aa"AAvH
&&)C	Aaa A-HAe,aa A+HAe,r0   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:   )rV   rW   r   rK   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$r0   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Or0   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:   )rV   rW   r   rK   r   r   )r   r   r(   r-   r,   s        r.   test_betabinom_bernoullir      sS    AA
		!A!Qq!A!e%))!,H$r0   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Er0   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Dr0   c                  ,   [         R                  R                  S5      n [        [        R
                  " U R                  S5      SS5      S5        [        [        R
                  " SSS5      S5        [        [        R
                  " SSS5      S5        g )Nl   <U7 r   r         ?r:   )rV   rl   default_rngr   r   ro   )rp   s    r.   test_issue_7406r      se    
))



+C3::b>1c2A6 1a%r*1a%q)r0   c                  n   [         R                  R                  S5      n SnU R                  SSS9nSn[        R
                  " X2U5      n[        US5        [         R                  " SSS5      n[        R
                  " X2U5      n[        US5        S	n[        R
                  " X2U5      n[        XB5        g )
Nl   U^ r   ri   r   ra   r   {Gz?Gz?r:   )rV   rl   r   integersr   ro   r   linspace)rp   r-   r*   re   ro   s        r.   test_issue_5122r      s    
))



+C	ASr"A	A
))A!
Cb
D$#A
))A!
Ca	A
))A!
Cr0   c            	      x    [        [        S[        R                  " SS5      5      R	                  S5      S5        g )N  rt   ir   r   )r   r   rV   logspacero    r0   r.   test_issue_1603r      s)    tR[[T2377=qAr0   c                      Sn [         R                  " SSS5      n[        [        R                  " USU-  U 5      SSS9  g )Nr   r      r8   r[   r   )atol)rV   r   r   r   r&   )r-   re   s     r.   test_issue_5503r      s6    A
Ar2AEIIa1a(#D9r0   zx, n, p, cdf_desired))i,  r   333333?g24?)r   r   r   gU7i(?)i0u  順 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:)i i ʚ;r   g@  ?)l    ^e l    d(	 r   gM|X
 ?c                 F    [        [        R                  " XU5      U5        g Nr   r   r&   )re   r*   r-   cdf_desireds       r.   test_issue_5503pt2r      s     EIIaA&4r0   c                  H    [        [        R                  " SSS5      S5        g )Nr[   l    J)g-q=gB.+n?r   r   r0   r.   test_issue_5503pt3r      s    EIIa13IJr0   c                  H    [        [        R                  " SSS5      S5        g )N   r7   gAA?g_[Cˮi8)r   r   r4   r   r0   r.   test_issue_6682r      s     FIIc2w/1FGr0   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   logcdfrV   infr   )result	references     r.   test_issue_19747r      s.    ]]:q#.Frvvg{3IF&r0   c                  R    Sn SnSn[        [        R                  " X U5      S5        g )Nr   r   i          )r   r   rK   )r*   r-   r(   s      r.   %test_boost_divide_by_zero_issue_15101r      s&    AAAEIIaA&,r0   c                  X    / SQn [         R                  " SX 5      n/ SQn[        X5        g )N)	r:   r   ri   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&r0   c                      \ rS rSrS rS rS r\R                  R                  S5      r
\R                  " \R                  " SSS5      \
R                  S	S
S5      45      R                  r\R"                  R%                  S\5      S 5       rS r\R"                  R%                  SSS/5      S 5       r\R"                  R%                  S/ SQ5      S 5       r\R"                  R%                  S/ SQ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   )	rV   rW   r   r   rK   r   r&   r4   r   )selfr   r+   r(   s       r.   test_zipfian_asymptotic#TestZipfian.test_zipfian_asymptotic  s    IIaA!,dhhqn=A!,dhhqn=

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

1f5	7r0   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   )rV   rW   r   r   rK   r&   r4   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r0   c                 \   [         R                  R                  S5      nUR                  SSSS9nUR	                  S5      S-  S-   nU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:   r{   r   ra   ri   )
gĹԨ?gءk>	]x[?g>g	W4?g
-?g$fhn=g9[.>g`֔>gnm?)
gaj?gZk=?r   g?g90?gɸU?rU   gJ_9?g2h2-?gB0?ư>r$   g-C6
?)	rV   rl   rm   r   randr   r   rK   r&   )r   rp   r(   r   r*   rK   r&   s          r.   test_zipfian_RTestZipfian.test_zipfian_R-  s     ii##A&KK2BK'HHRLOaKK3RK(+F 	A!,QR0#ab'EA!,QR0#ab'Er0   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:   )rV   rW   sum)r*   ss     r.   Hns+TestZipfian.test_zipfian_naive.<locals>.HnsM  s,     bii1Q3'**//11r0   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>.pzipR  s(     1u14x#a)++r0   r:   )weightsr[   r   r   r   mvskr   )
rV   	vectorizerW   cumsumaverager   r   rK   r&   r   )r   r   r*   r   r(   rK   r&   meanvarstdskewkurtosisr   s               @r.   test_zipfian_naiveTestZipfian.test_zipfian_naiveI  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	5r0   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^   )rV   rW   astypeint32r   rK   r   r   r(   k_int32distrK   pmf_k_int32s         r.   test_pmf_integer_kTestZipfian.test_pmf_integer_kg  sS    IIa((288$sBhhqkhhw'S&r0   zk, a, n, ref)r   g    ?r   gdA_"?)i  0D   ?r   g:"!?c                 J    [         R                  " XU5      n[        XTS5        g )NgV瞯<)r   rK   r   )r   r(   r   r*   refr-   s         r.   test_pmf_against_mpmath#TestZipfian.test_pmf_against_mpmathp  s     KKa &r0   ))i~  g      ?r   g_M?)i'        @r   g.a=)iP  r   r   g?Ӂqdb=)r         @ri   g >)_   r   ri   g{c=c                 F    [         R                  " XU5      n[        XTSS9  g NgV瞯=r$   )r   r4   r   )r   r(   r   r*   r   r4   s         r.   test_sf_against_mpmath"TestZipfian.test_sf_against_mpmathz  s     ZZa e,r0   z	a, n, ref))r   ri   ggG3@)g  ?r   gI'@)gjt?r   g%-?c                 D    [         R                  " X5      n[        XCSS9  g r  )r   r   r   )r   r   r*   r   ms        r.   test_mean_against_mpmath$TestZipfian.test_mean_against_mpmath  s     LLU+r0   c                 n    SnSn[         R                  " SX5      n[        U[        R                  5        g )Ng      @g}Ô%ITr   )r   rK   r   rV   nan)r   r   r*   r-   s       r.   test_ridiculously_large_n%TestZipfian.test_ridiculously_large_n  s*    KKA!Qr0   r   N)__name__
__module____qualname____firstlineno__r   r   r   rV   rl   rm   rp   vstackr   r   Tnaive_testspytestmarkparametrizer   r   r   r  r  r  __static_attributes__r   r0   r.   r   r     s   	7KF0 ))


"C))R[[Q3 [[B35 667a  [[V[15 25:' [[	0	5	7
'
'
 [[	0--
 [[	),, r0   r   c                       \ rS rSrS r\R                  R                  SSS/5      S 5       rS r	S r
S	 r\R                  R                  SSS/5      S
 5       rSrg)TestNCHi  c                    [         R                  R                  S5      nSnSnUR                  SX2S9nUR                  SX2S9nXE-   n[        R
                  " SXfR                  US9n[         R                  " SXu-
  5      n[         R                  " Xt5      n	[        R
                  " XUR                  US9n
UR                  U
R                  5      S-  nXXGU4u  U l	        U l
        U l        U l        U l        g )	Nl   U r[   r   r   ri   r:   ra   r   rj   r[   )rV   rl   r   r   r   rc   rd   maximumminimumre   r+   m1r*   odds)r   rp   rd   max_mr  m2r+   r*   xlxure   r  s               r.   setup_methodTestNCH.setup_method  s    ii##J/\\!U\/\\!U\/GKK177=ZZ14 ZZKKRXXC@zz!''"1$562$5F2r0   	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:   )r  )	r   r   re   r+   r  r*   r   rK   r   )r   r&  distsr   re   r+   r  r*   s           r.   test_nch_hypergeomTestNCH.test_nch_hypergeom  sc    
 (:*?Affdffdggtvv5br15!aB2	4r0   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)re   t1t2r  r!  r*   ws      r.   fFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.f  s/    "2q)"2q1u-wA~%r0   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   ).0rq   r3  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(   r3  r"  r#  s   `r.   PFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P  s    @eBQ.?@@@r0   r:   r[   rV   r  r  )re   r+   r  r*   r2  r;  P0P1P2rK   r   r   r3  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>!r0   r  r   v)re   r+   r  r*   r  rV   r   r   r   rK   r   )
r   re   r+   r  r*   r  rA  rK   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	r0   c                 X  ^^ [         R                  R                  S5      nSnSnUR                  SX2S9nUR                  SX2S9nXE-   n[        R                  " SXfR
                  US9n[         R                  " SXu-
  5      n[         R                  " Xt5      n	[        R                  " XUR
                  US9n
UR                  " U
R
                  6 S-  nS m[         R                  U4S	 j5       m[        R                  " 5          [        R                  " S
[        SS9  [        [        R                   " XdX{5      T" XdX{5      SS9  S S S 5        [         R                  U4S j5       n[        R                  " 5          [        R                  " S
[        SS9  [        [        R"                  " XdX{SS9U" XdX{5      SS9  S S S 5        [         R                  U4S j5       nU" XXGU5      n[        R$                  " XXGU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  pdp{Xd-
  nT" XdX{5      u  p[         R.                  " XS-   5      n
U" XXGU5      R)                  5       S:  d   e[        [        R$                  " XXGU5      R)                  5       S5        M~     g ! , (       d  f       GN= f! , (       d  f       GNb= f)Nr[   r  ri   r:   ra   r   rj   c                 n    X-
  n[         R                  " SX$-
  5      n[         R                  " X!5      nXV4$ )Nr   r=  )r+   r  r*   r2  r!  r"  r#  s          r.   rX   9TestNCH.test_nchypergeom_wallenius_naive.<locals>.support  s0    BAqt$BA"B6Mr0   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*   r2  s    r.   funCTestNCH.test_nchypergeom_wallenius_naive.<locals>.mean.<locals>.fun  s(    tqAaC8|a//!33r0   )bracket)r   root)	r+   r  r*   r2  r"  r#  rM  r!  rX   s	    ```   @r.   r   6TestNCH.test_nchypergeom_wallenius_naive.<locals>.mean  s?    RBQAq)FB4 4 sH5:::r0   ignorez!invalid value encountered in mean)categorymessageg{Gz?r$   c                 r   > X-
  nT" XX#5      nXQU-
  -  nX%-
  XT-   U-
  -  nX-  U-  U S-
  X-  XF-  -   -  -  $ rK  r   )	r+   r  r*   r2  r!  rL  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2r0   rC  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$ rK  r   )tDresr  r!  r*   r2  re   s      r.   	integrandHTestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.integrand  sQ    rAvJ"!*-QqSzAo1qs8qs(;;
r0   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   )re   r0  r1  the_integralr]  r  r!  r*   s       r.   r3  @TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.f  sF    "2q)"2q1u-#Iq!+0 @wa00r0   r   )re   r+   r  r*   r2  r"  r#  r3  r]  r!  rX   s   ` ```   @@r.   rK   5TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf  s=    RBQAq)FB 
1 1 Q4Kr0   )r   r   r   )rV   rl   rm   r   rc   rd   r  r  r   r   warningscatch_warningsfilterwarningsRuntimeWarningr   r   r   r   rK   absr   prodziprW   )r   rp   rd   r   r  r!  r+   r*   r"  r#  re   r2  rV  rK   pmf0pmf1r   r%   ir   rX   s                      @@r.    test_nchypergeom_wallenius_naive(TestNCH.test_nchypergeom_wallenius_naive  s    ii##A&[[E[.[[E[.GKK177=ZZ14 ZZKKRXXC@HHaggq 	 
	; 
	; $$&##H~BD166qaC -D: ' 
	3 
	3 $$&##H~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   AL>A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 )Nr7   r   r{   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@rS   )r%   r   r$   gdy=)rV   rW   arrayr   r   rK   r   r   )	r   r)   r*   r+   r  suprK   r   r   s	            r.   test_wallenius_against_mpmath%TestNCH.test_wallenius_against_mpmath3  s     iimhh / 0* "  	-11#!Es"	0-221A5	*-11!@%	)r0   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(  r7   r   r   r{   )r   rU   g       @r`   ra   )r   r   rc   rd   )r   r&  r)  r   re   s        r.   test_rvs_shapeTestNCH.test_rvs_shape]  sL     (:*?AHHRrdRD\?HNww,&&&r0   )r+   r  r*   r  re   N)r  r  r  r  r$  r  r  r  r*  rD  ro  rt  rw  r  r   r0   r.   r  r    s|    G [[[24KLN4N4 DZPx()T [[[24KLN'N'r0   r  zmu, q, expected)r   x   g@	#)i  r   g"qVUc                 X    SnX3X0-   -  pT[        [        R                  " XU5      U5        g )Nr{   )r   r   r   )r   qr,   rb   r*   r-   s         r.   test_nbinom_11465r|  j  s+    
 Dtwq FMM!*H5r0   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:   rh   g?r   )rV   r   r   rK   r   r   )re   r-   rK   rn  s       r.   test_gh_17146r~  w  sj     	Aq"AA
A,

1
C	
Q!ACGQCFAaC R!r0   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)TestBetaNBinomi  zx, n, a, b, ref)r   g    SAr   r{   g:[Y))ri   r7   r   r{   g dg?)r   r   r   r{   gL&[>c                 D    [        [        R                  " XX45      USS9  g )NrJ   r$   )r   r   rK   )r   re   r*   r   r   r   s         r.   test_betanbinom_pmf"TestBetaNBinom.test_betanbinom_pmf  s      	
qQ2CeDr0   zn, a, b, ref)r   r   r7   g:o?)r   r_   r_   g>["@)ri   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   r   s        r.   test_betanbinom_kurtosis'TestBetaNBinom.test_betanbinom_kurtosis  s"    * 	
((q#>%	)r0   r   N)
r  r  r  r  r  r  r  r  r  r  r   r0   r.   r  r    so    [[.EBHJKE	KE [[^C:?AB)	B)r0   r  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_   )rV   rW   r   r   r   rK   r   r   s         r.   test_gh20692TestZipf.test_gh20692  sP    IIa((288$Awhhqkhhw'S&r0   r   N)r  r  r  r  r  r  r   r0   r.   r  r    s    'r0   r  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      $ )Nri   r   )min)r   r(   s     r.   _cdf(test_gh20048.<locals>.test_dist_gen._cdf  s    q3w%%r0   r   N)r  r  r  r  r  r  r   r0   r.   test_dist_genr    s    	&r0   r  )r   zArguments that bracket...)matchg+?)r   rv_discreterV   r   r  raisesRuntimeErrorro   )r  	test_distrT  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?)rV   rl   r   r   rW   r   rK   r   )r   rp   r*   r(   r-   r\  r   s          r.   test_pmfTestPoissonBinomial.test_pmf  sd     ii##L1LLIIa!eJJqM%=!r0   r   N)r  r  r  r  r  r  r   r0   r.   r  r    s    "r0   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   rK   allrV   asarrayfloat64r   )r   r   	max_rangern  all_b_1r\  r   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   r0   r.   r  r    s    "r0   r  )Gr  	itertoolsre  scipyr   scipy.statsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   numpyrV   numpy.testingr   r   r   scipy.specialr/  scipy.optimizer   scipy.integrater   r  r  r/   r5   rD   rO   rY   r\   rf   rr   ry   r}   productintfloatr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r|  r~  r  r  r  r  r  r   r0   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'-'D  D NN' N'b *;79:6:6	*) *)Z' '" "2	" 	"r0   