
    UgZ                        d dl Z d dl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 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             Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4e j                            dg d           d!             Z5d" Z6d# Z7d$ Z8d% Z9d& Z: G d' d(          Z; G d) d*          Z<e j                            d+g d,g d-g          d.             Z=d/ Z> G d0 d1          Z? G d2 d3          Z@dS )4    N)	betabinom
betanbinom	hypergeom
nhypergeom	bernoulli	boltzmannskellamzipfzipfianbinomnbinomnchypergeom_fishernchypergeom_walleniusrandint)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          e/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/stats/tests/test_discrete_distns.pytest_hypergeom_cdfr.      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_sfr4   "   s4     	Q1a  AAxd++++++r/   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_logpmfrC   ,   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Gr/   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)-            r9   绽|=r#   )r   pmfr   r   )r(   r)   rr'   NHGHGs         r-   test_nhypergeom_pmfrN   F   s    GAq!	A
.Aq!
$
$C	q!Q!A	&	&!a%1Q3-	8A1QK	HBB%((((((r/   c                      d} d}d}t          j        |dz             }t          j        || ||          }t          j        || ||          }t          |g dd           t          |g dd           d S )	NrG   r   r   r9   )$I$I?g۶m۶m?m۶m?rQ   vIh%<=r#   )rP   $I$I?g%I$I?      ?)nparanger   rJ   r%   r   )r(   r)   rK   supportrJ   r%   s         r-   test_nhypergeom_pmfcdfrX   O   s    	A	A	Ai!nnG
.!Q
*
*C
.!Q
*
*CC111>>>>C000u======r/   c                  |    d} d}d}t          j        g dg dg| ||          }t          |g dg dgd	           d S )
Nr   r   r   )r   r9      r   )r9   rZ   r   r   )r9   r   r   r9   )r   r   r9   r   rR   r#   )r   rJ   r   )r(   r)   rK   rJ   s       r-   test_nhypergeom_r0r[   [   s[    
A	A	A
.,,,5q!Q
?
?CC,,,5EBBBBBBr/   c                  \    t          j        dg ddgdggd          } | j        dk    sJ d S )N   )r:   rG   	   r7   rF   r   r9   rZ   r   size)r   rvsshape)xs    r-   test_nhypergeom_rvs_shapere   d   sA     	r999tbTlFFFA7l""""""r/   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   r`   )rU   randomseedr   rb   uniformppfr   )rd   r,   ys      r-   test_nhypergeom_accuracyrn   l   s     INN1r1bs+++AINN1
	s##Aq"a$$AAr/   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   r9   grh|?r   rZ   r   )r   r   r   $I$I?rS   g$I$I?r   r   rR   r#   )r   r   r   rq   g۶m۶m?r9   r9   r9   )rU   rV   r   rJ   r   logr   r%   )r'   r*   r,   r+   lamcs         r-   test_boltzmann_upper_boundru   w   s    
	"aA	Aa""AAvHH
&))C	Aaa  A---HAxe,,,,aa  A+++HAxe,,,,,,r/   c                      d} t          j        | dz             }t          | dd                              |          }t          j        d| dz   z  | dz             }t          ||           d S )N   r9   )rU   rV   r   rJ   repeatr   )r)   r'   r,   r+   s       r-   test_betabinom_a_and_b_unityry      sn     	A
	!a%A!Qq!!Aya!ea!e,,H8$$$$$r/   dtypesr   c                     | \  }}} |d           |d           |d          }}}t          t          j        |||d          d           d S )Nr   rZ   r   r'   momentsgaa)r   r   stats)rz   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Or/   c                      d} d}t          j        d          }t          d| |                              |          }t	          | | |z   z                                |          }t          ||           d S )Ngffffff@g)\(?rZ   r9   )rU   rV   r   rJ   r   r   )r   r   r'   r,   r+   s        r-   test_betabinom_bernoullir      sq    AA
	!A!Qq!!Aa!e%%))!,,H8$$$$$r/   c                  \    d\  } }}t          t          j        | ||          d           d S )N)g?r   r9   
confidencer)   r,   r   r   )r   r   intervalalphar)   r,   s      r-   test_issue_10317r      s4    KE1aEQ!<<<fEEEEEr/   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Dr/   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         ?r9   )rU   ri   rj   r   r   rl   rand r/   r-   test_issue_7406r      s    INN129>>"--q#66::: 1a%%r***1a%%q)))))r/   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   rh   r   r`   r   {Gz?gGz?r9   )rU   ri   r   r   rl   r   linspace)r,   r)   rd   rl   s       r-   test_issue_5122r      s    	A
	#B''A	A
)Aq!

Cb
D$##A
)Aq!

Ca	A
)Aq!

Car/   c            	          t          t          dt          j        dd                                        d          d           d S )N  rp   ir   r   )r   r   rU   logspacerl   r   r/   r-   test_issue_1603r      s<    tR[T223377==qAAAAAr/   c                      d} t          j        ddd          }t          t          j        |d|z  |           dd           d S )Nr   r      r7   rZ   r   )atol)rU   r   r   r   r%   )r,   rd   s     r-   test_issue_5503r      sG    A
Ar2AEIa1a((#D999999r/   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%   )rd   r)   r,   cdf_desireds       r-   test_issue_5503pt2r      s(     EIaA&&44444r/   c                  N    t          t          j        ddd          d           d S )NrZ   l    J)g-q=gB.+n?r   r   r/   r-   test_issue_5503pt3r      s'    EIa113IJJJJJr/   c                  N    t          t          j        ddd          d           d S )N   r6   gAA?g_[Cˮi8)r   r   r3   r   r/   r-   test_issue_6682r      s)     FIc2w//1FGGGGGr/   c                  v    t          j        g ddd          } dt          j         dg}t	          | |           d S )N)r   r   r9   r   r   gG޿g1D&+)r   logcdfrU   infr   )result	references     r-   test_issue_19747r      s?    ]:::q#..Frvg{3IFI&&&&&r/   c                  Z    d} d}d}t          t          j        || |          d           d S )Nr   r   i          )r   r   rJ   )r)   r,   r'   s      r-   %test_boost_divide_by_zero_issue_15101r      s5    AAAEIaA&&,,,,,r/   c                  b    g d} t          j        d| |           }g d}t          ||           d S )N)	r9   r   rh   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&&&&&r/   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   r9      msvkr|   )	rU   rV   r   r   rJ   r
   r%   r3   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 	7r/   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  ?   r9   gƠ>r#   r   r|   )rU   rV   r   r   rJ   r%   r3   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r/   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   r9   rw   r   r`   rh   )
gĹԨ?gءk>	]x[?g>g	W4?g
-?g$fhn=g9[.>g`֔>gnm?)
gaj?gZk=?r   g?g90?gɸU?rT   gJ_9?g2h2-?gB0?ư>r#   g-C6
?)	rU   ri   rj   r   r   r   r   rJ   r%   )r   r'   r   r)   rJ   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Er/   r   r9   r   rZ   (   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 sumr9   )rU   rV   sum)r)   ss     r-   Hnsz+TestZipfian.test_zipfian_naive.<locals>.HnsH  s0     bi1Q3''**//111r/   c                 J    | dk     s| |k    rdS d| |z  z   ||          z  S )z#Naive implementation of zipfian pmfr9   r   r   )r'   r   r)   r   s      r-   pzipz,TestZipfian.test_zipfian_naive.<locals>.pzipM  s8     1uuAr1a4x##a))++r/   r9   )weightsrZ   r   r   r   mvskr|   )
rU   	vectorizerV   cumsumaverager   r   rJ   r%   r~   )r   r   r)   r   r'   rJ   r%   meanvarstdskewkurtosisr   s               @r-   test_zipfian_naivezTestZipfian.test_zipfian_naiveD  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 	5r/   c                    t          j        dd          }|                    t           j                  }t	          dd          }|                    |          }|                    |          }t          ||           d S )Nr   r   o   r]   )rU   rV   astypeint32r   rJ   r   r   r'   k_int32distrJ   pmf_k_int32s         r-   test_pmf_integer_kzTestZipfian.test_pmf_integer_kb  sk    Ia((28$$sBhhqkkhhw''S+&&&&&r/   N)__name__
__module____qualname__r   r   r   rU   ri   rj   vstackr   r   Tnaive_testspytestmarkparametrizer   r   r   r/   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:' ' ' ' 'r/   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 )TestNCHrZ   rZ   r   r   rh   r9   r`   r   	dist_namer   r   c           	          t           t          d}||         }| j        | j        | j        | j        f\  }}}}t          |                    ||||d          t          j        ||||                     d S )Nr   r   r9   )odds)	r   r   rd   r*   m1r)   r   rJ   r   )r   r   distsr   rd   r*   r   r)   s           r-   test_nch_hypergeomzTestNCH.test_nch_hypergeomy  s    
 (:*?A AYfdfdgtv51b!Ar1155!aB22	4 	4 	4 	4 	4r/   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)rd   t1t2r   m2r)   ws      r-   fzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.f  s7    "2q))"2q1u--BwA~%r/   c                 `     t           fdt          dz             D                       S )Nc              3   :   K   | ]} |          |z  z  V  d S r   r   ).0rm   r  r'   s     r-   	<genexpr>zYTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P.<locals>.<genexpr>  s3      @@11Q4419@@@@@@r/   r9   )r   range)r'   r  xlxus   `r-   PzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P  s8    @@@@@eBQ.?.?@@@@@@r/   r9   rZ   rU   maximumminimum)rd   r*   r   r)   r  r  P0P1P2rJ   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>!r/   mr|   v)rd   r*   r   r)   r   rU   r   r   r   rJ   r~   )
r   rd   r*   r   r)   r   r  rJ   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	 	 	 	 	r/   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 )NrZ   r   rh   r9   r`   r   c                 n    | |z
  }t          j        d||z
            }t          j        ||          }||fS )Nr   r  )r*   r   r)   r  r  r  r  s          r-   rW   z9TestNCH.test_nchypergeom_wallenius_naive.<locals>.support  s:    RBAqt$$BAr""Br6Mr/   c                 x    | z
   |           \  }}fd}t          |||f          j        S )Nc                 2    | z  d| z
  z  z
  z  z   dz
  S Nr9   r   )ur   r  r)   r  s    r-   funzCTestNCH.test_nchypergeom_wallenius_naive.<locals>.mean.<locals>.fun  s(    tqAaC8|a//!33r/   )bracket)r   root)	r*   r   r)   r  r  r  r  r  rW   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::r/   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2r/   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  rd   s      r-   	integrandzHTestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.integrand  sQ    rAvJ"!*-QqSzAo1qs8qs(;;
r/   c                     t          |           }t          | z
            }t          dddd          }||z  |d         z  S )Nr   r9   gؗҜ<)epsrelepsabs)r  r   )rd   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0r/   r   )rd   r*   r   r)   r  r  r  r  r*  r  rW   s   ` ```   @@r-   rJ   z5TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf  s    RBWQAq))FB        
1 1 1 1 1 1 1 1 1Q44Kr/   )r   r   r   )rU   ri   rj   r   rb   rc   r  r  r   r   r   filterRuntimeWarningr   r   r   r~   rJ   absr   prodziprV   )r   rc   max_mr   r  r*   r)   r  r  rd   r  supr$  rJ   pmf0pmf1r   r$   ir   rW   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 )Nr6   r   rw   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@rR   )r$   r   r#   gdy=)rU   rV   arrayr   r   rJ   r   r   )	r   r(   r)   r*   r   r5  rJ   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@@%	) 	) 	) 	) 	) 	)r/   c                     t           t          d}||         }|                    dddgdggg dd          }|j        dk    sJ d S )	Nr   r6   r   r   rw   )r   rT   g       @r_   r`   )r   r   rb   rc   )r   r   r   r   rd   s        r-   test_rvs_shapezTestNCH.test_rvs_shape-  sb     (:*?A AYHHRrdRD\???HNNw,&&&&&&r/   N)r   r   r   rU   ri   rj   rc   r4  r   r   r  r*   rb   r)   r  r  r  r  rd   r   r   r   r   r   r   r  r9  r<  r>  r   r/   r-   r   r   k  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' ' 'r/   r   zmu, q, expected)r   x   g@	#)i  r   g"qVUc                 f    d}|||| z   z  }}t          t          j        |||          |           d S )Nrw   )r   r   r   )r   qr+   ra   r)   r,   s         r-   test_nbinom_11465rB  :  s@    
 DtBwqA FM!Q**H55555r/   c                     t          j        ddd          } d}t          |                              |           }| dz  dk    }t	          |d         |           t	          |d         d|z
             t          ||          d           d S )Nr   r9   rg   g?r   )rU   r   r   rJ   r   r   )rd   r,   rJ   r8  s       r-   test_gh_17146rD  G  s     	Aq"AA
A,,

1

C	
Q!ACGQCFAaC   aR!r/   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   rw   g:[Y))rh   r6   r   rw   g dg?)r   r   r   rw   gL&[>c                 T    t          t          j        ||||          |d           d S )NrI   r#   )r   r   rJ   )r   rd   r)   r   r   refs         r-   test_betanbinom_pmfz"TestBetaNBinom.test_betanbinom_pmfT  s/      	
q!Q22CeDDDDDDr/   zn, a, b, ref)r   r   r6   g:o?)r   r^   r^   g>["@)rh   r   r   g >[?c                 V    t          t          j        |||d          |d           d S )Nr'   r|   g [n<r#   )r   r   r~   )r   r)   r   r   rH  s        r-   test_betanbinom_kurtosisz'TestBetaNBinom.test_betanbinom_kurtosisg  s@    * 	
(Aq#>>>%	) 	) 	) 	) 	) 	)r/   N)r   r   r   r   r   r   rI  rK  r   r/   r-   rF  rF  S  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) ) )r/   rF  c                       e Zd Zd ZdS )TestZipfc                     t          j        dd          }|                    t           j                  }t	          d          }|                    |          }|                    |          }t          ||           d S )Nr   r   r^   )rU   rV   r   r   r
   rJ   r   r   s         r-   test_gh20692zTestZipf.test_gh20692  sg    Ia((28$$Awwhhqkkhhw''S+&&&&&r/   N)r   r   r   rO  r   r/   r-   rM  rM    s#        ' ' ' ' 'r/   rM  )Ar   	itertoolsscipy.statsr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   numpyrU   numpy.testingr   r   r   r   scipy.specialr  scipy.optimizer   scipy.integrater   r   r   r.   r4   rC   rN   rX   r[   re   rn   ru   ry   productintfloatr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB  rD  rF  rM  r   r/   r-   <module>rZ     s       " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "
                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' ' ' ' ' ' ' ' ' 'r/   