
    e!hb                     6   d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ d dlZd dlmZmZmZmZ d dlmZ d dlmZ d dlm Z  e jB                  jE                  dg d	      d
        Z#e jB                  jE                  dddg      d        Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,e jB                  jE                  d ejZ                  e.e/fgdz         d        Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7e jB                  jE                  d g d!      d"        Z8d# Z9d$ Z:d% Z;d& Z<d' Z= G d( d)      Z> G d* d+      Z?e jB                  jE                  d,g d-g d.g      d/        Z@d0 ZA G d1 d2      ZB G d3 d4      ZCd5 ZD G d6 d7      ZE G d8 d9      ZFy):    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                 P    t        j                  | |||      }t        |||       y Nrtol)r   cdfr   kMnNexpectedr&   ps          n/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/stats/tests/test_discrete_distns.pytest_hypergeom_cdfr0      s$     	aAq!AAxd+    )   r   r    r!   g?r   )}   r   r    r!   g!:<r"   c                 P    t        j                  | |||      }t        |||       y r$   )r   sfr   r(   s          r/   test_hypergeom_sfr6   #   s$     	Q1a AAxd+r1   c                     d} d}d}d}t        j                  | |||      }t        j                  || z
  |||z
  |      }t        j                  || z
  ||||z
        }t        j                  | |||      }t        ||d       t        ||d       t        ||d       d} d}d}d}t        j                  | |||      }t        j                  | ||z        }	t        ||	d       y )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q!Q*Gq1uaQ2Gq1uaAE2Gq!Q*G"5"5"5 	
A
A	A	A ''1a3 ''1Q3/(*:BGr1   c                      d\  } }}d}t        j                  || ||      }t        j                  || |||z   dz
        | |z
  |dz
  z
  z  | ||z   dz
  z
  z  }t        ||d       y )N)-            r;   绽|=r%   )r   pmfr   r   )r*   r+   rr)   NHGHGs         r/   test_nhypergeom_pmfrP   G   sp    GAq!	A
..Aq!
$C	q!Q!A	&!a%1Q3-	8A1QK	HBB%(r1   c                      d} d}d}t        j                  |dz         }t        j                  || ||      }t        j                  || ||      }t        |g dd       t        |g dd       y )	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   sd    	A	A	Aii!nG
..!Q
*C
..!Q
*CC1>C0u=r1   c                  t    d} d}d}t        j                  g dg dg| ||      }t        |g dg dgd	       y )
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]   \   s;    
A	A	A
..,5q!Q
?CC,5EBr1   c                  d    t        j                  dg ddgdggd      } | j                  dk(  sJ y )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                  :   t         j                  j                  d       t        j                  dddd      } t         j                  j                  d       t         j                  j                  d      }t        j                  |ddd      }t        | |       y )Nr   r_   r<      d   rb   )rW   randomseedr   rd   uniformppfr   )rf   r.   ys      r/   test_nhypergeom_accuracyrp   m   sm     IINN1r1bs+AIINN1
		s#Aq"a$AAr1   c                  V   t        j                  dd      } d}t        j                  | d|      }| dk(  }t	        ||       t        j
                  d      }d}t        j                  | ||      }g d}t        ||d	
       t        j                  | ||      }g d}t        ||d	
       y )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H
&&)C	Aaa A-HAxe,aa A+HAxe,r1   c                      d} t        j                  | dz         }t        | dd      j                  |      }t        j                  d| dz   z  | dz         }t        ||       y )N   r;   )rW   rX   r   rL   repeatr   )r+   r)   r.   r-   s       r/   test_betabinom_a_and_b_unityr{      sZ     	A
		!a%A!Qq!Ayya!ea!e,H8$r1   dtypesr   c                     | \  }}} |d       |d       |d      }}}t        t        j                  |||d      d       y )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      sC     $FFFRj&)VAY!qAIOOAq!S9;NOr1   c                      d} d}t        j                  d      }t        d| |      j                  |      }t	        | | |z   z        j                  |      }t        ||       y )Ngffffff@g)\(?r\   r;   )rW   rX   r   rL   r   r   )r   r   r)   r.   r-   s        r/   test_betabinom_bernoullir      sY    AA
		!A!Qq!Aa!e%))!,H8$r1   c                  T    d\  } }}t        t        j                  | ||      d       y )N)g?r   r;   
confidencer+   r.   r   r   )r   r   intervalalphar+   r.   s      r/   test_issue_10317r      s$    KE1aEQ!<fEr1   c                  T    d\  } }}t        t        j                  | ||      d       y )N)gffffff?r   r   r   r   )r   r   r   r   s      r/   test_issue_11134r      s$    KE1a5A;VDr1   c                  B   t         j                  j                  d       t        t	        j
                  t         j                  j                  d      dd      d       t        t	        j
                  ddd      d       t        t	        j
                  ddd      d       y )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                  R   d} t         j                  j                  dd      }d}t        j                  |||       }t        |d       t        j                  ddd      }t        j                  |||       }t        |d       d}t        j                  |||       }t        ||       y )	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
))Aq!
Cb
D$#A
))Aq!
Ca	A
))Aq!
Car1   c            	      v    t        t        dt        j                  dd            j	                  d      d       y )N  rr   ir   r   )r   r   rW   logspacern   r   r1   r/   test_issue_1603r      s)    tR[[T2377=qAr1   c                      d} t        j                  ddd      }t        t        j                  |d|z  |       dd       y )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    t        t        j                  | ||      |       y Nr   r   r'   )rf   r+   r.   cdf_desireds       r/   test_issue_5503pt2r      s     EIIaA&4r1   c                  F    t        t        j                  ddd      d       y )Nr\   l    J)g-q=gB.+n?r   r   r1   r/   test_issue_5503pt3r      s    EIIa13IJr1   c                  F    t        t        j                  ddd      d       y )N   r8   gAA?g_[Cˮi8)r   r   r5   r   r1   r/   test_issue_6682r      s     FIIc2w/1FGr1   c                  v    t        j                  g ddd      } dt        j                   dg}t	        | |       y )N)r   r   r;   r   r   gG޿g1D&+)r   logcdfrW   infr   )result	references     r/   test_issue_19747r      s0    ]]:q#.Frvvg{3IFI&r1   c                  R    d} d}d}t        t        j                  || |      d       y )Nr   r   i          )r   r   rL   )r+   r.   r)   s      r/   %test_boost_divide_by_zero_issue_15101r      s(    AAAEIIaA&,r1   c                  Z    g d} t        j                  d| |       }g d}t        ||       y )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R
 CPL C&r1   c                   4   e Zd Zd Zd Zd Zej                  j                  d        ej                   ej                  ddd      ej                  j                  dd	d      f      j                  Zej                  j!                  d
e      d        Zd Zy)TestZipfianc                    d}d}t        j                  dd      }t        t        j                  |||      t        j                  ||             t        t        j                  |||      t        j                  ||             t        t        j                  |||      t        j                  ||             t        t        j                  ||d      t        j                  |d             y )Ng      @r   r;      msvkr~   )	rW   rX   r   r   rL   r   r'   r5   r   )selfr   r,   r)   s       r/   test_zipfian_asymptoticz#TestZipfian.test_zipfian_asymptotic  s    IIaAq!,dhhq!n=Aq!,dhhq!n=

1a+TWWQ];aF;

1f5	7r1   c                    d\  }}d}t        j                  d|dz         }t        t        j                  |||      t        j                  |||      d       t        t        j
                  |||      t        j
                  |||      d       t        t        j                  |||      t        j                  |||      d       t        t        j                  ||d      t        j                  ||d      d       y )N)gG?g1  ?   r;   gƠ>r%   r   r~   )rW   rX   r   r   rL   r'   r5   r   )r   alt1agt1r,   r)   s        r/   test_zipfian_continuityz#TestZipfian.test_zipfian_continuity  s     ,
dIIaQAtQ/Qa1H!	#AtQ/Qa1H!	#

1dA.

1dA0F!	#dAv>dAv>T	Kr1   c                    t         j                  j                  d       t         j                  j                  ddd      }t         j                  j	                  d      dz  dz   }t         j                  j                  ddd      }g d}g d}t        t        j                  |||      dd  |dd  d	
       t        t        j                  |||      dd  |dd  d
       y )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_RzTestZipfian.test_zipfian_R)  s     			qIIa"-IINN2r!A%IIa2.+F 	Aq!,QR0#ab'EAq!,QR0#ab'Er1   r   r;   r   r\   (   za, nc                    t         j                  d        t         j                  fd       }t        j                  |dz         } ||||      }t        j                  |      }t        j                  ||      }t        j                  ||z
  dz  |      }|dz  }	t        j                  ||z
  |	z  dz  |      }
t        j                  ||z
  |	z  dz  |      dz
  }t        t        j                  |||      |       t        t        j                  |||      |       t        t        j                  ||d	
      |||
|g       y )Nc                 \    dt        j                  d| dz         |z  z  j                         S )z$Naive implementation of harmonic sumr;   )rW   rX   sum)r+   ss     r/   Hnsz+TestZipfian.test_zipfian_naive.<locals>.HnsI  s,     bii1Q3'**//11r1   c                 >    | dk  s| |kD  ryd| |z  z   ||      z  S )z#Naive implementation of zipfian pmfr;   r   r   )r)   r   r+   r   s      r/   pzipz,TestZipfian.test_zipfian_naive.<locals>.pzipN  s.     1uA1a4x#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_naivezTestZipfian.test_zipfian_naiveE  s!    
	2 
	2 
	, 
	, IIacN1amiinzz!S)jj!d(Q43hzzAdFC<!+S9::$|a/=AAq!,c2Aq!,c2aF;sD(3	5r1   c                     t        j                  dd      }|j                  t         j                        }t	        dd      }|j                  |      }|j                  |      }t        ||       y )Nr   r   o   r_   )rW   rX   astypeint32r   rL   r   r   r)   k_int32distrL   pmf_k_int32s         r/   test_pmf_integer_kzTestZipfian.test_pmf_integer_kc  sU    IIa((288$sBhhqkhhw'S+&r1   N)__name__
__module____qualname__r   r   r   rW   rk   rl   vstackr   r   Tnaive_testspytestmarkparametrizer   r   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                      e Zd Zej                  j                  d       dZdZej                  j                  dee      Z	ej                  j                  dee      Z
e	e
z   Z ej                  deej                        Z ej                  dee
z
        Z ej                   ee	      Z ej                  eeej                        Z ej                  j&                  ej                   dz  Zej,                  j/                  ddd	g      d
        Zd Zd Zd Zej,                  j/                  ddd	g      d        Zy)TestNCHr\   r\   r   r   rj   r;   rb   r   	dist_namer   r   c           	          t         t        d}||   }| j                  | j                  | j                  | j
                  f\  }}}}t        |j                  ||||d      t        j                  ||||             y )Nr   r   r;   )odds)	r   r   rf   r,   m1r+   r   rL   r   )r   r   distsr   rf   r,   r   r+   s           r/   test_nch_hypergeomzTestNCH.test_nch_hypergeomz  sq    
 (:*?AYffdffdggtvv51b!Ar115!aB2	4r1   c           	         | j                   | j                  | j                  | j                  | j                  f\  }}}}}t
        j                  d        } ||||||      \  }}}	t        t        j                  |||||      |       t        t        j                  ||||d      |       t        t        j                  ||||d      |	       y )Nc                    |z
  t        j                  dz
        t        j                        fdfd} |d      } |d      } |d      } |       |z  }	||z  }
||z  ||z  dz  z
  }|	|
|fS )Nr   c                 P    t        |       }t        | z
        }||z  | z  z  S r   )special_binom)rf   t1t2r   m2r+   ws      r/   fzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.f  s1    "2q)"2q1u-BwA~%r1   c                 J     t         fdt        dz         D              S )Nc              3   :   K   | ]  } |      |z  z    y wr   r   ).0ro   r  r)   s     r/   	<genexpr>zYTestNCH.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/   PzFTestNCH.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_varz;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r'R"WqL(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_naivez%TestNCH.test_nchypergeom_fisher_naive  s     FFDFFDGGTVVTYYF1b!T		" 
	", &aB48T3*..q!RDA3G*00B4M	*00B4M	r1   c           
         t         j                  j                  d       d}d}t         j                  j                  d||      }t         j                  j                  d||      }||z   }t        j                  d||j
                        }t        j                  d||z
        }t        j                  ||      }t        j                  |||j
                        }	t        j                  j                  |	j
                   dz  }
d t         j                  fd       t               5 }|j                  t        d	
       t        t        j                  ||||
       ||||
      d       d d d        t         j                  fd       }t               5 }|j                  t        d	
       t        t        j                   ||||
d       |||||
      d       d d d        t         j                  fd       } ||	||||
      }t        j"                  |	||||
      }d\  }}t        j$                  ||z
        ||t        j$                  |      z  z   k  }|j'                         t        j(                  |      dz  kD  sJ t+        ||    ||    ||    |
|          D ]  \  }}}}
||z
  } ||||
      \  }}t        j,                  ||dz         }	 ||	||||
      j'                         dk  sJ t        t        j"                  |	||||
      j'                         d        y # 1 sw Y   xY w# 1 sw Y   ]xY w)Nr\   r   rj   r;   rb   r   c                 r    | |z
  }t        j                  d||z
        }t        j                  ||      }||fS )Nr   r  )r,   r   r+   r  r  r  r  s          r/   rY   z9TestNCH.test_nchypergeom_wallenius_naive.<locals>.support  s8    RBAqt$BAr"Br6Mr1   c                 t    | z
   |       \  }}fd}t        |||f      j                  S )Nc                 2    | z  d| z
  z  z
  z  z   dz
  S Nr;   r   )ur   r  r+   r  s    r/   funzCTestNCH.test_nchypergeom_wallenius_naive.<locals>.mean.<locals>.fun  s(    tqAaC8|a//!33r1   )bracket)r   root)	r,   r   r+   r  r  r  r!  r  rY   s	    ```   @r/   r   z6TestNCH.test_nchypergeom_wallenius_naive.<locals>.mean  s>    RBQAq)FB4 sRH5:::r1   z!invalid value encountered in mean)messageg{Gz?r%   c                     | |z
  } | |||      }|||z
  z  }||z
  ||z   |z
  z  }| |z  |z  | dz
  ||z  ||z  z   z  z  S r  r   )	r,   r   r+   r  r  r   r   r   r   s	           r/   variancez:TestNCH.test_nchypergeom_wallenius_naive.<locals>.variance  sg    RBQAq!AR!VA1q2vz"AQ3q5QqSRTBqD[122r1   r  r~   g?c                 h    	 |z
  	 
|      \  }}	 fd	fd} |       S )Nc                 j    z
  z  z
  z
  z   }d| |z  z  z
  z  d| d|z  z  z
  z
  z  z  }|S r  r   )tDresr   r  r+   r  rf   s      r/   	integrandzHTestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.integrand  sQ    rAvJ"!*-QqSzAo1qs8qs(;;
r1   c                 p    t        |       }t        | z
        }t        dddd      }||z  |d   z  S )Nr   r;   gؗҜ<)epsrelepsabs)r  r   )rf   r  r  the_integralr,  r   r  r+   s       r/   r  z@TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.f  sH    "2q)"2q1u-#Iq!+0 @Bwa00r1   r   )rf   r,   r   r+   r  r  r  r  r,  r  rY   s   ` ```   @@r/   rL   z5TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf  s:    RBQAq)FB 
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  supr&  rL   pmf0pmf1r   r&   ir   rY   s                      @@r/    test_nchypergeom_wallenius_naivez(TestNCH.test_nchypergeom_wallenius_naive  s    			qYYq%e4YYq%e4GKK1177+ZZ1R4 ZZ2KKBRXX.IINNAGG$Q&	 
	; 
	;   	:CJJ~B  D166q"aC B1-D:	: 
	3 
	3   	CJJ~B  D%++Ar1aEB1%	 
	 
	$ 1aQ"$((Ar1a8
dFF4$;$bffTl):"::uuw!++++ q!ub!faeQrU; 		PKAr1aRBQAq)FB		"b1f%A q!RA&**,r111155aB1EIIKQO		Pe	: 	:	 	s   0AL4AM4L>Mc           	      P   d}d}d}d}t        j                  d      }t        j                  g d      }d}d}t        t	        j
                  |||||      |d	d	
       t        t	        j                  ||||      |d	       t        t	        j                  ||||      |d       y )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   r7  rL   r   r   s	            r/   test_wallenius_against_mpmathz%TestNCH.test_wallenius_against_mpmath  s     iimhh / 0* "  	-11#q!QEs"	0-221aDA5	*-11!Q4@%	)r1   c                     t         t        d}||   }|j                  dddgdggg dd      }|j                  dk(  sJ y )	Nr   r8   r   r   ry   )r   rV   g       @ra   rb   )r   r   rd   re   )r   r   r   r   rf   s        r/   test_rvs_shapezTestNCH.test_rvs_shape.  sN     (:*?AYHHRrdRD\?HNww,&&&r1   N)r   r   r   rW   rk   rl   re   r6  r   r   r  r,   rd   r+   r  r  r  r  rf   r   r   r   r   r   r   r  r;  r>  r@  r   r1   r/   r   r   l  sD   IINN1EE			1e%		0B			1e%		0B
RAAqqww'A	Aqt	B	Ar	BB*A299>>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                 ^    d}|||| z   z  }}t        t        j                  |||      |       y )Nry   )r   r   r   )r   qr-   rc   r+   r.   s         r/   test_nbinom_11465rD  ;  s3    
 DtBwqA FMM!Q*H5r1   c                      t        j                  ddd      } d}t        |      j                  |       }| dz  dk(  }t	        |d   |       t	        |d   d|z
         t        ||    d       y )Nr   r;   ri   g?r   )rW   r   r   rL   r   r   )rf   r.   rL   r:  s       r/   test_gh_17146rF  H  sl     	Aq"AA
A,

1
C	
Q!ACGQCFAaC aR!r1   c                       e Zd Zej                  j                  dg dg dg dg      d        Zej                  j                  dg dg dg d	g      d
        Zy)TestBetaNBinomzx, n, a, b, ref)r   g    SAr   ry   g:[Y))rj   r8   r   ry   g dg?)r   r   r   ry   gL&[>c                 L    t        t        j                  ||||      |d       y )NrK   r%   )r   r   rL   )r   rf   r+   r   r   refs         r/   test_betanbinom_pmfz"TestBetaNBinom.test_betanbinom_pmfU  s      	
q!Q2CeDr1   zn, a, b, ref)r   r   r8   g:o?)r   r`   r`   g>["@)rj   r   r   g >[?c                 N    t        t        j                  |||d      |d       y )Nr)   r~   g [n<r%   )r   r   r   )r   r+   r   r   rJ  s        r/   test_betanbinom_kurtosisz'TestBetaNBinom.test_betanbinom_kurtosish  s$    * 	
((Aq#>%	)r1   N)r   r   r   r   r   r   rK  rM  r   r1   r/   rH  rH  T  so    [[.EBHJKE	KE [[^C:?AB)	B)r1   rH  c                       e Zd Zd Zy)TestZipfc                     t        j                  dd      }|j                  t         j                        }t	        d      }|j                  |      }|j                  |      }t        ||       y )Nr   r   r`   )rW   rX   r   r   r   rL   r   r   s         r/   test_gh20692zTestZipf.test_gh20692  sR    IIa((288$Awhhqkhhw'S+&r1   N)r   r   r   rQ  r   r1   r/   rO  rO    s    'r1   rO  c                       G d dt         j                        }  | t        j                        }d}t	        j
                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zd Zy)#test_gh20048.<locals>.test_dist_genc                      t        |dz  d      S )Nrj   r   )min)r   r)   s     r/   _cdfz(test_gh20048.<locals>.test_dist_gen._cdf  s    q3w%%r1   N)r   r   r   rW  r   r1   r/   test_dist_genrT    s    	&r1   rX  )r   zArguments that bracket...)matchg+?)r   rv_discreterW   r   r   raisesRuntimeErrorrn   )rX  	test_distr$  s      r/   test_gh20048r^    sX    &)) & 'I)G	|7	3 e  s   A))A2c                       e Zd Zd Zy)TestPoissonBinomialc                    t         j                  j                  d      }|j                  d      }t        j                  |dz         }|j                  |      }t        j                  ||      }g d}t        ||       y )Nl   zb} r   r;   )gcƙ?g!)@*?g/_?g?TxY^?gg	SUH?)rW   rk   default_rngintegersrX   r   rL   r   )r   rngr+   r)   r.   r+  rJ  s          r/   test_pmfzTestPoissonBinomial.test_pmf  sh     ii##L1LLIIa!eJJqM1%=S!r1   N)r   r   r   re  r   r1   r/   r`  r`    s    "r1   r`  c                       e Zd Zd Zy)TestRandIntc                 *   d}t        |      }t        |      D cg c]
  }|dz   |z    }}t        j                  d||      }|dkD  j	                         sJ dt        j                  |t
        j                        |z
  z  }t        ||       y c c}w )Nil        iE  r   r;   )dtype)	r3  r  r   rL   allrW   asarrayfloat64r   )r   r   	max_ranger:  all_b_1r+  rJ  s          r/   test_gh19759zTestRandInt.test_gh19759  s    F	,1),<=q1w;?==kk#q'*a}}2::gRZZ81<=S!	 >s   BN)r   r   r   ro  r   r1   r/   rg  rg    s    "r1   rg  )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   rD  rF  rH  rO  r^  r`  rg  r   r1   r/   <module>r{     s     1 1 1 1 1
   1 &  
 5:;,;, 56:;<
,<
,
H4)	>C#-&% #49#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   