
    Pii                     j   d dl Z 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 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)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          z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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_sfr5   $   s4     	Q1a  AAxd++++++r0   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_logpmfrD   .   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Gr0   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_pmfrO   H   s    GAq!	A
.Aq!
$
$C	q!Q!A	&	&!a%1Q3-	8A1QK	HBB%((((((r0   c                      d} d}d}t          j        |dz             }t          j        || ||          }t          j        || ||          }t          |g dd           t          |g dd           d S )	NrH   r   r   r:   )$I$I?g۶m۶m?m۶m?rR   vIh%<=r$   )rQ   $I$I?g%I$I?      ?)nparanger   rK   r&   r   )r)   r*   rL   supportrK   r&   s         r.   test_nhypergeom_pmfcdfrY   Q   s    	A	A	Ai!nnG
.!Q
*
*C
.!Q
*
*CC111>>>>C000u======r0   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   rS   r$   )r   rK   r   )r)   r*   rL   rK   s       r.   test_nhypergeom_r0r\   ]   s[    
A	A	A
.,,,5q!Q
?
?CC,,,5EBBBBBBr0   c                  \    t          j        dg ddgdggd          } | j        dk    sJ d S )N   )r;   rH   	   r8   rG   r   r:   r[   r   size)r   rvsshape)xs    r.   test_nhypergeom_rvs_shaperf   f   sA     	r999tbTlFFFA7l""""""r0   c                  .   t           j                            d          } t          j        dddd|           }t           j                            d          } |                     d          }t          j        |ddd          }t          ||           d S )Nr   r^   r;      d   rb   random_statera   )rV   randomRandomStater   rc   uniformppfr   )rngre   r-   ys       r.   test_nhypergeom_accuracyrr   n   s     )


"
"Cr1bs===A
)


"
"CAq"a$$AAr0   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?rT   g$I$I?r   r   rS   r$   )r   r   r   ru   g۶m۶m?r:   r:   r:   )rV   rW   r	   rK   r   logr   r&   )r(   r+   r-   r,   lamcs         r.   test_boltzmann_upper_boundry   y   s    
	"aA	Aa""AAvHH
&))C	Aaa  A---HAxe,,,,aa  A+++HAxe,,,,,,r0   c                      d} t          j        | dz             }t          | dd                              |          }t          j        d| dz   z  | dz             }t          ||           d S )N   r:   )rV   rW   r   rK   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$$$$$r0   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Or0   c                      d} d}t          j        d          }t          d| |                              |          }t	          | | |z   z                                |          }t          ||           d S )Ngffffff@g)\(?r[   r:   )rV   rW   r   rK   r   r   )r   r   r(   r-   r,   s        r.   test_betabinom_bernoullir      sq    AA
	!A!Qq!!Aa!e%%))!,,H8$$$$$r0   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Er0   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Dr0   c                  B   t           j                            d          } t          t	          j        |                     d          dd          d           t          t	          j        ddd          d           t          t	          j        ddd          d           d S )Nl   <U7 r   r         ?r:   )rV   rl   default_rngr   r   ro   )rp   s    r.   test_issue_7406r      s    
)



+
+C3::b>>1c22A666 1a%%r***1a%%q)))))r0   c                     t           j                            d          } d}|                     dd          }d}t	          j        |||          }t          |d           t          j        ddd          }t	          j        |||          }t          |d           d	}t	          j        |||          }t          ||           d S )
Nl   U^ r   ri   r   ra   r   {Gz?Gz?r:   )rV   rl   r   integersr   ro   r   linspace)rp   r-   r*   re   ro   s        r.   test_issue_5122r      s    
)



+
+C	ASr""A	A
)Aq!

Cb
D$##A
)Aq!

Ca	A
)Aq!

Car0   c            	          t          t          dt          j        dd                                        d          d           d S )N  rt   ir   r   )r   r   rV   logspacero    r0   r.   test_issue_1603r      s<    tR[T223377==qAAAAAr0   c                      d} t          j        ddd          }t          t          j        |d|z  |           dd           d S )Nr   r      r8   r[   r   )atol)rV   r   r   r   r&   )r-   re   s     r.   test_issue_5503r      sG    A
Ar2AEIa1a((#D999999r0   zx, n, p, cdf_desired))i,  r   333333?g24?)r   r   r   gU7i(?)i0u  順 r   gέ̑?)i i@B r   g8@
?)i- 逖 r   gf(G?)i r   gwtg ?)ir   r   gV}ֈ?)ipr   r   gz̍?)i0 r   r   gnC:)i i ʚ;r   g@  ?)l    ^e l    d(	 r   gM|X
 ?c                 N    t          t          j        | ||          |           d S Nr   r   r&   )re   r*   r-   cdf_desireds       r.   test_issue_5503pt2r      s(     EIaA&&44444r0   c                  N    t          t          j        ddd          d           d S )Nr[   l    J)g-q=gB.+n?r   r   r0   r.   test_issue_5503pt3r      s'    EIa113IJJJJJr0   c                  N    t          t          j        ddd          d           d S )N   r7   gAA?g_[Cˮi8)r   r   r4   r   r0   r.   test_issue_6682r      s)     FIc2w//1FGGGGGr0   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   logcdfrV   infr   )result	references     r.   test_issue_19747r      s?    ]:::q#..Frvg{3IFI&&&&&r0   c                  Z    d} d}d}t          t          j        || |          d           d S )Nr   r   i          )r   r   rK   )r*   r-   r(   s      r.   %test_boost_divide_by_zero_issue_15101r      s5    AAAEIaA&&,,,,,r0   c                  b    g d} t          j        d| |           }g d}t          ||           d S )N)	r:   r   ri   r     i  i  i  ip  r   )	g>l?gzo?gVrRs?g$?gVWCW?g4yB?g4.?g.Lr?gD?)r
   r&   r   )mur&   cdf_expecteds      r.   test_skellam_gh11474r     sL    	9	9	9B
+aR
 
 CP P PL C&&&&&r0   c                      e Zd Zd Zd Zd Zej                            d          Z	 ej
         ej        ddd          e	                    dd	d          f          j        Zej                            d
e          d             Zd Zej                            dddg          d             Zej                            dg d          d             Zej                            dg d          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   )	rV   rW   r   r   rK   r   r&   r4   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 	7r0   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   )rV   rW   r   r   rK   r&   r4   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r0   c                    t           j                            d          }|                    ddd          }|                    d          dz  dz   }|                    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:   r{   r   ra   ri   )
gĹԨ?gءk>	]x[?g>g	W4?g
-?g$fhn=g9[.>g`֔>gnm?)
gaj?gZk=?r   g?g90?gɸU?rU   gJ_9?g2h2-?gB0?ư>r$   g-C6
?)	rV   rl   rm   r   randr   r   rK   r&   )r   rp   r(   r   r*   rK   r&   s          r.   test_zipfian_RzTestZipfian.test_zipfian_R-  s     i##A&&KK2BK''HHRLLOaKK3RK((+ + +F F F 	Aq!,,QRR0#abb'EEEEAq!,,QRR0#abb'EEEEEEr0   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:   )rV   rW   sum)r*   ss     r.   Hnsz+TestZipfian.test_zipfian_naive.<locals>.HnsM  s0     bi1Q3''**//111r0   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>.pzipR  s8     1uuAr1a4x##a))++r0   r:   )weightsr[   r   r   r   mvskr   )
rV   	vectorizerW   cumsumaverager   r   rK   r&   r   )r   r   r*   r   r(   rK   r&   meanvarstdskewkurtosisr   s               @r.   test_zipfian_naivezTestZipfian.test_zipfian_naiveI  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 	5r0   c                    t          j        dd          }|                    t           j                  }t	          dd          }|                    |          }|                    |          }t          ||           d S )Nr   r   o   r^   )rV   rW   astypeint32r   rK   r   r   r(   k_int32distrK   pmf_k_int32s         r.   test_pmf_integer_kzTestZipfian.test_pmf_integer_kg  sk    Ia((28$$sBhhqkkhhw''S+&&&&&r0   zk, a, n, ref)r   g    ?r   gdA_"?)i  0D   ?r   g:"!?c                 T    t          j        |||          }t          ||d           d S )NgV瞯<)r   rK   r   )r   r(   r   r*   refr-   s         r.   test_pmf_against_mpmathz#TestZipfian.test_pmf_against_mpmathp  s/     K1a  3&&&&&r0   ))i~  g      ?r   g_M?)i'        @r   g.a=)iP  r   r   g?Ӂqdb=)r         @ri   g >)_   r   ri   g{c=c                 V    t          j        |||          }t          ||d           d S NgV瞯=r$   )r   r4   r   )r   r(   r   r*   r   r4   s         r.   test_sf_against_mpmathz"TestZipfian.test_sf_against_mpmathz  s2     Z1a  Ce,,,,,,r0   z	a, n, ref))r   ri   ggG3@)g  ?r   gI'@)gjt?r   g%-?c                 T    t          j        ||          }t          ||d           d S r   )r   r   r   )r   r   r*   r   ms        r.   test_mean_against_mpmathz$TestZipfian.test_mean_against_mpmath  s0     LA3U++++++r0   c                 n    d}d}t          j        d||          }t          |t          j                   d S )Ng      @g}Ô%ITr   )r   rK   r   rV   nan)r   r   r*   r-   s       r.   test_ridiculously_large_nz%TestZipfian.test_ridiculously_large_n  s7    KAq!!Qr0   N)__name__
__module____qualname__r   r   r   rV   rl   rm   rp   vstackr   r   Tnaive_testspytestmarkparametrizer   r   r   r   r   r  r   r0   r.   r   r     s       	7 	7 	7K K KF F F0 )


"
"C")[R[Q33 [[B335 6 667  [V[115 5 215:' ' ' [	0	5	7 
' ' 
'
 [	0 	0 	0 - - -
 [	) 	) 	) , , ,         r0   r   c                       e Zd Zd 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 )TestNCHc                 
   t           j                            d          }d}d}|                    d||          }|                    d||          }||z   }t	          j        d||j        |          }t          j        d||z
            }t          j        ||          }	t	          j        ||	|j        |          }
|                    |
j                  dz  }|
||||f\  | _	        | _
        | _        | _        | _        d S )	Nl   U r[   r   r   ri   r:   ra   r   rj   r[   )rV   rl   r   r   r   rc   rd   maximumminimumre   r+   m1r*   odds)r   rp   rd   max_mr  m2r+   r*   xlxure   r  s               r.   setup_methodzTestNCH.setup_method  s    i##J//\\!U\//\\!U\//GK117===Z1R4  Z2KBRXC@@@zz!'""1$562q$5F2r0   	dist_namer   r   c           	          t           t          d}||         }| j        | j        | j        | j        f\  }}}}t          |                    ||||d          t          j        ||||                     d S )Nr   r   r:   )r  )	r   r   re   r+   r  r*   r   rK   r   )r   r  distsr   re   r+   r  r*   s           r.   test_nch_hypergeomzTestNCH.test_nch_hypergeom  s    
 (:*?A AYfdfdgtv51b!Ar1155!aB22	4 	4 	4 	4 	4r0   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)re   t1t2r  r  r*   ws      r.   fzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.f  s7    "2q))"2q1u--BwA~%r0   c                 `     t           fdt          dz             D                       S )Nc              3   :   K   | ]} |          |z  z  V  d S r   r   ).0rq   r$  r(   s     r.   	<genexpr>zYTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P.<locals>.<genexpr>  s3      @@11Q4419@@@@@@r0   r:   )r   range)r(   r$  r  r  s   `r.   PzFTestNCH.test_nchypergeom_fisher_naive.<locals>.pmf_mean_var.<locals>.P  s8    @@@@@eBQ.?.?@@@@@@r0   r:   r[   rV   r  r  )re   r+   r  r*   r#  r*  P0P1P2rK   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>!r0   r   r   v)re   r+   r  r*   r  rV   r   r   r   rK   r   )
r   re   r+   r  r*   r  r/  rK   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	 	 	 	 	r0   c           
         t           j                            d          }d}d}|                    d||          }|                    d||          }||z   }t          j        d||j        |          }t          j        d||z
            }t          j        ||          }	t          j        ||	|j        |          }
 |j        |
j         dz  }d t           j	        fd	            t          j                    5  t          j        d
t          d           t          t          j        ||||           ||||          d           d d d            n# 1 swxY w Y   t           j	        fd            }t          j                    5  t          j        d
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  ri   r:   ra   r   rj   c                 n    | |z
  }t          j        d||z
            }t          j        ||          }||fS )Nr   r+  )r+   r  r*   r#  r  r  r  s          r.   rX   z9TestNCH.test_nchypergeom_wallenius_naive.<locals>.support  s:    RBAqt$$BAr""Br6Mr0   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3r0   )bracket)r   root)	r+   r  r*   r#  r  r  r8  r  rX   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::r0   ignorez!invalid value encountered in mean)categorymessageg{Gz?r$   c                     | |z
  } | |||          }|||z
  z  }||z
  ||z   |z
  z  }| |z  |z  | dz
  ||z  ||z  z   z  z  S r6  r   )	r+   r  r*   r#  r  r7  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2r0   r0  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 r6  r   )tDresr  r  r*   r#  re   s      r.   	integrandzHTestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.integrand  sQ    rAvJ"!*-QqSzAo1qs8qs(;;
r0   c                     t          |           }t          | z
            }t          dddd          }||z  |d         z  S )Nr   r:   gؗҜ<)epsrelepsabs)r   r   )re   r!  r"  the_integralrE  r  r  r*   s       r.   r$  z@TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf.<locals>.f  sZ    "2q))"2q1u--#Iq!+0 @  @  @Bwa00r0   r   )re   r+   r  r*   r#  r  r  r$  rE  r  rX   s   ` ```   @@r.   rK   z5TestNCH.test_nchypergeom_wallenius_naive.<locals>.pmf  s    RBWQAq))FB        
1 1 1 1 1 1 1 1 1Q44Kr0   )r   r   r   )rV   rl   rm   r   rc   rd   r  r  r   r   warningscatch_warningsfilterwarningsRuntimeWarningr   r   r   r   rK   absr   prodziprW   )r   rp   rd   r  r  r  r+   r*   r  r  re   r#  r?  rK   pmf0pmf1r   r%   ir   rX   s                      @@r.    test_nchypergeom_wallenius_naivez(TestNCH.test_nchypergeom_wallenius_naive  s]    i##A&&[[E[..[[E[..GK117===Z1R4  Z2KBRXC@@@CHagq 	 	 	 
	; 	; 	; 	; 
	; $&& 	: 	:#H~BD D D D16q"aCC DB1--D: : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 
	3 	3 	3 	3 
	3 $&& 	 	#H~BD 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EE!$E!AG00G47G4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 )Nr7   r   r{   g      @r   )g9T;gr<gD,P=g4 V=g'	,=gCG>gyztj>gt>g+k?g MeGD?gqNZVɒo?gc2n?g~ZN?gE}?Y?g?g·aQ?g]??gr)?gp{?g39	y?g m>?gJ򕴝-@gih@rS   )r%   r   r$   gdy=)rV   rW   arrayr   r   rK   r   r   )	r   r)   r*   r+   r  suprK   r   r   s	            r.   test_wallenius_against_mpmathz%TestNCH.test_wallenius_against_mpmath3  s     immh / / / 0 0* "  	-1#q!QEEs"	0 	0 	0 	0-21aDAA5	* 	* 	* 	*-1!Q4@@%	) 	) 	) 	) 	) 	)r0   c                     t           t          d}||         }|                    dddgdggg dd          }|j        dk    sJ d S )	Nr  r7   r   r   r{   )r   rU   g       @r`   ra   )r   r   rc   rd   )r   r  r  r   re   s        r.   test_rvs_shapezTestNCH.test_rvs_shape]  sb     (:*?A AYHHRrdRD\???HNNw,&&&&&&r0   N)r  r  r  r  r  r	  r
  r  r1  rT  rX  rZ  r   r0   r.   r  r    s        G G G [[24KLN N4 4N N4     DZP ZP ZPx() () ()T [[24KLN N' 'N N' ' 'r0   r  zmu, q, expected)r   x   g@	#)i  r   g"qVUc                 f    d}|||| z   z  }}t          t          j        |||          |           d S )Nr{   )r   r   r   )r   qr,   rb   r*   r-   s         r.   test_nbinom_11465r^  j  s@    
 DtBwqA FM!Q**H55555r0   c                     t          j        ddd          } d}t          |                              |           }| dz  dk    }t	          |d         |           t	          |d         d|z
             t          ||          d           d S )Nr   r:   rh   g?r   )rV   r   r   rK   r   r   )re   r-   rK   rS  s       r.   test_gh_17146r`  w  s     	Aq"AA
A,,

1

C	
Q!ACGQCFAaC   aR!r0   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   r{   g:[Y))ri   r7   r   r{   g dg?)r   r   r   r{   gL&[>c                 T    t          t          j        ||||          |d           d S )NrJ   r$   )r   r   rK   )r   re   r*   r   r   r   s         r.   test_betanbinom_pmfz"TestBetaNBinom.test_betanbinom_pmf  s/      	
q!Q22CeDDDDDDr0   zn, a, b, ref)r   r   r7   g:o?)r   r_   r_   g>["@)ri   r   r   g >[?c                 V    t          t          j        |||d          |d           d S )Nr(   r   g [n<r$   )r   r   r   )r   r*   r   r   r   s        r.   test_betanbinom_kurtosisz'TestBetaNBinom.test_betanbinom_kurtosis  s@    * 	
(Aq#>>>%	) 	) 	) 	) 	) 	)r0   N)r  r  r  r  r	  r
  rd  rf  r   r0   r.   rb  rb    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) ) )r0   rb  c                       e Zd Zd ZdS )TestZipfc                     t          j        dd          }|                    t           j                  }t	          d          }|                    |          }|                    |          }t          ||           d S )Nr   r   r_   )rV   rW   r   r   r   rK   r   r   s         r.   test_gh20692zTestZipf.test_gh20692  sg    Ia((28$$Awwhhqkkhhw''S+&&&&&r0   N)r  r  r  rj  r   r0   r.   rh  rh    s#        ' ' ' ' 'r0   rh  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 )Nri   r   )min)r   r(   s     r.   _cdfz(test_gh20048.<locals>.test_dist_gen._cdf  s    q3w%%%r0   N)r  r  r  rp  r   r0   r.   test_dist_genrm    s#        	& 	& 	& 	& 	&r0   rq  )r   zArguments that bracket...)matchg+?)r   rv_discreterV   r   r  raisesRuntimeErrorro   )rq  	test_distr=  s      r.   test_gh20048rw    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?)rV   rl   r   r   rW   r   rK   r   )r   rp   r*   r(   r-   rD  r   s          r.   test_pmfzTestPoissonBinomial.test_pmf  s     i##L11LLIa!eJJqMM1%%= = =S!!!!!r0   N)r  r  r  r{  r   r0   r.   ry  ry    s#        " " " " "r0   ry  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'  rS  r   s     r.   
<listcomp>z,TestRandInt.test_gh19759.<locals>.<listcomp>  s!    ===q1w;?===r0   iE  r   r:   )dtype)	rN  r)  r   rK   allrV   asarrayfloat64r   )r   	max_rangeall_b_1rD  r   r   s        @r.   test_gh19759zTestRandInt.test_gh19759  s    FF	====E),<,<===k#q'**a}}2:gRZ8881<=S!!!!!r0   N)r  r  r  r  r   r0   r.   r}  r}    s#        " " " " "r0   r}  )Gr  	itertoolsrJ  scipyr   scipy.statsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   numpyrV   numpy.testingr   r   r   scipy.specialr   scipy.optimizer   scipy.integrater   r	  r
  r/   r5   rD   rO   rY   r\   rf   rr   ry   r}   productintfloatr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r^  r`  rb  rh  rw  ry  r}  r   r0   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' ' '- - -' ' 'D  D  D  D  D  D  D  D NN' N' N' N' N' N' N' N'b *;;;7779: :6 6: :6	 	 	*) *) *) *) *) *) *) *)Z' ' ' ' ' ' ' '  " " " " " " " "2	" 	" 	" 	" 	" 	" 	" 	" 	" 	"r0   