
    _Mhb                     f   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 j!        "                    dg d	          d
             Z#e j!        "                    dddg          d             Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,e j!        "                    d ej-        e.e/fgdz             d             Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7e j!        "                    d g d!          d"             Z8d# Z9d$ Z:d% Z;d& Z<d' Z= G d( d)          Z> G d* d+          Z?e j!        "                    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          ZFdS ):    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                 X    t          j        | |||          }t          |||           d S Nrtol)r   cdfr   kMnNexpectedr&   ps          f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/stats/tests/test_discrete_distns.pytest_hypergeom_cdfr0      s4     	aAq!!AAxd++++++    )   r   r    r!   g?r   )}   r   r    r!   g!:<r"   c                 X    t          j        | |||          }t          |||           d S r$   )r   sfr   r(   s          r/   test_hypergeom_sfr6   #   s4     	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           d S )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22Gq1uaAE22Gq!Q**G"5555"5555"5555 	
A
A	A	A '1a33 '1Q3//(*:BGGGGGGr1   c                      d\  } }}d}t          j        || ||          }t          j        || |||z   dz
            | |z
  |dz
  z
  z  | ||z   dz
  z
  z  }t          ||d           d S )N)-            r;   绽|=r%   )r   pmfr   r   )r*   r+   rr)   NHGHGs         r/   test_nhypergeom_pmfrP   G   s    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           d S )	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i!nnG
.!Q
*
*C
.!Q
*
*CC111>>>>C000u======r1   c                  |    d} d}d}t          j        g dg dg| ||          }t          |g dg dgd	           d S )
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BBBBBBr1   c                  \    t          j        dg ddgdggd          } | j        dk    sJ d S )N   )r<   rI   	   r9   rH   r   r;   r\   r   size)r   rvsshape)xs    r/   test_nhypergeom_rvs_shaperg   e   sA     	r999tbTlFFFA7l""""""r1   c                  @   t           j                            d           t          j        dddd          } t           j                            d           t           j                            d          }t          j        |ddd          }t          | |           d S )Nr   r_   r<      d   rb   )rW   randomseedr   rd   uniformppfr   )rf   r.   ys      r/   test_nhypergeom_accuracyrp   m   s     INN1r1bs+++AINN1
	s##Aq"a$$AAr1   c                  h   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	
           d S )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                              |          }t          j        d| dz   z  | dz             }t          ||           d S )N   r;   )rW   rX   r   rL   repeatr   )r+   r)   r.   r-   s       r/   test_betabinom_a_and_b_unityr{      sn     	A
	!a%A!Qq!!Aya!ea!e,,H8$$$$$r1   dtypesr   c                     | \  }}} |d           |d           |d          }}}t          t          j        |||d          d           d S )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_     $FFFfRjj&&))VVAYY!qAIOAq!S999;NOOOOOr1   c                      d} d}t          j        d          }t          d| |                              |          }t	          | | |z   z                                |          }t          ||           d S )Ngffffff@g)\(?r\   r;   )rW   rX   r   rL   r   r   )r   r   r)   r.   r-   s        r/   test_betabinom_bernoullir      sq    AA
	!A!Qq!!Aa!e%%))!,,H8$$$$$r1   c                  \    d\  } }}t          t          j        | ||          d           d S )N)g?r   r;   
confidencer+   r.   r   r   )r   r   intervalalphar+   r.   s      r/   test_issue_10317r      s4    KE1aEQ!<<<fEEEEEr1   c                  \    d\  } }}t          t          j        | ||          d           d S )N)gffffff?r   r   r   r   )r   r   r   r   s      r/   test_issue_11134r      s4    KE1a5A;;;VDDDDDr1   c                  V   t           j                            d           t          t	          j        t           j                            d          dd          d           t          t	          j        ddd          d           t          t	          j        ddd          d           d S )Nr   r         ?r;   )rW   rk   rl   r   r   rn   rand r1   r/   test_issue_7406r      s    INN129>>"--q#66::: 1a%%r***1a%%q)))))r1   c                  d   d} t           j                            dd          }d}t          j        |||           }t          |d           t          j        ddd          }t          j        |||           }t          |d           d}t          j        |||           }t          ||           d S )	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            	          t          t          dt          j        dd                                        d          d           d S )N  rr   ir   r   )r   r   rW   logspacern   r   r1   r/   test_issue_1603r      s<    tR[T223377==qAAAAAr1   c                      d} t          j        ddd          }t          t          j        |d|z  |           dd           d S )Nr   r      r9   r\   r   )atol)rW   r   r   r   r'   )r.   rf   s     r/   test_issue_5503r      sG    A
Ar2AEIa1a((#D99999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                 N    t          t          j        | ||          |           d S Nr   r   r'   )rf   r+   r.   cdf_desireds       r/   test_issue_5503pt2r      s(     EIaA&&44444r1   c                  N    t          t          j        ddd          d           d S )Nr\   l    J)g-q=gB.+n?r   r   r1   r/   test_issue_5503pt3r      s'    EIa113IJJJJJr1   c                  N    t          t          j        ddd          d           d S )N   r8   gAA?g_[Cˮi8)r   r   r5   r   r1   r/   test_issue_6682r      s)     FIc2w//1FGGGGGr1   c                  v    t          j        g ddd          } dt          j         dg}t	          | |           d S )N)r   r   r;   r   r   gG޿g1D&+)r   logcdfrW   infr   )result	references     r/   test_issue_19747r      s?    ]:::q#..Frvg{3IFI&&&&&r1   c                  Z    d} d}d}t          t          j        || |          d           d S )Nr   r   i          )r   r   rL   )r+   r.   r)   s      r/   %test_boost_divide_by_zero_issue_15101r      s5    AAAEIaA&&,,,,,r1   c                  b    g d} t          j        d| |           }g d}t          ||           d S )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      sL    	9	9	9B
+aR
 
 CP P PL C&&&&&r1   c                   $   e Zd Zd Zd Zd Zej                            d            ej	         ej
        ddd          ej                            dd	d          f          j        Zej                            d
e          d             Zd ZdS )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                     d S )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    IaAq!,,dhq!nn===Aq!,,dhq!nn===
1a++TWQ]];;;aF;;;
1f555	7 	7 	7 	7 	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           d S )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IaQAtQ//Qa1H1H!	# 	# 	# 	#AtQ//Qa1H1H!	# 	# 	# 	#
1dA..
1dA0F0F!	# 	# 	# 	#dAv>>>dAv>>>T	K 	K 	K 	K 	K 	Kr1   c                    t           j                            d           t           j                            ddd          }t           j                            d          dz  dz   }t           j                            ddd          }g d}g d}t          t          j        |||          dd          |dd          d	
           t          t          j        |||          dd          |dd          d
           d S )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Ia"--INN2r!A%Ia2..+ + +F F F 	Aq!,,QRR0#abb'EEEEAq!,,QRR0#abb'EEEEE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           d S )Nc                 b    dt          j        d| dz             |z  z                                  S )z$Naive implementation of harmonic sumr;   )rW   rX   sum)r+   ss     r/   Hnsz+TestZipfian.test_zipfian_naive.<locals>.HnsI  s0     bi1Q3''**//111r1   c                 J    | dk     s| |k    rdS 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  s8     1uuAr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  so    
	2 	2 
	2 
	, 	, 	, 	, 
	, IacNNd1amminnz!S)))j!d(Q4443hzAdFC<!+S999:$|a/===AAq!,,c222Aq!,,c222aF;;;sD(3	5 	5 	5 	5 	5r1   c                    t          j        dd          }|                    t           j                  }t	          dd          }|                    |          }|                    |          }t          ||           d S )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  sk    Ia((28$$sBhhqkk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 	7 	7K K KF F F0 INN1")[R[Q33Y..q"b99; < <<=  [V[115 5 215:' ' ' ' 'r1   r   c                   J   e Zd Zej                            d           dZdZej                            dee          Z	e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                            ddd	g          d
             Zd Zd Zd Zej                            ddd	g          d             ZdS )TestNCHr\   r\   r   r   rj   r;   rb   r   	dist_namer   r   c           	          t           t          d}||         }| j        | j        | j        | j        f\  }}}}t          |                    ||||d          t          j        ||||                     d S )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  s    
 (:*?A AYfdfdgtv51b!Ar1155!aB22	4 	4 	4 	4 	4r1   c           	         | j         | j        | j        | j        | j        f\  }}}}}t
          j        d             } ||||||          \  }}}	t          t          j	        |||||          |           t          t          j
        ||||d          |           t          t          j
        ||||d          |	           d S )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                 `    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  s7    "2q))"2q1u--BwA~%r1   c                 `     t           fdt          dz             D                       S )Nc              3   :   K   | ]} |          |z  z  V  d S r   r   ).0ro   r  r)   s     r/   	<genexpr>zYTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P.<locals>.<genexpr>  s3      @@11Q4419@@@@@@r1   r;   )r   range)r)   r  xlxus   `r/   PzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P  s8    @@@@@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 A A A A A 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     FDFDGTVTYF1b!T		" 	" 
	", &aB488T3*.q!RDAA3GGG*0B4MMM	 	 	*0B4MMM	 	 	 	 	r1   c           
         t           j                            d           d}d}t           j                            d||          }t           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 }|                    t          d	
           t          t          j        ||||
           ||||
          d           d d d            n# 1 swxY w Y   t           j	        fd            }t                      5 }|                    t          d	
           t          t          j        ||||
d           |||||
          d           d d d            n# 1 swxY w Y   t           j	        fd            } ||	||||
          }t          j        |	||||
          }d\  }}t          j        ||z
            ||t          j        |          z  z   k     }|                                t          j        |          dz  k    sJ t+          ||          ||          ||          |
|                    D ]\  }}}}
||z
  } ||||
          \  }}t          j        ||dz             }	 ||	||||
                                          dk     sJ t          t          j        |	||||
                                          d           d S )Nr\   r   rj   r;   rb   r   c                 n    | |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  s:    RBAqt$$BAr""Br6Mr1   c                 x    | 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  sm    RBWQAq))FB4 4 4 4 4 4 4 4 sRH55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  sl    RBQAq!!AR!VA1q2vz"AQ3q5QqSRTBqD[122r1   r  r~   g?c                 t    	 |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                     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  sZ    "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WQAq))FB        
1 1 1 1 1 1 1 1 1Q44Kr1   )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  sR    		qYq%e44Yq%e44GK117+++Z1R4  Z2KBRX...INAG$Q&	 	 	 
	; 	; 	; 	; 
	;    	:CJJ~B  D D D16q"aCC DB1--D: : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 
	3 	3 	3 	3 
	3    	CJJ~B  D D D%+Ar1aEEEB1%%   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
	 	 	 	 
	$ s1aQ""$(Ar1a88
dF4$;$bfTll):"::uuww!+++++ q!ub!faeQrU;; 		P 		PKAr1aRBWQAq))FB	"b1f%%A 3q!RA&&**,,r111115aB1EEIIKKQOOOO		P 		Ps&   AE33E7:E7#AHHHc           	      `   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           d S )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     immh / / / 0 0* "  	-1#q!QEEs"	0 	0 	0 	0-21aDAA5	* 	* 	* 	*-1!Q4@@%	) 	) 	) 	) 	) 	)r1   c                     t           t          d}||         }|                    dddgdggg dd          }|j        dk    sJ d S )	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.  sb     (:*?A AYHHRrdRD\???HNNw,&&&&&&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  s       INN1EE			1e%		0	0B			1e%		0	0B
RAAqqw'''A	Aqt		B	Ar		BB***A29>17#A%D [[24KLN N4 4N N4     DZP ZP ZPx() () ()T [[24KLN N' 'N N' ' 'r1   r   zmu, q, expected)r   x   g@	#)i  r   g"qVUc                 f    d}|||| z   z  }}t          t          j        |||          |           d S )Nry   )r   r   r   )r   qr-   rc   r+   r.   s         r/   test_nbinom_11465rD  ;  s@    
 DtBwqA FM!Q**H55555r1   c                     t          j        ddd          } d}t          |                              |           }| dz  dk    }t	          |d         |           t	          |d         d|z
             t          ||          d           d S )Nr   r;   ri   g?r   )rW   r   r   rL   r   r   )rf   r.   rL   r:  s       r/   test_gh_17146rF  H  s     	Aq"AA
A,,

1

C	
Q!ACGQCFAaC   aR!r1   c                       e Zd Zej                            dg dg dg dg          d             Zej                            dg dg dg d	g          d
             ZdS )TestBetaNBinomzx, n, a, b, ref)r   g    SAr   ry   g:[Y))rj   r8   r   ry   g dg?)r   r   r   ry   gL&[>c                 T    t          t          j        ||||          |d           d S )NrK   r%   )r   r   rL   )r   rf   r+   r   r   refs         r/   test_betanbinom_pmfz"TestBetaNBinom.test_betanbinom_pmfU  s/      	
q!Q22CeDDDDDDr1   zn, a, b, ref)r   r   r8   g:o?)r   r`   r`   g>["@)rj   r   r   g >[?c                 V    t          t          j        |||d          |d           d S )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  s        [.EEEBBBHHHJK KE E	K KE [^CCC:::???AB B) )	B B) ) )r1   rH  c                       e Zd Zd ZdS )TestZipfc                     t          j        dd          }|                    t           j                  }t	          d          }|                    |          }|                    |          }t          ||           d S )Nr   r   r`   )rW   rX   r   r   r   rL   r   r   s         r/   test_gh20692zTestZipf.test_gh20692  sg    Ia((28$$Awwhhqkk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  |                    d           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )#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^    s    & & & & &) & & & '''I)G	|7	3	3	3  e                 s   A//A36A3c                       e Zd Zd ZdS )TestPoissonBinomialc                    t           j                            d          }|                    d          }t          j        |dz             }|                    |          }t          j        ||          }g d}t          ||           d S )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  s     i##L11LLIa!eJJqMM1%%= = =S!!!!!r1   N)r   r   r   re  r   r1   r/   r`  r`    s#        " " " " "r1   r`  c                       e Zd Zd ZdS )TestRandIntc                 ,   dt                    }fdt          |          D             }t          j        d|          }|dk                                    sJ dt          j        |t
          j                  z
  z  }t          ||           d S )Nic                      g | ]
}d z   |z   S )l        r   )r  r:  r   s     r/   
<listcomp>z,TestRandInt.test_gh19759.<locals>.<listcomp>  s!    ===q1w;?===r1   iE  r   r;   )dtype)	r3  r  r   rL   allrW   asarrayfloat64r   )r   	max_rangeall_b_1r+  rJ  r   s        @r/   test_gh19759zTestRandInt.test_gh19759  s    FF	====E),<,<===k#q'**a}}2:gRZ8881<=S!!!!!r1   N)r   r   r   rq  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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
                1 0 0 0 0 0 & & & & & &            
 5: : :; ;, ,; ;, 56:;< <
, ,< <
,
H H H4) ) )	> 	> 	>C C C# # #  - - -&% % % #49#4U|nQ6F#GHHP P IHP% % %F F F
E E E
* * *  "B B B: : : / 
2 
2 
2 
 
5 5
 
5K K K
H H H' ' '- - -' ' '[' [' [' [' [' [' [' ['|L' L' L' L' L' L' L' L'^ *;;;7779: :6 6: :6	 	 	*) *) *) *) *) *) *) *)Z' ' ' ' ' ' ' '  " " " " " " " "2	" 	" 	" 	" 	" 	" 	" 	" 	" 	"r1   