
    5[g                       d Z ddlZddlZddlZddlZddlmZ ddlZ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 ddlZddlmZ ddlZddlmZmZ ddlmZ ddlm Z  dd	l!m"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,Zddl-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z= ddl>m?Z? ej                  j                  dkD  ZBej                  dk(  xr  e	j                         dk(  ZDddgZEddZFd ZGd ZH G d d      ZIddZJd ZKej                  j                  dg d      d         ZN G d! d"      ZO G d# d$      ZP G d% d&      ZQ G d' d(      ZR G d) d*      ZS G d+ d,      ZT G d- d.      ZU G d/ d0      ZV G d1 d2      ZW G d3 d4      ZX G d5 d6      ZY G d7 d8      ZZ G d9 d:      Z[ G d; d<      Z\ G d= d>      Z] G d? d@      Z^ G dA dB      Z_ G dC dD      Z` G dE dF      Za G dG dH      Zb G dI dJ      Zc G dK dL      Zd G dM dN      Ze G dO dP      Zf G dQ dR      Zg G dS dT      Zh G dU dV      Zi G dW dX      Zj G dY dZ      Zk G d[ d\      Zl G d] d^      Zm G d_ d`      Zn G da db      Zo G dc dd      Zp G de df      Zq G dg dh      Zr G di dj      Zs G dk dl      Zt G dm dn      Zu G do dp      Zv G dq dr      Zw G ds dt      Zx G du dv      Zy G dw dx      Zz G dy dz      Z{ G d{ d|      Z| G d} d~      Z} G d d      Z~ G d d      Z G d d      Z G d d      Zdd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  g	fd ej                  ddej                  z  z        dd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  dz  dd ej                  ddej                  z  z        z  dz  dd ej                  ddej                  z  z        z  dz  g	fdd ej                  dej                  z        z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  dgfgZ G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d«      ZdÄ Z G dĄ dū      Z G dƄ dǫ      Z G dȄ dɫ      Z G dʄ d˫      Z G d̄ dͫ      Z G d΄ dϫ      Z G dЄ dѫ      Zd҄ Z G dӄ dԫ      Z G dՄ d֫      Z G dׄ dث      Z G dل dګ      Z G dۄ dܫ      Z G d݄ dޫ      Z G d߄ d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zd Zd Zd Zej                  jg                  eBd       d        Zd Zd Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zej                  j                  dg d      d        Zd Zd Zd Zd ZÐd ZĐd Zej                  j                  dg d      d        ZƐd Zǐd ZȐd Zɐd Zʐd Zːd Zej                  j                  dd  ej8                  d!d"g      fd# ej8                  d$d%g      fd& ej8                  d'd(g      fd) ej8                  d*d+g      fg      d,        Z͐d- Zΐd. Zϐd/ ZАd0 Zej                  j                  d1g d2      d3        Zej                  j                  d4g d5      d6        Zej                  j                  d7g d8      d9        ZԐd: Zej                  j                  d1g d;      d<        Z֐d= Z G d> d?e)j                        Z G d@ dAe)j                        Z G dB dCe)j                        Z G dD dEe)j                        Z G dF dG      Z G dH dI      Zej                  jg                  eBdJ      dK        ZߐdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW Zej                  j                  d1g dX      dY        Zej                  j                  dZd[d\g      d]        Zej                  j                  d^ddg d_fd`dag d_fdbdcg ddfg      de        Zdf Zdg Zej                  jg                  ej                  dhk  di      dj        Z G dk dl      Zdm Z G dn do      Z G dp dq      Z G dr ds      Z G dt du      Zdv Zej                  j                  dwe6e3z         dx        Zdy Zdz Zej                  j                  d4d{d|g      d}        Zej                  j                  d7g d~      d        Zd Zd Z d Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zej                  j                  dg d      d        Zy(  z!
Test functions for stats module
    N)Path)assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_allcloseassert_assert_warnsassert_array_lesssuppress_warningsassert_array_max_ulpIS_PYPY)raises)	typecodesarray)rec_append_fields)special)check_random_state)IntegrationWarningquad	trapezoidcumulative_trapezoid)
argsreduce)xlogy	polygammaentr)distcontinvdistcont   )distdiscreteinvdistdiscrete)FitDataError
_argus_phi)rootfmindifferential_evolution)productdarwinx86_64tukeylambdapearson3c                 D    ||  d| }t        t        | |      |       y )Nz does not have attribute msg)r	   hasattr)abr.   s      _/var/www/html/bid-api/venv/lib/python3.12/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattrr3   4   s(    
{,QC0GAqMs#    c                  L    t        t        j                  j                  d       y )Nf_gen)r3   scipystatsdistributions r4   r2   test_api_regressionr;   :   s    EKK--w7r4   c                     t        t        j                  j                  j                        } t
        D cg c]  }|d   	 }}t        D cg c]  }|d   	 }}g d}||z   |z   }t        t        d |            }| |k(  sJ y c c}w c c}w )Nr   )rv_discreterv_continuousrv_histogramentropytrapzc                 8    t        |       j                  d       S )N<)str
startswithss    r2   <lambda>z.test_distributions_submodule.<locals>.<lambda>I   s    A(9(9#(>$>r4   )setr7   r8   r9   __all__r   r    filter)actualdist
continuousdiscreteotherexpecteds         r2   test_distributions_submodulerR   ?   s    **223F&./hd$q'hJ/$01LDQLH1!EH$u,H 6>IJHX 01s   BB	c            	       r   e Zd Zej                  j                  dg d      ej                  j                  dddej                  ddg      d               Zd	 Z	d
 Z
ej                  j                  dg d      d        Zej                  j                  dg d      d        Zd Zej                  j                  dg d      d        Zd Zej                  j                   ej                  j                  dddg      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                                    Zej                  j$                  d        Zej                  j                  d d!dg      d"        Zd# Zd$ Zd% Zy&)'TestVonMisesk)皙?r   e   xr   r   
   d   c                     d }d } ||dd|        ||dd|        ||dd|        ||dd|        ||dd|        ||dd|       y )Nc                     t        j                  | ||      }t        |j                  |      |j                  |dt        j
                  z  |z  z               y )Nlocscale   )r8   vonmisesr   pdfnppirU   LrG   rX   vms        r2   check_vonmises_pdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicR   s@    q2Bq	266!q255y1}2E+FGr4   c                     t        j                  | ||      }t        |j                  |      dz  |j                  |dt        j
                  z  |z  z        dz         y )Nr]   r   r`   )r8   ra   r   cdfrc   rd   re   s        r2   check_vonmises_cdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicV   sM    q2Bq	A "qAIM': ;a ?Ar4   r   r   rY   r:   )selfrU   rX   rh   rk   s        r2   test_vonmises_periodicz#TestVonMises.test_vonmises_periodicO   sd    	H	A
 	$Aq!Q/#Aq!Q/#Aq"a0#Aq!Q/#Aq!Q/#Aq"a0r4   c                     t        t        j                  j                  t        j
                          t        t        j                  j                  t        j
                         y N)r   r8   vonmises_liner0   rc   rd   r1   rl   s    r2   test_vonmises_line_supportz'TestVonMises.test_vonmises_line_supportc   s8    U((**RUUF3U((**BEE2r4   c                 d    t        j                  d      }t        |j                  d      d       y )N   r         ?)r8   ra   r   rj   )rl   rg   s     r2   test_vonmises_numericalz$TestVonMises.test_vonmises_numericalg   s"    ^^C BFF1Is+r4   zx, kappa, expected_pdf))rV   {Gz?g|65?)rV         9@g?U?)rV   rt   g"?)       @rw   gDfI?)ry   rx   g1<)ry   rt           c                 `    t         j                  j                  ||      }t        ||d       y NV瞯<rtol)r8   ra   rb   r   )rl   rX   kappaexpected_pdfrb   s        r2   test_vonmises_pdfzTestVonMises.test_vonmises_pdfu   s&     nn  E*\6r4   zkappa, expected_entropy))r   gA	?)   g,eޞ?)rZ   gBb9d22)  g
G )  gc                 ^    t         j                  j                  |      }t        ||d       y NvIh%<=r~   )r8   ra   r@   r   )rl   r   expected_entropyr@   s       r2   test_vonmises_entropyz"TestVonMises.test_vonmises_entropy   s%     ..((/!1>r4   c                 L   d}t         j                  j                  |      }t         j                  j                  |      }t         j                  j                  |      }t        j                  ddd      j                  |      }t        j                  ddt         j                  z  d      j                  |      }t        j                  dddt         j                  z  t        |      z  dz         j                  |      }t        ||d       t        ||d       y )	Ni@}r   r   r]   random_stater`   r}   atol)	rc   randomdefault_rngr8   ra   rvsrd   absr   )rl   seedrng1rng2rng3rvs1rvs2rvs3s           r2   test_vonmises_rvs_gh4598z%TestVonMises.test_vonmises_rvs_gh4598   s    yy$$T*yy$$T*yy$$T*~~aQa044$4G~~aQruuWA6:::M~~aQ%&ruuWSY%6q%8;;>3D3;Q 	d/d/r4   zx, kappa, expected_logpdf))rV   rw   gEJ?)rV   rx   goι?)rV   rt   g0,)ry   rw   gdty)ry   rx   gʹw[A)ry   rt   gc                 `    t         j                  j                  ||      }t        ||d       y r|   )r8   ra   logpdfr   )rl   rX   r   expected_logpdfr   s        r2   test_vonmises_logpdfz!TestVonMises.test_vonmises_logpdf   s&     &&q%0e<r4   c                    t         j                  j                  d      }|j                  d      dz  \  }}}t        j                  ||      j                  d       }t        |d       t        j                  |j                  t         j                        sJ ||dt         j                  z  z   f} t        j                  ||      j
                  d g| }t        |d       t        j                  |j                  t         j                        sJ ||dt         j                  z  z   f} t        j                  ||      j
                  d	 g|d
di}t        t        j                  |      |dt         j                  z  z         t        j                  |j                  t         j                        sJ y)a   
        Test that the vonmises expectation values are
        computed correctly.  This test checks that the
        numeric integration estimates the correct normalization
        (1) and mean angle (loc).  These expectations are
        independent of the chosen 2pi interval.
           kD +xNn    rY   r^   r   c                      yNr   r:   rX   s    r2   rH   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>       Ar4   r   r`   c                      yr   r:   r   s    r2   rH   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   r   r4   c                 2    t        j                  d| z        S )Ny              ?)rc   expr   s    r2   rH   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   s    BFF2a4Lr4   complex_funcN)rc   r   r   r8   ra   expectr   
issubdtypedtypefloatingrd   anglecomplexfloating)rl   rngr^   r   lbresboundss          r2   test_vonmises_expectz!TestVonMises.test_vonmises_expect   sU    ii##$78A+UBnnE299+FQ}}SYY444R!bee)^#9ennE299+OOQ}}SYY444R!bee)^#9ennE299:P S;ASPQSsag7}}SYY(:(:;;;r4   rvs_locr`   	rvs_shape)r   rZ       חAfix_locTF	fix_shapec                 F   |r|rt        j                  d       t        j                  j	                  d      }t
        j                  j                  |d||      }ddi}|r||d<   |r||d<   t        t
        j                  |t
        j                  j                  fi | y )	NzNothing to fit.r   r   )sizer^   r   fscaler   flocf0)
pytestskiprc   r   r   r8   ra   r   _assert_less_or_close_loglikennlf)rl   r   r   r   r   r   datakwdss           r2   test_fit_MLE_comp_optimizerz(TestVonMises.test_fit_MLE_comp_optimizer   s     KK)*ii##$78~~!!)$G/2 " 4 !}"DL"DJ%ennd&+nn&9&9	C=A	Cr4   c                 b   g d}t        j                  |      }dt         j                  z  }t        j                  j                  ||      \  }}}|t        j                  t              j                  k(  sJ t        t        j                  |t        j                  j                  d|       y )N)g!*Kg4,%OԿgZ۵?g
ge_@g-8gPghn?g<t?g.6@gjb?g0]o@g݅ZgSsgx7W?g%H?g65Jg:m2?g@g;,gM^lsF      ࿩r   r   )r   r   )rc   asarrayrd   r8   ra   fitfinfofloattinyr   r   )rl   r   r^   	kappa_fitloc_fit	scale_fits         r2   test_vonmises_fit_bad_flocz'TestVonMises.test_vonmises_fit_bad_floc   s    M zz$RUUl(-(:(:4c(:(J%	7IBHHUO00000%ennd&+nn&9&9!#	Or4   signc                 
   t         j                  j                  d      }t        j                  |dz  t         j
                  z  d      j                  d|      }|dt         j
                  z  z   }t        j                  j                  |      \  }}}t        j                  j                  |      \  }}	}
t        ||	       t        ||       |dk(  sJ t         j
                   |cxk  rt         j
                  k  sJ  J y )	Nr   ru   rY   r   順 r      r   )	rc   r   r   r8   ra   rd   r   r   r   )rl   r   r   r   shifted_datar   r   r   kappa_fit_shiftedloc_fit_shifted_s              r2    test_vonmises_fit_unwrapped_dataz-TestVonMises.test_vonmises_fit_unwrapped_data   s    ii##$78~~$s(255.;??MP @ Rag~(-(:(:4(@%	7I050B0B<0P-?A1	#45A~~v'"%%'''''r4   c                    t        j                  d      }t        |j                  d      ddt        j
                  z  z  d       t        |j                  t        j
                  dz        dd       t        |j                  t        j
                   dz        dd       t        |j                  d      t        j
                  dz  d       t        |j                         dd	       t        |j                         dd	       t	        j                  t	        j                  |j                  d
d            t        j
                  k        sJ y )Nr   r   r`   r}   r~         ??皙?r   rY     r   r   )r8   ra   r   rb   rc   rd   rj   sfppfmeanr   allr   r   )rl   rM   s     r2   test_vonmises_kappa_0_gh18166z*TestVonMises.test_vonmises_kappa_0_gh18166   s    ~~a Q!bee)_5Aq)4e<q)4e<ruuSyu=		QU3qu5vvbffTXX2DXABbeeKLLLr4   c                 n    t         j                  j                  dg      \  }}}|dk(  r
|dk(  r|dk(  sJ y )Nr   g 7yACr   )r8   ra   r   )rl   r   r^   r_   s       r2   test_vonmises_fit_equal_dataz)TestVonMises.test_vonmises_fit_equal_data  s:    !NN..s3sE}eqj88jr4   c                     t         j                  j                  j                  ddgd       t         j                  j                  j                  t        j
                  dz  dz  gd       y )Nr   gl=c>r   r`   gd?)r7   r8   ra   r   rc   rd   rq   s    r2   test_vonmises_fit_boundsz%TestVonMises.test_vonmises_fit_bounds
  sT     	  !WA 6 	  "%%'9"5!6Q ?r4   N)__name__
__module____qualname__r   markparametrizerc   rd   rm   rr   rv   r   r   r   r   r   xslowr   slowr   r   r   r   r   r:   r4   r2   rT   rT   N   s   [[S-0[[S1aC"891 : 11$3, [[5/0707 [[6;<?<?0  [[8BC=C=<4 [[[[YA/[[[-8[[Yu6[[[4-8C 9 7 9 0 
C$ [[
O 
O [[Vb!W-
( .
(	M9
@r4   rT   c                 X   || j                   } | j                  |fi |}t        t        |       |   |fi |}|st	        j
                  ||k7        sJ  |||      } |||      }||k  st	        j                  ||d      sJ d|v r|d   |d   k(  sJ d|v r|d   |d   k(  sJ yy)a^  
    This utility function checks that the negative log-likelihood function
    (or `func`) of the result computed using dist.fit() is less than or equal
    to the result computed using the generic fit method.  Because of
    normal numerical imprecision, the "equality" check is made using
    `np.allclose` with a relative tolerance of 1e-15.
    Nr}   r~   r   r   r   )r   r   supertyperc   anyallclose)	rM   r   funcmaybe_identicalr   mle_analyticalnumerical_optll_mle_analyticalll_numerical_opts	            r2   r   r     s     |yyTXXd+d+N$t*d/==M
 vvn5666^T2M40!11KK)+;%HJ I
 ~b!T&\1114b!T(^333 r4   c           
         ddg}| j                   r.t        | j                   j                  d            }|g dd | z  }t        t	        |t        j                  t        |                        }g d}t        j                  t        d      5   | j                  |fi | d d d        t        j                  t        d      5  | j                  t
        j                  g       d d d        t        j                  t        d      5  | j                  t
        j                  g       d d d        t        j                  t        d	      5  | j                  |d
       d d d        t        j                  t        d      5   | j                  |gdgt        |      dz
  z    d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   vxY w# 1 sw Y   y xY w)Nr   r   ,)r   f1f2r   r`   r   3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:r`   )extra_keywordzToo many positional arguments.r   )shapeslensplitdictziprc   aranger   r   RuntimeErrorr   
ValueErrornaninf	TypeError)rM   paramnshapes	all_fixedr   s        r2   assert_fit_warningsr  :  s}   XE{{dkk'',-#HW--S		#e* 567ID	|&
' 	##
' 
zB
D"&&
D 
zB
D"&&
D 
y(D	EQ' 
F	y(H	I-SZ!^,- 
J	I
' 
'
D 
D
D 
D 
F	E	I	Is<   F2!F?
!GG$G#2F<?GGG #G,rM   )alpha	betaprimefatiguelifeinvgammainvgauss
invweibull	johnsonsblevylevy_llognormgibratpowerlognormrayleighwaldc                    t        t              }||    }t        t        |       } t	         | j
                  | j                  g| d       t         | j                  | j                  g| t        j                          t	         | j
                  | j                  g| d       t         | j                  | j                  g| t        j                          y)zgh-6235r   N)r  r   getattrr8   r   rb   r0   r   r   rc   r  r1   )rM   dctargss      r2   test_supportr*  Q  s     x.Ct9D5$D/$/3TVV+d+bffW5/$/3TVV+d+bffW5r4   c                   $    e Zd Zd Zd Zd Zd Zy)TestRandIntc                 B    t         j                  j                  d       y Nr   rc   r   r   rq   s    r2   setup_methodzTestRandInt.setup_methodd      
		tr4   c                 0   t         j                  j                  ddd      }t        t	        j
                  |dk        t	        j
                  |dk\        z         t        t        |      dk(         t         j                  j                  ddd      }t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  dd      }t        |dk\  |dk  z         t        t        |t        j                        t        t        |            	       t        j                  dd      j                  d
      }t        |j                  j                  t        d   v        y )Nr      rZ   r   r`   2   
AllInteger   .   r-   r   )r8   randintr   r	   rc   r   r
  shaper   charr   
isinstance
ScalarTypereprr   rl   valsvals      r2   test_rvszTestRandInt.test_rvsg  s   }}  BS 1tby!BFF419$556D	S !}}  BW 5')*

9\#::;mmB'sRx()
3.DcODmmB#''*		)L"99:r4   c                     t         j                  dd }t        j                  |dk\  |dk  z  dd      }t        j                  j                  |dd      }t        ||       y )Nr   $   r   r3  {Gz?)rc   r_wherer8   r:  pmfr   )rl   rU   outrA  s       r2   test_pdfzTestRandInt.test_pdft  sR    EE!BKhhQ1r6*J:}}  Ar*!$,r4   c                    t        j                  ddd      }t        j                  |      }t        j                  |dk\  |dk\  gd|dz
  dz   d	z  gd      }t        j
                  j                  |dd      }t        ||d
       y )Nr   rE  rZ   r3  r         ?      @r   rx      decimal)rc   linspacefloorselectr8   r:  rj   r   )rl   rX   rU   rJ  rA  s        r2   test_cdfzTestRandInt.test_cdfz  sv    KK2s#HHQKiib!q&)C!C%'F1C+DaH}}  Ar*!$R8r4   N)r   r   r   r0  rC  rK  rU  r:   r4   r2   r,  r,  c  s    ;-9r4   r,  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)	TestBinomc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestBinom.setup_method  r1  r4   c                    t         j                  j                  ddd      }t        t	        j
                  |dk\        t	        j
                  |dk        z         t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  dd      }t        t        |t                     t        j                  dd      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y NrY   r   r5  r4  r   r7  r   )r8   binomr   r	   rc   r   r;  r   r<  r   r=  intndarrayr@  s      r2   rC  zTestBinom.test_rvs  s    {{r4g6tqy!BFF42:$667')*

9\#::;kkoob$'
3$%kk"d#''*
3

+,		)L"99:r4   c                     t         j                  j                  ddd      }t         j                  j                  ddd      }t        |ddd       t        |ddd       y )NrZ   r   r   rM  r}   r   r   r8   r[  rI  r   )rl   vals1vals2s      r2   test_pmfzTestBinom.test_pmf  sJ    S!,3*sQ7sQ7r4   c                    t        j                  dd      }t        j                  g d      }t	        t        ||             }|j                         }t        ||       t        j                  dd      }|j                         }t        |d       t        j                  dd      }|j                         }t        |d       y )Nr`   ru   )      ?ru   re  rz   rM  )	r8   r[  rc   r   sumr   r@   r   r   )rl   r1   
expected_p
expected_hhs        r2   test_entropyzTestBinom.test_entropy  s    KK3XX/0
%
J788
IIK:&KK3IIKQKK3IIKQr4   c                 F   t        j                         5  t        j                  dt               t	        t        j                  dd      j                         d       t	        t        j                  dd      j                         d       d d d        y # 1 sw Y   y xY w)Nerrorr`   r   np)	warningscatch_warningssimplefilterRuntimeWarningr   r8   r[  r   stdrq   s    r2   test_warns_p0zTestBinom.test_warns_p0  sf    $$&!!'>:qA.335q9qA.224a8 '&&s   A9BB c                 V    d}t         j                  j                  d|d      |k(  sJ y )Nr   333333?rM  )qrn  ro  )r8   r[  r   rl   rn  s     r2   test_ppf_p1zTestBinom.test_ppf_p1  s(    {{S1Q666r4   c                     d}d}t        j                  d      }t        j                  j	                  |||      }t        j
                  j	                  |||z        }t        ||d       y )NglyCgq]\	T3<r   rm  缉ؗҜ<r   )rc   r  r8   r[  rI  poissonr   )rl   rn  ro  rX   r   refs         r2   test_pmf_poissonzTestBinom.test_pmf_poisson  sW    "IIaLkkooa1o*mm1q5)Su-r4   c                     d}d}d}t         j                  j                  |||      }t         j                  j                  |||      }t	        ||d       y )NgJ-DgO
;r   r|  r   )r8   r[  rI  rj   r   )rl   rn  ro  rr   r~  s         r2   test_pmf_cdfzTestBinom.test_pmf_cdf  sI    kkooaA&kkooaA&Su-r4   c                 b    t         j                  j                  ddd      }t        |dd       y )Nr   r   +?r   r|  r   r`  )rl   r   s     r2   test_pmf_gh15101zTestBinom.test_pmf_gh15101  s$    kkooau-QU+r4   N)r   r   r   r0  rC  rc  rj  ru  rz  r  r  r  r:   r4   r2   rW  rW    s/    	;8 97
..,r4   rW  c                       e Zd Zd Zy)TestArcsinec                     t         j                  j                  ddg      }t        |t        j
                  t        j
                  g       y Nr   r   )r8   arcsinerb   r   rc   r  rl   ro  s     r2   test_endpointszTestArcsine.test_endpoints  s3     MMq!f%Q()r4   N)r   r   r   r  r:   r4   r2   r  r    s    *r4   r  c                       e Zd Zd Zd Zd Zy)TestBernoullic                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestBernoulli.setup_method  r1  r4   c                    t         j                  j                  dd      }t        t	        j
                  |dk\        t	        j
                  |dk        z         t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nr   r5  r4  r   r   r7  r   )r8   	bernoullir   r	   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r2   rC  zTestBernoulli.test_rvs  s    ""4g"6tqy!BFF419$556')*

9\#::;oo!!$'
3$%ood#''*
3

+,		)L"99:r4   c                    t        j                  d      }dt        j                  d      z  dt        j                  d      z  z
  }|j	                         }t        ||       t        j                  d      }|j	                         }t        |d       t        j                  d      }|j	                         }t        |d       y )Nre        пr   rz   rM  )r8   r  rc   logr@   r   r   )rl   r1   rh  ri  s       r2   rj  zTestBernoulli.test_entropy  s    OOD!266$<'$rvvd|*;;
IIK:&OOC IIKQOOC IIKQr4   N)r   r   r   r0  rC  rj  r:   r4   r2   r  r    s    	;r4   r  c                       e Zd Zd Zy)TestBradfordc                     d}t        j                  dd      }t        j                  j	                  ||      }t        j                  j                  ||      }t        ||       y )NrV   )rc   logspacer8   bradfordrj   r   r   )rl   crX   rx  xxs        r2   test_cdf_ppfzTestBradford.test_cdf_ppf  sM    KKR NNq!$^^1%2r4   N)r   r   r   r  r:   r4   r2   r  r    s    r4   r  c                       e Zd ZdZdZd Zd Zej                  j                  ddefdg      d        Z
ej                  j                  dg d	      d
        Zy)TestChignT9;g2 >h?@c                 t    t         j                  j                  dd      }t        || j                  d       y )NrY   r   r}   r~   )r8   chir   r   CHI_SF_10_4rl   rG   s     r2   test_sfzTestChi.test_sf  s(    IILLQ4++%8r4   c                 t    t         j                  j                  | j                  d      }t	        |dd       y )Nr   rY   r}   r~   )r8   r  isfr  r   rl   rX   s     r2   test_isfzTestChi.test_isf  s(    IIMM$**A.2E*r4   df, ref     @@)g  ļBgcAc                 Z    t        t        j                  j                  |      |d       y N-q=r~   )r   r8   r  r   rl   dfr~  s      r2   	test_meanzTestChi.test_mean  s    
 			r*Ce<r4   ))-C6?gQ(݂)r   ńjɮ9?)r  gWr4'?)    _Bgr$h(?)}Ô%ITgs$h(?c                 b    t        t        j                  |      j                         |d       y r|   )r   r8   r  r@   r  s      r2   rj  zTestChi.test_entropy&  s!     			"--/5Ar4   N)r   r   r   r  CHI_MEAN_1000r  r  r   r   r   r  rj  r:   r4   r2   r  r    s{     'K $M9+ [[Y"M279=	= [[Y;<B<Br4   r  c                   $    e Zd Zd Zd Zd Zd Zy)
TestNBinomc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestNBinom.setup_method1  r1  r4   c                 n   t         j                  j                  ddd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  dd      }t        t        |t                     t        j                  dd      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y rZ  )r8   nbinomr   r	   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r2   rC  zTestNBinom.test_rvs4  s    ||Dw7tqy!"')*

9\#::;llr4(
3$%ll2t$((+
3

+,		)L"99:r4   c           	      ,   t        t        j                  t        j                  j                  ddd            t        j                  j                  ddd             t        j                  j                  j                  ddd      }t        |d       y )Ni  i  gp=
ף?r   r   )	r   rc   r   r8   r  logpmfrI  r7   r   )rl   rB  s     r2   rc  zTestNBinom.test_pmf?  sh    u||223TBC((c48	: kk  ''1a0S!r4   c                     t         j                  j                  g ddd      }t        j                  t         j                  j                  g ddd            }t        ||       y )N)r   r   r   r   333333@?rm  )r8   r  logcdfrc   r  rj   r   rl   rA  r~  s      r2   test_logcdf_gh16159zTestNBinom.test_logcdf_gh16159G  sK    ||""<3$"?ffU\\%%lcT%BCc"r4   N)r   r   r   r0  rC  rc  r  r:   r4   r2   r  r  0  s    	;#r4   r  c                   
   e Zd Zd Zej
                  j                  d        Zej
                  j                  d        Zej
                  j                  d        Z	ej
                  j                  d        Z
d Zd Zd Zd	 Zy
)TestGenInvGaussc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestGenInvGauss.setup_methodO  r1  r4   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )Nffffff@      ?  r   r   皙?Tr8   geninvgausskstestr   rj   r   rl   gigr   ro  s       r2   test_rvs_with_mode_shiftz(TestGenInvGauss.test_rvs_with_mode_shiftR  I     S)||CGGDGA377K1QXt$r4   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )Nr   r   r  r   r   r  Tr  r  s       r2   test_rvs_without_mode_shiftz+TestGenInvGauss.test_rvs_without_mode_shiftY  sI     T*||CGGDGA377K1QXt$r4   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )NrV   皙?r  r   r   r  Tr  r  s       r2   test_rvs_new_methodz#TestGenInvGauss.test_rvs_new_method`  r  r4   c                 |    d }t         |dd      d       t         |dd      d       t         |dd      d       y )Nc                     t        j                  | |      }|j                  dd      }t        j                  ||j                        d   dkD  S )Nr  r   r   r   r  )r8   r  r   r  rj   )ro  r1   r  r   s       r2   my_ks_checkz4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_checki  sE    ##Aq)C''t$'7C<<SWW-a0477r4   r   r  Tr   r  )r   )rl   r  s     r2   test_rvs_p_zerozTestGenInvGauss.test_rvs_p_zerog  s<    	8
 	[C($/[C($/[C($/r4   c                     t        t        j                  dd      j                  dd      dt        j                  dd      j                  dd      z         y )N      r`   rY   r   r   r   r  )r   r8   r  r   rq   s    r2   test_rvs_negative_pz#TestGenInvGauss.test_rvs_negative_pr  sP    !!$*..BT.JE%%c1-11r1MM	Or4   c                    t         j                  j                  dddd      }t        t        j                  |ddg      d   dkD  d	       d
t        j                  ddd      }}t         j                  j                  |dd|z  |      }t        |t        j                  |      j                  |             t         j                  j                  |dd|z  |      }t        |t        j                  |      j                  |             y )Nr  r   r   r   )r   ro  r1   r   r  r)  333333?TrZ   rw   rY   )ro  r1   r_   )r8   r  r   r   r  rc   rR  rb   r   r  rj   )rl   igmurX   pdf_igcdf_igs         r2   test_invgausszTestGenInvGauss.test_invgaussx  s    """MU\\"js;A>EtLR[[q"-A""&&qDAF"&Er 2 6 6q 9:""&&qDAF"&Er 2 6 6q 9:r4   c                     t        j                  g d      }t        j                  ddd      }t        |t        j
                  j                  |dd             y )N)
g;g8y8?g\}Z?ghܲ<?g&Khdd?g7!L?g	Cf?g_诱?g>0|?gRq?rw   r   rY   ru   r   )rc   r   rR  r   r8   r  rb   )rl   vals_RrX   s      r2   
test_pdf_RzTestGenInvGauss.test_pdf_R  sJ      , - KKa$ 1 1 5 5aa @Ar4   c                     t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       y )Nr   ru   g    >Ar6  r`   )r   r8   r  rb   rq   s    r2   test_pdf_zerozTestGenInvGauss.test_pdf_zero  sB    U&&**1c37; 	U&&**3A6:r4   N)r   r   r   r0  r   r   r   r  r  r  r  r  r  r  r  r:   r4   r2   r  r  N  s     [[% % [[% % [[% % [[0 0O	;	B;r4   r  c                       e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  dg d      d        Z
d	 Zd
 Zd Zd Zd Zd Zy)TestGenHyperbolicc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestGenHyperbolic.setup_method  r1  r4   c                     t        j                  g d      }d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  ddd      }	t        |j                  |	      |dd	       y )
N)
gF^T=g{X'=gNunƢsy>g7!t?gɫzI?g̸?g?gq6.?gmPZz?g:PgN?r`   r`   r   ru   r  r]   rY   r   r   r   r   )rc   r   r8   genhyperbolicrR  r   rb   
rl   r  lmbdar  betar  deltar)  ghrX   s
             r2   
test_pdf_rzTestGenHyperbolic.test_pdf_r  s~        %ud	EuU{DJ/  $Be<KKR$q	6>r4   c                     t        j                  g d      }d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  ddd      }	t        |j                  |	      |dd	       y )
N)
g=R0W<=gEB=g#Nb>g_PG>g! 1Or?gUM?g u./?gfy?gl5\?gkV?r  r  r]   r  rY   r   ư>r  )rc   r   r8   r  rR  r   rj   r  s
             r2   
test_cdf_rzTestGenHyperbolic.test_cdf_r  s~        %ud	EuU{DJ/  $Be<KKR$q	6=r4   zx, p, a, b, loc, scale, ref)
)r`   r   r  ru   r  g8ɹvF(;)r  rY   r  re  r   r   g[Ϡ?)r  rY   r  g      ?r   r   g ✝`D;)r        ?r  ):?r   r   gdL;)r   r   r  r  r   r   gzK^7?)r         r  r  r   r   gj?)r   r  r     r   r   ga=vG:)   r  r   r  r   r   g?)(   r  r   r  r   r   g1bV?)<   r  r   r  r   r   g?c                 j    t         j                  j                  ||||||      }t        ||d       y Nr]   dy=r~   )r8   r  rj   r   )	rl   rX   ro  r0   r1   r^   r_   r~  rj   s	            r2   test_cdf_mpmathz!TestGenHyperbolic.test_cdf_mpmath  s3     !!%%aAqc%GSu-r4   ))r   r  rO  r   r   r   gC!,?)r   r         @      @r   r   g,Ћf?)r  r   r  r  r   r   rM  )   r`   r   r  ru   r  gm"چ>),  rY   r  re  r   r   g:;)r  r  r   r  r   r   gw=)K   r  r   r  r   r   g3Z0&K<c                 j    t         j                  j                  ||||||      }t        ||d       y r  )r8   r  r   r   )	rl   rX   ro  r0   r1   r^   r_   r~  r   s	            r2   test_sf_mpmathz TestGenHyperbolic.test_sf_mpmath  s3       ##Aq!QCu#ECe,r4   c           	          g d}d\  }}}d\  }}|||z  ||z  f}t        dd      D cg c]'  }t        j                  |||dj                  |      ) }	}t	        |	|dd	       y c c}w )
N)g@쐧@g@쐧 @g܊B@gvGăi@r  r  r   r   r]   r   r   r  )ranger8   r  momentr   )
rl   r  r  r  r  r  r  r)  ivals_uss
             r2   test_moments_rz TestGenHyperbolic.test_moments_r  s    5 %ud	EuU{DJ/ 1a[  2U;BB1E  	 
 	ae<s   ,A'c                     d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  |j                  dd      |j                        \  }}	t        |	dkD  d       y )	Nr  r  r]   r  r   r   r  T)r8   r  r  r   rj   r   )
rl   r  r  r  r  r  r)  r  r   ro  s
             r2   rC  zTestGenHyperbolic.test_rvs  st     %ud	EuU{DJ/  $Be<||BFF4F@"&&I1QXt$r4   c                 6   t        j                  ddd      }t        j                  |d      t        j                  t         j                        j
                  z  d}}dt        j                  |      }}| dz  ||f}t        j                  |||d}t        j                  |j                  d      |j                  d      d	      d d t         j                  f   }t        |j                  |      t        j                  j                  ||      dd
       y )Nr   r3  rY   r`   r   r]   rw   Gz?r6  r  r  )rc   rR  float_powerr   float32epssqrtr8   r  r   newaxisr   rb   t)	rl   r  r  r  r  r  r)  r  rX   s	            r2   
test_pdf_tzTestGenHyperbolic.test_pdf_t  s    [[B# nnR+BHHRZZ,@,D,DDatrwwr{EAud#  $Be<KKtbffTlB72::FFF1Iuww{{1b)	r4   c                    dt        j                  t         j                        j                  d}}}d\  }}|||f}t	        j
                  |||d}t        j                  |j                  d      |j                  d      d      d d t         j                  f   }t        |j                  |      t        j                  j                  |      dd	       y )
Nr   r   )r   r   r]   rw   r  r6  r  r  )rc   r   r  r  r8   r  rR  r   r  r   rb   cauchy)	rl   r  r  r  r  r  r)  r  rX   s	            r2   test_pdf_cauchyz!TestGenHyperbolic.test_pdf_cauchy#  s    
 "288BJJ#7#;#;Qdu	Eud#  $Be<KKtbffTlB72::FFF1Iu||''*	r4   c                    t        j                  ddd      }t        j                  t         j                        j                  }d\  }}}|||z  ||z  f}t        j                  |||d}t        j                  ddd      d d t         j                  f   }t        |j                  |      t
        j                  j                  ||d      d	d
       y )Nr  rY   )r   r   r   r]   r  r  r6  r   r   dy=r  )rc   rR  r   r  r  r8   r  r  r   rb   laplace)	rl   r^   r  r  r  r  r)  r  rX   s	            r2   test_pdf_laplacez"TestGenHyperbolic.test_pdf_laplace4  s    kk#r2& $(($uduU{DJ/   $Cu=KKR$Q

]3FF1Iu}}((1(=	r4   c           
      \   t        j                  ddd      t        j                  ddd      t        j                  dt        d            z  t        j                  ddd      t        j                  ddd      f\  }}}}d	}|||z  ||z  f}t	        j
                  |||d
}t        j                  |j                  d      |j                  d      d      d d t         j                  f   }t        |j                  |      t        j                  j                  |||||      dd       y )Nr   r  rY   r      r   rZ   r   r]   rw   r  r6  )r0   r1   r^   r_   r   r  )rc   rR  r  r  r8   r  r   r  r   rb   norminvgauss)	rl   r  r  r  r  r  r)  r  rX   s	            r2   test_pdf_norminvgaussz'TestGenHyperbolic.test_pdf_norminvgaussI  s    Ar2&Ar2&r~~b%)'DDAq"%D#r*	"tUB uu}dUl3  $Be<KKtbffTlB72::FFF1Iu))--Ud% . 9	r4   N)r   r   r   r0  r  r  r   r   r   r
  r  r  rC  r!  r$  r(  r-  r:   r4   r2   r  r    s    ?,>4 [[%		<.. [[%	@	-	-=.%$"*r4   r  c                       e Zd Zej                  j                  dddg      d        Zej                  j                  dddg      d        Zy	)
TestHypSecantzx, reference)r3  gA0=)r6  g!b;c                 ^    t         j                  j                  |      }t        ||d       y N+<r~   )r8   	hypsecantr   r   )rl   rX   	referencer   s       r2   r  zTestHypSecant.test_sfe  s$     __"IE2r4   zp, reference)r  g9bT*@)r  gTW-;@c                 ^    t         j                  j                  |      }t        ||d       y r1  )r8   r3  r  r   )rl   ro  r4  rX   s       r2   r  zTestHypSecant.test_isfo  s$     OO"951r4   Nr   r   r   r   r   r   r  r  r:   r4   r2   r/  r/  `  sb    
 [[^9:<=3=3 [[^89;<2<2r4   r/  c                   ~    e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	d Z
d Zd	 Zd
 Zy)TestNormInvGaussc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestNormInvGauss.setup_methodx  r1  r4   c                     t        j                  g d      }t        j                  g d      }t        j                  j	                  |dd      }t        ||d       y )N)gp~٧>g @X>g}e?g{)߳?gwH?ir      r8  r   ru   r0   r1   &.>r   )rc   r   r8   r,  rj   r   )rl   r_cdfx_testvals_cdfs       r2   
test_cdf_RzTestNormInvGauss.test_cdf_R{  sO      < =,-%%))&A)=%d3r4   c                     t        j                  g d      }t        j                  g d      }t        j                  j	                  |dd      }t        ||d       y )N)gp϶>g\H55$?geСt&?go NiH?g]u>r;  r   ru   r>  r?  r   )rc   r   r8   r,  rb   r   )rl   r_pdfrA  vals_pdfs       r2   r  zTestNormInvGauss.test_pdf_R  sM     < =,-%%))&A)=%d3r4   zx, a, b, sf, rtol))r   r   r   !7?r   )r  r   r   ?=r  )r   r   r  gy5`?r  )rY   r   r  gMLC9r?  c                     t         j                  j                  |||      }t        |||       t         j                  j	                  |||      }t        |||       y Nr~   r8   r,  r   r   r  )rl   rX   r0   r1   r   r   rG   r  s           r2   test_sf_isf_mpmathz#TestNormInvGauss.test_sf_isf_mpmath  sP     !!!Q*2D)""2q!,14(r4   c                     ddg}ddg}d}ddg}t         j                  j                  |||      }t        ||dd	       t         j                  j	                  |||      }t        ||d
       y )Nr   r  r   r   rG  rH  r   r|  r_  r  r~   rK  )rl   rX   r0   r1   r   rG   r  s          r2   test_sf_isf_mpmath_vectorizedz.TestNormInvGauss.test_sf_isf_mpmath_vectorized  sr    HF "89!!!Q*2E6""2q!,14(r4   c                     t        j                  dd      }t        j                  ddd      }|j	                  |      }|j                  |      }t        ||       y )Nr   r   r  r`   )r8   r,  rc   r  r   r  r   )rl   dstrX   r   r  s        r2   test_gh8718zTestNormInvGauss.test_gh8718  sJ      A&IIaQVVAYggbkQr4   c                 (   d\  }}t        j                  |dz  |dz  z
        }||z  |dz  |dz  z  d|z  |t        j                  |      z  z  ddd|dz  z  |dz  z  z   z  |z  f}t        |t        j                  j                  ||d             y )	Nr   ru   r`   r         @r   r   mvskmoments)rc   r  r   r8   r,  )rl   r0   r1   gammav_statss        r2   
test_statszTestNormInvGauss.test_stats  s    11q!t$u9adUAXosQw!bggen:L/M!a!Q$hAo-.68We0066q!V6LMr4   c                     d\  }}t        j                  g d      }t        j                  j	                  |||      }t        |t        j                  j                  |||             y )NrS  MbP?ru   r  )rc   r   r8   r,  r   r   rj   )rl   r0   r1   rA  rA  s        r2   test_ppfzTestNormInvGauss.test_ppf  sS    1-.!!%%fa3 2 2 6 6tQ BCr4   N)r   r   r   r0  rC  r  r   r   r   rL  rN  rQ  rZ  r^  r:   r4   r2   r8  r8  w  sU    
44 [[0JK
)K
)	) NDr4   r8  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestGeomc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestGeom.setup_method  r1  r4   c                 h   t         j                  j                  dd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nr   r5  r4  r   r7  r   )r8   geomr   r	   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r2   rC  zTestGeom.test_rvs  s    zz~~d~1tqy!"')*

9\#::;jjnnT"
3$%jj""1%
3

+,		)L"99:r4   c                 t   t         j                  j                  d      }t        j                  j                  t        j                  d      d|      }|j                  t         j                  k(  sJ t        j                  |t        j                  t         j                        j                  kD        sJ y )Nl   A: ir   r   )rc   r   r   r8   rc  r   r   r   int64r   iinfoint32max)rl   r   r   s      r2   test_rvs_9313zTestGeom.test_rvs_9313  sx     ii##O4jjnnRVVC[qsnCyyBHH$$$vvcBHHRXX.222333r4   c                 d    t         j                  j                  g dd      }t        |g d       y )Nr  ru   )ru   re  r   )r8   rc  rI  r   rl   rA  s     r2   rc  zTestGeom.test_pmf  s!    zz~~i-!$(:;r4   c                 (   t        j                  t        j                  j	                  g dd            }t        j                  j                  g dd      }t        ||dd       t        j                  j                  dd      }t        |d       y )Nr  ru   r}   r   r_  r   rz   )rc   r  r8   rc  rI  r  r   r   )rl   ra  rb  rB  s       r2   test_logpmfzTestGeom.test_logpmf  se    uzz~~i56

!!)S1u5q9 jj1%S#r4   c                     t         j                  j                  g dd      }t         j                  j                  g dd      }t	        g d      }t        ||       t        |d|z
         y )Nr  ru   ru   r         ?r   )r8   rc  rj   r   r   r   rl   rA  vals_sfrQ   s       r2   test_cdf_sfzTestGeom.test_cdf_sf  sM    zz~~i-**--	3/+,!$1!'1X:6r4   c                 $   t         j                  j                  g dd      }t         j                  j                  g dd      }t	        g d      }t        |t        j                  |             t        |t        j                  |              y )Nr  ru   ro  )	r8   rc  r  logsfr   r   rc   r  log1prq  s       r2   test_logcdf_logsfzTestGeom.test_logcdf_logsf  sa    zz  C0**""9c2+,!$x(89!'288XI+>?r4   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )Nro  ru   )rM  ry   rT  )r8   rc  r   r   r   rl   rA  rQ   s      r2   r^  zTestGeom.test_ppf  s+    zz~~0#6)!$1r4   c                 \    t        t        j                  j                  dd      dd       y )N#B;rM  +=r   )r   r8   rc  r   rq   s    r2   test_ppf_underflowzTestGeom.test_ppf_underflow  s    

ue4cFr4   c                 f    t        j                  d      j                         }t        |dd       y )Ng<,Ԛ?g۩@r}   r~   )r8   rc  r@   r   )rl   ri  s     r2   test_entropy_gh18226zTestGeom.test_entropy_gh18226  s(     JJv&&(,59r4   N)r   r   r   r0  rC  ri  rc  rm  rs  rw  r^  r}  r  r:   r4   r2   r`  r`    s6    	;4<7@2
G:r4   r`  c                       e Zd Zd Zd Zd Zy)
TestPlanckc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestPlanck.setup_method  r1  r4   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )Nr  rN  )g|dy?g8'\>ggrU!>)r8   planckr   r   r   ry  s      r2   r  zTestPlanck.test_sf  s1    ||y"- 2 3 	"$1r4   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )N)r       @@     p@r  )g    P.g    h>g    TF)r8   r  ru  r   r   ry  s      r2   
test_logsfzTestPlanck.test_logsf  s.    ||!!"7?:;!$1r4   N)r   r   r   r0  r  r  r:   r4   r2   r  r    s    22r4   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestGennormc                     g d}t         j                  j                  |d      }t         j                  j                  |      }t	        ||       y Nr  r   )r8   gennormrb   r'  r   rl   pointspdf1pdf2s       r2   test_laplacezTestGennorm.test_laplace  s;    }}  +}}  (D$'r4   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y Nr  r`   g;f?r_   )r8   r  rb   normr   r  s       r2   	test_normzTestGennorm.test_norm  s=    }}  +zz~~fF~3D$'r4   c                    t         j                  j                  d       t        j                  d      }|j                  d      }t        j                  ||j                        j                  dkD  sJ t        j                  d      }|j                  d      }t        j                  j                  d      }t        j                  ||      j                  dkD  sJ t        j                  d      }|j                  d      }t        j                  j                  dd	      }t        j                  ||      j                  dkD  sJ y )
Nr   ru   r   r4  rV   r   r`   g;f?r_   r   )rc   r   r   r8   r  r   r  rj   pvaluer'  ks_2sampr  )rl   rM   r   rvs_laplacervs_norms        r2   rC  zTestGennorm.test_rvs!  s    
		q}}S!hhDh!||C*11C777}}QhhDh!mm''T'2~~c;/66<<<}}QhhDh!::>>t><~~c8,33c999r4   c                    t         j                  j                  d       t        j                  ddgddgg      }|j                  g d      }t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ y )
Nr   ru   rM  ry   rN  )r   r`   r`   r4  r   rV   )rc   r   r   r8   r  r   r  rj   )rl   rM   r   s      r2   test_rvs_broadcastingz!TestGennorm.test_rvs_broadcasting2  s   
		q}}sBi"b23hhLh)||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJr4   N)r   r   r   r  r  rC  r  r:   r4   r2   r  r    s    ((:"Kr4   r  c                   T    e Zd Zej                  j                  dddg      d        Zy)
TestGibratx, sfx)r  gD.?)  gJ]b<c                     t        t        j                  j                  |      |d       t        t        j                  j	                  |      |d       y N+=r~   )r   r8   r"  r   r  rl   rX   sfxs      r2   test_sf_isfzTestGibrat.test_sf_isfJ  s8     	*Ce<((-qu=r4   N)r   r   r   r   r   r   r  r:   r4   r2   r  r  <  s5     [[X(A(E(G H>H>r4   r  c                       e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zy)	TestGompertzc                     t         j                  j                  t         j                  j                  dd      d      }t	        |d       y N0.++r   )r8   gompertzr   rj   r   r  s     r2   test_gompertz_accuracyz#TestGompertz.test_gompertz_accuracyS  s3    NNu~~11&!<a@6"r4   z	x, c, sfx))r   r  g|t?)r   r  g(fMr;)r  r   g[?)g      @r   gg[<c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y Nr|  r~   )r   r8   r  r   r  )rl   rX   r  r  s       r2   r  zTestGompertz.test_sf_isfd  s>    
 	))!Q/5A**32AEBr4   c, ref))r  geUT8?)r   gtqq?)r   gs{)r  gN*6c                 Z    t        t        j                  j                  |      |d       y r  )r   r8   r  r@   rl   r  r~  s      r2   rj  zTestGompertz.test_entropys  s    
 	..q13UCr4   N)	r   r   r   r  r   r   r   r  rj  r:   r4   r2   r  r  Q  se    #" [[[ +M NC	NC [[X (E FD	FDr4   r  c                   T    e Zd Zej                  j                  dddg      d        Zy)TestFoldNorm	x, c, ref)r  :0yE>g:0N<?)r  r  g:?c                 \    t        t        j                  j                  ||      |d       y r|   )r   r8   foldnormrj   rl   rX   r  r~  s       r2   rU  zTestFoldNorm.test_cdf  s!     	**1a0#EBr4   N)r   r   r   r   r   r   rU  r:   r4   r2   r  r  {  s7     [[[+N+M+O PCPCr4   r  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zej                  j                  dd	d
g      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                             Zd Z	y)TestHalfNormr  )r   |N?)rY   Oul2;c                     t        t        j                  j                  |      |d       t        t        j                  j	                  |      |d       y r  )r   r8   halfnormr   r  r  s      r2   r  zTestHalfNorm.test_sf_isf  s:     	))!,c>**3/?r4   x, ref))Ww'&l7g;G<^͛7)C]r2<gE~o-<)r=  g?c                 Z    t        t        j                  j                  |      |d       y r|   )r   r8   r  rj   rl   rX   r~  s      r2   rU  zTestHalfNorm.test_cdf  s     	**1-s?r4   r   h㈵>r  	rvs_scalerw   rZ   r   r   TF	fix_scalec                    t         j                  j                  d      }t        j                  j                  ||d|      }|rK|rId}t        j                  t        |      5  t        j                  j                  |||       d d d        y i }|r||d<   |r||d<   t        t        j                  |fi |d	d
i y # 1 sw Y   y xY wNr   r   r^   r_   r   r   r  r  r   r   r   r   r   T)rc   r   r   r8   r  r   r   r   r  halflogisticr   r   	rl   r   r  r   r  r   r   	error_msgr   s	            r2   r   z(TestHalfNorm.test_fit_MLE_comp_optimizer  s     ii##$78~~!!gYT/2 " 4 y%I|9=""&&t')&L >"DL&DN 	&ennd 	<d 	<6:	< >s   $#C  C	c                     t        j                  t              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wNr  r`   r   )r   r   r"   r8   r  r   rq   s    r2   test_fit_errorzTestHalfNorm.test_fit_error  s1    ]]<(NNyq1 )((   $AAN)
r   r   r   r   r   r   r  rU  r   r  r:   r4   r2   r  r    s     [[X(?(C(E F@F@ [[X (A B@B@ [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<22r4   r  c                       e Zd Zej                  j                  dddg      ej                  j                  dddg      ej                  j                  ddd	g      ej                  j                  d
dd	g      d                             Zd Zy)TestHalfCauchyr   r  r  r  rw   r   r   TFr  c                    t         j                  j                  d      }t        j                  j                  ||d|      }|rK|rId}t        j                  t        |      5  t        j                  j                  |||       d d d        y i }|r||d<   |r||d<   t        t        j                  |fi | y # 1 sw Y   y xY w)	Nr   r   r  r  r  r  r   r   )rc   r   r   r8   r  r   r   r   r  
halfcauchyr   r   r  s	            r2   r   z*TestHalfCauchy.test_fit_MLE_comp_optimizer  s     ii##$78~~!!gYT/2 " 4 y%I|9=  $$T	$J >"DL&DN%e&6&6EE >s   $#B<<Cc                     t        j                  t              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wr  )r   r   r"   r8   r  r   rq   s    r2   r  zTestHalfCauchy.test_fit_error  s3    ]]<(   3 )((r  N)r   r   r   r   r   r   r   r  r:   r4   r2   r  r    s    [[Yt5[[[4+6[[Yu6[[[4-8F 9 7 7 6F,4r4   r  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zej                  j                  dd	d
g      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                             Zd Z	y)TestHalfLogisticr  )rZ   ]6)   L-c                 Z    t        t        j                  j                  |      |d       y r|   )r   r8   r  r   r  s      r2   r  zTestHalfLogistic.test_sf  s!     	**--a0#EBr4   q, ref))r  rZ   )r  r  )gv?g   .!>)g?g      <c                 Z    t        t        j                  j                  |      |d       y r|   )r   r8   r  r  rl   rx  r~  s      r2   r  zTestHalfLogistic.test_isf  s!    
 	**..q13UCr4   r   r  r  r  r  r   TFr  c                    t         j                  j                  d      }t        j                  j                  ||d|      }i }|rK|rId}t        j                  t        |      5  t        j                  j                  |||       d d d        y |r||d<   |r||d<   t        t        j                  |fi |d	d
i y # 1 sw Y   y xY wr  )rc   r   r   r8   r  r   r   r   r  r   r   )	rl   r   r  r   r  r   r   r   r  s	            r2   r   z,TestHalfLogistic.test_fit_MLE_comp_optimizer	  s     ii##$78!!%%'36 & 8 y%I|9=""&&t')&L >"DL&DN 	&e&8&8$ 	<$ 	<6:	< >s   &#C  C	c                     d}t        t        |      5  t        j                  j	                  g dd       d d d        y # 1 sw Y   y xY w)Nz; Maximum likelihood estimation with 'halflogistic' requiresr  )r   r`   r   r   r   )assert_raisesr"   r8   r  r   rl   r.   s     r2   test_fit_bad_flocz"TestHalfLogistic.test_fit_bad_floc&  s6    L<s3""91"5 433s   $AA
N)
r   r   r   r   r   r   r  r  r   r  r:   r4   r2   r  r    s     [[X(D(D(F GCGC [[X (K LD	LD [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<26r4   r  c                       e Zd Zd Zd Zd Zy)TestHalfgennormc                     g d}t         j                  j                  |d      }t         j                  j                  |      }t	        ||       y r  )r8   halfgennormrb   exponr   r  s       r2   
test_exponzTestHalfgennorm.test_expon-  s;      $$VQ/{{v&D$'r4   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y r  )r8   r  rb   r  r   r  s       r2   test_halfnormzTestHalfgennorm.test_halfnorm4  sB      $$VQ/~~!!&!7D$'r4   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        |d|z         y )Nr  g
(?r`   )r8   r  rb   r  r   r  s       r2   test_gennormzTestHalfgennorm.test_gennorm;  sC      $$VW5}}  1D!D&)r4   N)r   r   r   r  r  r  r:   r4   r2   r  r  ,  s    ((*r4   r  c                       e Zd Zd Zd Zd Zy)TestLaplaceasymmetricc                     t        j                  g d      }t        j                  j	                  |d      }t        j
                  j	                  |      }t        ||       y r  )rc   r   r8   laplace_asymmetricrb   r'  r   r  s       r2   r  z"TestLaplaceasymmetric.test_laplaceD  sF    )$''++FA6}}  (d#r4   c                     t        j                  g d      }d}d|z  }t        j                  j	                  ||      }t        j                  j	                  ||dz  z  |      }t        ||       y )Nr  r`   r   )rc   r   r8   r  rb   r   )rl   r  r   kapinvr  r  s         r2   test_asymmetric_laplace_pdfz1TestLaplaceasymmetric.test_asymmetric_laplace_pdfK  sa    )$5''++FE:''++FE1H,=vFd#r4   c           
         t        j                  t        j                  d       t        j                  d      g      }d}t        j                  j                  ||      }t        j                  j                  ||      }t        j                  j                  ||      }t        j                  ddg      }t        j                  ddg      }t        j                  dd	g      }t        j                  j                  ||      }	|}
t        j                  j                  ||      }|}t        t        j                  ||||	|f      t        j                  ||||
|f             y )
N   rY   r`   rV   gMbp?r  gV-?r   gMb`?)rc   r   r  r8   r  rb   rj   r   r   r  r   concatenate)rl   r  r   r  cdf1sf1r  cdf2sf2ppf1ppf2isf1isf2s                r2   !test_asymmetric_laplace_log_10_16z7TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16T  s   BFF2J;r
34''++FE:''++FE:&&))&%8xxu&xxi()hhU|$''++D%8''++C7dCt'DEdCt'DE	Gr4   N)r   r   r   r  r  r  r:   r4   r2   r  r  C  s    $$Gr4   r  c                      e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zd Z	d Z
d	 Zd
 Zd Zd Zd Zg dg dg dg ddej"                  ddddgej"                   dddddgg dg dg dg	Z ej&                  e      Zej
                  j                  de      d        Zd Zd Zd  Zd! Zd" Zd# Zy$)%TestTruncnormc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestTruncnorm.setup_methodg  r1  r4   	a, b, ref))r   rZ   r  )333333?ffffff?gܲl)r  g>g+c                 \    t        t        j                  j                  ||      |d       y N绽|=r~   r   r8   	truncnormr@   rl   r0   r1   r~  s       r2   rj  zTestTruncnorm.test_entropyj  s!    $ 	//15sGr4   ))r&  r  ghiɮ9?)r  r  r  )g0.+r  r  )}Ô%Ir  Z_2?c                 \    t        t        j                  j                  ||      |d       y r  r  r  s       r2   test_extreme_entropyz"TestTruncnorm.test_extreme_entropy~  s!      	//15sGr4   c           	          t         j                  j                  g ddddgdz  d      }t        j                  t        j
                  dd	dd
dt        j
                  g      }t        ||       y )Nr   r   r  ru   H.?r   r`         rM  r      r`   r]   r   fO?l@r   )r8   r  r   rc   r   r  r   ry  s      r2   test_ppf_ticket1131z!TestTruncnorm.test_ppf_ticket1131  \    ""#EsB()s1uA # 788RVVQ
Az1bffMN!$1r4   c           	          t         j                  j                  g ddddgdz  d      }t        j                  t        j
                  dd	dd
dt        j
                  g      }t        ||       y )Nr  r  rM  r   r  r`   r]   r   r  r  r   )r8   r  r  rc   r   r  r   ry  s      r2   test_isf_ticket1131z!TestTruncnorm.test_isf_ticket1131  r  r4   c                    d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr  |j                         cxk  xr
 |k         y c        y )N)ir  r   r   rY   r4  )rY      r8   r  r   r	   minrh  rl   lowhighrX   s       r2   test_gh_2477_small_valuesz'TestTruncnorm.test_gh_2477_small_values  s    	TOOT1ab9aeeg..$./	TOOT1ab9aeeg..$././r4   c                 Z   d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc       t        |||g      f d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr  |j                         cxk  xr
 |k         y c        y )	N)rZ   rW   r   r   rY   r4  )r     )'  i'  )i)r8   r  r   r	   r%  rh  rD   r&  s       r2   test_gh_2477_large_valuesz'TestTruncnorm.test_gh_2477_large_values  sF   	TOOT1ab9quuw1!%%'1T12CdA4GG 	TOOT1ab9aeeg..$./ 	TOOT1ab9aeeg..$./"	TOOT1ab9aeeg..$././r4   c                    ddgddgfD ]  \  }}t        j                  t         j                   ||t         j                  g      }||z   dz  }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  g d      }t        j                  g d      }	t        j                  g d      }
|d	k  rt        j                  g d
      }
t        ||       t        ||	       t        ||
       t        t        j                  |
d   |
d   z        |dz          t        j                  g d      }t        j                  j                  |||      }t        j                  |t        j                  |      dz  |g      }t        ||       |d	k  rWt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       nVt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       t        j                  j                  |||      }t        t        j                  ||
d   z        |dz   dz          y )Nr   r   r  ry   r   r   r   r   rM  rM  rz   rz   )r   d._MT
@BKg?r   r   )r   r4  r3  r   r   r`   ru   r   ru   rM  gĖy	@gdv*?g,mj%V?re  )rc   r   r  r8   r  rj   r   rb   r   r  r   r   )rl   r'  r(  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsrb   s                  r2   test_gh_9403_nontail_valuesz)TestTruncnorm.test_gh_9403_nontail_values  s5   a&2r(+ICHHrvvgsD"&&9:EHc>D??&&uc48D//$$UC6C??&&uc48DHH\2M88$89LHH%ABMQw ")E Fm4\2m4}Q'7a8H'H I #c	+HH]+E??&&uc48DHHc2773<	+A4%HIMm4Qw#EOO$6$6tS$$G$68#EOO$7$7c4$H$68 $EOO$7$7c4$H$68#EOO$6$6tS$$G$68//%%dC6Cs=+;'; <tDy!mLA ,r4   c           	      0   ddgddgfD ]
  \  }}t        j                  t         j                   ||t         j                  g      }||z   dz  }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  g d      }t        j                  g d      }	t        j                  g d      }
|d	k  rt        j                  g d
      }
t        ||       t        ||	       t        ||
       t        t        j                  |
d   |
d   z        |dz          t        j                  g d      }t        j                  j                  |||      }t        j                  |t        j                  |      dz  |g      }t        ||       t        j                  j                  |||      }t        ||       |d	k  rWt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       nVt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       t        j                  j                  |||      }t        t        j                  ||
d   z        |dz   dz         t        j                  ||d      }|d d d    }t        t        j                  j                  |||      t        j                  j                  || |       d d d          t        t        j                  j                  |||      t        j                  j                  || |       d d d          t        t        j                  j                  |||      t        j                  j                  || |       d d d           y )N'   r  iry   r1  r2  )r   pGC@Ff<r   r   )r   rF  rE  r   r   r`   ru   r5  gEC@g i?gspXio)>re  r#  r   )rc   r   r  r8   r  rj   r   rb   r   r  r   r   rR  )rl   r'  r(  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rb   xvals2s                   r2   test_gh_9403_medium_tail_valuesz-TestTruncnorm.test_gh_9403_medium_tail_values  s?   r(S#J/ICHHrvvgsD"&&9:EHc>D??&&uc48D//$$UC6C??&&uc48DHH\2M88$89LHH%KLMQw " *= !>m4\2m4}Q'7a8H'H I #c	+HH]+E??&&uc48DHHc2773<+CT%JKMm4??&&tS$7De,Qw#EOO$6$6tS$$G$68#EOO$7$7c4$H$9; $EOO$7$7c4$H$68#EOO$6$6tS$$G$9;//%%dC6Cs=+;'; <tDy!mLKKT2.EDbDk\F 3 3E3 E % 2 26D53$ G" MO 2 25#t D % 3 3FTEC4 H2 NP 3 3E3 E % 3 3FTEC4 H2 NPW 0r4   c                     t        t        j                  dd      j                  d      d       t        t        j                  dt        j
                        j                  d      d       y )Ng      *@g      .@      ,@g T?r=  g @gR?)r   r8   r  rj   rc   r  rq   s    r2   test_cdf_tail_15110_14753z'TestTruncnorm.test_cdf_tail_15110_14753  sN    
 	S155c:*	,266266s;*	,r4   )r3  rz   rM  rz   rz   )r  rY   rz   rM  rz   gLFu)r0  r   rz   gMFmz%?rz   gſ)r   r`   rz   ghI}?rz   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r   r   gU*? bn?gnA??c3TXʿ)r0  r   gU*ҿrM  gnArN  )r  g"$7"gOxr?gp7`g'>K@casec                     |\  }}}}}}t         j                  j                  ||d      \  }}	}
}t        ||	|
|g||||gd       y )NrU  rV  FFg<r   )r8   r  r   )rl   rP  r0   r1   m0v0s0k0mvrG   rU   s               r2   test_momentszTestTruncnorm.test_moments>  sT    #1b"b"__**1a*@
1aAq!r2r2&6UCr4   c                     t         j                  j                  dt        j                  d      \  }}t	        |d       t	        |d       y )Nr   mvrV  g e3E?g:&A?)r8   r  rc   r  r   )rl   rW  rX  s      r2   test_9902_momentszTestTruncnorm.test_9902_momentsD  s9    $$Q$=1Az*Az*r4   c                     d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr  |j                         cxk  xr
 |k         y c        y )N)rY   r8  r   r   rY   r4  r$  r&  s       r2   test_gh_1489_trac_962_rvsz'TestTruncnorm.test_gh_1489_trac_962_rvsI  sS    	TOOT1ab9aeeg..$././r4   c                 N   ddt         j                   dt         j                   t         j                   dddddg}dddt         j                  ddddd	t         j                  t         j                  g}t        j                  j	                  ||dt        |      f
      }t        j                  |      dt        |      fk(  sJ t        t        j                  ||j                  d      k               t        t        j                  |j                  d      |k               y )Nr  rY   r<  ir  r#  r   rD  -   r4  r   )axis)rc   r  r8   r  r   r
  r;  r	   r   r%  rh  r&  s       r2   test_gh_11299_rvszTestTruncnorm.test_gh_11299_rvsO  s     BbffWrvvgsCS"MB2662sBRHOOTCH>xx{q#c(m+++saeeem+,-quu!u},-.r4   c                     t        t        j                  d      r@t        j                  j                  dddt        j                  j                                y y )Nr   r  r<  r   r   )r/   rc   r   r8   r  r   r   rq   s    r2   test_rvs_Generatorz TestTruncnorm.test_rvs_GeneratorY  sC    299m,OORa-/YY-B-B-D   F -r4   c                    t        j                  t         j                   t         j                   dt         j                   dg      }t        j                  t         j                  t         j                  ddt         j                  g      }t        j                  g d      }g d}t        t	        j
                  ||      j                  |      |       t        t	        j
                  | |       j                  |       |       y )NrY   r=  )rY         @rg  	   r  )gOul"gځ=!gL!g>EG	f g^K[X)rc   r   r  r   r8   r  r  ru  )rl   r0   r1   rX   rQ   s        r2   test_logcdf_gh17064z!TestTruncnorm.test_logcdf_gh17064_  s    HHrvvgwRVVGR89HHbffbffaRVV45HH*++ 	1-44Q7BQB/55qb98Dr4   c                 j    t        j                  dd      j                  d      }d}t        ||       y )Nr   r   r   gl).0S?)r8   r  r  r   )rl   r   r~  s      r2   test_moments_gh18634z"TestTruncnorm.test_moments_gh18634j  s0     oob!$++A.  S!r4   N)r   r   r   r0  r   r   r   rj  r  r  r!  r)  r.  rA  rH  rK  rc   r  _truncnorm_stats_datar   rY  r\  r^  rb  rd  ri  rk  r:   r4   r2   r  r  f  sJ    [[[BCH	CH  [[[DE
HE
H2200&!MF-P^,		1	=	<	
BFF						
 &&!						
	
	
	;"F %BHH%:;[[V%:;D <D
+
0/F	E"r4   r  c                      e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zej                  j                  ddd	g      d
        Zej                  j                  dddg      d        Z	ej                  j                  dddg      d        Z
ej                  j                  dddg      d        Zy)TestGenLogisticx, expected))ig4`n)ig4	ncg)r   gX
=)rZ   gh@X)r   gh<c                 d    d}t         j                  j                  ||      }t        ||d       y )Nr  r   r~   )r8   genlogisticr   r   )rl   rX   rQ   r  logps        r2   test_logpdfzTestGenLogistic.test_logpdfw  s-       ''1-hU3r4   r  ))r  gTKEl@)r  gJk$@)r   gsF<?)r  7~F<?c                 Z    t        t        j                  j                  |      |d       y r1  )r   r8   rq  r@   r  s      r2   rj  zTestGenLogistic.test_entropy  s!    
 	))11!4cFr4   r  )r  rY   g8.)  r  gpT	oc                 \    t        t        j                  j                  ||      |d       y r  )r   r8   rq  r   r  s       r2   r  zTestGenLogistic.test_sf  s#     	)),,Q2CeDr4   	q, c, ref)rw   r  g^ #@)r]  r`   gGFf@c                 \    t        t        j                  j                  ||      |d       y NV瞯<r~   )r   r8   rq  r  rl   rx  r  r~  s       r2   r  zTestGenLogistic.test_isf  #     	))--a3SuEr4   )ru   r  gİ@)r  r  g1a@c                 \    t        t        j                  j                  ||      |d       y rz  )r   r8   rq  r   r|  s       r2   r^  zTestGenLogistic.test_ppf  r}  r4   )rZ   {Gz?g(?)r6  r  g'Tn7c                 \    t        t        j                  j                  ||      |d       y r|   )r   r8   rq  r  r  s       r2   test_logcdfzTestGenLogistic.test_logcdf  s#     	))00A6%Hr4   N)r   r   r   r   r   r   rs  rj  r  r  r^  r  r:   r4   r2   rn  rn  t  s2    [[] -I J
4J
4 [[X (E FG	FG& [[[+L+L+N OEOE [[[+I+H+J KFKF [[[+I+H+J KFKF [[[+N+K+M NINIr4   rn  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  j                  d        Zy)TestHypergeomc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestHypergeom.setup_method  r1  r4   c                 R   t         j                  j                  dddd      }t        j                  |dk\        t        j                  |dk        z  sJ t        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  ddd      }t        |t              sJ t        j                  ddd      j                  d      }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nr  rY   r   r5  r4  r   r7  )r8   	hypergeomr   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r2   rC  zTestHypergeom.test_rvs  s    ""2r17";vvdai 266$!)#4444xx~(((zz)L"9999oo!!"a,#s###oob!R(,,Q/#rzz***yy~~<!8888r4   c                 v    d}d}d}|}|}t         j                  j                  d|||      }t        |dd       y )Ni	  r6  rv  r`   gkㅒP?r#  )r8   r  rI  r   )rl   Mrn  Ntotgoodhgpmfs          r2   test_precisionzTestHypergeom.test_precision  sB    ##AsD!4E#8"=r4   c                 l   t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       y )Nr   r`   r   rM  r#  rz   )r   r8   r  rI  rq   s    r2   	test_argszTestHypergeom.test_args  s     	EOO//1a;S"EEOO//1a;S"EEOO//1a;S"EEOO//1a;S"Er4   c           	          t        dt        j                  j                  dddd      cxk  xr
 dk         y c        y )Nr   r3  io i  if0  rM  )r	   r8   r  rj   rq   s    r2   test_cdf_above_onez TestHypergeom.test_cdf_above_one  s/    U__((XtUCJsJKJKr4   c           	      v   d}d}t        j                  g d      dz  }d}|D cg c]'  }t        j                  j	                  |||z   ||      ) }}t        j                  g d      }t        ||dd	       g d
}t        j                  j	                  |||z   |d      }	g d}
t        |	|
dd	       y c c}w )Ng    +@g     @)r   ffffff@333333@r   gffffff@@r        @     @)r   gpR(g㘍R2gJޱ p9g?Mf=
G?r   r   gƠ>r  )g     @r  g     @g     @g     @)r   r  g)9g"1)rc   r   r8   r  r   r   )rl   orangespearsfruits_eatenquantileeatenr   rQ   	quantilesres2	expected2s              r2   test_precision2zTestHypergeom.test_precision2  s     xx =>D(*(5 !!(GeOWeL( 	 *88 9 :XAD9 0	!!)Wu_guM>	iad;*s   ,B6c                 >   t        j                  ddd      }|j                         }t        j                  ddg      }t        j
                  t        ||             }t        ||       t        j                  ddd      }|j                         }t        |d       y )Nr   r   r   re  rz   )	r8   r  r@   rc   r   rf  r   r   r   )rl   hgri  rg  rh  s        r2   rj  zTestHypergeom.test_entropy  sz    __Q1%JJLXXtTl+
ffU:z:;;
:&__Q1%JJLQr4   c                     d}d}d}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d
}d}t         j                  j                  ||||      }d}t        ||d       y )Nr      cA    .A     j@gor   rP  r   @  X  r  g_7	j$r8  )r8   r  ru  r   rl   rU   r  rn  r  resultrQ   s          r2   r  zTestHypergeom.test_logsf  s     &&q!Q2FHa8&&q!Q2 FHb9r4   c                 &   d}d}d}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d
}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d}d}t         j                  j                  ||||      }d}t        ||d       t	        j
                  g d      }d	}d
}d}t         j                  j                  ||||      }t	        j                  dd      }t        ||d       y )Nr   r  r  r  g)\Ur   rP  r  r  r6  r  g*@Vr8  }      rv  gר)r  r  r  )r8   r  r  r   rc   r   fullr  s          r2   r  zTestHypergeom.test_logcdf  s    ''1a3FHa8 ''1a3&FHb9''1a3 FHb9
 HH\"''1a377112FHb9r4   c                 z    d}d}d}t         j                  j                  |||      }||z  |z  }t        ||       y )Nip iP i.  )r8   r  r   r   )rl   r  rn  r  hmrms         r2   test_mean_gh18511zTestHypergeom.test_mean_gh18511?  sB     __!!!Q*UQYBr4   c                    d}d}t        j                  dd      }d|z  }t        j                  j	                  |dz
  |||      }t        j
                  |dkD        sJ t        j
                  t        j                  |      dk        sJ y )NrY   r   r   r8        $@r   r   )rc   r  r8   r  r   r   diff)rl   rn  r  r  population_sizero  s         r2   test_sf_gh18506zTestHypergeom.test_sf_gh18506J  sw     IIaq&OOq1uoq!<vva!e}}vvbggaj1n%%%r4   N)r   r   r   r0  rC  r  r  r  r  rj  r  r  r  r   r   r   r  r:   r4   r2   r  r    sU    	9>FL<&
:0,:\	  [[	& 	&r4   r  c                   8   e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zd Zd Z	ej                  j                  d	d
dg      d        Z
ej                  j                  dg d      d        Zy)TestLoggammaz	x, c, cdf))r   r`   g;Y%?)r      gRٲa6_<)gHr]  gi|e?)r]  g6l?)i+rV   g֬CCf9)ir   g ֺlc                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r8   loggammarj   r   r   )rl   rX   r  rj   ro  ys         r2   r  zTestLoggamma.test_cdf_ppf^  sH     NNq!$3U+NNsA&15)r4   zx, c, sf))r   r  gQOu3;)   rZ   g\Z{0)r  r]  geɐ?)ig{Gzd?gr0T?c                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r8   r  r   r   r  )rl   rX   r  r   rG   r  s         r2   r  zTestLoggamma.test_sf_isfp  sH     NNa#2E*NNr1%15)r4   c                 `    t         j                  j                  dd      }t        |dd       y )Nr`   g     @r|  r~   )r8   r  r   r   )rl   lps     r2   rs  zTestLoggamma.test_logpdf{  s&    
 ^^""4+G%0r4   c                     t        j                  g d      j                  dd      }|D ];  \  }}}}}t        j                  j                  |d      }t        |||||gd       = y )N)ru   g"~jg46<@g oŏ      @rM  g	h"lxgQ?gZd;333333@g      (@g{/L@g??gгYҿgh|?5?r   r   msvkrV  r   rP  )rc   r   reshaper8   r  r   )rl   tabler  r   varskewkurtcomputeds           r2   rZ  zTestLoggamma.test_stats  so       
 wr1~ 	 ).$AtS$~~++Av+>H%hsD$0G./1 ).r4   r  rV   r]  c                    t         j                  j                  |d      }t        j                  |      j                         sJ t         j                  j                  |      }t        j                  t        j                  ||k        t        |            }|j                  d      }|j                  dcxk  r|j                  k  sJ  J y )Nr   r4  r  )confidence_levelru   )r8   r  r   rc   isfiniter   median	binomtestcount_nonzeror
  proportion_cir'  r(  )rl   r  rX   medbtestcis         r2   rC  zTestLoggamma.test_rvs  s     NNqv. {{1~!!### nn##A& 0 0S 93q6B  % 8vv%bgg%%%%%r4   r  ))r  g3H໱k3@)r   rt  )r  g8,[H^}	)r  g90$)r  gtum\c                 Z    t        t        j                  j                  |      |d       y r  )r   r8   r  r@   r  s      r2   rj  zTestLoggamma.test_entropy  s     	..q13UCr4   N)r   r   r   r   r   r   r  r  rs  rZ  rC  rj  r:   r4   r2   r  r  W  s     [[[EF*F* [[ZBC
*C
*11 [[S3,/& 0& [[X<=	D=	Dr4   r  c                   X    e Zd Zg dZej
                  j                  de      d        Zy)TestJohnsonsu))r  r   r   g?r  )r   r   r   gH';vIh%,=)r   r   r   g?x7r  rP  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y Nr  r~   )r   r8   	johnsonsur   r  rl   rP  rX   r0   r1   r   tols          r2   r  zTestJohnsonsu.test_sf_isf  P    1aS**1a3ReD++B15qsCr4   Nr   r   r   casesr   r   r   r  r:   r4   r2   r  r    s0    ;E [[VU+D ,Dr4   r  c                   X    e Zd Zg dZej
                  j                  de      d        Zy)TestJohnsonb))r  r   r   g?Hz>)r  r   r   g0jA:r  )g!?r   r   gQbF5r  rP  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y )Nr  r~   r   )r   r8   r  r   r  r  s          r2   r  zTestJohnsonb.test_sf_isf  r  r4   Nr  r:   r4   r2   r  r    s0    =E [[VU+D ,Dr4   r  c                       e Zd Zd Zd Zd Zd Zd Zej                  j                  dddg      d	        Zd
 Zej                  j                  dddg      d        Zd Zy)TestLogisticc                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y Nr  r  )rc   rR  r8   logisticrj   r   r   rl   rX   r  r  s       r2   r  zTestLogistic.test_cdf_ppf  sD    KKR NNq!^^"2r4   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y r  )rc   rR  r8   r  r   r  r   r  s       r2   r  zTestLogistic.test_sf_isf  sD    KKR NNa ^^"2r4   c                     d}d}t        t        j                  j                  d|z
        |       t        t        j                  j	                  |      |       y )Ng      <gg|EA@r   )r   r8   r  r   r  )rl   ro  desireds      r2   test_extreme_valuesz TestLogistic.test_extreme_values  sB    !#**1q517;**1-w7r4   c                 j    t         j                  j                  g d      }g d}t        ||d       y )N)r  r   rY   )gm\  .g9B.gO& $r   r~   )r8   r  r   r   )rl   rr  rQ   s      r2   test_logpdf_basiczTestLogistic.test_logpdf_basic  s+    ~~$$\2) 	hU3r4   c                 b    t         j                  j                  ddg      }t        |ddg       y )Nrt   r  )r8   r  r   r   rl   rr  s     r2   test_logpdf_extreme_valuesz'TestLogistic.test_logpdf_extreme_values  s*    ~~$$c4[1 	TD$<(r4   zloc_rvs,scale_rvs)g9x&?gi '?)gB"?gs^&?c                    t         j                  j                  d||      }d }t        |t         j                  j	                  |      |f      j
                  }t         j                  j                  |      }t        ||d       y )NrZ   r   r^   r_   c                    | \  }}t        |      }t        j                  t        j                  ||z
  |z        dt        j                  ||z
  |z        z   z        |dz  z
  }t        j                  ||z
  |z  t        j                  ||z
  |z        dz
  t        j                  ||z
  |z        dz   z  z        |z
  }||fS Nr   r`   )r
  rc   rf  r   )inputr   r0   r1   rn  x1x2s          r2   r   z#TestLogistic.test_fit.<locals>.func  s    DAqD	AqA~.RVVTAXN335 689A>B$(a&&$(a014&&$(a01467 8:;<B r6Mr4   r  gKH9r   )r8   r  r   r$   	_fitstartrX   r   r   )rl   loc_rvs	scale_rvsr   r   expected_solution
fit_methods          r2   test_fitzTestLogistic.test_fit  sw     ~~!!sy!I	 !u~~'?'?'EM A 	^^''-
 	
$5EBr4   c                     t         j                  j                  ddd      }t        t         j                  |       t        t         j                  |d       t        t         j                  |d       y )NrZ   ru   r`   r  r   r   r   )r8   r  r   r   rl   r   s     r2   test_fit_comp_optimizerz$TestLogistic.test_fit_comp_optimizer  sK    ~~!!s1!=%ennd;%enndC%ennd1Er4   
testlogcdfTFc                     t        j                  g d      }|r t        j                  j	                  |      }n t        j                  j                  |       }g d}t        ||d       y )N)r-  r     r6  rv  )     g      g%h9fg?~T}%mgCx^&ْV瞯<r~   )rc   r   r8   r  r  ru  r   )rl   r	  rX   r  rQ   s        r2   test_logcdfsf_tailsz TestLogistic.test_logcdfsf_tails  sT     HH01%%a(A$$aR(AF8%0r4   c                     t        j                  g ddgdz  z   dgdz  z         }t        t        j                  |       y )N)	i5%   +   r`  r`  0   6   7   :   ;   r   =   rh  )rc   r   r   r8   r  r  s     r2   test_fit_gh_18176zTestLogistic.test_fit_gh_18176-  sA     xx>$(#&(TAX. / 	&ennd;r4   N)r   r   r   r  r  r  r  r  r   r   r   r  r  r  r  r:   r4   r2   r  r    s    84) [[03J3K3M NCNC,F [[\D%=91 :1<r4   r  c                   $    e Zd Zd Zd Zd Zd Zy)
TestLogserc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestLogser.setup_method7  r1  r4   c                    t         j                  j                  dd      }t        j                  |dk\        sJ t        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nr   r5  r4  r   r7  r   )r8   logserr   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r2   rC  zTestLogser.test_rvs:  s    ||73vvdai   xx~(((zz)L"9999llt$#s###ll4 $$Q'#rzz***yy~~<!8888r4   c                 \    t         j                  j                  dd      }t        |d       y )Nr   r{  g&Y3)r8   r  rI  r   rl   rW  s     r2   test_pmf_small_pzTestLogser.test_pmf_small_pE  s$    LLQ& 	7#r4   c                 Z    t         j                  j                  d      }t        |d       y )Nr  gW  ?)r8   r  r   r   r  s     r2   test_mean_small_pzTestLogser.test_mean_small_pS  s"    LLd# 	;'r4   N)r   r   r   r0  rC  r   r"  r:   r4   r2   r  r  6  s    	9$(r4   r  c            	          e Zd Z ej                  d      d        Zej                  j                  dej                  ej                  g      ej                  j                  dg d      ej                  j                  dg d      ej                  j                  d	d
dgdd
gf      d                             Zej                  j                  dej                  dfej                  dfg      d        Zy)TestGumbel_r_lfunctionscopec                 @    t         j                  j                  d      S r.  rc   r   r   rq   s    r2   r   zTestGumbel_r_l.rng_      yy$$T**r4   rM   r   r   r   r   r  rV   r   r   zfix_loc, fix_scaleTFc                     |j                  d|||      }t               }|r|dz  |d<   |r|dz  |d<   t        ||fi | y )NrZ   r   r^   r_   r   r`   r   r   )r   r  r   )	rl   rM   r   r  r   r  r   r   r   s	            r2   r  z&TestGumbel_r_l.test_fit_comp_optimizerc  s\     xxSgY%(  * v "Q;DL&]DN 	&dD9D9r4   z	dist, sgnr   r   c                     |t        j                  g d      z  }|j                  |      \  }}t        ||dz         t        |dd       y )N)r   r   r   r   r   r   r   gW  @g   @g3qtw>r  r~   )rc   r   r   r   )rl   rM   sgnzr^   r_   s         r2   r  zTestGumbel_r_l.test_fitx  sH     :;;XXa[
U 	S!3345DAr4   N)r   r   r   r   fixturer   r   r   r8   gumbel_rgumbel_lr  r  r:   r4   r2   r$  r$  ^  s    V^^*%+ &+ [[Vennenn%EF[[Y
3[[[*5[[1#UmeT];=:= 6 4 G
:  [[[ENNA+>,1NNB+?+A BBBBr4   r$  c                      e Zd Zd Zd Z ej                  d      d        Zej                  j                  d      ej                  j                  ddd	g      ej                  j                  d
dd	g      ej                  j                  dddg      d                             Zej                  j                  ddd	g      ej                  j                  d
dd	g      ej                  j                  dddg      ej                  j                  d eddgd      D  cg c]  }d|v r|
 c}}        ej                  d      d                                    Z ej                  d      d        Zd Zd Zyc c}} w )
TestParetoc                 J	   t        j                         5  t        j                  dt               t        j
                  j	                  dd      \  }}}}t        |t        j                         t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |t        j                         t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  d	d      \  }}}}t        |d
       t        |d       t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |d       d d d        y # 1 sw Y   y xY w)Nrl  ru   rU  rV  rM  r  rT  ry   r  g?grq@r         @gffffff?gK~?g      2@g۶m۶m?r  UUUUUU?gqq?r        @g%I$I?gQ?gUUUUUU@grq?g88Nb@)rp  rq  rr  rs  r8   paretor   rc   r  r  r   r  rl   rW  rX  rG   rU   s        r2   rZ  zTestPareto.test_stats  s=    $$&!!'>:++C+@JAq!QBFF#BFF#BFF#BFF#++C+@JAq!QBFF#BFF#BFF#BFF#++C+@JAq!QC BFF#BFF#BFF#++C+@JAq!QC BFF#BFF#BFF#++C+@JAq!QAy)A23BFF#BFF#++C+@JAq!QAs#At$BFF#BFF#++C+@JAq!QAy)A23A	2777+;;<BFF#++C+@JAq!QAy)Az*A0277;3GGHBFF#++C+@JAq!QAy)A23A	RWWW-==>ALMo '&&s   Q;RR"c                 ~    d}d}d}t         j                  j                  ||d|      }||z  |z  }t        ||       y )Ng    eAr`   r  r   r]   )r8   r;  r   r   )rl   rX   r1   r_   ro  rQ   s         r2   r  zTestPareto.test_sf  sB    LLOOAqauO5!Ga<8$r4   r%  r&  c                 @    t         j                  j                  d      S r.  r)  rq   s    r2   r   zTestPareto.rng  r*  r4   z2ignore:invalid value encountered in double_scalarsr   r   r`   r   r   r  r   c                    t         j                  j                  d||||      }t         j                  j                  |dd      d   }t         j                  j                  |dd      d   }t         j                  j                  |dd      d   }||cxk(  r|cxk(  rdk(  sJ  J t         j                  j                  d|||dz   |      }t         j                  j                  |d	      \  }	}
}t	        |dz   |j                                |dz
  }|j                  d   }t	        |	|t        j                  t        j                  ||j                         z              z         t	        |
d       y )
NrZ   r   r1   r_   r^   r   r   p=
ף?)r   r   )r   fix_b)r   fbr`   r   )
r8   r;  r   r   r   r%  r;  rc   rf  r  )rl   r   r   r  r   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r2   r  zTestPareto.test_fit  so    ||SIY$+#   ? !& 0 0A$ 0 G J % 0 0AT 0 J1 M % 0 0A$ 0 G J%)> .%.)-. 	/ . 	/ . ||SIY%,q[   E.3ll.>.>t!.>.L+Y[1_dhhj1AX
  #[RVVBFF:jnn6F+F$GHH	JY"r4   rV   fix_shape, fix_loc, fix_scaleTFr   repeatignoreinvalidc                     t         j                  j                  d||||      }i }	|r||	d<   |r||	d<   |r||	d<   t        t         j                  |fi |	 y )NrZ   r@  r   r   r   )r8   r;  r   r   
rl   r   r   r  r   r   r  r   r   r   s
             r2   r   z&TestPareto.test_fit_MLE_comp_optimizer  sf     ||SIY$+#   ? "DJ"DL&DN%ellDADAr4   c           	          d\  }}}t         j                  j                  |||dt        j                  j                  d            }t        t         j                  |       y )N)r   r   r   rZ   ið& r   )r8   r;  r   rc   r   r   r   )rl   r;  locationr_   r   s        r2   test_fit_known_bad_seedz"TestPareto.test_fit_known_bad_seed  sR    
 ")x||xS-/YY-B-B7-K   M%ellD9r4   c                     t        t        j                         t        t        t        j                  j
                  g dd       t        t        t        j                  j
                  g ddd       y )Nr  r`   r   )r   r`   r   r   r   r  )r  r8   r;  r  r"   r   rq   s    r2   test_fit_warningszTestPareto.test_fit_warnings	  sC    ELL)lELL$4$4iaHlELL$4$4ia	 r4   c                     t         j                  j                  ddd|      }t        |d       t         j                  j	                  |      }y )Ni~r   rZ   )r^   r1   r   r   r   )r8   r;  r   r   r   )rl   r   r   r   s       r2   test_negative_datazTestPareto.test_negative_data	  s?    ||DACcJ$"
 LLT"r4   N)r   r   r   rZ  r  r   r2  r   r   filterwarningsr   r  r'   rc   errstater   rV  rX  rZ  .0ro  s   00r2   r6  r6    s   :Nx% V^^*%+ &+ [[ !1 2[[[1a&1[[YA/[[[1a&1# 2 0 22
#. [[[2q'2[[YA/[[[1a&1[[<)0$q)I -)IA!&!  )I -. R[["B #. 2 0 3B R[[": #: #I-s   $Fr6  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
dg dfdddd ej                   d      z  ej"                  gfdddd ej                   d      z  dgfdg dfg      d        Zd Zy)TestGenparetoc                 b   dD ]c  }t        j                  |      }t        j                  j	                  |      \  }}t        |d       t        t        j                  |             e t        j                  d      }t        j                  j	                  |      \  }}t        ||gddg       y )NrM  rz   rz          ru   )	rc   r   r8   	genpareto_get_supportr   r	   isposinfr   )rl   r  r0   r1   s       r2   test_abzTestGenpareto.test_ab	  s    A

1A??//2DAqBBKKN#	  JJsO++A.1AS	*r4   c                 L   t        j                  d      }t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t        j                  ddd      }t	        |j                  |      t         j                  j                  |             y )Nrz   r  r   r  r3  rM  rY   )
r8   rd  rc   rR  r   rb   r  rj   r   r   rl   rvrX   rx  s       r2   test_c0zTestGenpareto.test_c0(	  s     __r"KK3#q	5;;??1#56q	5;;??1#56a%++.."34KKB#q	5;;??1#56r4   c                    t        j                  d      }t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  d	      d       y )
Nr  ri  r   r  r3  rz   rM  rY   r   )r8   rd  rc   rR  r   rb   uniformrj   r   r   r   rj  s       r2   test_cm1zTestGenpareto.test_cm14	  s    __s#KK3#q	5==#4#4Q#78q	5==#4#4Q#78a%--"2"21"56KKB#q	5==#4#4Q#78 			!a(r4   c                    t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     y )NrV   ri  rz   rM  r  )
r8   rd  r   rb   rc   r  rj   r	   isneginfr   rl   rk  s     r2   
test_x_infzTestGenpareto.test_x_infB	  s   __s#82r(CBIIbff-./__r"82r(CBIIbff-./__s#82r(CBIIbff-./r4   c                    t        j                  ddd      }dD ]  }t        j                  j	                  ||      }dD ]3  }t        j                  j	                  |||z         }t        ||d       5 t        j                  j                  ||      }dD ]3  }t        j                  j                  |||z         }t        ||d       5  y )	Nr   rY   r3  r   r   r|  g+r  r   )r|  r|  )rc   rR  r8   rd  rb   r   rj   )rl   rX   r  pdf0dcpdfccdf0cdfcs           r2   test_c_continuityzTestGenpareto.test_c_continuityP	  s    KK2r"A??&&q!,D%**1a"f5d7 & ??&&q!,D$**1a"f5d7 % r4   c           	      z   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]Z  }t        j
                  j                  ||      }dD ]3  }t        j
                  j                  |||z         }t        ||d       5 \ y Nr  rw   rV   baser   r3  FendpointrM  )rz   r  rv  r   )rc   rG  r  rR  r8   rd  r   r   )rl   rx  r  ppf0rx  ppfcs         r2   test_c_continuity_ppfz#TestGenpareto.test_c_continuity_ppf^	      EE"++eT4++dArE:r{{5$S99: ; A??&&q!,D%**1a"f5d7 & r4   c           	      z   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]Z  }t        j
                  j                  ||      }dD ]3  }t        j
                  j                  |||z         }t        ||d       5 \ y r~  )rc   rG  r  rR  r8   rd  r  r   )rl   rx  r  isf0rx  isfcs         r2   test_c_continuity_isfz#TestGenpareto.test_c_continuity_isfh	  r  r4   c           	      ^   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]L  }t	        t
        j                  j                  t
        j                  j                  ||      |      |d       N y )Nr  rw   rV   r  r   r3  Fr  rM  )r  gC]r2r}   gV瞯Ҽr}   r   )	rc   rG  r  rR  r   r8   rd  rj   r   )rl   rx  r  s      r2   test_cdf_ppf_roundtripz$TestGenpareto.test_cdf_ppf_roundtripr	  s    EE"++eT4++dArE:r{{5$S99: ; /AEOO//0C0CAq0I1ME+ /r4   c                 `    t         j                  j                  dddd      }t        |d       y )Nr  rw   r   r   gpEȜ)r8   rd  ru  r   r  s     r2   r  zTestGenpareto.test_logsf{	  s'    $$T31512r4   zc, expected_statsr   )r   r   r`   r  re  r9  gqq@rY   r`   gqq?g      ?g$I$	?rq?r  gll0@r   )ru   UUUUUU?r   333333c                 d    t         j                  j                  |d      }t        ||dd       y )NrU  rV  r   r}   r_  )r8   rd  r   )rl   r  expected_statsr  s       r2   rZ  zTestGenpareto.test_stats	  s+     &&q&&9UGr4   c                 ^    t         j                  j                  d      }t        |dd       y )Nr  gvǼ
  ?r   r~   )r8   rd  r  r   )rl   rX  s     r2   test_varzTestGenpareto.test_var	  s#    OO%,59r4   N)r   r   r   rg  rl  ro  rs  r|  r  r  r  r  r   r   r   rc   r  r  rZ  r  r:   r4   r2   r`  r`  	  s    +
7)0888+3 [[
\	
T2gbggaj="&&1	2
]T72771:$5v>	?
"	#	%&H&H:r4   r`  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestPearson3c                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestPearson3.setup_method	  r1  r4   c                     t         j                  j                  dd      }t        j                  |      dk(  sJ |j
                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j
                  j                  t        d   v sJ t        |      dk(  sJ y )NrV   r5  r4  AllFloatru   r   )r8   r+   r   rc   r;  r   r<  r   r=  r   r]  r
  r@  s      r2   rC  zTestPearson3.test_rvs	  s    ~~!!#G!4xx~(((zz)J"7777nn  %#u%%%nnS!%%a(#rzz***yy~~:!66663x1}}r4   c                    t         j                  j                  dg d      }t        |t	        j
                  g d      d       t         j                  j                  dd      }t        |t	        j
                  dg      d       t         j                  j                  g d	d      }t        |t	        j
                  g d
      d       y )Nr`   rz   rV   r  )gtT?g+q?g?r  r   r0  rV   ND}i?r0  r   r   r   r   )r  gj?gdC?gs?g'M?)r8   r+   rb   r   rc   r   rk  s     r2   rK  zTestPearson3.test_pdf	  s    ~~!!!_5bhh'KL!	#~~!!"c*bhh
|44@~~!!"4c:bhh (@ AGK	Mr4   c                 P   t         j                  j                  dg d      }t        |t	        j
                  g d      d       t         j                  j                  dd      }t        |dgd       t         j                  j                  g d	d      }t        |g d
d       y )Nr`   r  )grE?gTp]0?g~?r  r   r0  rV   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r8   r+   rj   r   rc   r   rk  s     r2   rU  zTestPearson3.test_cdf	  s    ~~!!!_5bhh'KL!	#~~!!"c*zl6~~!!"4c: ?EI	Kr4   c                     g d}d}d}t         j                  j                  ||      }|D cg c]/  }t        t        j                  |      j                  ||      d   1 }}t        ||       y c c}w )Nr0  r   r   ru   ru   rL  r   )r8   r+   rj   r   rb   r   )rl   skewsx_evalneg_infr8  r  int_pdfss          r2   test_negative_cdf_bug_11186z(TestPearson3.test_negative_cdf_bug_11186	  su     !~~!!&%0 %' % -117FCAF % 	 'h''s   4A0c                 $   t         j                  j                  dd      }t        |d       t	        |t
        j                        sJ t         j                  j                  dd      }t        |d       t	        |t
        j                        sJ y )Nr   r`   r   r  )r8   r+   r  r   r=  rc   number)rl   r  s     r2   test_return_array_bug_11746z(TestPearson3.test_return_array_bug_11746	  sl     &&q!,VQ&")),,,&&q(3VQ&")),,,r4   c                    g d}d}t         j                  j                  t         j                  j                  ||      |      }t	        ||       t        j                  dgdgg      }t        j                  dd      }t	        t         j                  j                  ||      t         j                  j                  | |              t	        t         j                  j                  ||      t         j                  j                  | |              t	        t         j                  j                  ||      t         j                  j                  ||               y )Nr  ru   r   r  r   r`   )r8   r+   r   rj   r   rc   r   rR  rb   r   r  )rl   r  r  r   r  rX   s         r2   test_ppf_bug_17050zTestPearson3.test_ppf_bug_17050	  s    !nn  !3!3FE!BEJV$ xx$#(KKA**1d3**A2u5	7**1d3))1"te4	6**1d3++Au55	7r4   c                    g d}g d}g d}t        t        j                  j                  ||      |d       t        t        j                  j                  |d      t        j                  j                  |      d       y )N)rV   ru   rM  皙)rN  r  g      I@       @)g7>g~׼=gp'+7g;r  r~   r   )r   r8   r+   r   r  )rl   r  rX   r~  s       r2   r  zTestPearson3.test_sf	  s\     %">))!T2CeD))!Q/q1ANr4   N)r   r   r   r0  rC  rK  rU  r  r  r  r  r:   r4   r2   r  r  	  s-    	MK	(	-7&	Or4   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
TestKappa4c                     g d}d}dD ]P  }t         j                  j                  |||      }t         j                  j                  ||       }t	        ||       R y )N)rz   rV   r  ru   rM  )
gffffffr  r   皙ɿr  rV   r  ru   rM  ffffff?)r8   kappa4rj   rd  r   rl   rX   ri  rU   rA  	vals_comps         r2   test_cdf_genparetozTestKappa4.test_cdf_genpareto	  sR     A<<##Aq!,D++Ar2ID),r4   c                     t        j                  ddd      }d}t        j                  ddd      }t        j                  j	                  |||      }t        j
                  j	                  ||      }t        ||       y )Nr<  r   rY   rz   r0  r   )rc   rR  r8   r  rj   
genextremer   r  s         r2   test_cdf_genextremezTestKappa4.test_cdf_genextreme	  se    KKAr"KKAr"||1a($$((A.	i(r4   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr   rY   rM  rz   )rc   rR  r8   r  rj   r  r   r  s         r2   test_cdf_exponzTestKappa4.test_cdf_expon	  sR    KK2r"||1a(KKOOA&	i(r4   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr<  r   rY   rz   )rc   rR  r8   r  rj   r3  r   r  s         r2   test_cdf_gumbel_rzTestKappa4.test_cdf_gumbel_r
  sT    KKAr"||1a(NN&&q)	i(r4   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr<  r   rY   r  rz   )rc   rR  r8   r  rj   r  r   r  s         r2   test_cdf_logisticzTestKappa4.test_cdf_logistic
  sT    KKAr"||1a(NN&&q)	i(r4   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr<  r   rY   rM  )rc   rR  r8   r  rj   rn  r   r  s         r2   test_cdf_uniformzTestKappa4.test_cdf_uniform
  sT    KKAr"||1a(MM%%a(	i(r4   c                 0    t        j                  dd       y r  )r8   r  rq   s    r2   test_integers_ctorzTestKappa4.test_integers_ctor"
  s     	Qr4   N)
r   r   r   r  r  r  r  r  r  r  r:   r4   r2   r  r  	  s%    	-)))))r4   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestPoissonc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestPoisson.setup_method)
  r1  r4   c                     t        j                  d      }t        j                  j	                  g d|      }d|dz  |dz  dz  g}t        ||       y )Nr`   r   r   r`   ru   r   )rc   r  r8   r}  rI  r   )rl   ln2rA  rQ   s       r2   test_pmf_basiczTestPoisson.test_pmf_basic,
  sG    ffQi}}  C0QQq)h'r4   c                     t         j                  j                  g dd      }g d}t        ||       t         j                  j	                  dd      }t        |d       y )Nr  r   )r   r   r   ffffff?r   r   )r8   r}  rI  r   intervalr   )rl   rA  rQ   r  s       r2   test_mu0zTestPoisson.test_mu03
  sG    }}  A.4*==))$2Xv&r4   c                    t         j                  j                  dd      }t        j                  |dk\        sJ t        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nru   r5  r4  r   r7  r   )r8   r}  r   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r2   rC  zTestPoisson.test_rvs<
  s    }}  7 3vvdai   xx~(((zz)L"9999mm$#s###mmC $$Q'#rzz***yy~~<!8888r4   c           	         d}t         j                  j                  |d      }t        |||t        j                  d|z        d|z  g       t        j
                  g d      }t         j                  j                  |d      }||t        j                  ddt        j                  d      z  gt        j                  ddgf}t        ||       y )	Ng      0@rU  rV  rM  )rz   rM  ry   r   r`   ru   )r8   r}  r   rc   r  r   r  )rl   r  r  rQ   s       r2   rZ  zTestPoisson.test_statsG
  s    $$R$8RR#b& ABXXo&$$R$8RVVQ"''!*537GH)r4   N)r   r   r   r0  r  r  rC  rZ  r:   r4   r2   r  r  (
  s    ('	9*r4   r  c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)	TestKSTwoc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestKSTwo.setup_methodS
  r1  r4   c                    dD ]  }t        j                  dd|z  d|z  ddd|z  z
  dg      }d|z  |z  }t        j                  j	                  |dz         }|dk7  rt        j
                  |      nd}t        j                  dd||z  ddt        j                  j                  d|      z  z
  t        dd|z  z
  d      dg      }t        j                  j                  ||      }t        ||        y )Nr   r`   r   rY   rZ   r   r   ru   r   rM  r`   rz   )rc   r   r7   r   gammalnr   r8   ksoner   rh  kstworj   r   )rl   rn  rX   v1lgelgrQ   rB  s           r2   rU  zTestKSTwo.test_cdfV
  s    )A !SUAaCaAgq9:Aa%!B&&qs+B!#q266":aCxxArCx!"Qu{{~~c1'=%=!=!$Q2Xs!3!$!& 'H {{q!,HHh/# *r4   c                    t        j                  ddd      }dD ]  }t        j                  dd|z  d|z  ddd|z  z
  dg      }d|z  |z  }t        j                  j                  |dz         }|dk7  rt        j                  |      nd}t        j                  ddd||z  z
  dt        j                  j                  d|      z  t        d|z  d      dg      }t        j                  j                  ||      }t        ||        y )Nr   r   r#  r  ru   rM  r`   )rc   rR  r   r7   r   r  r   r8   r  r   r%  r  r   )rl   rX   rn  r  r  r  rQ   rr  s           r2   r  zTestKSTwo.test_sfj
  s    KK1b!)A!SUAaCaAgq9:Aa%!B&&qs+B!#q266":aCxxc!"R#X!"5;;>>#q#9!9!$QrT3!4 5H kknnQ*GGX. *r4   c                     t        j                  ddd      dd  }g d}|D ][  }|t        j                  |      z  }t        j                  j                  ||      }t        j                  |      }t        |d       ] y )Nr   r`   r#  r   )r6  rZ   r  i  r   r   r  )rc   rR  r  r8   r  rj   r  r   )rl   rX   ns_xxnprobsdiffss          r2   test_cdf_sqrtnzTestKSTwo.test_cdf_sqrtny
  si    
 KK1b!!"%,Bbggbk!BKKOOB+EGGENEeT*	 r4   c                     t        j                  ddd      }dD ]Q  }t        j                  j	                  ||      }t        j                  j                  ||      }t        |d|z
         S y Nr   r   r#  r  )rc   rR  r8   r  rj   r   r   )rl   rX   rn  rB  rr  s        r2   rs  zTestKSTwo.test_cdf_sf
  sT    KK1b!)A{{q!,HkknnQ*G%hG< *r4   c                    t        j                  ddd      }dD ]i  }|t        j                  |      z  }t        j                  j                  ||      }t        j                  j                  ||      }t        |d|z
         k y r  )rc   rR  r  r8   r  rj   r   r   )rl   rX   rn  r  rB  rr  s         r2   test_cdf_sf_sqrtnzTestKSTwo.test_cdf_sf_sqrtn
  se    KK1b!)ARWWQZB{{r1-HkknnR+G%hG<	 *r4   c                    t        j                  ddd      }dD ]l  }||d|z  kD     }t        j                  j	                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||   d       n y )	Nr   r   r#  r  ru   r  r  r~   )rc   rR  r8   r  rj   r   r   rl   rX   rn  r  rB  condrA  s          r2   test_ppf_of_cdfzTestKSTwo.test_ppf_of_cdf
  s}    KK1b!)A1s1u9B{{r1-HLX_5D;;??8Q/DDJ4t< *r4   c                    t        j                  ddd      }dD ]l  }||d|z  kD     }t        j                  j	                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||   d       n y )	Nr   r   r#  r  ru   rM  r  r~   )rc   rR  r8   r  r  r   r   )rl   rX   rn  r  vals_isfr  rA  s          r2   test_isf_of_sfzTestKSTwo.test_isf_of_sf
  s}    KK1b!)A1s1u9B{{r1-HLX^4D;;>>(A.DDJ4t< *r4   c                 <   t        j                  ddd      }dD ]  }|t        j                  |      z  |d|z  kD     }t        j                  j                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||           y )Nr   r   r#  r  ru   rM  )rc   rR  r  r8   r  rj   r   r   r  s          r2   test_ppf_of_cdf_sqrtnzTestKSTwo.test_ppf_of_cdf_sqrtn
  s    KK1b!)Abggaj.!c!e),B{{r1-HLX^4D;;??8Q/DDJ41 *r4   c                 <   t        j                  ddd      }dD ]  }|t        j                  |      z  |d|z  kD     }t        j                  j                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||           y )Nr   r   r#  r  ru   r  )rc   rR  r  r8   r  r   r  r   )rl   rX   rn  r  rr  r  rA  s          r2   test_isf_of_sf_sqrtnzTestKSTwo.test_isf_of_sf_sqrtn
  s    KK1b!)Abggaj.!c!e),BkknnR+GKGdN3D;;??7A.DDJ41 *r4   c                     t        j                  ddd      dd  }dD ]N  }t        j                  j	                  ||      }t        j                  j                  ||      }t        ||       P y r  )rc   rR  r8   r  r   rj   r   )rl   r  rn  r  rB  s        r2   r^  zTestKSTwo.test_ppf
  sW    Aq"%ab))A*B{{r1-HHe, *r4   c           	         g d}t        j                  g d      }t        j                  g dg dg dg dg dg dg      }t        |      D ]x  \  }}|t        j                  d	      z  t        j                  t         j
                  d	z  |z        z  }t        j                  j                  ||      }t        |||   d
       z y )N)rY   r6  rZ   r  rv  r   )re  gUUUUUU?ru   r   r`   r   )gRT>gr	?gK5
?gn
"5?gU
?gk?)g&6#>gb
E>gI5?g\?g;?g%1?)g6>gL>g<?g䓀^?gO|6$?g qO?)g}+: >gwQ9>gH{?g]qv(?g)~/v?gmJ?)gV27J=gGk(>gWX?gY?g{0`?gZ
H?)g_R=g4>g̪?gT_@?g<e?g2?r`   r  r~   )
rc   r   	enumerater  r  rd   r8   r  rj   r   )rl   r  ratiosrQ   idxrn  rX   rB  s           r2   test_simard_lecuyer_table1z$TestKSTwo.test_simard_lecuyer_table1
  s     +8988------
   mFC"RWWRUU1WQY%77A{{q!,HHhsm$? $r4   N)r   r   r   r0  rU  r  r  rs  r  r  r  r  r  r^  r  r:   r4   r2   r  r  R
  s?    0(/+====22-@r4   r  c                       e Zd Zd Zd Zd Zy)TestZipfc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestZipf.setup_method
  r1  r4   c                    t         j                  j                  dd      }t        j                  |dk\        sJ t        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nr  r5  r4  r   r7  r   )r8   zipfr   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r2   rC  zTestZipf.test_rvs
  s    zz~~c~0vvdai   xx~(((zz)L"9999jjnnS!#s###jjo!!!$#rzz***yy~~<!8888r4   c                 `   t         j                  j                  d      \  }}t        t        j                  |             t        |t        j                         t         j                  j                  dd      \  }}t        t        j                  ||g      j                                 y )Nffffff@r0   r  skr0   rW  )r8   r  r	   rc   r  r   r  r   r<  s        r2   rY  zTestZipf.test_moments
  sy    zz#&1AQzz#t41BKKA'++--.r4   N)r   r   r   r0  rC  rY  r:   r4   r2   r  r  
  s    	9/r4   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestDLaplacec                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestDLaplace.setup_method
  r1  r4   c                 "   t         j                  j                  dd      }t        j                  |      dk(  sJ |j
                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j
                  j                  t        d   v sJ t         j                  j                  d      J y )Nr  r5  r4  r7  r   r   )r8   dlaplacer   rc   r;  r   r<  r   r=  r\  r]  r@  s      r2   rC  zTestDLaplace.test_rvs  s    ~~!!#G!4xx~(((zz)L"9999nn  %#s###nnS!%%a(#rzz***yy~~<!8888~~!!#&222r4   c                 x   d}t        j                  |      }|j                  d      \  }}}}d}t        j                  | |dz         }|j	                  |      }	t        j
                  |	|dz  z        t        j
                  |	|dz  z        }}
t        ||fd       t        ||f|
||
dz  z  dz
  fd	d
       y )NrM  rU  r  r   r`   r   r  rT  r|  r  r  )r8   r  rc   r  rI  rf  r   r   )rl   r0   dlrW  rX  rG   rU   r  r  ppm2m4s               r2   rZ  zTestDLaplace.test_stats  s    ^^AXXf%
1aYYr1Q3VVBZ2q5!266"RU(#3BaVV$ARAX] 3%dKr4   c                     t        j                  d      }t        j                  |      }|j                  d      \  }}}}t	        ||fd       t        ||fd       y )Nry   rU  )rz   rz   )r        
@)rc   r  r8   r  r   r   )rl   r0   r
  rW  rX  rG   rU   s          r2   test_stats2zTestDLaplace.test_stats2  sO    FF2J^^AXXf%
1aaVX&A
+r4   N)r   r   r   r0  rC  rZ  r  r:   r4   r2   r  r  
  s    	3L,r4   r  c                       e Zd Zd Zej
                  j                  dddg      d        Zej
                  j                  dddg       fd       Zd Z	d	 Z
d
 Zej
                  j                  dg d      d        Z xZS )TestInvgaussc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestInvgauss.setup_method"  r1  r4   zrvs_mu,rvs_loc,rvs_scale)r`   r   r   )g
ףp=@g r@gʡE6@c                 X   t         j                  j                  d|||      }t         j                  j                  ||      \  }}}||z
  }t	        j
                  |      }t        |      t	        j                  |dz  |dz  z
        z  }	||	z  }
t        |
|dd       t        |	|dd       t        ||       t         j                  j                  d|||      }t         j                  j                  ||dz
  |dz         \  }}}t        |dz   |       t        |dz
  |       t         j                  j                  |d	
      d   }t         j                  j                  |d	      d   }t         j                  j                  |d	      d   }||cxk(  r|cxk(  rd	k(  sJ  J y )NrZ   )r   r  r^   r_   r   r   r}   r  r   r  rA  )fmur   )fix_mur   )
r8   r  r   r   rc   r   r
  rf  r   r   )rl   rvs_mur   r  r   r  r^   r_   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r2   r  zTestInvgauss.test_fit%  s    ~~!!sv&-Y " @ ++Dw+?Cg~''$-Ir
Wr](B!CD	" 	U;	5u5AS'"~~!!sv&-Y " @ ++Dw{3<q= , BCY]E*Wq[#& ^^''$'7:
^^''T':1=
^^'''6q9
Z=:======r4   )gX9v>@g	@gGz@c                 *   t         j                  j                  d      }t        j                  j                  d||||      }t        t        t        j                        t        j                  "  } ||      }t        j                  j                  |      }t        ||        ||dd      }t        j                  j                  |dd      }t        ||       t        t        j                  ||       t        j                  ||dz
  z
  dkD        sJ t        t        j                  ||dz
         t        t        j                  |d       t        t        j                  ||t         j                  j                  d      d   	       y )
Nr   rZ   )r   r  r^   r_   r   r   r`   )r   r  r   r   r  )rc   r   RandomStater8   r  r   r   r   r   r   r   r   rand)
rl   r  r   r  r   r   	super_fitsuper_fittedinvgauss_fit	__class__s
            r2   r   z(TestInvgauss.test_fit_MLE_comp_optimizerD  s9    ii##D)~~!!sv&-YS " R $u~~.C	 ~~))$/\<0 !A15~~))$QA)>\<0 	&enndI vvtw{+q0111%ennd1M 	&enndC 	&ennd-/YY^^A->q-A	Cr4   c                     t        t        j                         t        j                  t
              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wr  )r  r8   r  r   r   r"   r   rq   s    r2   test_fit_raise_errorsz"TestInvgauss.test_fit_raise_errorsh  s=    ENN+]]<(NNyq1 )((s   $A  A)c                    g d}g d}t         j                  j                  d|      }t        ||       t         j                  j                  dd      }t	        |d       t         j                  j                  dd      }t	        |d	       t         j                  j                  d
d      }t	        |d       t         j                  j                  dd      }t	        |d       y )N)g4wT;?gjdV&}?g{i\0>gDV_h?gqacX?)r   r   r   r   r   皙?r  r]  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r8   r  rj   r   r   r   )rl   r  rQ   rL   
cdf_actual	sf_actuals         r2   rs  zTestInvgauss.test_cdf_sfn  s    ."##CB#/Xv& ^^''$'7

$9:NN%%cd%3		#78 ##GV4 34 ##Hf5 12r4   c                 h   t         j                  j                  dd      }t        |d       t         j                  j                  dd      }t        |d       t         j                  j	                  dd      }t        |d       t         j                  j	                  dd      }t        |d	       y )
Nr  r+  r*  giJ.r,  gr^ߺr]  gpgFgpQ^L)r8   r  r  r   ru  )rl   r  ru  s      r2   rw  zTestInvgauss.test_logcdf_logsf  s     &&v$&7 12&&sD1 56$$Ut$456$$S$/01r4   zmu, ref))g:0yU>g,9)r]  g%!)rw   g40)r   gK'
@)r  g`p
@c                 Z    t        t        j                  j                  |      |d       y r  )r   r8   r  r@   )rl   r  r~  s      r2   rj  zTestInvgauss.test_entropy  s     	..r2CeDr4   )r   r   r   r0  r   r   r   r  r   r'  rs  rw  rj  __classcell__r%  s   @r2   r  r  !  s     [[7')>?A>A>: [[7')>?A CA CD2!3F2. [[Y )D E
EE
Er4   r  c                       e Zd Zej                  j                  dg d      ej                  j                  dg d      d               Zej                  j                  dg d       fd       Zd	 Zd
 Z	d Z
d Z xZS )TestLaplacer   )r<  r   r   r`   r  )r   r`   r   rY   c                    t         j                  j                  d      }t        j                  j                  d|||      }t        j                  |      }t        j                  t        j                  ||z
              t        |      z  }t        j                  j                  |      \  }}t        ||dd       t        ||dd       t        j                  j                  ||      \  }}t        ||dd       t        j                  j                  ||      \  }}t        ||       |dz  }t        j                  t        j                  ||z
              t        |      z  }t        j                  j                  ||      \  }}t        ||       t        j                  j                  ||      \  }}t        ||       t        t        t        j                  j                  |||	       t        t        t        j                  j                  t         j                   g       t        t        t        j                  j                  t         j"                  g       y )
Nr   rZ   r.  r}   r  r   r  r`   r  )rc   r   r   r8   r'  r   r  rf  r   r
  r   r   r   r  r  r  r  r  )	rl   r   r  r   r   loc_mler  r^   r_   s	            r2   r  zTestLaplace.test_fit  s   
 ii##D)}}  cwi.1 ! 3 ))D/FF266$.12SY>	 ]]&&t,
UW5u=yu5A ]]&&t'&:
Uyu5A]]&&tI&>
UW% kFF266$*-.T:	 ]]&&t#&6
UY& ]]&&tI&>
UWc" 	lEMM$5$5t'&	( 	j%--"3"3bffX>j%--"3"3bffX>r4   rvs_loc,rvs_scale))r<  rY   rY   r   )ru   r  c                    t         j                  j                  d      }t        j                  j                  d|||      }d }t        j                  j                  |      \  }}t        t        t        j                        t        j                    |      \  }}	 ||||      }
 |||	|      }|
|k  st        j                  |
|dd      sJ y y )Nr   r   r.  c           	          dt        |       t        j                  d|z        z  d|z  t        j                  t        j                  || z
              z  z
  z  S )Nr   r`   r   )r
  rc   r  rf  r   )r^   r_   r   s      r2   llz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.ll  sO    CI%8E'266"&&*<#==> ? ?r4   r}   r  )
rc   r   r   r8   r'  r   r   r   r   r   )rl   r   r  r   r   r;  r^   r_   loc_opt	scale_optll_mlell_optr%  s               r2   r   z'TestLaplace.test_fit_MLE_comp_optimizer  s     ii##D)}}  dy.1 ! 3	? ]]&&t,
U"4#6#(==66:) 	C%GY-"++ff38u#F 	F F #Fr4   c                     t        j                  g d      }t        j                  j	                  |d      \  }}t        |ddd       t        j                  j	                  |d      \  }}t        |ddd       y )N)rM  rM  rT  rN  r  rJ  r  r   r   r}   r  r  )rc   r   r8   r'  r   r   )rl   r   r^   r_   s       r2   test_fit_simple_non_random_dataz+TestLaplace.test_fit_simple_non_random_data  sg    xx78]]&&t!&4
Uqu59]]&&tA&6
UQU7r4   c                 <   d}t         j                  j                  |       }|dk(  sJ t         j                  j                  |      }|dk(  sJ t         j                  j                  |      }|dk(  sJ t         j                  j                  |       }|dk(  sJ y )Nr   rz   rM  )r8   r'  rj   r   )rl   rX   p0p1s       r2   test_sf_cdf_extremesz TestLaplace.test_sf_cdf_extremes  s    ]]r" Syy ]]q!Syy]]a  Syy ]]qb!Syyr4   c                     d}t         j                  j                  |      }t        |t	        j
                  |       dz  d       y )Nr  r`   r   r~   )r8   r'  r   r   rc   r   )rl   rX   ro  s      r2   r  zTestLaplace.test_sf  s5    MMQ2661":a<e4r4   c                     d}t         j                  j                  |      }t        |t	        j
                  d|z         d       y )Ng}:r`   r   r~   )r8   r'  r  r   rc   r  )rl   ro  rX   s      r2   r  zTestLaplace.test_isf  s5    MMa BFF1Q3K<e4r4   )r   r   r   r   r   r   r  r   rA  rE  r  r  r1  r2  s   @r2   r4  r4    s    [[Y6[[[-8+? 9 7+?Z [[0 3? @F@F(8*5
5r4   r4  c                   l   e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      ej                  j                  dd	g      ej                  j                  d
ddg      ej                  j                  dddg      d                             Z	y)TestLogLaplacec                     t        j                  g d      }t        j                  g d      }g d}t        t        j                  j                  ||      |d       y )N)ry   rT  rN  )r  r    4&kC)g ?gKH9gXrL0r}   r~   )rc   r   r   r8   
loglaplacer   )rl   r  rX   r~  s       r2   r  zTestLogLaplace.test_sf#  sE     HH_%HH'(+((++Aq13UCr4   c                 p    d}g d}g d}t        t        j                  j                  ||      |d       y )Nr  )r   rV   r  r{  r  )gHhlh#?gH]9@?g"fj#@g11Ags!8wBr|  r~   )r   r8   rL  r  )rl   r  rx  r~  s       r2   r  zTestLogLaplace.test_isf+  s4     +6((,,Q2CeDr4   r  r   r`   r   r   c                 J   d|dz
     }t        j                  d|dz   d      }t        t        j                  j                  ||      t         j                         t        j                  t        j                  t        j                  j                  ||                  rJ y )NrU  r   ru   rV  )	rc   r  r   r8   rL  r  r  r   r  )rl   r  momr  s       r2   test_moments_statsz!TestLogLaplace.test_moments_stats4  s~    QUmIIc1s7C( 	((//15rvv> 66"++e&6&6&<&<Q&<&LMNNNNr4   r  )ru   rM  ry   z
loc, scale)r  g@fix_cTFr  c                    t         j                  j                  d      }t        j                  j                  |||d|      }d|i}|r||d<   |r||d<   dt        |      z
  }	|	dk(  rMd	}
t        j                  t        t        f|

      5  t        j                  j                  |fi | d d d        y t        t        j                  |fi | y # 1 sw Y   y xY w)Nr   rZ   r  r   fcr   r   r   r  r  )rc   r   r   r8   rL  r   r
  r   r   r  r  r   r   )rl   r  r^   r_   rR  r  r   r   r   nfreer  s              r2   test_fit_analytic_mlez$TestLogLaplace.test_fit_analytic_mle?  s     ii##$78##A3e#14 $ 6 }DJ"DNCIA:MIj9K  $$T2T2 L%e&6&6EE	 Ls   !CCN)
r   r   r   r  r  r   r   r   rQ  rV  r:   r4   r2   rI  rI  !  s    DE [[S,/O 0O [[S/2[[\L>:[[WtUm4[[[4-8F 9 5 ; 3Fr4   rI  c                      e Zd Zej                  j                  dddg      d        Z ej                  d      d        Zej                  j                  dg d	      ej                  j                  d
g d      ej                  j                  dg d      ej                  j                  d e	ddgd      D  cg c]  }d|v r|
 c}}       d                             Z
d Zd Zd Zyc c}} w )TestPowerlawzx, a, sf)re  ry   g      ?)g     ?g      p?gSQ>c                 \    t        t        j                  j                  ||      |d       y r|   )r   r8   powerlawr   )rl   rX   r0   r   s       r2   r  zTestPowerlaw.test_sf^  s!     	))!Q/%@r4   r%  r&  c                 @    t         j                  j                  d      S r.  r)  rq   s    r2   r   zTestPowerlaw.rngd  r*  r4   r   )rV   ru   r   r   r`   r   r+  r  r,  rL  TFr   rM  c                 *   t         j                  j                  d||||      }t               }	|r||	d<   |r6t	        j
                  |j                         t        j                         |	d<   |r||	d<   t        t         j                  |fi |	ddi y )Nr  )r   r0   r^   r_   r   r   r   r   r   T)	r8   rZ  r   r  rc   	nextafterr%  r  r   rS  s
             r2   r   z(TestPowerlaw.test_fit_MLE_comp_optimizerh  s     ~~!!siW(1 " E v"DJ<<
RVVG<DL&DN 	&ennd 	<d 	<6:	<r4   c           	          d}d}d}t         j                  j                  |||dt        j                  j                  d            }dt        j                  |      dz  i}t        t         j                  |fi | y )	Ng`- @rz   grߟA@rZ   r   )r0   r^   r_   r   r   r   r`   )r8   rZ  r   rc   r   r   ptpr   )rl   r0   rU  r_   r   r   s         r2   test_problem_casezTestPowerlaw.test_problem_case  ss     #"~~!!A85s/1yy/D/DQ/G " I "&&,*+%enndCdCr4   c                 (   t        t        j                         d}t        t        |      5  t        j                  j                  g ddd       d d d        d}t        t        |      5  t        j                  j                  g dd       d d d        d}t        t        |      5  t        j                  j                  g dd	       d d d        d
}t        t        |      5  t        j                  j                  g dd       d d d        d}t        t        |      5  t        j                  j                  g dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   y xY w)Nz7 Maximum likelihood estimation with 'powerlaw' requiresr  r   r`   r   r   r   r  r`   r   r   z$Negative or zero `fscale` is outsider0  r  z0`fscale` must be greater than the range of data.)r  r8   rZ  r  r"   r   r  r  s     r2   rX  zTestPowerlaw.test_fit_warnings  s"   ENN+H<s3NNyq; 4 I<s3NNyq1 4 I<s3NNyq1 4 6:S1NNy4 2 B:S1NNy3 21) 43
 43
 43
 21
 21s;   %E-$E$,$E0+$E<*$FE!$E-0E9<FFc                     g d}t         j                  }t        j                  d      5  t	        ||       d d d        y # 1 sw Y   y xY w)N)r   r   r`   r`   r   r   r   r   r   r   r   r  rO  over)r8   rZ  rc   r\  r   )rl   r   rM   s      r2   test_minimum_data_zero_gh17801z+TestPowerlaw.test_minimum_data_zero_gh17801  s4     4~~[[h')$5 (''s   AA
N)r   r   r   r   r   r   r  r2  r   r'   r   r`  rX  rf  r]  s   00r2   rX  rX  [  s    [[Z1HJKAKA V^^*%+ &+ [[[*=>[[Y
3[[[*5[[<)0$q)I -)IA!&!  )I -.<. 6 4 ?<$D466{-s   >C/rX  c                   ,   e Zd Zej                  j                  dg d      d        Zej                  j                  dddg      d        Zej                  j                  dg d      d	        Zej                  j                  dg d
      d        Z	y)TestPowerLogNormzx, c, s, ref))rZ   r  r   ga!R()r]  r  r   g;?)r]  r  r   gE?)MDr  r   g=c                 ^    t        t        j                  j                  |||      |d       y r   )r   r8   r#  r   rl   rX   r  rG   r~  s        r2   r  zTestPowerLogNorm.test_sf  s%     	**--aA6%Hr4   zq, c, s, ref)g?r  r   rw   )gR4-r  r   r   c                 ^    t        t        j                  j                  |||      |d       y )Ng|=r~   )r   r8   r#  r  )rl   rx  r  rG   r~  s        r2   r  zTestPowerLogNorm.test_isf  s%     	**..q!Q75Ir4   ))(,* Er  r   g?)r  r  r   gv6)r  r  r   g+	94|7)rw  r  r   g?c                 ^    t        t        j                  j                  |||      |d       y )Ngt =r~   )r   r8   r#  rj   rk  s        r2   rU  zTestPowerLogNorm.test_cdf  s%     	**..q!Q75Ir4   ))ri  r  r   gS^Ռe9)@xDr]  r   g0g;)g\)c=Hr]  r   g7H7c                 ^    t        t        j                  j                  |||      |d       y )NgAfc=r~   )r   r8   r#  rb   rk  s        r2   rK  zTestPowerLogNorm.test_pdf  s%    
 	**..q!Q75Ir4   N)
r   r   r   r   r   r   r  r  rU  rK  r:   r4   r2   rh  rh    s    " [[^EF
IF
I
 [[^ACEFJFJ [[^AB
JB
J [[^GHJ	HJr4   rh  c                       e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zy	)
TestPowerNormr  ))rh  r   g| <)r  r`   ge()rZ   r  g%!@6)r  rw   gT;-c                 \    t        t        j                  j                  ||      |d       y r   )r   r8   	powernormr   r  s       r2   r  zTestPowerNorm.test_sf  s!     	**1a0#EBr4   rx  ))r  r  gĿ)gwJ?rZ   g!X)r  r  g缂U)r  r  gͫ1@)r  r`   gD@)Jz5r   gU!zYr@c                 \    t        t        j                  j                  ||      |d       y Nr	  r~   )r   r8   rt  r  r|  s       r2   r  zTestPowerNorm.test_isf  s!     	++Aq13UCr4   ))irh  g.u	T9)r`   rh  ?)r  rh  gsK-)r<  r  gk8>)r  r  g^u1-c                 \    t        t        j                  j                  ||      |d       y r  )r   r8   rt  rj   r  s       r2   rU  zTestPowerNorm.test_cdf  s!     	++Aq13UCr4   N)	r   r   r   r   r   r   r  r  rU  r:   r4   r2   rr  rr    s     [[[CD
CD
C [[[=>D>D [[[BCDCDr4   rr  c                   f    e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	y)	TestInvGammac                 
   t        j                         5  t        j                  dt               t        j
                  j	                  dd      }g d}t        ||       g d}t        j
                  j	                  |d      }g dt        j                  dd	gt        j                  d
dgt        j                  t        j                  dgf}t        ||      D ]  \  }}t        ||        	 d d d        y # 1 sw Y   y xY w)Nrl  g(\O3@rU  r  )g~?gCX&?g*7gS?gBqFq @)皙?@gffffff@)r  gEy?gў3oz?g^Yb?g,r?gOD@g2*Z@gFN8@)rp  rq  rr  rs  r8   r  r   rc   r  r  r  r   )rl   rU  rQ   r0   rX   r  s         r2   test_invgamma_inf_gh_1866z&TestInvGamma.test_invgamma_inf_gh_1866"  s     $$&!!'>:>>''%'@D%HD(+A>>''!V'<D8}=k:57H D(+1#Aq) , '&&s   CC99Dc                     t        j                  dd      }t        j                  j	                  |d      }t        j                  j                  |d      }t        ||       y )Ngr   r   )rc   r  r8   r  rj   r   r   r  s       r2   r  zTestInvGamma.test_cdf_ppf5  sH    KKa NNq!$^^1%2r4   c                     t         j                  dkD  rt        j                  dd      }nt        j                  dd      }t        j
                  j                  |d      }t        j
                  j                  |d      }t        ||d       y )N        r`   rZ      r   rM  r~   )	sysmaxsizerc   r  r8   r  r   r  r   r  s       r2   r  zTestInvGamma.test_sf_isf<  sh    ;;As#A Ar"ANNa#^^1%2C(r4   a, ref)r   g70K6:)r  gVMOuc                 Z    t        t        j                  j                  |      |d       y r|   )r   r8   r  r@   rl   r0   r~  s      r2   test_large_entropyzTestInvGamma.test_large_entropyI  s     	..q13UCr4   N)
r   r   r   r  r  r  r   r   r   r  r:   r4   r2   r{  r{  !  sC    *&) [[X?:<=	D=	Dr4   r{  c                   $    e Zd Zd Zd Zd Zd Zy)TestFc           	      B   t         j                  ddgg}|D ]#  \  }}} |j                  |j                  g| }% |D cg c]#  \  }}} |j                  |j                  g| % }}}}|D cg c]  \  }}}|
 }}}}t	        ||       y c c}}}w c c}}}w )N)r`   r   rM  )r8   frb   r0   r   )	rl   r   _f_args_correctansr   	_correct_corrects	            r2   r  zTestF.test_endpointsY  s    &#&'#'Bx"&&&&C $( 9==E1vrvvbdd#U#=9=>!5UI9>!#w/ >>s   (B5Bc                 D   t         j                  j                  ddd      \  }}}}t        t        j                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |              y )Nr#        @rU  rV  )r8   r  r	   rc   r  r<  s        r2   test_f_momentszTestF.test_f_momentsc  se    WW]]2sF];
1aAAABKKN"#r4   c                     t        j                         5  t        j                  dt               t        j
                  j	                  dgdz  g dd       d d d        y # 1 sw Y   y xY w)Nrl  r#  r   )r`   r   r  r=  rU  dfndfdrW  )rp  rq  rr  rs  r8   r  rq   s    r2   test_moments_warningszTestF.test_moments_warningsk  sF    $$&!!'>:GGMMrd1f,MG '&&s   AA!!A*c                    t        j                  dgdgg      }t        j                  ddg      }t        j                  j                  ||d      \  }}}}||dz
  z  gdz  }t	        ||       d|dz  z  ||z   dz
  z  |z  |dz
  dz  z  |dz
  z  }t	        ||       d|z  |z   dz
  t        j
                  d|dz
  z        z  |d	z
  t        j
                  |||z   dz
  z        z  z  }	t	        ||	       d|d
|z  dz
  z  ||z   dz
  z  |dz
  |dz
  dz  z  z   z  }
||d	z
  z  |dz
  z  ||z   dz
  z  }|
|z  }t	        ||       y )Nr   r#  rO  rU  r  r`   r   r=  r  r      )rc   r   r8   r  r   r  )rl   r  r  rW  rX  rG   rU   r  v2s2k2numk2denk2s                r2   test_stats_broadcastzTestF.test_stats_broadcastq  su   hhbT{#hhBx WW]]sV]D
1aS1Woq 2aZ39q=)C/37Q,>#'J2us{Q"''!S1W+"66a2773c	A#67792cQsURZ(C#IM:Qw37Q,./ 0sQw37+sSy1}=U]2r4   N)r   r   r   r  r  r  r  r:   r4   r2   r  r  X  s    0$Hr4   r  c                      e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	ej                  j                  dg d	      ej                  j                  d
ddgddgddgg dg dgddgddggdgdggg      d               Z
ej                  j                  d
ddgddgddgg dg dgddgddggdgdggg      d        Zd Zy)TestStudentTc                 ^    t        t        j                  j                  ddg      ddg       y )Nr   r  g?g?)r   r8   r   rt  rq   s    r2   test_rvgeneric_stdzTestStudentT.test_rvgeneric_std  s"    !%''++q!f"5
J7OPr4   c                    t        t        j                  j                  dd      t        j                  t        j
                  t        j
                  t        j
                  f       t        t        j                  j                  dd      dt        j                  t        j
                  t        j
                  f       t        t        j                  j                  dd      dt        j                  t        j
                  t        j
                  f       t        t        j                  j                  dd      ddt        j
                  t        j                  f       t        t        j                  j                  d	d
      t        j
                  t        j                  f       t        t        j                  j                  dd
      dt        j                  f       t        t        j                  j                  dd
      dt        j                  f       t        t        j                  j                  dd
      d       y )Nr   rU  )r  rW  )\(?rz   r`   gGz @g     i@r   r  gGz@r   g
ףp=
@)rz   gq    @)r   r8   r   rc   r  r  rq   s    r2   test_moments_tzTestStudentT.test_moments_t  sX   UWW]]a]8VVRVVRVVRVV4	6UWW]]dF];"&&"&&"&&1	3UWW]]a]8"&&"&&"&&1	3UWW]]dF];/266266:	<UWW]]a]68HIUWW]]dD]9C=IUWW]]a]6bffFUWW]]dD]9;RSr4   c                 j    g d}g d}t        t        j                  j                  |      |d       y )N)r   r`   r  rZ   )g?@gTM]?ggY?U?r   r~   r   r8   r   r@   )rl   r  rQ   s      r2   test_t_entropyzTestStudentT.test_t_entropy  s'    ;+XEBr4   zv, ref)rZ   r  )r  r  c                 Z    t        t        j                  j                  |      |d       y r  r  )rl   rX  r~  s      r2   test_t_extreme_entropyz#TestStudentT.test_t_extreme_entropy  s     	*Ce<r4   methname)rb   r   rj   r   r   r  
df_infmaskr   r   )r   r   r   )r   r   r   c                    t         j                  j                  d       t        j                  |t              }t         j                  j                  dd|j                        }t        j                  j                  |j                   }t         j                  ||<   t        j                  |dd      }t        j                  ||    dd      }t        j                  dd      }t        ||      }t        ||      }	t        ||      }
 ||      }t        ||    |
||                t        ||     |	||                 y )	Nr   r   rY   r4  r   r   r  r^   r_   r]   )rc   r   r   r   boolrn  r;  randnr  r8   r   r  r'  r   )rl   r  r  r  rX   t_dist
t_dist_ref	norm_distt_meth
t_meth_ref	norm_methr   s               r2   test_t_inf_dfzTestStudentT.test_t_inf_df  s    			qZZ
$7
YYq":+;+;<IIOOZ--.:BAQ/WWJ;Qa@
JJ1A.	*Z2
Ix0	QiS_i*&>?S*%z!ZK.'ABr4   c                 T   t         j                  j                  d       t        j                  |t              }t         j                  j                  dd|j                        }t         j                  ||<   t        j                  j                  |ddd      }t        j                  j                  ddd	      }t        j                  j                  ||    ddd      }t        d
      D ]-  }t        ||   |   ||          t        ||   |    ||          / t        j                  j                  |dd      }t        j                  j                  dd      }t        j                  j                  ||    dd      }t        ||   |       t        ||    |       y )Nr   r  rY   r4  r   r   rU  )r  r^   r_   rW  r^   r_   rW  r   r  r]   )rc   r   r   r   r  rn  r;  r  r8   r   r  r  r   r@   )rl   r  r  r   
res_ex_infres_ex_noinfr  s          r2   test_t_inf_df_stats_entropyz(TestStudentT.test_t_inf_df_stats_entropy  s[   
 			qZZ
$7
YYq":+;+;<:ggmmrq6mBZZ%%!1f%E
ww}}J;Qa,2 % 4qAQ
+Z];Q,l1o>  ggoo!o4ZZ''AQ'7
ww"j[/qJS_j1S*%|4r4   c                     g d}g d}g d}g d}t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y )N)r   r  rY   r   )r  d~QJro  r   )gZ_2g9g!ǟuIgdg)g73?r   gմFhAW;gm0_?r|  r~   )r   r8   r   r   rb   )rl   rX   r  
logpdf_refpdf_refs        r2   test_logpdf_pdfzTestStudentT.test_logpdf_pdf  sS     #@
>q"-zFAr*G%@r4   N)r   r   r   r  r  r  r   r   r   r  r  r  r  r:   r4   r2   r  r    s(   QTC [[X68:;=;= [[Z *< =[[\QFQFQF-6	,B./VaV,<./S1#J,8 9C	9=C  [[\QFQFQF-6	,B./VaV,<./S1#J,8 95	95&
Ar4   r  c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)TestRvDiscretec                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestRvDiscrete.setup_method  r1  r4   c                    g d}g d}d}t        j                  d||f      }|j                  |      }t        |t        j
                        sJ t        ||      D ]0  \  }}t        t        ||k(        t        |      z  |z
        dk  r0J  |j                         }t	        j                  t        |      t        j                        sJ y )N)r   r   r   r`   r   r   )rz   rw  r)  rz   rw  rz   r   sample)namevaluesr4  r  )r8   r=   r   r=  rc   r]  r  r   rf  r   r   r   integer)rl   statesprobabilitysamplesr  rX   rG   ro  s           r2   rC  zTestRvDiscrete.test_rvs  s    $48V[4IJEEwE!RZZ(((,DAqs16{5>1A56=== - EEG}}T!Wbjj111r4   c                 :   t        j                  g d      }t        j                  g d|f      }t	        t        ||             }|j                         }t        ||       t        j                  g dg df      }|j                         }t        |d       y )N)re  r  rw  r  r  )rM  r   r   rz   )	rc   r   r8   r=   rf  r   r@   r   r   )rl   r>  ro  rh  ri  s        r2   rj  zTestRvDiscrete.test_entropy  sy    *+i%78%u-..
IIK:&i%=>IIKQr4   c                     g d}g d}t        j                  ||f      }ddgddgg}t        |j                  |      dd	gd
dggd       y )Nrb  ru   rw  r  r  rM  r  rT  r`   ru   r  rz   rw  r|  r   )r8   r=   r   rI  )rl   xkpkrk  rX   s        r2   rc  zTestRvDiscrete.test_pmf  s]    r2h/"X!Wq	sc$*/	1r4   c                     g d}g d}t        j                  ||f      }g d}g d}t        |j                  |      |d       t        |D cg c]  }|j                  |       c}|d       y c c}w )Nrb  r  r  )r   rM  r}  r  ry   rT  r   r   )r   ru   ru   ru   r   r   r   r   r|  r   )r8   r=   r   rj   )rl   r  r  rk  x_valuesrQ   r  s          r2   rU  zTestRvDiscrete.test_cdf  sj    r2h/55x((? 	h7hh7 u	.7   A2c                     g d}g d}t        j                  ||f      }g d}g d}t        |j                  |      |d       t        |D cg c]  }|j                  |       c}|d       y c c}w )Nrb  r  r  )rV   ru   r  r   r   rM  )r   r   r`   r`   r   r   r|  r   )r8   r=   r   r   )rl   r  r  rk  q_valuesrQ   rx  s          r2   r^  zTestRvDiscrete.test_ppf  sj    r2h/0%x((? 	H5HqH5 u	.5r  c           	          g dg df}t        j                  |      }t        |j                  |j	                  |j
                  d d       dz         |j
                  dd         y )N)r   r`   r   r  r=  )rV   r  rw  rw  rV   r  r   r  r   )r8   r=   r   r   rj   r  )rl   rA  rk  s      r2   test_cdf_ppf_nextz TestRvDiscrete.test_cdf_ppf_next,  sU    !:;d+266"&&s"4t";<559	&r4   c                 D   t        j                  d      j                  d      }t        j                  g dg dg dg      }t	        j
                  ||f      }t        |j                         t        j                  |j                  |j                  z        d       y )NrO  )r   r   )rV   rV   r  r  )rV   rV   r  r  r  r|  r   )rc   r  r  r   r8   r=   r   r   rf  r  r  rl   r  r  rk  s       r2   test_multidimensionz"TestRvDiscrete.test_multidimension4  ss    YYr]""6*XX---/ 0 r2h/		RVVBEEBEEM%:Gr4   c                    g d}ddg}t        t        t        j                  fi t	        ||f       g d}t        t        t        j                  fi t	        ||f       g d}g d}t        t        t        j                  fi t	        ||f       g d}g d}t        t        t        j                  fi t	        ||f       ddg}ddg}t        t        t        j                  fi t	        ||f       y )Nr  ru   r  )ru   333333?gffffff濩r   r`   r   r   r   )rw  rw  rw  rw  r  r   )r  r  r8   r=   r  rl   r  r  s      r2   test_bad_inputzTestRvDiscrete.test_bad_input=  s    3Zj%"3"3MtB87LMj%"3"3MtB87LMj%"3"3MtB87LM'j%"3"3MtB87LMV3Zj%"3"3MtB87LMr4   c                 n   t        j                  d      j                  d      t        j                  dd      }}t	        t
        t        j                  fi t        ||f       t        j                  d      j                  d      t        j                  dd      }}t	        t
        t        j                  fi t        ||f       t        j                  d      j                  d      t        j                  dd      }}t        t        j                  ||f      j                  d      d       y )	Nr   r`   r`   r`   r   gUUUUUU?r  r  r   r`   r   )rc   r  r  r  r  r  r8   r=   r  r   rI  r  s      r2   test_shape_rv_samplez#TestRvDiscrete.test_shape_rv_sampleQ  s     1%%f-rwwvs/CBj%"3"3MtB87LM 1%%f-rwwvs/CBj%"3"3MtB87LM 1%%f-rwwvs/CBU&&r2h7;;A>Dr4   c                     g d}g d}t        j                  ||f      }t        |j                         t	        j
                  |j                  |j                  z        d       y )N)r   r`   r   r  r  r#  )rV   r  r  r  r  rV   r  r|  r   )r8   r=   r   r   rc   rf  r  r  r  s       r2   test_expect1zTestRvDiscrete.test_expect1`  sG     +r2h/		RVVBEEBEEM%:Gr4   c           
      t   g d}g d}t        j                  ||f      }t        |j                         |j	                         d       t        |j                         t        d t        ||      D              d       t        |j                  d       t        d t        ||      D              d       y )	N)/g      i@g     r@g      y@g     @@g     @g     @      @g      @r  g     0@g     @g     P@g     @g     p@g      @g     @g      @g     @r  g     h@g     0@g     @g     @g     @g     P@g     @g     @g     @r  g     8@g      @g     ȩ@g     @g     X@g      @g     @g     @g     x@g     @@g     @g     h@g     ̰@g     0@g     @g     @g     \@g     @)/g-C6:?rz   gF%uk?g:vz?rz   rz   g.nr?g|гY?rz   rz   rz   g @6*? 4U0*C?g@+?gC6z?g nr?g ?gOjM?g n?g1w-!?g:pΈ?gףp=
?g _Le?rz   g^)p?g~jtx?gJ4q?gGzt?g J4q?g Mb@?g@Psׂ?g@^)ˀ?rz   rz   g N@s?g 1w-!_?r  gൄ|г?rz   gH}}?rz   g
F%u?rz   rz   g ^)ˀ?g v?rz   r  r|  r   c              3   ,   K   | ]  \  }}||z    y wro   r:   r^  rX  ws      r2   	<genexpr>z.TestRvDiscrete.test_expect2.<locals>.<genexpr>  s     9jdaAEjs   c                     | dz  S Nr`   r:   r   s    r2   rH   z-TestRvDiscrete.test_expect2.<locals>.<lambda>      AqDr4   c              3   2   K   | ]  \  }}|d z  |z    yw)r`   Nr:   r  s      r2   r  z.TestRvDiscrete.test_expect2.<locals>.<genexpr>  s     <AAqD1Hs   )r8   r=   r   r   r   rf  r  )rl   r  pyrk  s       r2   test_expect2zTestRvDiscrete.test_expect2g  s    =?  q"g. 			RWWYU;		9c!Rj99	G 			.1<Q<<5	Jr4   N)r   r   r   r0  rC  rj  rc  rU  r^  r  r  r  r  r  r  r:   r4   r2   r  r    sC    2
	1..&HN(EH#Jr4   r  c                       e Zd Zd Zd Zy)TestSkewCauchyc                    t        j                  ddd      }t        t        j                  j                  |d      t        j                  j                  |             t        t        j                  j                  |d      t        j                  j                  |             t        t        j                  j                  |d      t        j                  j                  |             y Nr<  r   rZ   r   r  )	rc   rR  r   r8   
skewcauchyrb   r#  rj   r   r  s     r2   test_cauchyzTestSkewCauchy.test_cauchy  s    KKAs#!%"2"2"6"6qA"6">"',,"2"21"5	7!%"2"2"6"6qA"6">"',,"2"21"5	7!%"2"2"6"6qA"6">"',,"2"21"5	7r4   c                    t         j                  j                  d       t         j                  j                  d      dz  dz
  }t         j                  j                  d      dz  dz
  }g d}g d}t	        t
        j                  j                  ||      |       t	        t
        j                  j                  ||      |       t	        t
        j                  j                  ||      |       y )Nr   rY   r`   r   r   )
g& 45?gQʶ?g-4<??gJ?gw@v?gJ%?g>[u?g
a2?g	Rn?gѦ}cي?)
gN@Q?gPPz@	?g?g;
7?glg?g!?%?gQҙ?gC"?go?g@Sg?)
rc   r   r   r!  r   r8   r  rb   rj   r   )rl   r0   rX   rb   rj   s        r2   test_skewcauchy_Rz TestSkewCauchy.test_skewcauchy_R  s    & 			qIINN2"Q&IINN2#a'%$ 	((,,Q2C8((,,Q2C8((,,S!4a8r4   N)r   r   r   r  r  r:   r4   r2   r  r    s    7 9r4   r  c                   ~    e Zd Zd Zej
                  d        Zej                  j                  dg d      d        Z	y)TestJFSkewTc                    dx}}|dz  }g d}g d}t        j                  ||      }t        j                  |      }t        |j	                  |      |j	                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  d      |j                  d             y )Nr   r`   )r  rz   rM  ry   )rz   rV   re  r   r   rM  rU  )r8   	jf_skew_tr   r   rb   rj   r   )rl   r0   r1   r  rX   rx  jfr   s           r2   test_compare_tzTestJFSkewT.test_compare_t  s     	AU!-__Q"GGBKq	1558,q	1558,q	1558,(!''&/:r4   c                     t        j                  t        t              j                  dz        }t         j
                  j                  |d      S )a  Sample data points computed using the `ST5` distribution from the
        GAMLSS package in R. The pdf has been calculated for (a,b)=(2,3),
        (a,b)=(8,4), and (a,b)=(12,13) for x in `np.linspace(-10, 10, 41)`.

        N.B. the `ST5` distribution in R uses an alternative parameterization
        in terms of nu and tau, where:
            - nu = (a - b) / (a * b * (a + b)) ** 0.5
            - tau = 2 / (a + b)
        z"data/jf_skew_t_gamlss_pdf_data.npyz	x,pdf,a,bnames)rc   loadr   __file__parentrec
fromarraysr  s     r2   gamlss_pdf_datazTestJFSkewT.gamlss_pdf_data  sA     wwN!!$HH
 vv  [ 99r4   za,b)r  )r=  r   )rO     c                     ||d   |k(  |d   |k(  z     }|d   |d   }}t        |t        j                  ||      j                  |      d       y)zCompare the pdf with a table of reference values. The table of
        reference values was produced using R, where the Jones and Faddy skew
        t distribution is available in the GAMLSS package as `ST5`.
        r0   r1   rX   rb   r  r~   N)r   r8   r  rb   )rl   r  r0   r1   r   rX   rb   s          r2   test_compare_with_gamlss_rz&TestJFSkewT.test_compare_with_gamlss_r  s_     S!Q&?3+?1+DE
 cDK3U__Q266q9Fr4   N)
r   r   r   r
  r   r2  r  r   r   r  r:   r4   r2   r  r    sH    ;  ^^: : [[U$>?	G @	Gr4   r  r`   r   g@r   gףp=
1@r8  gRZ@i   gS㥛Ԋ@rV   rW   g&@iQ i'  i0ybi l   HO1Z i3r0  irY   irZ   ikr  i1r   i  i4i N  i(  lEI. @ i c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  de      d	        Zd
 Zd Zd Zy)TestSkewNormc                 $    t        d      | _        y r.  )r   r   rq   s    r2   r0  zTestSkewNorm.setup_method  s    %d+r4   c                     t        j                  ddd      }t        t        j                  j                  |d      t        j                  j                  |             y r   )rc   rR  r   r8   skewnormrb   r  r  s     r2   test_normalzTestSkewNorm.test_normal  sB    KKAs#!%.."4"4Q!"4"<"'**.."3	5r4   c                    d}t         j                  j                  d|| j                        }t	        ||j
                         t         j                  j                  d|| j                        }t	        ||j
                         y )N)r   r   r   r   )r0   r   r   r0  )r8   r  r   r   r   r;  )rl   r;  rX   s      r2   rC  zTestSkewNorm.test_rvs  sa    NNEIUAGG$NN%dhhGUAGG$r4   c                    t         j                  j                  dt        d      dd| j                        }t        j                  |      t        j                  |      t        j                  |      t        j                  |      g}t         j                  j                  dddd      }t        ||d       t         j                  j                  d	t        d      dd| j                        }t        j                  |      t        j                  |      t        j                  |      t        j                  |      g}t         j                  j                  d	ddd      }t        ||d       y )
Nr   r  r   r`   )r0   r   r^   r_   r   rU  )r0   r^   r_   rW  rP  r  )r8   r  r   r\  r   rc   r   r  r  kurtosisr   )rl   XrQ   r  s       r2   rY  zTestSkewNorm.test_moments%  s
   NNSq,0HH  6GGAJq	5::a=%..:KL>>''!!V'L!(Ha@NN#c(,0HH  6GGAJq	5::a=%..:KL>>''"!1f'M!(Ha@r4   c                     g dg dg dg dg dg dg dg}|D ]4  \  }}}t         j                  j                  ||      }t        ||d	       6 y )
N)r  r   gEAV)r  r   gV|@$a)r  r   g0rY)r  ru   Zk)rD  r   r$  )r   r  ļ)r`   g    cr%  r  r~   )r8   r  r   r   )rl   
logpdfvalsrX   r0   	logpdfvalrr  s         r2   test_pdf_large_xzTestSkewNorm.test_pdf_large_x2  sT     2302455

  *OAq)>>((A.DD)$7  *r4   c                     t         j                  j                  g dd      }t        |t	        j
                  d      d       t         j                  j                  dd      }t        |dd       y )	N)rY   r  r3  r   r   r|  r~   r  r  rM  )r8   r  rj   r   rc   onesr  s     r2   test_cdf_large_xzTestSkewNorm.test_cdf_large_xB  sP     NN|R02771:E2NNr3'3U+r4   c                     g dg dg dg dg dg}|D ]d  \  }}}t         j                  j                  ||      }t        ||d       t         j                  j	                  | |       }t        ||d       f y )N)rf  r   gzbLe9)r  r`   gn'/2;)r   r   g::)rO  r   g|<)r  r  r  r  r~   )r8   r  rj   r   r   )rl   cdfvalsrX   r0   cdfvalro  s         r2   test_cdf_sf_small_valuesz%TestSkewNorm.test_cdf_sf_small_valuesK  st     .+,./
 $LAq&""1a(AAvD1!!1"qb)AAvD1 $r4   z
a, momentsc                     t        |d      D ]3  \  }}t        j                  j                  ||      }t	        ||d       5 y )Nr   )startr|  r~   )r  r8   r  r  r   )rl   r0   rW  orderrQ   rP  s         r2   test_noncentral_momentsz$TestSkewNorm.test_noncentral_moments\  s9    (:OE8..''q1CC6  ;r4   c           	      X   t         j                  j                  d      }d\  }}}t        j                  |||      }|j                  d|      }t        j                  j                  |dd      \  }}}	t        j                  j                  |dd      \  }
}}||cxk(  rdk(  sJ  J ||
k7  sJ t        j                  j                  |ddd	
      \  }}}|dk(  sJ t        j                  |||      }|j                  d      }t        j                  |      t        j                  |      f}t        ||       t        j                  j                  dd|      }t        j                  j                  |      }t        j                  t        j                  |            sJ t        j                  j                  |d	      \  }}}t        j                  |      sJ t        j                  |      t        j                  |      }}t        |||t        j                  dt         j                   z        z  z          t        ||dz  ddt         j                   z  z
  z         t        j                  j                  |d      \  }}}t        j                  j                  | d      \  }}}t        |||g| | |g       t        j                  j                  |d	      \  }} }!t        j                  j                  | d	      \  }"}#}$t        |"|#|$g| |  |!g       y )Nl   #ke )r   r8  ru   rZ   r   r  r   r   gmmr   methodmsrV  r   r7  r`   mle)rc   r   r   r8   r  r   r   r   r  r   r;  r   r  isinfr  r  rd   )%rl   r   r0   r^   r_   rM   r   a2loc2scale2a3loc3scale3a4loc4scale4dist4r   r~  r   a5loc5scale5rW  rX  a6ploc6pscale6pa6mloc6mscale6ma7ploc7pscale7pa7mloc7mscale7ms%                                        r2   r  zTestSkewNorm.test_fitb  s   ii##$78$3~~ae,hhCch2 !>>--c4a-@D& >>--c4a-@D&t q     Rxx !>>--c1Qt-LD&{{r40kk$k'ggclEJJsO+S! ||#> nn  &vvbkk#&''' !>>--d4-@D&xx|| wwt}bffTl14&2771RUU7+;";;<619AI67 $nn00U0CUG#nn00#e0DUGeW-ufg/FG#nn00T0BUG#nn00#d0CUGeW-ufg/FGr4   c                 X  	 t        j                  g dddgz  z   dgz         }t        j                  j	                  |      }t        j                  j                  ||      }t        j                  j	                  |d      }t        j                  j                  ||      }||dz
  k  sJ t         j                  j                  d      	d	d
dd}	fd}t        j                  t        j                  |||      }t         j                  j                  ||j                  d       y )N)r<  r   r  rO  r   r   T)superfitru   l   y
ND )r<  r   )r  rY   )r|  rY   r0   r^   r_   c                      t        | |      S )N)r   )r&   )funr   r   s     r2   	optimizerz0TestSkewNorm.test_fit_gh19332.<locals>.optimizer  s    )#vC@@r4   )rZ  r  r~   )rc   r   r8   r  r   r   r   r   testingr   params)
rl   rX   r\  r   params_superr~  r   rZ  
fit_resultr   s
            @r2   test_fit_gh19332zTestSkewNorm.test_fit_gh19332  s    
 HH*R1#X5;<##A&nn!!&!,
 ~~))!d);nn!!,2S3Y ii##$78y;G	A YYu~~q&IN



""6:+<+<4"Hr4   c                 \    t        t        j                  j                  dd      dd       y )Nrw   rv  gi}#%?r   r~   )r   r8   r  r   rq   s    r2   r^  zTestSkewNorm.test_ppf  s"     	**457HuUr4   N)r   r   r   r0  r  rC  rY  r(  r+  r/  r   r   r   _skewnorm_noncentral_momentsr3  r  r_  r^  r:   r4   r2   r  r    s`    ,5%A8 ,2" [[\+GH7 I7
.H`I6Vr4   r  c                   $    e Zd Zd Zd Zd Zd Zy)	TestExponc                 V    t        t        j                  j                  d      d       y r  )r   r8   r  rb   rq   s    r2   	test_zerozTestExpon.test_zero  s    U[[__Q'+r4   c                     t        t        j                  j                  d      d       t        t        j                  j	                  t        j                  j                  d            d       y )Nr  r  )r   r8   r  rj   r  r   rq   s    r2   	test_tailzTestExpon.test_tail  s=    U[[__U+U3U[[__U[[^^B%78"=r4   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y No_?46@yX5ͻ@j+?UX@)rc   r   r  r  r  r8   r  r   r  s     r2   test_nan_raises_errorzTestExpon.test_nan_raises_error  5    HHfffffbffEFj%++//15r4   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y ri  )rc   r   r  r  r  r8   r  r   r  s     r2   test_inf_raises_errorzTestExpon.test_inf_raises_error  rp  r4   N)r   r   r   re  rg  ro  rr  r:   r4   r2   rc  rc    s    ,>6
6r4   rc  c                   f    e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	y)	TestNormc                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y ri  )rc   r   r  r  r  r8   r  r   r  s     r2   ro  zTestNorm.test_nan_raises_error  5    HHfffffbffEFj%**..!4r4   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y ri  )rc   r   r  r  r  r8   r  r   r  s     r2   rr  zTestNorm.test_inf_raises_error  rv  r4   c                 b    g d}t        t        t        j                  j                  |d       y )Nr  shrimp)plate)r  r  r8   r  r   r  s     r2   test_bad_keyword_argzTestNorm.test_bad_keyword_arg  s    i(Cr4   r^   r   r   c                     d}t         j                  j                  d|z   d|z   |      }t        ||d       t         j                  j                  d|z    d|z    |       }t        ||d       y )Ngg	{F.:r#  rO  r^   r   r~   )r8   r  
_delta_cdfr   )rl   r^   rQ   r  s       r2   test_delta_cdfzTestNorm.test_delta_cdf  sm     )

%%bfbf#%>xe4

%%3i2c6%Exe4r4   N)
r   r   r   ro  rr  r{  r   r   r   r  r:   r4   r2   rt  rt    s;    5
5
D [[UQF+
5 ,
5r4   rt  c                       e Zd ZdZd Zd Zy)TestUniformgh-10300c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y ri  )rc   r   r  r  r  r8   rn  r   r  s     r2   ro  z!TestUniform.test_nan_raises_error  7    HHfffffbffEFj%--"3"3Q7r4   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y ri  )rc   r   r  r  r  r8   rn  r   r  s     r2   rr  z!TestUniform.test_inf_raises_error  r  r4   N)r   r   r   __doc__ro  rr  r:   r4   r2   r  r    s    8
8r4   r  c            
       6   e Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Z
ej                  j                  dg d	g d
g dg dg dg      d        Zej                  j                  dg dg dg dg dg dg dg      d        Zy)TestExponNormc                 2   d }d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             y )	Nc                     dd| |z  dz  z  z   }d| |z  dz  z  |dz  z  }dd| |z  dz  z   dz  z  }|d| z  z   ||z  d| | z  z  z   ||gS )NrM  r   r`   r   r        @r   r:   )lamsigr  opK2exp_skewexp_kurts         r2   get_momsz,TestExponNorm.test_moments.<locals>.get_moms  sz     c#g\))DC#I>)D4L8Ha39q.0B77H3JC#s3w- 78LLr4   )r   r   r   rM  rU  r  )r0  r`   rV   )r   r   r   )r<  r#  r8  )r8   	exponnormr   )rl   r  r  r  r  Kstss          r2   rY  zTestExponNorm.test_moments  s.   	M C39oo##A2S&#IC#sB!78!C39oo##A2S&#IC#sB!78C39oo##A2S&#IC#sB!78"C39oo##A2S&#IC#sB!78r4   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |dd       y 	Nrj  rk  rl  rm  rn  r   r   r  )rc   r   r  r  r  r8   r  r   r  s     r2   ro  z#TestExponNorm.test_nan_raises_error  ;    HHfffffbffEFj%//"5"5qqKr4   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |dd       y r  )rc   r   r  r  r  r8   r  r   r  s     r2   rr  z#TestExponNorm.test_inf_raises_error  r  r4   c                 T   t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       y )Ni|r   rz     rw   )r   r8   r  rb   rq   s    r2   test_extremes_xzTestExponNorm.test_extremes_x  sn    EOO//a8#>EOO//a8#>EOO//d;SAEOO//d;SAr4   zx, K, expected))r  rw   g6
N-)r   rw   g՜n+H?)r   rw   gi?)r  rw   gbJI-)rY   r   gI8?)rY   r,  gQ3|-0?c                 \    t        t        j                  j                  ||      |d       y rw  )r   r8   r  rb   )rl   rX   r  rQ   s       r2   test_std_pdfzTestExponNorm.test_std_pdf)  s!     	++Aq18%Hr4   zx, K, scale, expected)r   rw   r   gVAҤ?)r<  {Gzt?r   g'^>)r  rw   rZ   rz   )r  rw   r   gbr ;)r   r]  r   gVMe?c                 ~    t         j                  j                  |||      }|dk(  r|dk(  sJ y t        ||d       y )Nr  rz   r   r~   )r8   r  rj   r   rl   rX   r  r_   rQ   ro  s         r2   test_cdf_small_KzTestExponNorm.test_cdf_small_K?  s=     OO1E2s?8O8Axe4r4   )rY   rw   r   ghG}$;)r`   r  r   g]fJ?)r   r  ru   g31"g#;)rY   r  ru   gf
+-)r  r  ru   rz   )r0  r]  r   ga9S?c                 ~    t         j                  j                  |||      }|dk(  r|dk(  sJ y t        ||d       y )Nr  rz   -a=r~   )r8   r  r   r   r  s         r2   test_sf_small_KzTestExponNorm.test_sf_small_KX  s=     OOq!51s?8O8Axe4r4   N)r   r   r   rY  ro  rr  r  r   r   r   r  r  r  r:   r4   r2   r  r    s    96L
L
B$ [[-BCICI [[4>D4G?	AB5B5& [[4B@DF3@BC5C5r4   r  c                       e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	y)	TestGenExponc                     ddl m} t        j                  j	                  t        j                  ddd      ddd      }t         ||d      dd       y )	Nr   )simpsonrY   rw   ru   ry   )dxr   )scipy.integrater  r8   genexponrb   rc   r  r   )rl   r  ro  s      r2   test_pdf_unity_areaz TestGenExpon.test_pdf_unity_areah  s?    +NNryyB5sCEGA$/A6r4   c                     t         j                  j                  t        j                  ddd      ddd      }t        j
                  d|k  |dk  z        sJ y )Nr   rY   rw   ru   ry   r   )r8   r  rj   rc   r  r   )rl   rj   s     r2   test_cdf_boundszTestGenExpon.test_cdf_boundsn  sH    nn  1b$!7c3GvvqCxC1H-...r4   zx, p, a, b, c))r8  gM <r   r`   r  )re  g%DYY?ru   r`   r   )re  gS4z?      #@r`   ru   )rw   ga^5?r  re  ru   )r  gs%)?r  re  ru   )r   gdm?re  r   ru   c                     t         j                  j                  ||||      }t        ||d       t         j                  j	                  ||||      }t        ||d       y r  )r8   r  r   r   r  )rl   rX   ro  r0   r1   r  r   r  s           r2   r  zTestGenExpon.test_sf_isf~  sP     ^^q!Q*AE*nn  Aq!,QU+r4   ))re  g;\i?ru   r`   r   )re  gu0?r  r`   ru   )rw   g-%I?r  re  ru   )r  g]d?r  re  ru   )r   g泩'?re  r   ru   c                     t         j                  j                  ||||      }t        ||d       t         j                  j	                  ||||      }t        ||d       y r  )r8   r  rj   r   r   )rl   rX   ro  r0   r1   r  rj   r   s           r2   r  zTestGenExpon.test_cdf_ppf  sP     nn  Aq!,QU+nn  Aq!,QU+r4   N)
r   r   r   r  r  r   r   r   r  r  r:   r4   r2   r  r  g  sf    7/  [[_IJ,J, [[_JK,K,r4   r  c                       e Zd Zd Zy)TestTruncexponc                     ddg}ddg}ddg}t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d	       y )
Nr  rZ   g_93@gBX@g,M<gǃ@֫5gLa㧝=r~   r  )r   r8   
truncexponr   r  )rl   r1   rX   r~  s       r2   r  zTestTruncexpon.test_sf_isf  s`     I	"%'=>((++Aq13WE((,,S!4aeDr4   N)r   r   r   r  r:   r4   r2   r  r    s    Er4   r  c                       e Zd Zd Zy)TestExponpowc                     t        t        j                  j                  dd      d       t        t        j                  j	                  t        j                  j                  dd      d      d       y )Nr  ry   r{  r   r   )r   r8   exponpowrj   r  r   rq   s    r2   rg  zTestExponpow.test_tail  sL    ENN..ub95AENN..u~~/@/@B/GL	r4   N)r   r   r   rg  r:   r4   r2   r  r    s    r4   r  c                       e Zd Zd Zd Zd Zy)TestSkellamc                     t        j                  dd      }d\  }}t        j                  g d      }t        t        j
                  j                  |||      |d       y )Nr  r8  r8  )gYjP'?g$S?gQ`s2?gC/qF?gD<]Y?g/Xj?g86y?g]a¨?g:?g?gQ>?g?g:?g]a¨?g96?g0X?gA<]?gB/q?gQ`s?g$S?gYjP'?gX_?g+rx?gfSr?gJXx~?rP  )rc   r  r   r   r8   skellamrI  )rl   rU   mu1mu2skpmfRs        r2   rc  zTestSkellam.test_pmf  sO    IIc2S-. 	EMM--ac:FBOr4   c                     t        j                  dd      }d\  }}t        j                  g d      }t        t        j
                  j                  |||      |d       y )Nr  r8  r8  )gƃQ?gS`X'?gVy)>?g:	 S?gei.f?gȼJ]x?g)?g{^'+i?gLIg>?gnZ?g?rvͪ?gA?g0?g#J?gqSm
.?g~B?gd?gFBD?gQ9?gmF^?gcMy?gGJq?gC^c?g.){?gñݸ?r   rP  )rc   r  r   r   r8   r  rj   )rl   rU   r  r  skcdfRs        r2   rU  zTestSkellam.test_cdf  sO    IIc2S-. 	EMM--ac:FANr4   c                     d\  }}}t        t        j                  j                  |||      dd       t        t        j                  j	                  |||      dd       y )N)r   r   gs1Cr   r|  r   r   )r   r8   r  rI  rj   )rl   rX   r  r  s       r2   test_extreme_mu2zTestSkellam.test_extreme_mu2  sK    .3))!S#6F))!S#6Fr4   N)r   r   r   rc  rU  r  r:   r4   r2   r  r    s    P*O*Gr4   r  c                      e Zd Zd Zd Z ej                  d      d        Zej                  j                  dddg      ej                  j                  d	g d
      ej                  j                  dg d      ej                  j                  d e
dd      D  cg c]  }d|v r|
 c}}        ej                  d      d                                    Zd Zyc c}} w )TestLognormc                     t        j                         5  t        j                  dt               t        j
                  j                  g dd      }t        |g d       d d d        y # 1 sw Y   y xY w)Nrl  r   ru   r   r   )rz   g~r?g e3E?)rp  rq  rr  rs  r8   r!  rb   r   rl   rb   s     r2   rK  zTestLognorm.test_pdf  sM     $$&!!'>:--##K3C%c+HI '&&s   AA))A2c           	         d\  }}}t        t        j                  j                  ||z
  |      t        j                  j                  t        j                  ||z
        |z               t        t        j                  j                  ||z
  |      t        j                  j                  t        j                  ||z
        |z               y )N)g(\5i@   gOn?rF   )r   r8   r!  r   r  rc   r  ru  )rl   r  r  sigmas       r2   r  zTestLognorm.test_logcdf  s    *B((B%(8

bffRUmE&9:	<++BrEU+;

((2u)<=	?r4   r%  r&  c                 @    t         j                  j                  d      S r.  r)  rq   s    r2   r   zTestLognorm.rng  r*  r4   r   rV   r`   r   )r   r   r`   r  )r  r   r   rL  )FTr   rM  FrO  rP  c                     t         j                  j                  d||||      }i }	|r||	d<   |r||	d<   |r||	d<   t        t         j                  |fi |	ddi y )NrZ   )r   rG   r_   r^   r   r   r   r   r   T)r8   r!  r   r   rS  s
             r2   r   z'TestLognorm.test_fit_MLE_comp_optimizer  su     }}  cYi%,3 ! @ "DJ"DL&DN 	&emmT 	<T 	<6:	<r4   c                 p    d}g d}g d}t        t        j                  j                  ||      |d       y )NgI+?)rV   g|=gҶOɃ;gk3;9"7)g?y+@g~K8ax@gƶ@g9]Ar|  r~   )r   r8   r!  r  )rl   rG   rx  r~  s       r2   r  zTestLognorm.test_isf  s2    
 &#))!Q/5Ar4   N)r   r   r   rK  r  r   r2  r   r   r   r'   rc   r\  r   r  )r^  es   00r2   r  r    s    J? V^^*%+ &+ [[[2q'2[[Y
3[[[*5[[<)0q)I -)IA!&!  )I -. R[["< #. 6 4 3<$	B+-s   Cr  c                      e Zd Zd Zd Zd Zd Zej                  j                  e
d      d        Zej                  j                  e
d      d        Zej                  j                  e
d      d	        Zd
 Zej                  j                  ed      d        Zej                  j%                  dej(                  j*                  ej(                  j,                  g      ej                  j%                  dddg      d               Zej                  j%                  dg d      d        Zej                  j%                  dg d      d        Zy)TestBetac                     t         j                  j                  ddd      }t        |d       t         j                  j                  ddd      }t        |t        j
                         y )Nr   r   ru   g;B.)r8   r  r   r   rc   r  rl   r   s     r2   rs  zTestBeta.test_logpdf  sJ    ""1a-FN3""1c1-FBFF+r4   c                 4   d\  }}t        j                  g d      }t        j                  ||      }t	        |j                  |      j                         d       t	        |j                  |      t        j                  |j                  |                   y )Ni  i  r  ru   r  gƒ)	rc   r   r8   r  r   r   rf  rb   r   rl   r  r  rX   r1   s        r2   test_logpdf_ticket_1866z TestBeta.test_logpdf_ticket_1866   sf    tHH_%JJud#)+=>a"&&!"56r4   c                 f    g d}t        t        t        j                  j                  |ddd       y )NrV   ru   r  r   r   ry  )r   r   rz  )r  r  r8   r  r   r  s     r2   test_fit_bad_keyword_argsz"TestBeta.test_fit_bad_keyword_args'  s$    i1$	&r4   c                 d    g d}t        t        t        j                  j                  |dd       y )Nr  ru   )fafix_a)r  r  r8   r  r   r  s     r2   #test_fit_duplicated_fixed_parameterz,TestBeta.test_fit_duplicated_fixed_parameter,  s!     j%**..!3Gr4   zOverflow, see gh-14901reasonc                 f    d\  }}}t        t        j                  j                  |||      d       y )N)g?g     R@g   0xAgx)>)r   r8   r  r   )rl   ro  r0   r1   s       r2   test_issue_12635zTestBeta.test_issue_126352  s+     71a

q!Q/1FGr4   c                 0   t        j                  g d      }t        j                  g d      }d}t        j                  j	                  ||dz   d|z
        }t        ||       t        j                  j                  ||dz   d|z
        }t        ||       y )N)g@3@?g^?gNC?)rY   rZ   r   r&  r   r   )rc   r   r8   r  r  r   r   )rl   inv_R
count_listro  invr   s         r2   test_issue_12794zTestBeta.test_issue_12794>  s~      1 2 XXo.
jjnnQ
Q0CDU#jjmmCa*1DEQr4   c                     d}t        j                  dd      }d}d|z
  |dz   ||z
  }}}t        j                  j	                  |||      }t        j                  j                  |||      }t        |d|z
         y )Nh㈵>r   r  r   )rc   r  r8   r  r   rj   r   )	rl   alpha_2count_nobsrx  r0   r1   r  r   s	            r2   test_issue_12796zTestBeta.test_issue_12796P  sq     1b!g+vz4&=a1jjnnQ1%jjnnS!Q'Q[)r4   c                 h   d\  }}t        t        j                  j                  d||      t        j
                         d\  }}t        t        j                  j                  d||      t        j
                         d\  }}t        t        j                  j                  d||      d       t        t        j                  j                  d||      d       d\  }}t        t        j                  j                  d||      d       t        t        j                  j                  d	||      d       y )
NrS  r   )r  r   r   )r   r   r   +ph  )r   r   rM  )r   r8   r  rb   rc   r  )rl   r0   r1   s      r2   r  zTestBeta.test_endpoints\  s     1UZZ^^Aq!,bff5 1UZZ^^Aq!,bff5 1UZZ^^Aq!,a0UZZ^^FAq115 1UZZ^^Aq!,a0UZZ^^Ha3Q7r4   zDoes not convert boost warningc                     d\  }}}t        j                  t              5  t        j                  j                  |||       d d d        y # 1 sw Y   y xY w)N)gףp=
?g   vH7B  @0B)r   warnsrs  r8   r  r   )rl   rx  r0   r1   s       r2   test_boost_eval_issue_14606z$TestBeta.test_boost_eval_issue_14606s  s9    '1a\\.)JJNN1a# *))s   "AAr7  a, b)r        )@)r  r  c                 <    d}	  ||||       y # t         $ r Y y w xY w)Nr   )OverflowError)rl   r7  r0   r1   ro  s        r2    test_beta_ppf_with_subnormal_a_bz)TestBeta.test_beta_ppf_with_subnormal_a_by  s-    
 
	1aO 	 	s   
 	r
  ))ru   ru   gο)r]  r   g )r   r,  g&׾k )r   r   g*)Mc                 `    t        t        j                  ||      j                         |       y ro   r   r8   r  r@   r  s       r2   rj  zTestBeta.test_entropy  s"     	

1a(002C8r4   za, b, ref, tol))r   rY   gCpr|  )rY   r  g8EOr   )g    NAg    NAg(4Fr?  )g    SAg   SAg8TAUr  )r  g   _Bg[VVuD&r&  )r  r  gR#Lr}   )r`   r  g?r5r&  )r`   ro  <Fr|  )r`   r  guRTc\r|  )r   r  gL4r  )r   ro  6Er|  )r   r  g.fq>\r|  )rY   r  gnQc}4r?  )rY   ro  g{C Er|  )rY   r  %\r|  )ro  r`   r  r|  )ro  r   r  r|  )r  rY   r  r|  c                 d    t        t        j                  ||      j                         ||       y rJ  r  )rl   r0   r1   r~  r  s        r2   r  zTestBeta.test_extreme_entropy  s%    H 	

1a(002CcBr4   N)r   r   r   rs  r  r  r  r   r   skipifMACOS_INTELr  r  r  r  xfailr   r  r   r8   r  r   r  r  rj  r  r:   r4   r2   r  r    s{   ,7&
H [[,DE	H F	H [[,DE  F " [[,DE	* F	*8. [[w'GH$ I$
 [[X



'GH[[Vnn%EF G I@ [[[DE
9E
9 [[	
.C/.Cr4   r  c                   T   e Zd Zg dZd Zd Zej                  j                  dg d      d        Z	ej                  j                  de      d        Z
ej                  j                  d	eg d
z         d        Zej                  j                  d	ddg      d        Zd Zd Zd Zy)TestBetaPrime))ri        Y@r  D>?)r  r  r  m嗽?)r   r  rV   gPK?)r   r  r  g%p?)r  r  rV   g#|/?)r  r  r  gsM
<)r  r  r  $5Є*?)^ 9^;r  rV   gompP?)r
  r  r  g7j"!9)r
  r  r  z^J?)r  r  rV   gܷ"+>)r  r  r  grNs: )r  r  r  gK>c                 X   d\  }}t        j                  g d      }t        j                  ||      }t	        t        j
                  |j                  |            j                                t        |j                  |      t        j                  |j                  |                   y )Nr  r  )rc   r   r8   r  r	   r  r   r   r   rb   r   r  s        r2   rs  zTestBetaPrime.test_logpdf  sn    tHH_%OOE4(AHHQK(,,./a"&&!"56r4   c           	         t         j                  j                  ddd      }t        |d       d\  }}t	        j
                  g d      }t         j                  j                  |||      }t        t	        j                  |      j                                t         j                  j                  }|D cg c]  } |t         j                  |||       }}t        ||dd       y c c}w )	Nr   r  rw  rz   r  r  -=r  )r8   r  rj   r   rc   r   r	   r  r   r>   _cdf_singler   )rl   rX   r  r  r8  gen_cdfrB  cdfs_gs           r2   rU  zTestBetaPrime.test_cdf  s     OO3,QtHH_%""1eT2D!%%'( %%11HIJ'%//3t<Jf159 Ks   5 C'zp, a, b, expected))rw         ?r  gV)?)r  r  r  gWJB9*=)r  r  r  gOG J<)rR  re        @gΣ01)      ?re  r  g8ǘ`?)>q?r  rV   gMDc                 b    t         j                  j                  |||      }t        ||d       y r  )r8   r  r   r   )rl   ro  r0   r1   rQ   rX   s         r2   r^  zTestBetaPrime.test_ppf  s(     OO1a(8%0r4   z
x, a, b, pc                 ^    t        t        j                  j                  |||      |d       y r  )r   r8   r  r   )rl   rX   r0   r1   ro  s        r2   test_ppf_gh_17631zTestBetaPrime.test_ppf_gh_17631  s!    ++Aq!4aeDr4   zx, a, b, expected))r  r  r  rx  )r  r  rV   gV[?)ri  r  rV   r  c                 ^    t        t        j                  j                  |||      |d       y r  )r   r8   r  rj   )rl   rX   r0   r1   rQ   s        r2   test_cdf_gh_17631zTestBetaPrime.test_cdf_gh_17631  s#     	++Aq!4hUKr4   )r  r  rV   g%?)r  r  r  goXr?c                 p    t         j                  j                  |||      }|dk  sJ t        ||d       y )NrM  gh㈵>r~   )r8   r  rj   r   )rl   rX   r0   r1   rQ   r  s         r2   test_cdf_extreme_tailsz$TestBetaPrime.test_cdf_extreme_tails(  s3     OO1a(3ww8$/r4   c                     g d}g d}g d}g d}t         j                  j                  |||      }t        ||d       y )N)r   r   r`   r  r  r  r  r  r  r  r  r  r  r  )r   r`   r   rV   rV   rV   rV   r  r  r  r  r  r  r  )r  ro  ꌠ9Y>)Fri  r  r
  r  ri  r  r  r
  r  r  r  )g/:g  U/7gKH9g<![a?gw 4?g)J?g5?r  r	  r  r  g%?gsM
<rx  r  r~   )r8   r  r   r   )rl   r0   r1   rX   r~  	sf_valuess         r2   r  zTestBetaPrime.test_sf3  sD    0;
 OO&&q!Q/		3U3r4   c                     t         j                  j                  g ddd       t        j                  dd      j                  d       y )N)rV   re  rw  r  皙?r   r   r  r>  rU  )r8   r  r   rq   s    r2   test_fit_stats_gh18274z$TestBetaPrime.test_fit_stats_gh18274H  s7     	6QqI!q!''/r4   c                     t         j                  dg}t        j                  dddg      j	                  d      }t        ||       y )NgooB?r`   r  gffffff@r   )rc   r  r8   r  r  r   )rl   r~  r   s      r2   test_moment_gh18634z!TestBetaPrime.test_moment_gh18634O  s<     vv()ooa#s,33A6S!r4   N)r   r   r   cdf_valsrs  rU  r   r   r   r^  r  r  r  r  r"  r$  r:   r4   r2   r  r    s    H 7:> [[	B11 [[\84E 5E [[ 
 	
LL [[	.	/	120	204*0	"r4   r  c            
       F   e Zd Zd Zd Zd Zd Zej                  j                  dddg      d        Z
ej                  j                  d	g d
      d        Zej                  j                  dg d      ej                  j                  dg d      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      ej                  j                  dddg      d                                           Zy)	TestGammac                     t         j                  j                  ddd      }t        |d       t         j                  j                  ddd      }t        |d       y )	NZ   i  r  r  g
CTb?r   rY   gBΖ?)r8   rX  rb   r   r  s     r2   rK  zTestGamma.test_pdf\  sF    kkoob#To2C-kkooa4o0C+r4   c                 \    t         j                  j                  dd      }t        |d       y r  )r8   rX  r   r   r  s     r2   rs  zTestGamma.test_logpdfd  s$     ##Aq)FA&r4   c                 d    g d}t        t        t        j                  j                  |dd       y )Nr  r   ry  )r   rz  )r  r  r8   rX  r   r  s     r2   r  z#TestGamma.test_fit_bad_keyword_argsj  s    i!!8Lr4   c                     t        j                  t        j                  j	                  dd      dd      sJ t        j                  t        j                  j	                  dd      dd	      sJ y )
NrR  r   gplC@r|  r   ru  rZ   g1}t@r   )rc   iscloser8   rX  r  rq   s    r2   r  zTestGamma.test_isfn  s\    " zz%++//%3+%9 	9 9zz%++//%5+%9 	9 9r4   r_   rM  rN  c                 r    t         j                  j                  |dz  |dz  d|      }t        |dd       y )N   r  r   r  g>S*r   r~   )r8   rX  r~  r   rl   r_   r  s      r2   r  zTestGamma.test_delta_cdf  s6     &&uSy%)Qe&L6UCr4   za, ref, rtol))r  gt.r}   )r`   rt  r}   )rZ   gX>k-־@r   )r  gwM7@r}   )g NgmCg%og$6@r}   )r  oܘ#]@r}   c                 Z    t        t        j                  j                  |      ||       y rJ  )r   r8   rX  r@   )rl   r0   r~  r   s       r2   rj  zTestGamma.test_entropy  s     	++A.$?r4   r0   )rw   r   r  r^   )rw   r   r  r  TFr   r  c                 .   t         j                  j                  d      }t        j                  j                  |||d|      }i }	|r||	d<   |r||	d<   |r||	d<   dt        |	      z
  }
|
dk(  rId	}t        j                  t        |
      5  t        j                  j                  |fddi|	 d d d        y t        j                  j                  |fddi|	}t        j                  | }|
dk\  r-t        |j                         t        j                  |             |
dk\  r1t        |j                  d      t        j                  |dz               |
dk\  r2t        |j                  d      t        j                  |dz               y y # 1 sw Y   y xY w)Nr   rZ   r  r  r   r   r   r   r  r  r7  r5  r   r`   )rc   r   r   r8   rX  r   r
  r   r   r  r   r   r   r  )rl   r0   r^   r_   r  r   r  r   r   r   rU  r  thetarM   s                 r2   test_fit_mmzTestGamma.test_fit_mm  sR    ii##$78{{qcS,/  1 DJDL"DNCIA:MIz;:T:T: <:T:T:{{E"A:DIIK7A:DKKNBGGD!G,<=A:DKKNBGGD!G,<=  <s   #FFN)r   r   r   rK  rs  r  r  r   r   r   r  rj  r6  r:   r4   r2   r'  r'  [  s   ,'M9, [[WsCj1D 2D [[^BC@C@ [[S.1[[UN3[[Wn5[[WtUm4[[Yu6[[[4-8> 9 7 5 6 4 2>r4   r'  c                      d} t        j                  d| dz  z  d| dz  z  dd      }t        |j                  d      d       y )	Nr]  g;f?r`   r   r   r]   rM  gV{q@)r8   r,  r   rb   )jitterZs     r2   test_pdf_overflow_gh19616r:    sC     F6FAI-q619}!1MAAEE#J 12r4   c                       e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d	        Z	d
 Z
y)
TestDgammac                    t         j                  j                  d      }d}|j                  d|      }|j	                  d|      }t
        j                  j                  ||      }t
        j                  j                  t        j                  |      |      dz  }t        ||       t        j                  |      }t        |j                  |      |d       y )Nl   OP($ rY   r  )r(  r   r`   r{  r~   )rc   r   r   normalrn  r8   dgammarb   rX  r   r   )rl   r   r   rX   r0   r   r~  rM   s           r2   rK  zTestDgamma.test_pdf  s    ii##$78JJRdJ+KKRdK+llq!$kkoobffQi+a/S!||ASu5r4   zx, a, expected))r  r   ggrU>)rD  r   g$IC<)ir   g2Wj<)r   g~)A.=)r   r   gf?c                 x   t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       t         j                  j                  | |      }t        ||d       t         j                  j                  ||      }t        || d       y r1  )r8   r?  rj   r   r   r   r  )rl   rX   r0   rQ   rj   r   r   r  s           r2   test_cdf_ppf_sf_isf_tailz#TestDgamma.test_cdf_ppf_sf_isf_tail  s     llq!$XE2llx+QU+\\__aR#H51llx+aRe,r4   r  ))r  gmqn @)?g?)r}  gx?c                 Z    t        t        j                  j                  |      |d       y r  r   r8   r?  r@   r  s      r2   rj  zTestDgamma.test_entropy  s      	,,Q/5Ar4   ))r  r  )r  g>_)r  g5i)r  go@)rK  g4Fa3@)r  grO]@c                 Z    t        t        j                  j                  |      |d       y r  rE  r  s      r2   test_entropy_entreme_valuesz&TestDgamma.test_entropy_entreme_values  s    " 	,,Q/5Ar4   c                     t        j                  g d      }t        j                  j	                  |      }t        t        |            D ],  }||   t        j                  j	                  ||         k(  r,J  y )N)r   r   ro  r  )rc   r   r8   r?  r@   r  r
  )rl   rX   r  r  s       r2   test_entropy_array_inputz#TestDgamma.test_entropy_array_input  s\    HH'(LL  #s1vAQ45<<//!5555 r4   N)r   r   r   rK  r   r   r   rB  rj  rG  rI  r:   r4   r2   r<  r<    s    6, [[-:;-;- [[X89B	9B [[X:;
B;
B6r4   r<  c                   `    e Zd Zd Zd Zej                  j                  dg d      d        Zy)TestChi2c                     t        t        j                  j                  dd      dd       t        t        j                  j                  dd      dd       y )Nr   gޞw1D?r  rP  rZ   g6:֜?r   r8   chi2rb   rq   s    r2   r  zTestChi2.test_precision(  s@    EJJNN468N$&	(EJJNN346J$&	(r4   c                 |   d}t         j                  j                  d|      }t        |dd       t         j                  j                  d|      }t        |dd       d}t         j                  j                  d	|      }t        |d
d       t         j                  j                  d|      }t        |dd       y )Nr  gλm:=6g'bd5 <r  r~   ru   gQ8@r  gܐ؆0guu[9=rV   g8-*@)r8   rN  r   r   )rl   r  rX   s      r2   r^  zTestChi2.test_ppf.  s    JJNN5"%<5IJJNN3#7eDJJNN5"%:GJJNN3#8uEr4   r  ))r  gܫ>)r   gƯʉ?)rZ   gn>@)   g͔v0@)rK  g9:3@c                 b    t        t        j                  |      j                         |d       y r   )r   r8   rN  r@   r  s      r2   rj  zTestChi2.test_entropyF  s!     	

2..0#EBr4   N)	r   r   r   r  r^  r   r   r   rj  r:   r4   r2   rK  rK  &  s9    (F0 [[Y:;C;Cr4   rK  c                   f    e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	y)	TestGumbelLc                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y Nr+  r  )rc   rR  r8   r4  rj   r   r   r  s       r2   r  zTestGumbelL.test_cdf_ppfR  sD    KKb!NNq!^^"2r4   c                    t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        j                  |      }t        j                  |       }t        ||       y rU  )
rc   rR  r8   r4  r  ru  r   r   expm1r   )rl   rX   r  r1  urX  s         r2   rw  zTestGumbelL.test_logcdf_logsfX  sb    KKb!NN!!!$NN  #FF1I]]11r4   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y )Nr  r   )rc   rR  r8   r4  r   r  r   r  s       r2   r  zTestGumbelL.test_sf_isf`  sD    KKQNNa ^^"2r4   r^   r   r   c                     t         j                  j                  d|      }t         j                  j                  ||      \  }}t	        ||       y )NrZ   )r   r^   r   )r8   r4  r   r   r   )rl   r^   r   
fitted_locr   s        r2   test_fit_fixed_paramz TestGumbelL.test_fit_fixed_paramf  sD     ~~!!s!4**4c*:
AZ%r4   N)
r   r   r   r  rw  r  r   r   r   r\  r:   r4   r2   rS  rS  P  s:     [[URG,& -&r4   rS  c                       e Zd Zd Zd Zy)TestGumbelRc                 Z    t        t        j                  j                  d      dd       y )Nr6  ?~T}%m;r|  r~   )r   r8   r3  r   rq   s    r2   r  zTestGumbelR.test_sfq  s#     	))"-/E"	$r4   c                 Z    t        t        j                  j                  d      dd       y )NrR  r-  r|  r~   )r   r8   r3  r  rq   s    r2   r  zTestGumbelR.test_isfz  s#     	**513D"	$r4   N)r   r   r   r  r  r:   r4   r2   r^  r^  o  s    $$r4   r^  c                   
   e Zd Z ej                  d      d        Zej                  d        Zej                  d        Zej                  d        Zej                  j                  ej                  j                  d ej                  d       ej                  d	ej                  j                  
      g      ej                  j                  dddg      ej                  j                  dg d      ej                  j                  dddg      d                                    Zej                  j                  ej                  j                  dddg      d               Zd Zej                  j#                  d      ej                  j                  dddg      ej                  j                  dddg      d                      Zd  Zd! Zd" Zej                  j                  ej                  j                  d# ej                  g d$g d%g d&       ej                  g d'g d(g d)ej                  j                  
       ej                  g d* ej.                  d+d,d-       ej.                  d.dd/      ej                  j                  
      g      d0               Zej                  j                  d# ej                  g d$g d%g d&       ej                  g d'g d(g d)ej                  j                  
       ej                  g d* ej.                  d+d,d-       ej.                  d.dd/      ej                  j                  
      g      d1        Zej                  j                  d2d3dg      ej                  j                  d4d5d6g      d7               Zej                  j                  d8d9d:gd;d:gg      d<        Zej                  j                  d=d>d3ej8                  ej:                  ej:                  fgd?d@gg      dA        Zej                  j                  dBg dC      ej                  j                  dDej@                  jB                  dE ej.                  dFd3dG      dHfej@                  jD                  dE ej.                  dFd3dG      dHfej@                  jB                  dI ej.                  d3dJdG      dEfej@                  jD                  dI ej.                  d3dJdG      dHfg      dK               Z#ej                  j                  dLg dM      dN        Z$ej                  j"                  ej                  j                  dLg dO      dP               Z%yQ)RTestLevyStableT)autousec                     dt         j                  _        dt         j                  _        dt         j                  _        t         j
                  j                  t         j                  _        y)z2Setup default parameters for levy_stable generatorS1	piecewiseN)r8   levy_stableparameterizationcdf_default_methodpdf_default_method_levy_stable	_QUAD_EPSquad_epsrq   s    r2   reset_levy_stable_paramsz'TestLevyStable.reset_levy_stable_params  sH     .2*/:,/:,%*%7%7%A%A"r4   c                     t        j                  t        t              j                  dz        }t         j
                  j                  |j                  d      }|S )a  Sample data points for pdf computed with Nolan's stablec

        See - http://fs2.american.edu/jpnolan/www/stable/stable.html

        There's a known limitation of Nolan's executable for alpha < 0.2.

        The data table loaded below is generated from Nolan's stablec
        with the following parameter space:

            alpha = 0.1, 0.2, ..., 2.0
            beta = -1.0, -0.9, ..., 1.0
            p = 0.01, 0.05, 0.1, 0.25, 0.35, 0.5,
        and the equivalent for the right tail

        Typically inputs for stablec:

            stablec.exe <<
            1 # pdf
            1 # Nolan S equivalent to S0 in scipy
            .25,2,.25 # alpha
            -1,-1,0 # beta
            -10,10,1 # x
            1,0 # gamma, delta
            2 # output file
        z.data/levy_stable/stable-Z1-pdf-sample-data.npyx,p,alpha,beta,pctr  rc   r  r   r  r  r  r  Tr  s     r2   nolan_pdf_sample_dataz$TestLevyStable.nolan_pdf_sample_data  sL    6 wwN!!<=
 vv  /C Dr4   c                     t        j                  t        t              j                  dz        }t         j
                  j                  |j                  d      }|S )a#  Sample data points for cdf computed with Nolan's stablec

        See - http://fs2.american.edu/jpnolan/www/stable/stable.html

        There's a known limitation of Nolan's executable for alpha < 0.2.

        The data table loaded below is generated from Nolan's stablec
        with the following parameter space:

            alpha = 0.1, 0.2, ..., 2.0
            beta = -1.0, -0.9, ..., 1.0
            p = 0.01, 0.05, 0.1, 0.25, 0.35, 0.5,

        and the equivalent for the right tail

        Ideally, Nolan's output for CDF values should match the percentile
        from where they have been sampled from. Even more so as we extract
        percentile x positions from stablec too. However, we note at places
        Nolan's stablec will produce absolute errors in order of 1e-5. We
        compare against his calculations here. In future, once we less
        reliant on Nolan's paper we might switch to comparing directly at
        percentiles (those x values being produced from some alternative
        means).

        Typically inputs for stablec:

            stablec.exe <<
            2 # cdf
            1 # Nolan S equivalent to S0 in scipy
            .25,2,.25 # alpha
            -1,-1,0 # beta
            -10,10,1 # x
            1,0 # gamma, delta
            2 # output file
        z.data/levy_stable/stable-Z1-cdf-sample-data.npyrq  r  rr  r  s     r2   nolan_cdf_sample_dataz$TestLevyStable.nolan_cdf_sample_data  sM    J wwN!!<=
 vv  /C Dr4   c                 d    t        j                  t        t              j                  dz        }|S )a&  Sample data where loc, scale are different from 0, 1

        Data extracted in similar way to pdf/cdf above using
        Nolan's stablec but set to an arbitrary location scale of
        (2, 3) for various important parameters alpha, beta and for
        parameterisations S0 and S1.
        z1data/levy_stable/stable-loc-scale-sample-data.npy)rc   r  r   r  r  r  s     r2   nolan_loc_scale_sample_dataz*TestLevyStable.nolan_loc_scale_sample_data  s/     wwN!!?@
 r4   sample_sizer6  r  marksri  S0rf  z
alpha,beta))rM  r   )rM  r   )r  r   )r  ru   zgamma,deltar   r   r  c                     |t         j                  _        t        j                  ||||      }t        j                  |j	                  |d      |j
                        \  }}	|	dkD  sJ y )N)r  r  r_   r^   r   r   r  )r8   rh  ri  r  r   rj   )
rl   ri  r  r  rX  r  ry  lsr   ro  s
             r2   rC  zTestLevyStable.test_rvs  sb    ( .>*d%U
 ||FF$F7
1 4xxr4   r  ru   r   c                     t         j                  j                  d       d}d}d}t        j                  j                  ||||d      }t        j                  |d||||f      \  }}|d	kD  sJ y
)z3Additional test cases for rvs for alpha equal to 1.h:rM  ru   r  r  r^   r_   r   rh  r  rw   N)rc   r   r   r8   rh  r   r  )rl   r  r  r^   r_   rX   statro  s           r2   test_rvs_alpha1zTestLevyStable.test_rvs_alpha1  sv     			y!!!%3e'+ " -,,q-%*D#u$=?a4xxr4   c                 z   g d}t         j                  j                  |      \  }}}}t        |ddd       t	        |dd       t	        |dd	       t	        |d
d       |g dz   }t         j                  j                  |      \  }}}	}
t        |d       t        |d       t	        |
dd	       t	        |	dd	       y )N)wgr  rz   rz   rz   rz   羼 u?r  r  r  r  67',?r  r  r  r  tA}˜.?r  r  r  r  Gz?r   rw   r_  )\(̿r`   gۧ1?r   g9]c?)r  r  r  r  r  r   gv?r  )r8   rh  r  r   r   r   rl   rX   alpha1beta1loc1scale1r  alpha2beta2r=  r>  s              r2   r  zTestLevyStable.test_fit  s    

 ',&7&7&A&A!&D#tV148E4+FGQ/'1	

 99&+&7&7&A&A"&E#tVVQUBFFA.D&!,r4   zUnknown problem with fitstart.r  zalpha,beta,delta,gamma)r  r)  r`   r   )rM  r)  r`   r   parametrizationc                     |t         j                  _        t         j                  j                  ||||dd      }t         j                  j	                  |      }|\  }}	}
}t        ||||g||	|
|gd       y)z7Test that fit agrees with rvs for each parametrization.r,  r   r  rw   r~   N)r8   rh  r  r   r  r   )rl   r  r  r  rX  r  r   r   	alpha_obsbeta_obs	delta_obs	gamma_obss               r2   test_fit_rvszTestLevyStable.test_fit_rvs-  s     -<)  $$4U%e$ % 
 ))$/471	8Y	D%')Y7	
r4   c                 N   t        j                  g d      }t        j                  j	                  |      \  }}}}t        j                  j	                  |       \  }}}}	t        |d       |dk7  sJ t        ||       t        ||        t        ||        t        |	|       y )Nr   r   r   r   rY   rY   rY   r3  r3  rZ   rZ   r   r   )rc   r   r8   rh  r  r   r   )
rl   rX   r  r  r  r  r  r  r=  r>  s
             r2   test_fit_beta_flipz!TestLevyStable.test_fit_beta_flipF  s    HH?@&+&7&7&A&A!&D#tV&+&7&7&A&A1"&E#tVUAqyyFF+EE6*D4%(FF+r4   c                 6   d}t        j                  g d      }t        j                  j	                  |       \  }}}}t        j                  j	                  | |z         \  }}}	}
t        ||       t        ||       t        |	||z          t        |
|       y )Nr   r  )rc   r   r8   rh  r  r   )rl   SHIFTrX   r  r  r  r  r  r  r=  r>  s              r2   test_fit_delta_shiftz#TestLevyStable.test_fit_delta_shiftR  s    HH?@&+&7&7&A&A1"&E#tV&+&7&7&A&A1"u*&M#tVFF+E5)D$,/FF+r4   c                 p   g d}t         j                  j                  |      \  }}}}|dk  s
J d|        |t        |      k  sJ dt        |       d|        g d}t         j                  j                  |      \  }}}	}
|dkD  s
J d|        |	t	        |      kD  sJ dt	        |       d|	        y )	N)r   r   r   r   rY   rY   rY   r3  r3     r  r   zExpected alpha < 1, got zExpected loc < z, got )r   r   r   r   rY   rY   rY   r3  r3     r  zExpected alpha > 1, got zExpected loc > )r8   rh  r  r%  rh  r  s              r2   test_fit_loc_extrapz"TestLevyStable.test_fit_loc_extrap]  s    6&+&7&7&A&A!&D#tVz>5fX>>zc!f}DAxvdVDD}7&+&7&7&A&A"&E#tVz>5fX>>zc"g~FR	vFF~r4   z pct_range,alpha_range,beta_range)rw   ru   r  )rV   r   r`   )r   r   r   )rw   r  ru   r  r  )rV   ru   r   r  r`   )gr   r   rw  r  r   )rw   r  rV   re  ffffff?ru   ?r   r   r  r  rV   r`   r  r      c                 P   |}t        j                         }|j                  dk(  xr |j                  dk(  dj	                  |j                  |j                  |j
                  g      }ddfdgddfd	gddfd
gddfdgddfdgddfdgg}t        |      D ]Y  \  }	\  }
}}|
t        j                  _	        || ||         n|}t               5 }|j                  t        d       t        j                  j                  |d   |d   |d   dd      }t        j                  d      5  t!        |g d|t        j"                  ||d   z
        t        j"                  ||d   z
        t        j"                  |d         z  g      }ddd       |d   |k\  t        j$                  |      z     }d|	 d |
 d!| d"|j&                  j(                   d#| 
}t+        ||d   ||d$%       ddd       \ y# 1 sw Y   nxY w# 1 sw Y   txY w)&z2Test pdf values against Nolan's stablec.exe outputLinuxi686/dnir  c           	      v   t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dk(  | d   dk(  z  | d   dk\  | d   dk\  z  | d   dk(  z  z  | d   dk  t        j                  | d   d	d
g      z  z  | d   dk  t        j                  | d   ddg      z  z  | d   dk  t        j                  | d   ddg      z  z  | d   dk(  t        j                  | d   ddg      z  t        j                  t        j                  | d         g d      z  z  | d   dk(  t        j                  | d   dg      z  t        j                  t        j                  | d         dg      z  z  | d   dk(  t        j                  | d   ddg      z  t        j                  t        j                  | d         g d      z  z  | d   dk(  | d   dk(  z  | d   dk(  z  z  | d   dk(  | d   dk(  z  | d   dk(  z  z  | d   dk(  | d   dk(  z  | d   dk(  z  z  | d   dk(  t        j                  | d   dg      z  t        j                  t        j                  | d         g d      z  z  | d   dk(  t        j                  | d   ddg      z  t        j                  t        j                  | d         g d      z  z  | d   dk(  t        j                  | d   d	d
g      z  t        j                  t        j                  | d         ddg      z  z  | d   dk\  z   z  S )Npctr  r  r   ru   r   r!  r)  rw   r  rw  r  r  r  rV   re  r   )ru   r  r  r  r  )gٿ333333ӿrw  r)  ru   r  rM  rV   r  rw  r)  )r   r   rM  r  r}  )rc   isinr   r  alpha_range
beta_range	pct_ranges    r2   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s   GGAeHi0GGAgJ45GGAfIz23
 vY!^uX_. vY#-wZ3.0uX_. wZ3.GGAeHsCj9: wZ3.GGAeHsCj9:$ wZ3.GGAeHr2h78%, wZ3.GGAeHsCj9:GGBFF1V9$5|DE-6 wZ3.GGAeHrd34GGBFF1V9$5t<=7@ wZ3.GGAeHsCj9:GGBFF1V9$57MNOA#J wZ3.vY#-/uX-/K(T wZ3.vY$.0uX-/U-^ wZ3.vY#-/uX-/_2h wZ2-GGAeHrd34GGBFF1V9$57GHIi7r wZ2-GGAeHsCj9:GGBFF1V9$5|DEs<| wZ2-GGAeHsCj9:GGBFF1V9$5RyAB}AF 7s*GC,EHr4   rg  r&  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk7  z  S )Nr  r  r  r  rM  rc   r  r  s    r2   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  si    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ2%	'r4   c                     | d   dk(   z  t        j                  | d         z  dv z  t        j                  | d         z  S )Nr  rM  r  r  r  )r  r  r  is_linux_32r  s    r2   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  sX    wZ2%$_&GGAeHi01 ;&( GGAfIz2	3r4   g&.=c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dk  z  S )Nr  r  r  r  r  r  s    r2   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  sV    GGAeHi0GGAgJ45GGAfIz23 wZ3&(r4   fft-simpsonr  c                     | d   dk\  t        j                  | d         z  t        j                  | d         z  t        j                  | d         z  S )Nr  r  r  r  r  r  s    r2   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  sV    wZ3&GGAeHi01GGAgJ45 GGAfIz23r4   r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr  r  r  r   r  r  r  s    r2   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  sh    GGAeHi0GGAgJ45GGAfIz23 wZ!^% wZ#%	'r4   Nz2Density calculations experimental for FFT method.*rX   r  r  r   r   r_   r^   rO  rd  calcabserrrelerrro  r  z	pdf test  failed with method 'z' [platform: z]

Ferr_msgverbose)platformunamesystemmachinejoin	processorr  r8   rh  rk  r   recordrs  rb   rc   r\  r   r   isnanr   r  r   )rl   rt  r  r  r  r   r  platform_desctestsixdefault_methodr   filter_funcsubdatasupro  subdata2failuresmessager  s     ```              @r2   test_pdf_nolan_samplesz%TestLevyStable.test_pdf_nolan_samplesi  sr   4 %  llg-I%--62I\\5==%//:< t JL^ U % U % W ' t & t &kC
L "+5!1B 3AE0 + 7 ;t, =A "$

"H %%))CLG$FO *  [[h/04FF1ws|#34FF1ws|#34rvvgcl7KK H 0 $H%-((1+
  t#88H I""/HNN4H4H3IH:W   CL#!? %$	 "2" 0/ %$s'   *AHAH"A!HHHH%	c                 z   |}ddfdgddfdgddfdgdd	fd
gddfdgddfdgg}t        |      D ]V  \  }\  }}	}
|t        j                  _        |
| |
|         n|}t	               5 }|j                  t        d       t        j                  j                  |d   |d   |d   dd      }t        j                  d      5  t        |g d|t        j                  ||d   z
        t        j                  ||d   z
        t        j                  |d         z  g      }ddd       |d   |	k\  t        j                  |      z     }d| d| d|j                  j                   d| }t        ||d   |	|d !       ddd       Y y# 1 sw Y   kxY w# 1 sw Y   qxY w)"z4 Test cdf values against Nolan's stablec.exe output.rg  r  c                 X   t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dk(  t        j                  | d   g d      z  | d   dk(  z  | d   dk(  t        j                  | d   g d      z  | d   dk(  z  z   z  S 	Nr  r  r  rM  )r  r  r  rw   rV   r  rw  r  r  r  s    r2   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>^  s    GGAeHi0GGAgJ45GGAfIz23
 wZ2-GGAfI/ABCuX-/
 wZ2-GGAfI?@uX-/	r4   r  c                 V   t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dk(  t        j                  | d   g d      z  | d   dk(  z  z  | d   dk(  t        j                  | d   g d      z  | d   dk(  z  z  S r  r  r  s    r2   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>s  s    GGAeHi0GGAgJ45GGAfIz23 7r)&	+=>?5T)+	 7r)&	?;<5T)+r4   r  r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  S )Nr  r  r  333333?r  r  s    r2   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  sV    GGAeHi0GGAgJ45GGAfIz23 wZ#%'r4   r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr  r  r  r  r  r  r  s    r2   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  i    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ3&	(r4   r]  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr  r  r  rC  r  r  r  s    r2   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  r  r4   rw   c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr  r  r  rM  rC  r  r  s    r2   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  r  r4   Nz[Cumulative density calculations experimental for FFT method. Use piecewise method instead.*rX   r  r  r   r   r  rO  rd  r  ro  r  z	cdf test r  z'
r  Fr  )r  r8   rh  rj  r   r  rs  rj   rc   r\  r   r   r  r   r  r   )rl   rv  r  r  r  r   r  r  r  r   r  r  r  ro  r  r  r  s     ```            r2   test_cdf_nolan_samplesz%TestLevyStable.test_cdf_nolan_samplesA  s   2 % U %, T $& t & t & t & t &GL
\ "+5!1B 3AE0 + 7 ;t, =A "$

"@
 %%))CLG$FO *  [[h/04FF1ws|#34FF1ws|#34rvvgcl7KK H 0 $H%-((1+ 'rd*??Os&nn2232hZACL#!; %$	 "2" 0/ %$s'   AF0AF$:AF0$F-)F00F:	r  r   rP  rb   rj   c                     t        j                         }|j                  dk(  xr dt        j                         d   v }|r|dk(  rt	        j
                  d       |}dt        j                  _        dt        j                  _	        ||d   |k(     }d| t        j                  _
        |d	v sJ |dk(  rt        j                  j                  nt        j                  j                  } ||d
   |d   |d   dd      }	t        |	||   d       y)zGTests for pdf and cdf where loc, scale are different from 0, 1
        r  32bitr   rb   z4Test unstable on some platforms; see gh-17839, 17859rg  r  S)rb   rj   rX   r  r  r`   r   r  r  N)r  r  r  architecturer   r   r8   rh  rj  rk  ri  rb   rj   r   )
rl   rx  r  rP  r  r  r   r  r%  r  s
             r2   test_location_scalez"TestLevyStable.test_location_scale  s     llg-W'X=R=R=TUV=W2W 45=KKNO* 0;,/:,tG}-./0[*~%%%%)U]E!!8I8I8M8M 	 CL''*GFO1!
 	GDM40r4   zmethod,decimal_placesr  r   rg  c           	         t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  d      5  t               5 }|j	                  t
        d       |t        j                  _        t        j                  j                  |d|dd	
      }t        ||||       ddd       ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)z sample points extracted from Tables and Graphs of Stable
        Probability Density Functions - Donald R Holt - 1973 - p 187.
        )r   r   r   r   r   r   r   r   r`   r`   r`   r`   r   r   r   r   r   r   r   r   )gtF_?gܵ|?gQ?g@?gec]?gHP?gPkw?g!rh?gTN?g?gDioɴ?g r?gH?g+?gHPs?gX ?g&?g0*?gv/?ga2U0*?)r   re  ru   r   r   re  ru   r   r   re  ru   r   r   re  ru   r   r   re  ru   r   rO  r   zDensity calculation unstable.*)categoryr  r   r   r  N)rc   r   r\  r   rK   rs  r8   rh  rk  rb   r   )rl   r7  decimal_placesxsdensitybetasr  rb   s           r2   'test_pdf_alpha_equals_one_beta_non_zeroz6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zero  s     XXH
 ((
 
 [[X&(9(;sJJ'8   4:E0##''AuA1'ECWnf )<&&(;(;&&s%   C#'ACC#C 	C##C,zparams,expected)r  r  r   r   )r`   r   rY   r  )rY   r:  r   r   c                 |    t         j                  j                  |d   |d   |d   |d   d      }t        ||       y )Nr   r   r`   r   rU  r  )r8   rh  r   )rl   r\  rQ   observeds       r2   rZ  zTestLevyStable.test_stats  sG     $$**1IvayfQivay + 
 	Hh/r4   r  )re  ru   r   zfunction,beta,points,expectedrM  r@  rY   rz   r  r  c                     d|cxk  rdk  sJ  J t         ||||      t        j                  t        |      |             y)a\  Ensure the pdf/cdf routines do not return nan outside support.

        This distribution's support becomes truncated in a few special cases:
            support is [mu, infty) if alpha < 1 and beta = 1
            support is (-infty, mu] if alpha < 1 and beta = -1
        Otherwise, the support is all reals. Here, mu is zero by default.
        r   r   r  r  N)r   rc   r  r
  )rl   r  r%  r  r  rQ   s         r2   !test_distribution_outside_supportz0TestLevyStable.test_distribution_outside_support)  s@    P 5}1}}}V5t4GGCK*	
r4   zx,alpha,beta,expected))r   /iZ?s0?gz5F?)r   ~H?|/mg>m?)r   .d5?L,ٿg깃\?)r   >?ЀjoؿgA]4?)r   pa2?Յ пgqQ?c                     dt         j                  _        t        t         j                  j	                  |||      |       y)a  Test pdf for x equal to zeta.

        With S1 parametrization: x0 = x + zeta if alpha != 1 So, for x = 0, x0
        will be close to zeta.

        When case "x equal zeta" is not handled properly and quad_eps is not
        low enough: - pdf may be less than 0 - logpdf is nan

        The points from the parametrize block are found randomly so that PDF is
        less than 0.

        Reference values taken from MATLAB
        https://www.mathworks.com/help/stats/stable-distribution.html
        Afc=r  Nr8   rh  rn  r   rb   rl   rX   r  r  rQ   s        r2   test_x_equal_zetaz TestLevyStable.test_x_equal_zetaW  s9    Z &-"!!!5t!<	
r4   )
)r  r  r  gz¶?)r  r  r  gV?)r  r  r  gRE)3\?)r  r  r  gB?)r  r   r  g/^?)-C6r  r  gH?)r  r  r  gn?)r  r  r  gx\?)r  r  r  gVM%?)r  r   r  gm?c                     dt         j                  _        t        t         j                  j	                  |||      |       y)a  Test pdf for x near zeta.

        With S1 parametrization: x0 = x + zeta if alpha != 1 So, for x = 0, x0
        will be close to zeta.

        When case "x near zeta" is not handled properly and quad_eps is not
        low enough: - pdf may be less than 0 - logpdf is nan

        The points from the parametrize block are found randomly so that PDF is
        less than 0.

        Reference values taken from MATLAB
        https://www.mathworks.com/help/stats/stable-distribution.html
        r  r  Nr  r  s        r2   test_x_near_zetazTestLevyStable.test_x_near_zeta  s9    D &-"!!!5t!<	
r4   N)&r   r   r   r   r2  ro  rt  rv  rx  r   r   r   r  rC  r   r  r  r  r  r  r  r  rc   rR  r  r  r  r  r  r  rZ  r8   rh  rj   rb   r  r  r	  r:   r4   r2   rc  rc    s   V^^D!B "B ^^ B ^^) )V ^^  [[[[FLLlfll4v{{7G7GH

 [[/$>[[C [[]VV,<= > ? $ [[[[Vc1X.
 / 
-0 [[>?[[ 	
 [[D$<
 @

,	,
G [[[[*FLL
 FLL(#(kk&&	 FLLDCB'B2&kk''	-
*@+ ,@D [[*FLL
 FLL(#(kk&&	 FLLDCB'B2&kk''	-
*z+*zx [[Wq!f-[[VeU^41 5 .1@ [[AJ!	
@ [[!RVVRVVRVV!<=/	
00 [[W&78[[' !!%%CB'	 !!%%CB'	 !!%%Ar2&	 !!%%Ar2&	'	
:
; 9<
  [[&	
)8
98
0 [[[[	
 
! "
r4   rc  c                       e Zd Zd Zd Zy)TestArrayArgumentc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestArrayArgument.setup_method  r1  r4   c                     t         j                  j                  t        j                  d      t        j
                  d      d      }t        |j                  d       y )Nr   r8  r  )r8   r  r   rc   r  r*  r   r;  rl   r   s     r2   test_noexceptionz"TestArrayArgument.test_noexception  s>    jjnn"))A,rwwqz")  +SYY(r4   N)r   r   r   r0  r  r:   r4   r2   r  r    s    )r4   r  c                       e Zd Zd Zd Zy)TestDocstringc                 :   t         j                  j                  3t        dt         j                  j                  j	                         v        t         j
                  j                  4t        dt         j
                  j                  j	                         v        y y )Nr$  r  )r8   r$  r  r	   lowerr  rq   s    r2   test_docstringszTestDocstring.test_docstrings  sg    >>!!-J%.."8"8">">"@@A??"".K5??#:#:#@#@#BBC /r4   c                 T    t        j                          t        j                          y ro   )r8   r>   r=   rq   s    r2   test_no_name_argzTestDocstring.test_no_name_arg  s    r4   N)r   r   r   r  r  r:   r4   r2   r  r    s    Dr4   r  c                     t        g d      } t        | dkD  | d      \  }}t        |g d       t        |dg       t        ddkD  | d      \  }}t        ||        t        |dgt        j                  |       z         t        | dkD  | d      \  }}t        ||        t        |dgt        j                  |       z         y )N)r   r   r`   r   r`   r   r   r   r`   )r   r`   r`   r   r   r   )r   r   r   rc   r   r0   r1   r  s      r2   test_args_reducer    s    #$Aa!eQ"DAqq/*q1#a!eQ"DAqq!q1#
*+a!eQ"DAqq!q1#
*+r4   c                   R   e Zd Zg dZd Zg dZej                  j                  de	      d        Z
d Zd Zd Zd	 Zd
 Zd Zd Zej                  j$                  ej                  j                  dddg      d               Zej                  j                  dddg      d        Zy)TestFitMethod)ncfr  r  	irwinhallc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestFitMethod.setup_method  r1  r4   )r  r  rn  r  z	dist,argsc                    || j                   v rt        j                  d|z         t        j                  dddddt        j
                  g      }t        j                  dddddt        j                  g      }t        t        |      }t        t        |j                  |d       t        t        |j                  |d       y	)
r  z"%s fit known to fail or deprecatedrj  rk  rl  rm  rn  r   r  N)fitSkipNonFiniter   r   rc   r   r  r  r'  r8   r  r  r   )rl   rM   r)  rX   r  distfuncs         r2   !test_fit_w_non_finite_data_valuesz/TestFitMethod.test_fit_w_non_finite_data_values  s     4(((KK<tCDHHfffffbffEFHHfffffbffEF5$'j(,,!<j(,,!<r4   c           
         t         j                  j                  d       t        j                  d      5  t        j
                  j                  dddd      }t        j                  t        j                  |      t        j                  d      z
  d	z  j                               }t        t        j                  t        j
                  j                  |d
d            |d
dgd       d d d        y # 1 sw Y   y xY w)Ni90  rO  r  re  rz         4@r  r4  r`   r   r  r  r   )rc   r   r   r\  r8   r!  r   r  r  r   r   r   r   )rl   rX   expected_shapes      r2   test_fix_fit_2args_lognormz(TestFitMethod.test_fix_fit_2args_lognorm  s    
		u[[X&!!$Dr!:AWWrvvay266":'=&A%G%G%IJNBHHU]]%6%6qq%6%LM+Q3$@ '&&s   B7C66C?c                    t        j                  dd      }t        j                  j	                  |      \  }}t        |d       t        |t        j                  d             t        j                  j	                  |d      \  }}t        |d       t        |t        j                  d             t        j                  j	                  |d      \  }}t        |d       t        |d       y )Nr   r  r   r`   r   r  )rc   r  r8   r  r   r   r  r   rl   rX   r^   r_   s       r2   test_fix_fit_normzTestFitMethod.test_fix_fit_norm  s    IIaOZZ^^A&
UC#E2771:.ZZ^^AA^.
US!UBGGAJ'ZZ^^Aa^0
UC#UAr4   c                 J   t        j                  dd      }t        j                  |      j                         }d}t        j
                  j                  ||      \  }}}t        j                  |j                               |z
  }t        t        j                  |      t        j                  |      z
  |d       t        ||       t        ||j                         |z  d       d}d}t        j
                  j                  |||      \  }}}t        ||       t        ||       t        ||j                         |z  d       d	}d}t        j
                  j                  |||      \  }}}t        ||       t        ||       t        ||j                         |z  d       d}d	}	t        j
                  j                  |||	
      \  }}}t        ||       t        ||	       |t        j                  |	      z
  }
t        t        j                  |      |
       y )Nr   r  r   r   r   rP  r=  r   r   r`   r  )rc   r  r  r   r8   rX  r   r   r   digammar   )rl   rX   meanlogr   r0   r^   r_   rG   r   r   r  s              r2   test_fix_fit_gammaz TestFitMethod.test_fix_fit_gamma
  s   IIaO&&).." 53FF1668w&BFF1I(::AqIS$E1668A:q9
 bt<3QS$E1668A:q9bt<3QS$E1668A:q9 VD3S$UF#bffVn$GOOA.2r4   c           	         d }t        j                  g d      }t        j                  j	                  |dd      \  }}}}t        |d       t        |d       t         ||||      ddgd       t        j                  g d      }t        j                  j	                  |ddd	      \  }}}}t        |d       t        |d       t        |d        ||||      \  }}t        |dd
       d|z
  }	t        j                  j	                  |	ddd      \  }
}}}t        |d       t        |d       t        |d        ||
||	      \  }}t        |dd
       t        |
|       t        t        t        j                  j                  |dd       t        j                  g d      }t        t        t        j                  j                  |dd       t        t        t        j                  j                  |ddd       t        t        t        j                  j                  |ddd       t        t        t        j                  j                  |dddd       y )Nc                 Z   t        |      }t        j                  |      j                         }t        j                  d|z
        j                         }t	        j
                  | |z         }||| t	        j
                  |       z   z  z
  ||| t	        j
                  |      z   z  z
  g}|S r   )r
  rc   r  rf  r   psi)r0   r1   rX   rn  s1r  psiabr   s           r2   mlefuncz0TestFitMethod.test_fix_fit_beta.<locals>.mlefunc3  s     AAB!"BKKA&Eufw{{1~566ufw{{1~5668DKr4   )r   re  ru   r   r   r  r  r   r`   )r   r   r   r  )r  r   r   ru   r  )r   r   r   )r   r   r  r   )r   r  r   r   )
rc   r   r8   r  r   r   r   r   r  r  )rl   r4  rX   r0   r1   r^   r_   dadbr  r<  b2r=  r>  r  s                  r2   test_fix_fit_betazTestFitMethod.test_fix_fit_beta0  s   		 HH'( ::>>!!A>>1c5S!UA1a(1a&t< HH'( ::>>!!>D1c5QS!UAAq!BAD) U$zz~~bQQq~IBfRT1VQR$BAD)B" 	j%**..!#aHHHZ j%**..!!AFj%**..!!A!Lj%**..!!A!L 	j%**..!aQ	(r4   c                    t        j                  g d      }t        j                  j	                  |      \  }}t        |d       t        |d       t        j                  j	                  |d      \  }}t        |d       t        |d       t        j                  j	                  |d      \  }}t        |d       t        |d       y )N)r`   r`   r   r   r   r   r   r=  r`   r   r  r   r   r   )rc   r   r8   r  r   r   r(  s       r2   test_expon_fitzTestFitMethod.test_expon_fitg  s    HH-.[[__Q'
US!UA[[__Qq_1
US!UA[[__QQ_/
US!UAr4   c           	      @   t        j                  g d      }t        j                  |dz
        }t        j                  j                  |d      \  }}}t        ||j                         d       t        |d       t        |t        j                  |j                               d       t        j                  j                  |dd      \  }}}t        |t        j                  |t        j                  d      z
  dz  j                               d       t        |d       t        |d       t        j                  j                  |dd	
      \  }}}t        |d	       t        |d       t        |t        j                  |j                               d       y )N)r  r   rY   r8     r  r   r   r  r~   r  r  r`   r   )r   fix_s)rc   r   r  r8   r!  r   r   rt  r   r   r   r  )rl   rX   lnxm1r;  r^   r_   s         r2   test_lognorm_fitzTestFitMethod.test_lognorm_fitv  s3   HH-.q1u!MM--aa-8sEuyy{7S!rvvejjl3%@!MM--aa-BsErww):Q(>'D'D'FG"	$S!UA!MM--aat-DsEUD!S!rvvejjl3%@r4   c                    t        j                  g d      }t        j                  j	                  |      \  }}t        ||j                                t        |t        j                  |             t        j                  j	                  |d      \  }}t        |d       t        ||j                                t        j                  j	                  |d      \  }}t        |d       t        |d       t        t        t        j                  j                  |d       t        t        t        j                  j                  |d       y )N)rM  r}  r        "@r   r   rY   r  ry   rN  )rc   r   r8   rn  r   r   r%  r_  rh  r  r  r(  s       r2   test_uniform_fitzTestFitMethod.test_uniform_fit  s    HH)*]]&&q)
US!%%'"UBFF1I&]]&&qq&1
US!UAEEG$]]&&q&4
US!UBj%--"3"3QSAj%--"3"3QsCr4   r7  MLEMMc           
      >   d\  }}t         j                  j                  ||dd      }t         j                  j                  |d|      }t         j                  j                  |d|      }t	        ||dd	       t         j                  j                  |d|
      }t	        ||dd	       t         j                  j                  |d|      }t         j                  j                  |d|      }t	        ||dd	       t         j                  j                  |d|      }t	        ||dd	       t        t        t         j                  j                  |dd|       t        t        t         j                  j                  |dddd|       t         j                  j                  |ddd|      }	|	\  }
}}}t        |
||gg d       d}t         j                  j                  |d      }t         j                  j                  |||      \  }
}}t        |
|       y )N)rT  r  rZ   r   r   rT  )r   r7  )r  r7  r  r  )r  r7  r  )r  r7  )rC  r7  )rB  r7  r   r`   )r  r   r7  r   r   )r  r  r   r   r7  )r  r   r   r7  )rT  r   r   r4  )	r8   r  r   r   r   r  r  r   rX  )rl   r7  r0   r1   rX   res_1res_2res_3res_4res_5aabbr;  ssr   s                  r2   test_fshapeszTestFitMethod.test_fshapes  s   
 1JJNN1acN=

qR7

qR7u5u=

q6:u5u=

qR7

qR7u5u=

q6:u5u= 	j%**..!aO 	j%**..!aQv	7
 

qRa&IBBb"b\:. {{qs+[[__Ta_?
BRr4   c                     t         j                  }|j                  dd      }t        d      }t	        t
        |j                  |fi |d|i y )Nr`   rZ   )r  r   i)enikibenikir7  )r8   r  r   r  r  r  r   )rl   r7  rM   r   r(  s        r2   test_extra_paramszTestFitMethod.test_extra_params  sC     xx!#x&t$i4F3FvFr4   N)r   r   r   r   r0  r   r   r   r   r   r"  r&  r)  r.  r8  r:  r?  rB  r   rN  rQ  r:   r4   r2   r  r    s    1D A[[[(3= 4=@$3L5(nA(D$ [[[[Xt}5$ 6 $L [[Xt}5G 6Gr4   r  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)
TestFrozenc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestFrozen.setup_method  r1  r4   c                    t         j                  }t        j                  dd      }|j                  d      }|j                  ddd      }t        ||       |j	                  d      }|j	                  ddd      }t        ||       |j                  d      }|j                  ddd      }t        ||       |j                  d      }|j                  ddd      }t        ||       |j                  d      }|j                  ddd      }t        ||       |j                         }|j                  dd      }t        ||       |j                         }|j                  dd      }t        ||       |j                         }|j                  dd      }t        ||       |j                         }|j                  dd      }t        ||       |j                         }|j                  dd      }t        ||       |j                  d      }|j                  ddd      }t        ||       t        |j                  |j                         t        |j                  |j                         y )Nr  rT  r]   r$  re  r`   )r8   r  rb   r   rj   r   r  r   r  r   r  rt  r@   r  r0   r1   )rl   rM   frozenresult_fr  s        r2   r  zTestFrozen.test_norm  s
   zzC0::d#$D4Xv&::d#$D4Xv&::d#$D4Xv&::d#$D4Xv&99T?4s3Xv&==?S1Xv&;;=t3/Xv&::<d#.Xv&::<d#.Xv&>>#$c2Xv&==#QD4Xv&VXXtvv&VXXtvv&r4   c                    d}t         j                  }t        j                  |      }|j                  d      }|j                  d|      }t        ||       |j	                  d      }|j	                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                  d      }|j                  d|      }t        ||       t        |j                  |j                  j                         t        |j                   |j                  j                          y )Nry   r$  re  r  r`   )r8   rX  rb   r   rj   r   r  r   r  r   r  rt  r@   r  r0   rM   r1   )rl   r0   rM   rV  rW  r  s         r2   
test_gammazTestFrozen.test_gamma	  s   {{Q::d#$"Xv&::d#$"Xv&::d#$"Xv&::d#$"Xv&99T?q!Xv&==?QXv&;;=1Xv&::<!Xv&::<!Xv&>>#aXv&==#Q"Xv&VXXv{{}}-VXXv{{}}-r4   c                     t        j                  d      }|j                  d      }|j                  d       |j                  d      }t        ||       y )Nr   r`   rU  rV  )r8   r!  r  r   )rl   rV  m1r  s       r2   test_regression_ticket_1293z&TestFrozen.test_regression_ticket_1293=  sH    q!]]1V$ ]]1 	Rr4   c                    d}t        j                  |      }|j                  j                  |      \  }}t	        ||gddg       d}t         j                  j                  d|       t	        |j                  j                  |      dt        j                  g       d}t        j                  |      }|j                  j                  |      \  }}t	        ||gddg       d}t         j                  j                  d|       t	        |j                  j                  |j                  j                  ft         j                  j                  |             t        j                  d      }t        |j                  |j                  u       dD ]  }t        j                  |      }t        j                  |      }|j                  |j                  }}t	        |d       t        t        j                  |             t        j                  d      }t         j                  j                  |      \  }}t        ||gdd	g        y )
Nr  ri  rz   r  rV   r   rb  rc  ru   )r8   rd  rM   re  r   rb   rc   r  r0   r1   r	   r   rf  r   )rl   r  rk  r0   r1   rv1s         r2   rg  zTestFrozen.test_abL  s    __q!ww##A&1aVb#Y'A#RWW))!,q"&&k:__q!ww##A&1aVb#Y'Aq!bggii+U__-I-I!-LMoo$'( A

1A1%B44qABBKKN# 

3A??//2DAqQFRI. r4   c                 J    t        t        t        j                  d             y )N	rv_frozen)r	   r/   r8   r9   rq   s    r2   test_rv_frozen_in_namespacez&TestFrozen.test_rv_frozen_in_namespacex  s    ++[9:r4   c                 f   t        j                         }t        t        |d             d|_        t        |j                  j                         t        j                  j                  d      j                                t        j                  j                  d      }|j                  d|       y )Nr   *   r   r=  r   )r8   r  r	   r/   r   r   	get_staterc   r   r   r   )rl   rV  rndms      r2   test_random_statezTestFrozen.test_random_state|  s    /0 !V((224YY**2.88:	< yy$$T*


-r4   c                 T   t        j                  dd      }t        j                  d      }t        j                  g dg df      }|||fD ]  }d|_        |j                  d	       t        j                  |      }|j                  d	      }t        j                  |      }|j                  d	      }t        ||       |j                  d
      |j                  d
      g}	t        |	d   |	d          t        |j                  |	d         |j                  |	d                 y )Ngdsz@g@e?rT  )r   r   r`   r   r  r  r   r=  r4  ru   r   r   )r8   r  r}  r=   r   r   pickledumpsloadsr   r   rj   )
rl   r  poissr  distfnrG   r0	unpickledr1medianss
             r2   test_picklingzTestFrozen.test_pickling  s    zz,.ABb!""<+?+A B UF+F"&FJJAJV$A#BQIA&BR  zz#	c(:;GWQZ0GAJ/"wqz24 ,r4   c           
         d }t        j                  ddd      }t        j                  dd      5  |j	                  |ddd	
      }t         j                  j	                  |dddddd	      }d d d        t               t        j                  dd      }|j	                  |      }t         j                  j	                  |dd      }t        ||       y # 1 sw Y   lxY w)Nc                     | S ro   r:   r   s    r2   r   z$TestFrozen.test_expect.<locals>.func  s    Hr4   r`   r   r   rW  rO  )rQ  divider   T)r   ubconditionalr`   r)  r^   r_   r   ru  rv  r}  )r   r)  r^   )r8   rX  rc   r\  r   r   r}  )rl   r   gmgm_val	gamma_valro  p_valpoisson_vals           r2   test_expectzTestFrozen.test_expect  s    	 [[1!1-[[(;YYtaTYBF**4d./A4 + II < 		*MM!#mm**4d*B{+ <;s   <CC#N)r   r   r   r0  r  rY  r\  rg  ra  rf  rq  r  r:   r4   r2   rS  rS    s2    1'f2.h*/X;.40,r4   rS  c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)
TestExpectc                    t         j                  j                  d dd      }t        |dd       t         j                  j                  d dd      }t        |dd       t         j                  j	                  d	dd      }t         j                  j	                  d
dd      }t         j                  j                  d dd||      }t        |dd       t         j                  j                  d dd||d      }t        |dd       y )Nc                     | dz
  | dz
  z  S )Nr   r:   r   s    r2   rH   z&TestExpect.test_norm.<locals>.<lambda>  s    1qsr4   r   r`   r]   r   r  rP  c                     | S ro   r:   r   s    r2   rH   z&TestExpect.test_norm.<locals>.<lambda>  s    r4   r  r  c                      yr   r:   r   s    r2   rH   z&TestExpect.test_norm.<locals>.<lambda>  s    Qr4   r^   r_   r   ru  r   c                      yr   r:   r   s    r2   rH   z&TestExpect.test_norm.<locals>.<lambda>      ar4   Tr^   r_   r   ru  rv  rM  )r8   r  r   r   r   )rl   rX  rW  r   ru  prob90prob90cs          r2   r  zTestExpect.test_norm  s    JJ3!DAq"-JJm!<Aq"-ZZ^^Daq^1ZZ^^Daq^1"";AQ2""MFC4**##KQaB204 $ 6GR4r4   c           	      0   t         j                  j                  d ddd      }t        |dd       t         j                  j                  d	 dd
d      }t        |dd       t         j                  j	                  ddddd      }t         j                  j	                  ddddd      }t         j                  j                  d dd
d||d      }t        |dd       t         j                  j                  d ddd||d      }t        |dd       y )Nc                     | dz
  | dz
  z  S )NUUUUUU@r:   r   s    r2   rH   z&TestExpect.test_beta.<locals>.<lambda>  s    51U7(;r4   r8  r   r`   )r)  r^   r_   qq?r  rP  c                     | S ro   r:   r   s    r2   rH   z&TestExpect.test_beta.<locals>.<lambda>  s    r4   rN  ry   r  r  rY   r]   r  c                      y)NrM  r:   r   s    r2   rH   z&TestExpect.test_beta.<locals>.<lambda>  s    Rr4   )rY   rY   Frx  r   c                      yr   r:   r   s    r2   rH   z&TestExpect.test_beta.<locals>.<lambda>  r  r4   TrM  )r8   r  r   r   r   )rl   rX  rW  ru  r   r  r  s          r2   	test_betazTestExpect.test_beta  s    JJ;'"#1  .Avr2JJkRrJAub1ZZ^^D"baq^9ZZ^^D"baq^9""<hB)+ru # NFC4**##KhA*+rt $ MGR4r4   c                    t         j                  j                  dddd      \  }}t         j                  j                  d dd      }t        ||d	
       t         j                  j                  d dd      }t        ||d
       t         j                  j                  d dddd	      }t        ||d
       dt         j                  j	                  dd	gdddd      j                         z
  }t         j                  j                  d dddd      }t        ||d	
       t         j                  j                  d ddddd      }t        |dd
       t         j                  j                  d ddd      }	t        |	dd	
       y )Nr  rY   r=  rN  r}  c                     | S ro   r:   r   s    r2   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>      Qr4   )r  rY   r=  ry  r  rP  c                     | dz
  dz  S NrA  r`   r:   r   s    r2   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    adQYr4   r  c                     | dz
  dz  S r  r:   r   s    r2   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    QrTAIr4   r   )r)  r^   r   ru  r   c                      yr   r:   r   s    r2   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    qr4   r  rO  c                      yr   r:   r   s    r2   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    1r4   T)r)  r^   r   ru  rv  c                      yr   r:   r   s    r2   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    !r4   r   )r)  r   ru  )r8   r  r   r   rI  rf  )
rl   m_truev_truerW  rX  v_bounds	prob_trueprob_boundsprob_bcprob_bs
             r2   test_hypergeomzTestExpect.test_hypergeom  sx    ..r2qb.AOO"";[b"IAvr2OO""#6[') # +Avr2 ??))*=/:.0Q2 * ? 	Hfb9 eoo))1b'2r1!)DHHJJ	oo,,[{13b - BKB? //((;B,-"$ ) HGQ3 ''++, ( 4FAr2r4   c                    t         j                  j                  d ddd      }dt         j                  j                  dd      z
  }t	        ||d	       t         j                  j                  d
 ddd      }t	        |dd	       y )Nc                      yr   r:   r   s    r2   rH   z)TestExpect.test_poisson.<locals>.<lambda>  s    Qr4   rw  r   F)r)  r   rv  r   r`   r  rP  c                      yr   r:   r   s    r2   rH   z)TestExpect.test_poisson.<locals>.<lambda>  s    r4   T)r8   r}  r   rj   r   )rl   r  prob_b_trueprob_lbs       r2   test_poissonzTestExpect.test_poisson  sy    mm**;Ta7< + >))!Q//KbA--&&{!37 ' 9GQ3r4   c                     t         j                  }|j                  d      }|j                  d       |j                  d      }t        ||d       y )N)r  r  )ru   r  rP  )r8   genhalflogisticr   r   )rl   halflogres1r  s       r2   test_genhalflogisticzTestExpect.test_genhalflogistic
  sI     ''~~6~*F#~~6~*D$3r4   c                    t        t        j                  t        j                  j                  dd                   t        t        j                  t        j                  j                  d d                   t        t        j                  t        j                  j                  d d                   t        t        j                  t        j                  j                  d d                   y )Nr  Gz?c                      yr   r:   r   s    r2   rH   z/TestExpect.test_rice_overflow.<locals>.<lambda>      r4   )r  r  c                      yr  r:   r   s    r2   rH   z/TestExpect.test_rice_overflow.<locals>.<lambda>  r  r4   c                      yNr   r:   r   s    r2   rH   z/TestExpect.test_rice_overflow.<locals>.<lambda>  r  r4   )r	   rc   r  r8   ricerb   r   rq   s    r2   test_rice_overflowzTestExpect.test_rice_overflow  s     	EJJNN3567EJJ--k-HIJEJJ--k-HIJEJJ--k-HIJr4   c                    d\  }}t         j                  j                  d |f      }t        |||dz
  z  t	        j
                  d|z
        z  d       t         j                  j                  d |f|      }t        |||z   d       y )	N)rw  r   c                     | S ro   r:   rU   s    r2   rH   z(TestExpect.test_logser.<locals>.<lambda>       ar4   r  rM  r}   r   c                     | S ro   r:   r  s    r2   rH   z(TestExpect.test_logser.<locals>.<lambda>&  r  r4   ry  )r8   r  r   r   rc   r  )rl   ro  r^   res_0res_ls        r2   test_logserzTestExpect.test_logser  s~    3##Kqd#;QVrvvb1f~5E	C ##Kqd#Dus{7r4   c                     d\  }}t         j                  j                  d ||f      }t         j                  j                  d ||f      }t        |||z
  d       t        ||dz  z
  ||z   d       y )N)r  r  c                     | S ro   r:   r   s    r2   rH   z)TestExpect.test_skellam.<locals>.<lambda>-  s    Ar4   r  c                     | dz  S r  r:   r   s    r2   rH   z)TestExpect.test_skellam.<locals>.<lambda>.  r  r4   r  r   r`   )r8   r  r   r   )rl   rD  p2r[  r  s        r2   test_skellamzTestExpect.test_skellam)  so     B]]!!+RH!=]]!!.Bx!@BG%0RU
BG%8r4   c           
          d\  }}t         j                  j                  d ||f      }t        |t	        d t        ||      D              ||z
  z  d       y )N)r   q   c                     | S ro   r:   r   s    r2   rH   z)TestExpect.test_randint.<locals>.<lambda>6  r  r4   c              3       K   | ]  }|  y wro   r:   r^  r   s     r2   r  z*TestExpect.test_randint.<locals>.<genexpr>8  s     5}!A}s   r}   r   )r8   r:  r   r   rf  r  )rl   lohir   s       r2   test_randintzTestExpect.test_randint2  sQ     Bmm"";R95uR}55bA	Or4   c                 Z    t        t        t        j                  j                  d d       y )Nc                     | dz  S r  r:   r   s    r2   rH   z&TestExpect.test_zipf.<locals>.<lambda>=  s    q!tr4   rw  )r
   rs  r8   r  r   rq   s    r2   	test_zipfzTestExpect.test_zipf:  s    ^UZZ%6%6#T	+r4   c                     t         j                  j                  d d      }t         j                  j                  d dddd      }t        ||d	
       y )Nc                      yr   r:   r   s    r2   rH   z/TestExpect.test_discrete_kwds.<locals>.<lambda>A      Ar4   rw  r  c                      yr   r:   r   s    r2   rH   z/TestExpect.test_discrete_kwds.<locals>.<lambda>B  r  r4   r+      r  )r)  maxcount	chunksize	tolerancer  rP  )r8   r}  r   r   )rl   n0n1s      r2   test_discrete_kwdszTestExpect.test_discrete_kwds?  sL    ]]!!+D!9]]!!+D+/2 " OBB/r4   c                     d }dD ]6  }t         j                  j                  d|      }t        | ||      d       8 y )Nc                 H    | dz  d| dz  z  z   d| dz  z  z   d| dz  z  z   | z   S )Nr   rY   r   r  r   r8  r`   r:   r*  s    r2   poiss_moment5z-TestExpect.test_moment.<locals>.poiss_moment5I  s8    q52b!e8#bQh.BE9B>>r4   )r   r  r   r  r~   )r8   r}  r  r   )rl   r  r  m5s       r2   test_momentzTestExpect.test_momentF  s:    	? B%%a,BBb 1> r4   c                    t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  d      d	       t        t        j
                  j                  d
      d
       y )NrE  rM  r]   r  rY   rV   )   r  r  U   r}  )r   r8   r  r   rX  r  rq   s    r2   test_challenging_cases_gh8928z(TestExpect.test_challenging_cases_gh8928P  s     	

))b)<bA

))b)<bA

))b)<bA***7=--"-5r:r4   c           	         t         j                  }|j                  dd      }t        |j	                  dd      |       t        |j	                  dddd      |       t        |j	                  dddd      |d	z         t        |j	                  ddddd
      |       t        |j	                  dddd      d       t        |j	                  dddd      d       t        |j	                  ddddd
      d       y )NrY   r   r]   rh  r  r  r#  r  r  Tr  r  g433333@g433333rO  )r8   rn  r   r   r   )rl   rM   r~  s      r2   test_lb_ub_gh15855zTestExpect.test_lb_ub_gh15855Y  s    }}iiBai(!4c:!bA3G!rBCGL!r04 $ 67:	< 	!rBFK!rBGL!r04 $ 679	;r4   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r:   r4   r2   r  r    sK    
5 5& 3D	44K
89O+
0?;;r4   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestNctc                     t        j                  dd      }t        |j                  d      d       t        j                  dd      }t	        |j                  d      dd       y )Nr   r   ru   r   g K?rY   rP  )r8   nctr   rj   r   rr  s     r2   test_nc_parameterzTestNct.test_nc_parameterp  sI     YYq!_RVVAY$YYq"BFF1I~rBr4   c           	          t         j                  j                  dt        j                  dd      d d d f   t        j
                  ddd            }t        g dg dg dg      }t        ||d	
       y )Nr   r   r  rV   r   )gMp^j?g6].ftv?gȳ'ς?gu?)g!Y<a?g]d1p?go|?g?)gHdY?g2Ԥg?g}o/u?g .mr?r  r~   )r8   r  rb   rc   r  rR  r   r   )rl   r   rQ   s      r2   test_broadcastingzTestNct.test_broadcastingx  sc    iimmAryyAq$w7KKQ24JJJL M 	XD1r4   c                 d    t        j                  dd      }t        |j                         d       y )Nr   r   ry   )r8   r  r   r  rr  s     r2   test_variance_gh_issue_2401z#TestNct.test_variance_gh_issue_2401  s#    
 YYq!_RVVXs#r4   c                    t         j                  j                  ddd      \  }}}}t        ||||gt        j                  t        j                  t        j                  t        j                  g       t         j                  j                  ddd      \  }}}}t        t        j                  |             t        |||gt        j                  t        j                  t        j                  g       t         j                  j                  ddd      \  }}}}t        t        j                  |||g      j                                t        |t        j                         y )Nr   rw  rU  )r  ncrW  r  r~  )r8   r  r   rc   r  r	   r  r   r<  s        r2   test_nct_inf_momentszTestNct.test_nct_inf_moments  s    YY__V_D
1aaAq\BFFBFFBFFBFF#CDYY__V_D
1aAaAY 89YY__V_D
1aQ1I&**,-Qr4   c                    t         j                  j                  dd      }t         j                  j                  dd      }ddg}t        ||d   d       t        ||d       t         j                  j                  dd      }t         j                  j                  dd      }d	d
g}t        ||d   d       t        ||d       y )Nr   r`   g@ @g*dn?r   r  r~   r   gqI  @gL) ?r?  )r8   r  r   r   )rl   nct_mean_df_1000nct_stats_df_1000expected_stats_df_1000nct_mean	nct_statsr  s          r2   test_nct_stats_large_df_valuesz&TestNct.test_nct_stats_large_df_values  s     !99>>$2!IIOOD!4
 #56H!I(*@*C"	$)+A"	$ 99>>&!,IIOOFA.	,.@A."3%@	>=r4   c           	      l    t        t        j                  j                  ddt	        d            d       y )Nr`   i   r   )r   r8   r  rj   r   rq   s    r2   test_cdf_large_nczTestNct.test_cdf_large_nc  s!    		aE%L91=r4   N)	r   r   r   r  r  r  r  r  r  r:   r4   r2   r  r  o  s!    C2$ >,>r4   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestRecipInvGaussc                 R    t         j                  j                  dd      }|dk(  sJ y )Nr   r  rz   )r8   recipinvgaussrb   r  s     r2   test_pdf_endpointz#TestRecipInvGauss.test_pdf_endpoint  s%    ##As+Cxxr4   c                 p    t         j                  j                  dd      }|t        j                   k(  sJ y )Nr   r  )r8   r  r   rc   r  r  s     r2   test_logpdf_endpointz&TestRecipInvGauss.test_logpdf_endpoint  s,    ""))!S1wr4   c                 d    t         j                  j                  dd      }d}t        ||d       y )Nr  ru   g9V9s;r|  r~   )r8   r  rj   r   rl   ro  rQ   s      r2   test_cdf_small_xz"TestRecipInvGauss.test_cdf_small_x  s-      ##D#.(8%0r4   c                 b    t         j                  j                  dd      }d}t        ||d       y )NP   ru   glH<r2  )r8   r  r   r   r	  s      r2   test_sf_large_xz!TestRecipInvGauss.test_sf_large_x  s+    ""2s+(8U+r4   N)r   r   r   r 	  r	  r	  r	  r:   r4   r2   r  r    s    1(,r4   r  c                       e Zd Zd Zd Zd Zy)TestRicec                 6   g d}t        t        j                  t        j                  j                  |d            j                                t        t        j                  t        j                  j                  |d            j                                t        t        j                  t        j                  j                  |d            j                                t        t        j                  t        j                  j                  |d            j                                g d}t        t        j                  t        j                  j                  |d            j                                t        j                  j                  dd      }t        t        j                  |      j                                d}t        t        j                  j                  |d      t        j                  j                  ||      |d	       y )
N)r  rM  rN  rz   r1   )rV   rV   ru   r   r   rU  rV  r  r  )r	   rc   r  r8   r  rb   r   r   rj   r  r   r   )rl   rX   rx  rU  r1   s        r2   test_rice_zero_bzTestRice.test_rice_zero_b  sR   EJJNN1N3488:;EJJ--a2-67;;=>EJJNN1N3488:;EJJ--a2-67;;=> EJJNN1N3488:;zz62D!%%'(
 

q!,ejjnnQ.BQ	(r4   c                     t         j                  j                  }t         |d      j                  d       t         |dd      j
                  d       y )NrT  r	  r   )r   r   )r1   r   )r8   r  r   r   r   r;  r  s     r2   test_rice_rvszTestRice.test_rice_rvs  s8    jjnnS2Y^^Q'S2F+116:r4   c                    t         j                  j                  t        j                  ddd      t        j                  ddd            }g d}t        ||       t        j                  ddd      }t         j                  j                  |dd      }g d	}t        ||       t        j                   j                  j                  d
t        j                  ddd            }g d}t        ||       y )NrY      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?rV   r   g     @_@r   r  )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@ru      )gJ-$@g+f4@gce*D>@g$D@gnHGI@grN@g<
uQ@giff T@g9r[V@g3bXQ Y@gqxJ[@g`*DD ^@g@`@gdAa@)r8   r  rj   rc   r  r   r   r7   )rl   rj   cdf_expprobabilitiesr   ppf_exps         r2   test_rice_gh9836zTestRice.test_rice_gh9836  s     jjnnRYYr33RYYr35KLO
 	W%		#q#.jjnn]En;L 	W%kk""3		"c2(>?;
 	W%r4   N)r   r   r   r	  r	  r	  r:   r4   r2   r
	  r
	    s    (*;
'&r4   r
	  c                       e Zd Zd Zd Zd Zy)
TestErlangc                 B    t         j                  j                  d       y r.  r/  rq   s    r2   r0  zTestErlang.setup_method  r1  r4   c           	         t        j                         5  t        j                  dt               t	        t        t
        j                  j                  dddd       g d}t
        j                  j                  |d      }t
        j                  j                  |d      }t        ||d	
       d d d        y # 1 sw Y   y xY w)Nrl  rC  r   r   r   r  )ru   rM  ry   r  r  r]  r~   )rp  rq  rr  rs  r  r8   erlangr   r   rX  r   )rl   r   result_erlangresult_gammas       r2   test_erlang_runtimewarningz%TestErlang.test_erlang_runtimewarning  s     $$&!!'>: .,,**CQaaI (D!LL,,Ta,8M ;;??4A?6LM<dC '&&s   BB::Cc                     t        t        j                  j                  dddg      t        j                  j                  dddg             y )Nru   r   r   r  )r   r8   r	  rb   rX  rq   s    r2   test_gh_pr_10949_argcheckz$TestErlang.test_gh_pr_10949_argcheck1  s<    U\\%%caW%5[[__SQG_4	6r4   N)r   r   r   r0  r	  r 	  r:   r4   r2   r	  r	    s    D&6r4   r	  c                       e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	ej                  j                  ddd	gd
dgg      d        Z
d Zd Zy)TestRayleighc                 B    t         j                  j                  d       y )Nr  r/  rq   s    r2   r0  zTestRayleigh.setup_method7  s    
		y!r4   c                 Z    t         j                  j                  d      }t        |d       y )Nr6  g)Zx)r8   r$  r   r   rl   r  s     r2   rs  zTestRayleigh.test_logpdf;  s!    NN!!"%./r4   c                 Z    t         j                  j                  d      }t        |d       y )Nr6  i)r8   r$  ru  r   r%	  s     r2   r  zTestRayleigh.test_logsf?  s     NN  $5!r4   r7  )gB)Q?got|?)gS2P?g3?c                    t         j                  j                  d||      }d } |||      }t         j                  j                  ||      \  }}t	        ||       t	        ||       t         j                  j                  |d      \  }}t	        |d       t         j                  j                  |      \  }}t	        | |||             y )Nr  r  c                 \    t        j                  | |z
  dz        dt        |       z  z  dz  S )Nr`   ru   )rc   rf  r
  )r   r   s     r2   r  z(TestRayleigh.test_fit.<locals>.scale_mleH  s,    FFD4KA-.!c$i-@RGGr4   r   r  r  )r8   r$  r   r   r   )rl   r   r  r   r  scale_expectr^   r_   s           r2   r  zTestRayleigh.test_fitC  s     ~~!!sy!I	H !w/^^''7';
US'"UL) ^^''R'8
UUB
 ^^''-
UUIdC01r4   r  rw   g̡=E?g@1d?c                 |    t         j                  j                  d||      }t        t         j                  |       y )Nr  r  )r8   r$  r   r   )rl   r   r  r   s       r2    test_fit_comparison_super_methodz-TestRayleigh.test_fit_comparison_super_method\  s-    
 ~~!!sy!I%ennd;r4   c                 6    t        t        j                         y ro   )r  r8   r$  rq   s    r2   rX  zTestRayleigh.test_fit_warningsd  s    ENN+r4   c                    t         j                  j                  d      }d\  }}}t        j                  j                  ||||      }t        j                  j                  |      \  }}|t        j                  |      k  sJ t        j                  j                  ||      \  }}|t        j                  |      k  sJ ||k(  sJ y )Ni  )r6  r  rv  r   r  )rc   r   r   r8   r$  r   r   r%  )	rl   r   r^   r_   r   r   r   r   r   s	            r2   test_fit_gh17088zTestRayleigh.test_fit_gh17088g  s     ii##C('UDnn  e$S I^^'',
$$$"^^//E/B$$$E!!!r4   N)r   r   r   r0  rs  r  r   r   r   r  r+	  rX  r.	  r:   r4   r2   r"	  r"	  6  s    "0" [[03K3K3M N2N2. [[0D$<4>
3K3M N<N<,
"r4   r"	  c                       e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  dg d      d	        Z
y
)TestExponWeibc                     d}d}d}t         j                  j                  |||      }t         j                  j                  |||      }t	        ||gddg       y )NrV   rM  r  g:23W+g~`9k)r8   	exponweibrb   r   r   )rl   rX   r0   r  ro  rr  s         r2   test_pdf_logpdfzTestExponWeib.test_pdf_logpdfv  sY    OO1a(%%aA.D	/1DE	Gr4   c                 n   t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  ||      }t        ||       t        j                  j                  |||      }t        j
                  j                  ||      }t        ||       y )Nr  r   r   r   rZ   )rc   r  r8   r2	  rb   weibull_minr   r   rl   rX   r0   r  ro  rQ   rr  s          r2   test_a_is_1zTestExponWeib.test_a_is_1  s     KKB"OO1a($$((A.8$%%aA.$$++Aq1h'r4   c                 j   t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       t        j                  j                  |||      }t        j
                  j                  |      }t        ||       y )Nrf  r   rY   )rc   r  r8   r2	  rb   r  r   r   r6	  s          r2   test_a_is_1_c_is_1z TestExponWeib.test_a_is_1_c_is_1  s    KKAr"OO1a(;;??1%8$%%aA.;;%%a(h'r4   zx, a, c, ref))r   r  r   g=J ?)r6  r  r   g$+PR>)r  r  r   g><)r  r  r   ggX.X:)r        ?r   gRy9)r   r:	  rT  g'vR0=)g_QPr  r  gQ:<c                 b    t         j                  j                  |||      }t        ||d       y r  )r8   r2	  r   r   )rl   rX   r0   r  r~  r   s         r2   r  zTestExponWeib.test_sf  s(     __1a(Ce,r4   zp, a, c, ref))re  r  r   g;y$(@)gMg<r  r   gdbq^@)r  r   r`   gE@)gvIh%L=r:	  r   g/7@)r  r  r  gTWTOc                 b    t         j                  j                  |||      }t        ||d       y r  )r8   r2	  r  r   )rl   ro  r0   r  r~  r  s         r2   r  zTestExponWeib.test_isf  s(     oo!!!Q*Su-r4   N)r   r   r   r3	  r7	  r9	  r   r   r   r  r  r:   r4   r2   r0	  r0	  t  sh    	G( (> [[	5	-	-* [[	4..r4   r0	  c                       e Zd Zd Zd Zy)TestFatigueLifec                 `    t         j                  j                  dd      }t        |dd       y )Nr  r  X9r   r~   )r8   r  r   r   r  s     r2   test_sf_tailzTestFatigueLife.test_sf_tail  s)       ,0u=r4   c                 d    d}t         j                  j                  |d      }t        |dd       y )Nr@	  r  r  r   r~   )r8   r  r  r   )rl   ro  rx  s      r2   test_isf_tailzTestFatigueLife.test_isf_tail  s+    !!!!S)5u-r4   N)r   r   r   rA	  rC	  r:   r4   r2   r>	  r>	    s    >.r4   r>	  c                       e Zd Zd Zd Zej                  j                  dddg      d        Zd Z	ej                  j                  dd	d
g      d        Z
y)TestWeibullc                 \    t         j                  j                  dd      }t        |d       y r  )r8   r5	  r   r   r%	  s     r2   rs  zTestWeibull.test_logpdf  s$    $$Q*Qr4   c                 X   d}d}d}t         j                  j                  |||      }t        |t	        j
                  d      dz         t         j                  j                  |||      }t        |dt	        j                  d      z
         t         j                  j                  |||      }t        |t        j                  d              t         j                  j                  |||      }t        |t	        j                  t        j                  d                    t         j                  j                  |||      }t        |t	        j
                  d             t         j                  j                  |||      }	t        |	d       t         j                  j                  ddd      }t        |t	        j
                  d	             t         j                  j                  ddd      }	t        |	d	       d
}t         j                  j                  |||      }t        |t	        j
                  d      dz         t         j                  j                  |||      }t        |dt	        j                  d      z
         t         j                  j                  |||      }t        |t	        j
                  d             t         j                  j                  |||      }t        |d       t         j                  j                  |||      }t        |t        j                  d              t         j                  j                  |||      }	t        |	t	        j                  t        j                  d                    t         j                  j                  ddd      }t        |t        j                  d              t         j                  j                  ddd      }	t        |	t	        j                  t        j                  d                    y )Nr  ry   rT  r  r  r   r3  r`   r+  r  g&.gCe )r8   r5	  rb   r   rc   r   r   r  rj   r   rW  r  r   ru  weibull_max)
rl   rX   r0   r1   ro  r  r  lcrG   r  s
             r2   test_with_maxima_distribz$TestWeibull.test_with_maxima_distrib  s?   .  !!!Qa!0266%=?+%%a!%4EBFF1I-.!!!Qa!0GMM%001%%a!%4BFFGMM%$8#89:  AQ /266%=)$$Q$3E"   Qa 0266$<($$R!$4D! !!!Qa!0266%=?+%%a!%4EBFF1I-.!!!Qa!0266%=)%%a!%4E"  AQ /GMM%001$$Q$3BFFGMM%$8#89:    3GMM*@AAB$$UAQ$7BFFGMM2H$I#IJKr4   r_   rM  rV   c                 n    t         j                  j                  |dz  |dz  d|      }t        |d       y )Nrg  r=  r   r  g>)r8   r5	  r~  r   r1  s      r2   r  zTestWeibull.test_delta_cdfN  s;    " !!,,U3Ya38 - :56r4   c                    t         j                  j                  d      }d\  }}}t        j                  |||      }|j                  d|      }t        j                  j                  |dd      \  }}}	t        j                  j                  |dd      \  }
}}||cxk(  rdk(  sJ  J ||
k7  sJ t        j                  j                  |ddd	
      \  }}}|dk(  sJ t        j                  |||      }|j                  d      }t        j                  |      t        j                  |      f}t        ||       y )Nl   > )r`   r8  ru   rZ   r   r  r   r   r!  r5  r6  r8  rV  )
rc   r   r   r8   r5	  r   r   r   r  r   )rl   r   r  r^   r_   rM   r   c2r=  r>  c3r@  rA  c4rC  rD  rE  r   r~  s                      r2   test_fit_minzTestWeibull.test_fit_minc  s2   ii##$78#3  C/hhCch2 !,,00c0BD& ,,00c0BD&t q     Rxx !,,00a$0OD&{{!!"dF3kk$k'ggclEJJsO+S!r4   r  )r6  r   r`  )r   r   gq뮕qH)c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y r  )r   r8   r5	  r   r  r  s       r2   r  zTestWeibull.test_sf_isf  sB     	)),,Q2CeD))--c15quEr4   N)r   r   r   rs  rJ	  r   r   r   r  rP	  r  r:   r4   r2   rE	  rE	    su    
RLh [[WsCj17 27("< [[[+J,D+E FFFFr4   rE	  c                       e Zd Zd Zd Zy)TestDweibullc                 2   t         j                  j                  d      }d|j                  dd      z  }t        j
                  j                  |      }t        j                  j                  |      t        j                  d      z
  }t        ||d       y )N   q>~). rY   rZ   r  ru   r}   r~   )
rc   r   r   r>  r8   dweibullr@   r5	  r  r   )rl   r   r  r   r~  s        r2   rj  zTestDweibull.test_entropy  ss     ii##$78

2
..nn$$Q'''*RVVC[8Su-r4   c                 6   t         j                  j                  d      }d|j                  dd      z  }d|j	                         z  }t
        j                  j                  ||      }dt
        j                  j                  ||      z  }t        ||d       y )NrU	  rY   r   r  ru   r}   r~   )
rc   r   r   r>  rn  r8   rV	  r   r5	  r   )rl   r   r  rX   r   r~  s         r2   r  zTestDweibull.test_sf  s     ii##$78


,,nn1%E%%((A..Su-r4   N)r   r   r   rj  r  r:   r4   r2   rS	  rS	    s    ..r4   rS	  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestTruncWeibullc                 h    t         j                  j                  ddgddd      }t        |ddg       y )NrV   ry   g)\(?gףp=
?rz   )r8   truncweibull_minrb   r   r%	  s     r2   test_pdf_boundsz TestTruncWeibull.test_pdf_bounds  s0    ""&&Sz3dCQc
#r4   c                     t         j                  j                  dddt        j                        }t        |d       t         j                  j                  dddd      }t        |d       y )Nry   rM  rz   r  g~?)r8   r[	  r   rc   r  r   r   r%	  s     r2   rs  zTestTruncWeibull.test_logpdf  sU    ""))#sC@Q ""))#sC=./r4   c                 h    t         j                  j                  ddgddd      }t        |ddg       y )Nrz   rM  ry   rV   )r8   r[	  r   r   r%	  s     r2   test_ppf_boundsz TestTruncWeibull.test_ppf_bounds  s0    ""&&Sz3SAQc
#r4   c                     g d}t         j                  j                  |ddd      }t         j                  j                  |ddd      }t	        ||       y N)rz   rV   re  ru   r   r   rM  ry   rz   rT  )r8   r[	  r   rj   r   rl   rx  rX   q_outs       r2   test_cdf_to_ppfz TestTruncWeibull.test_cdf_to_ppf  sI    0""&&q"b"5&&**1b"b95!r4   c                     g d}t         j                  j                  |ddd      }t         j                  j                  |ddd      }t	        ||       y ra	  )r8   r[	  r  r   r   rb	  s       r2   test_sf_to_isfzTestTruncWeibull.test_sf_to_isf  sI    0""&&q"b"5&&))!RR85!r4   c                    dddfdt         j                  j                  d      }t        |d       t         j                  j                  d      }t	        fd      \  }}t        ||       t         j                  j                  d      }t	        fd	      \  }}t        ||       t         j                  j                  d
      }t	        fd      \  }}t        ||       t         j                  j                  d      }	t	        fd      \  }
}t        |	|
       y )Nry   rM  rT  c                 T    | |z  t         j                  j                  |       z  S ro   )r8   r[	  rb   )rX   rn  r0   r1   r  s     r2   xnpdfz)TestTruncWeibull.test_munp.<locals>.xnpdf  s)    a4..221aA>>>r4   r   r   c                      | d      S r   r:   rX   ri	  s    r2   rH   z,TestTruncWeibull.test_munp.<locals>.<lambda>      ar4   r`   c                      | d      S r  r:   rk	  s    r2   rH   z,TestTruncWeibull.test_munp.<locals>.<lambda>  rl	  r4   r   c                      | d      S r  r:   rk	  s    r2   rH   z,TestTruncWeibull.test_munp.<locals>.<lambda>  rl	  r4   r   c                      | d      S )Nr   r:   rk	  s    r2   rH   z,TestTruncWeibull.test_munp.<locals>.<lambda>  rl	  r4   )r8   r[	  r  r   r   r   )rl   rS  r[  m1_expectedr   r  m2_expectedm3m3_expectedr  m4_expectedr0   r1   r  ri	  s              @@@@r2   	test_munpzTestTruncWeibull.test_munp  s#   	? ##**1aA6R##**1aA63Q:QK(##**1aA63Q:QK(##**1aA63Q:QK(##**1aA63Q:QK(r4   c                 8   d}d}d}t        j                  dt        j                  dt        j                  dt        j                  d      z          z         z
        }t        j
                  j                  ||||      }t        |d       t        j
                  j                  ||||      }t        |t        j                  d              t        j
                  j                  d|||      }t        ||       t        j
                  j                  ||||      }t        |d       t        j
                  j                  ||||      }	t        |	t        j                  d              t        j
                  j                  d|||      }
t        |
|       y )NrM  rT  ry   r   ru   r  )rc   r  r  r   r8   r[	  rj   r   r  r   r   ru  r  )rl   r0   r1   r  x_medrj   rI	  r   r   r  r  s              r2   test_reference_valuesz&TestTruncWeibull.test_reference_values  sB   BFF3"rvvbz/0B)C#CDDE$$((1a8S!##**5!Q:RVVBZK($$((aA6U###&&uaA6C ##))%Aq9RVVBZK($$((aA6U#r4   c                    d}d}d}t         j                  }d}t        j                  j	                  |||      }t        j
                  j	                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }	t        ||	       t        j                  j                  |||      }
t        j
                  j                  |||||      }t        |
|       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j
                  j                  dd||d      }t        |t        j                  d	             t        j
                  j                  dd||d      }t        |d	       y )
Nr  ry   rz   rT  r  r3  r`   r   r+  )rc   r  r8   r5	  rb   r[	  r   r   rj   r  r   ru  r   )rl   rX   r  r0   r1   r_   ro  p_truncr  lp_truncrj   	cdf_truncrI	  lc_truncrG   s_truncr  ls_truncs                     r2   test_compare_weibull_minz)TestTruncWeibull.test_compare_weibull_min  s1    FF!!!Qe!4((,,Q1au,E7#%%a%%8))00Aq!50IH%##Aq#6**..q!Q.G	Y'%%a%%8))00Aq!50IH%  AU 3((++Aq!Qe+D7#$$Q$7))//1a%/HH% ""%%b!Q%;266$<(##))"aAQ)?D!r4   c                    d\  }}}t        j                  ||d      }t        j                  j	                  ||||      }t        j                  j                  ||||      }t        j                  j                  ||      t        j                  j                  ||      z
  }t        j                  j	                  ||      |z  }t        j                  j                  ||      t        j                  j                  ||      z
  |z  }	t         j                  j                  ||       t         j                  j                  ||	       y )N)r  re  r  rZ   )	rc   rR  r8   r[	  rb   rj   r5	  r[  r   )
rl   r  r0   r1   rX   r  r  r  r  r   s
             r2   test_compare_weibull_min2z*TestTruncWeibull.test_compare_weibull_min2  s    "1aKK1c"%%))!Q15%%))!Q15  $$Q*U->->-B-B1a-HH  $$Q*T1!!%%a+e.?.?.C.CAq.II4O


""4.


""4.r4   N)r   r   r   r\	  rs  r_	  rd	  rf	  ru	  rx	  r	  r	  r:   r4   r2   rY	  rY	    s0    $
0$
"")6$0'"R/r4   rY	  c                   `    e Zd Zd Zd Zej                  j                  dg d      d        Zy)	TestRdistc                     t         j                  }g d}t        |j                  |j	                  |d      d      |d       y )Nr\  g     @r   rP  )r8   rdistr   rj   r   )rl   rl  r  s      r2   test_rdist_cdf_gh1285zTestRdist.test_rdist_cdf_gh12850  s5    $FJJvzz&%'@%H"A	/r4   c                     t        j                  ddd      }d}t        dt        j                  |dz  |dz        j                  |dz   dz        z  t        j                  |      j                  |             y )NgGzr  rY   g@ru   r`   r   )rc   rR  r   r8   r  rb   r	  )rl   rX   r  s      r2   test_rdist_betazTestRdist.test_rdist_beta7  sd    KKtR(C

1Q3! 4 8 8!a% CC!KKN..q1	3r4   r  ))r  i  g?)rV      g;|bZ?)ru   i  g79)r   iU  g޻S/c                 \    t        t        j                  j                  ||      |d       y r  )r   r8   r	  r   r  s       r2   test_rdist_sfzTestRdist.test_rdist_sfE  s     	q!,c>r4   N)	r   r   r   r	  r	  r   r   r   r	  r:   r4   r2   r	  r	  /  s7    /3 [[	
??r4   r	  c                   x    e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  dg d      d	        Zy
)TestTrapezoidc                 H   g d}|D ]  }d|dg}t        t        j                  j                  |||      t        j                  j                  ||             t        t        j                  j                  |||      t        j                  j                  ||              y )N)r   rw  ru   r   r   r   )r   r8   r   rb   triangrj   )rl   modesmoderX   s       r2   test_reduces_to_triangz$TestTrapezoid.test_reduces_to_triangS  s~     DD!A 3 3AtT B % 0 0D 9; 3 3AtT B % 0 0D 9;	 r4   c                 R   t        j                  ddd      }t        t        j                  j                  |dd      t        j                  j                  |             t        t        j                  j                  |dd      t        j                  j                  |             y )Nr   r   rY   )rc   rR  r   r8   r   rb   rn  rj   r  s     r2   test_reduces_to_uniformz%TestTrapezoid.test_reduces_to_uniform\  sl    KK1b!EOO//1a8%--:K:KA:NOEOO//1a8%--:K:KA:NOr4   c                    t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  d	dd      d
       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d
       t        t        j                  j	                  d	dd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       y )Nr   r`   r   ru   r   r  r  rM  rV   g      ?r  r   r:	  r   g      ?)r   r8   r   rb   rj   rq   s    r2   
test_caseszTestTrapezoid.test_casesa  sf   EOO//1a8!<EOO//1a8!<EOO//Q</	1EOO//S#>/	1 	EOO//S#>FEOO//S#>EEOO//S#>FEOO//S#>HEOO//S#>FEOO//S#>DEOO//S#>HEOO//S#>Dr4   c                 V  	
 d\  	

	z
  	z
  z  	z
  	z
  z  		z
  f\  }}}}dz   
z
  	z
  z  	
fd} |d      } |d      |dz  z
  }dz
  
z   	z
  z  z   
z
  	z
  z  t        j                  dz   
z
  	z
  z        z   }t        t        j                  j                  ||||      |d       t        t        j                  j                  ||||      |d       t        t        j                  j                  ||||      |d       t        t        j                  j                  ddd	d
      dd       t        t        j                  j                  ddd	d
      dd       t        t        j                  j                  ddd	d
      dd       y )N)r0  r   r`   r   r`   c                     | dz   z  | dz   z  z
  z
  z  | dz   z  | dz   z  z
  z
  z  z
  z  | dz   z  | dz   z  S )Nr`   r   r:   )rn  r0   r1   r  dri  s    r2   r  z6TestTrapezoid.test_moments_and_entropy.<locals>.moment|  sn    !ac(Q1X-!A#6!Hq1Q3x/AaC89 :qSqS" #r4   r   ru   r  rP  r   r0  r  r   r   )rc   r  r   r8   r   r   r  r@   )rl   rD  r  r^   r_   r  r   r  r@   r0   r1   r  r	  ri  s            @@@@@r2   test_moments_and_entropyz&TestTrapezoid.test_moments_and_entropyu  s    "
1acac]QqSQqSM1acABU1QqM	# 	#
 ayQi$'!1Qq/QqSU1W-sac!eAg0GGEOO00ReD "	.EOO//BUC	-EOO33BCG#R	1 	EOO00Ar1=r2NEOO00Ar1=q"MEOO//1b!<aLr4   c                    t        j                  g d      }t        j                  ddg      d d d f   }t        j                  g d      }t        j                  j	                  |||      }t        j
                  |||      \  }}}t        j                  |j                  |j                        }t        j                  |j                        }	t        |	|j                         |j                         |j                               D ]+  \  }
}}}t        j                  j	                  |||      ||
<   - t        ||j                  |j                        d       t        j                  t        j                  j                  ||d	            }t        j
                  ||      \  }}t        j                  |j                  d
f      }t        j                  |j                        }	t        |	|j                         |j                               D ]+  \  }
}}t        j                  j                  ||d	      ||
<   - t        ||j                   j                  |j                        d       y )Nr  ru   r  )r  re  r   r  r}   r   rU  rV  r   )rc   r   r8   r   rb   broadcast_arraysemptyr   r   r  r  ravelr   r  r;  r   rs  )rl   r  r	  rX   rX  ccddr  r   indr  r  c1d1s                 r2   test_trapezoid_vectz!TestTrapezoid.test_trapezoid_vect  s   HH_%HHc3Z D)HH&'OO1a(((Aq1
Bhhrwwbhh/ii  bhhj"((*bhhjIMAr2r__((R4CF J 	3;;qww/e< JJu,,Q6,BC$$Q*Bhh|$ii S"((*bhhj9IAr2__**2r6*BCF : 	355==1>r4   c                    t        j                  ddd      }t        j                  d      5  t        j
                  j                  |dd      }d d d        t        t        j                  j                  |             y # 1 sw Y   3xY w)Nr   r   rY   z`trapz.pdf` is deprecatedr  )	rc   rR  r   deprecated_callr8   rA   rb   r   rn  )rl   rX   r  s      r2   
test_trapzzTestTrapezoid.test_trapz  sb    KK1b!##*EF[[__Q1-F GFEMM$5$5a$89 GFs   "BBr7  )rb   r   rj   r  r   ru  r   r  c                    d\  }} t        t        j                  |      d||      }t        j                  d| d      5   t        t        j
                  |      d||      }d d d        |k(  sJ y # 1 sw Y   xY w)N)r  r   r   z`trapz.z` is deprecatedr  )r'  r8   r   r   r	  rA   )rl   r7  r  r	  rQ   r  s         r2   test_trapz_deprecationz$TestTrapezoid.test_trapz_deprecation  s     1375??F3Aq!<##F8?3
 2WU[[&1!Q:F
 !!!	
 
s   #A55A>N)r   r   r   r	  r	  r	  r	  r	  r	  r   r   r   r	  r:   r4   r2   r	  r	  R  sP    ;P
E(M6?4: [[X (E F"F"r4   r	  c                       e Zd Zd Zy)
TestTriangc                 J   t        j                  d      5  t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d	       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d
       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       d d d        y # 1 sw Y   y xY w)Nraiser  r   ry   ru   rM  r   rz   r`   r   re  )rc   r\  r   r8   r	  rb   rj   rq   s    r2   test_edge_caseszTestTriang.test_edge_cases  s^   [[W%))!Q/4))#q126))!Q/4))!Q/3))#q126))!Q/3))"b126))#r2D9))#r2C8))"b126))#r2D9))"b115 &%%s   G9HH"N)r   r   r   r	  r:   r4   r2   r	  r	    s    6r4   r	  c                       e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zy)	TestMaxwellr  )r  gCR5&.)rw   g7q?c                 Z    t        t        j                  j                  |      |d       y r  )r   r8   maxwellr   r  s      r2   r  zTestMaxwell.test_sf  s     	((+Su=r4   r  ))r]  g1!@)g    ?g?)g      <gCuJ!@c                 Z    t        t        j                  j                  |      |d       y r|   )r   r8   r	  r  r  s      r2   r  zTestMaxwell.test_isf  s    
 	))!,c>r4   Nr6  r:   r4   r2   r	  r	    s\    
 [[X::<=>=> [[X:;?	;?r4   r	  c                       e Zd Zd Zd Zy)
TestMielkec                    d\  }}t        t        j                  ||      j                  d      t        j
                         t        t        j                  |d      j                  d      t        j
                         t        t	        j                  t        j                  |d      j                  d                   y )N)g rh@gv?r   rM  r  )r   r8   mielker  rc   r  r	   r  )rl   rU   rG   s      r2   rY  zTestMielke.test_moments  sz    1U\\!Q'..q1266:U\\!S)003RVV<ELLD188;<=r4   c                     t        j                  ddd      }d\  }}t        t        j                  j                  ||||z        t        j                  j                  |||             y )Nrw   rZ   r6  )g@gHzG@)rc   rR  r   r8   burrrb   r	  )rl   rX   rU   rG   s       r2   test_burr_equivalencez TestMielke.test_burr_equivalence  sO    KKc2&1

q!QqS15<<3C3CAq!3LMr4   N)r   r   r   rY  r	  r:   r4   r2   r	  r	    s    >Nr4   r	  c                   $    e Zd Zd Zd Zd Zd Zy)TestBurrc           	         t         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  d	d
gg}|D cg c]#  \  }}} |j                  |j
                  g| % }}}}|D cg c]  \  }}}|
 }}}}t        ||       |D cg c]#  \  }}} |j                  |j
                  g| % }}}}|D cg c]  \  }}}t        j                  |       }}}}t        ||       y c c}}}w c c}}}w c c}}}w c c}}}w )N)r   r   )ru   r`   )r   r   )r`   ru   rS  ru   rM  )r   r`   ry   )
r8   fiskr	  burr12rb   r0   r   r   rc   r  )rl   r   r  r  r   r  r  r  s           r2   test_endpoints_7491zTestBurr.test_endpoints_7491  s/    ZZq!ZZ1%ZZ#ZZ1%\\8S)\\63'\\63') 9==E1vrvvbdd#U#=9=>!5UI9>!#w/;?@4<2uayryy&&4@AEF)=UI266)$F!#w/ >> AFs   (D?9E(E Ec                     d\  }}t        j                  ||      j                         \  }}d\  }}t        ||       t        ||       y )N)rN  r   )g4U?g&MI?)r8   r	  r   )rl   r  r	  r   variancemean_hcvariance_hcs          r2   test_burr_stats_9544zTestBurr.test_burr_stats_9544
  sI    1Aq)//1h  Gg&+.r4   c                 <   d\  }}t        j                  ||      j                         \  }}t        t        j                  |             t        t        j                  |             d\  }}t        j                  ||      j                         \  }}t        t        j
                  |             t        t        j                  |             d\  }}t         j                  j                  t        j                  g d      ||      \  }}}}t        t        j                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             y )N)ru   r   )r  r   rN  )r  r   )r8  r   )r:  r   )r8   r	  r	   rc   r  r  _munpr   )	rl   r  r	  r   r	  e1e2e3e4s	            r2   test_burr_nan_mean_var_9544z$TestBurr.test_burr_nan_mean_var_9544  s   1Aq)//1h"#1Aq)//1hD!""#1))"((<*@!QGBB1)),1=BBB 1)),1=BBB B 1)),1=BBB B B 1)),1=BBB B B B r4   c                 x    d\  }}g d}g d}t        t        j                  j                  |||      |d       y )N)rN  rT  )rV   r  r{  r  )g+&?gI$_@gKT@gؗVAr|  r~   )r   r8   r	  r  )rl   r  r	  rx  r~  s        r2   test_burr_isfzTestBurr.test_burr_isf?  s6     1&#

q!Q/5Ar4   N)r   r   r   r	  r	  r	  r	  r:   r4   r2   r	  r	    s    0(	/(!TBr4   r	  c                       e Zd Zej                  j                  dddg      d        Zd Zej                  j                  dg d      d        Zy	)

TestBurr12zscale, expected)rM  gd~)r8  gR톇T c                 h    t         j                  j                  dddd|      }t        ||d       y )Ng     jAg     jAr   r=  r  r   r~   )r8   r	  r~  r   )rl   r_   rQ   r  s       r2   r  zTestBurr12.test_delta_cdfL  s/    ( ''S!Qe'Dxe4r4   c                 0   d\  }}t         j                  dz  }dt         j                  dz  dz  z
  }t         j                  dz  d|dz  z  z  }t         j                  }||||g}t        j                  ||      j                  d	      }t        ||d
       y )Nr  r   r   r`   r  r   r  r  rU  r|  r~   )rc   rd   r  r8   r	  r   )	rl   r  r	  r   r  r  r!  r~  r   s	            r2   test_moments_edgezTestBurr12.test_moments_edgec  s    
 1uuQw"%%(2+ouuaxCH%66S$)ll1a &&v.Su-r4   zp, c, d, ref))r  r  ru   ggx4/@)gҶOɃ;r  ru   gI8aS@)r  re  #   gj\/ @)g#aMR/re  r	  g!GAc                 b    t         j                  j                  |||      }t        ||d       y r  )r8   r	  r  r   )rl   ro  r  r	  r~  rX   s         r2   test_isf_near_zerozTestBurr12.test_isf_near_zeros  s(     LLQ1%3U+r4   N)	r   r   r   r   r   r   r  r	  r	  r:   r4   r2   r	  r	  J  sa    [[.<;=>5>5(.  [[	0,,r4   r	  c            	          e Zd Zg dZg dZg dZ ej                  eeef      Zg dZ	ddddd	ej                  gZg d
Z e e ee	ee      e            Zddddej                  dfddej                  dfddej                  dfgZej&                  j(                  d        Zej&                  j,                  d        Zej2                  j5                  e      ZdZ eej2                  j?                  ee            5 Z  e!jD                  e       Z#ddd       ej&                  jI                  de#d         d        Z%ej&                  jI                  de#d         d        Z&ej&                  j,                  ej&                  jO                  d      ej&                  jI                  de#d         d                      Z(ej&                  j(                  d        Z)ej&                  j,                  d        Z*ej&                  jI                  de      d         Z+ej&                  j,                  ej&                  jO                  d      d!               Z,ej&                  j,                  d"        Z-d# Z.d$ Z/d% Z0y# 1 sw Y   jxY w)&TestStudentizedRange)gQ1@g33333F@g
ףp=*K@gHzM@g/$@g~j!@g33333$@g{Gz&@gh|?5	@gQ8@g&1@g|?5@g@gOn@g!rhm@gB`"@r   gʡEs@g|?5^@g/$@gV-@g/$@gF@g?5^I@)gRV@gffffffl@gp@g     r@gʡ @gHzG/@gQ82@gQ3@g!rh@g     @g+@gʡEs @gjt@gB`"[@g@gnJ@gV-@gFx@gsh|?@g+N@g/$@g @g@gGz@)gfffff"@i  i
  i  gHzG2@g(\A@gQC@gfffffE@g @gNbX9"@gHz$@g(\&@g-@gn@@gw/@g=
ףp @gJ+@g-'@gn@gHz@gV-@gnJ@g$@g/ݤ@)r  r  r  r   r   rY   r  x   )r`   r=  r  r  )rV   r   i)#  gupm1f?)r   rY   r   g?<-=A?gv"?r   gd暕?ga-A?c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )Nr  r~   )r   r8   studentized_rangerj   r   )rl   pvkrx  
p_expectedrX  rU   res_ps          r2   test_cdf_against_tablesz,TestStudentizedRange.test_cdf_against_tables  sF    iiFC"J1++//1a8EE:D9  r4   c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )NMb@?r~   )r   r8   r	  r   r   )rl   r	  
q_expectedro  rX  rU   res_qs          r2   test_ppf_against_tablesz,TestStudentizedRange.test_ppf_against_tables  sE    #yyOCGAq!++//1a8EE:D9  )r4   z&data/studentized_range_mpmath_ref.jsonNcase_resultcdf_datac                     |d   }|d   }|d   |d   |d   f}t        j                  j                  | }t        |||d   |d          y 	Nsrc_case	mp_resultrx  rU   rX  expected_atolexpected_rtolr  )r8   r	  rj   r   rl   r	  r	  r	  qkvr   s         r2   test_cdf_against_mpz(TestStudentizedRange.test_cdf_against_mp  `    z*,	smXc]HSM9%%))3/Y%o6%o6	8r4   pdf_datac                     |d   }|d   }|d   |d   |d   f}t        j                  j                  | }t        |||d   |d          y r	  )r8   r	  rb   r   r	  s         r2   test_pdf_against_mpz(TestStudentizedRange.test_pdf_against_mp  r	  r4   z+intermittent RuntimeWarning: invalid value.moment_datac                     |d   }|d   }|d   |d   |d   f}t        j                  d      5  t        j                  j                  | }d d d        t        ||d   |d	   
       y # 1 sw Y   xY w)Nr	  r	  rW  rU   rX  rO  rP  r	  r	  r  )rc   r\  r8   r	  r  r   )rl   r	  r	  r	  mkvr   s         r2   test_moment_against_mpz+TestStudentizedRange.test_moment_against_mp  s     z*,	smXc]HSM9 [[*))00#6C + 	Y%o6%o6	8 +*s   A**A3c                     d\  }}t        t        j                  j                  dt        j
                  ||f      }t        |d   d       y )Nr   rY   r   r  r   )r   r8   r	  rb   rc   r  r   )rl   rU   rX  r   s       r2   test_pdf_integrationz)TestStudentizedRange.test_pdf_integration  s=    15**..266AGA"r4   c                     d\  }}t        j                  ddd      }t        j                  j	                  |||      dd  }t        j                  j                  |||      }t        ||      }t        ||d       y )	Nr	  r   rY   rw   )stepr   r  r~   )rc   r  r8   r	  rj   rb   r   r   )rl   rU   rX  rX   y_cdf	y_pdf_rawy_pdf_cumulatives          r2   test_pdf_against_cdfz)TestStudentizedRange.test_pdf_against_cdf  sv    1
 IIa$'''++Aq!4QR8++//1a8	/	1= 	(%d;r4   r_case_resultc                     |\  }}}}t        j                  d      5  t        j                  j	                  |||      }d d d        t        |       y # 1 sw Y   xY w)NrO  rP  )rc   r\  r8   r	  rj   r   )rl   r
  rx  rU   rX  r_resr   s          r2   test_cdf_against_rz'TestStudentizedRange.test_cdf_against_r  sO     '1a[[*))--aA6C +U# +*s   "AAc                 ~   t        j                  d      5  t        j                  j	                  ddgddgddg      }d d d        t        j                  d	       t        j                  t        d
      5  t        j                  j	                  dddgg d       d d d        y # 1 sw Y   ixY w# 1 sw Y   y xY w)NrO  rP  r   r`   r   r   rY   r#  rw  z...could not be broadcast...r  )rY   r#  rO  )
rc   r\  r8   r	  r	  r   r;  r   r   r  r  s     r2   test_moment_vectorizationz.TestStudentizedRange.test_moment_vectorization  s     [[*''--q!fq!fr2hGA + 	&]]:-KL##))!aV\B ML +*
 MLs   (B'8&B3'B03B<c                 `   t               5 }t        j                  d      5  |j                  t               t
        j                  j                  g d      \  }}}}d d d        d d d        t        t
        j                  j                               y # 1 sw Y   ;xY w# 1 sw Y   ?xY w)NrO  rP  r  )
r   rc   r\  rK   r   r8   r	  r  r	   	_argcheck)rl   r  rU   r  r   s        r2   test_fitstart_validz(TestStudentizedRange.test_fitstart_valid  sw     CX)FJJ)*11;;IFKAr1a *G  	''11!R89	 *G)F  s"   B$<BB$B!	B$$B-c                    t         j                  j                  ddt        j                        }t         j                  j                  ddd      }t        ||dd       t         j                  j                  ddt        j                        }t         j                  j                  ddd      }t        ||dd       y )Nr   rY   韆 r  r  )r8   r	  rb   rc   r  r   rj   )rl   r   
res_finites      r2   test_infinite_dfz%TestStudentizedRange.test_infinite_df  s     %%))!R8,,00B>
Zd>%%))!R8,,00B>
Zd>r4   c                 0   t         j                  j                  ddd      }t         j                  j                  ddd      }t         j                  j                  ddd      }t        t        t
        ||dd       t        ||dd       t         j                  j                  ddd      }t         j                  j                  ddd      }t         j                  j                  ddd      }t        t        t
        ||dd       t        ||dd       y )Nr   rY   r   r
  i r  r  )r8   r	  rb   r  AssertionErrorr   rj   )rl   r   r
  
res_sanitys       r2   test_df_cutoffz#TestStudentizedRange.test_df_cutoff&  s     %%))!R8,,00B>
,,00B>
nosJd	,
JTE%%))!R8,,00B>
,,00B>
nosJd	,
JTEr4   c                 |    d\  }}}t         j                  j                  |||      }t        |dd       |dk\  sJ y )N)gaRA@r   iS  r   r  r   )r8   r	  r   r   )rl   rx  rU   rX  ro  s        r2   test_clippingz"TestStudentizedRange.test_clipping;  s@     .1a##&&q!Q/15)Avvr4   )1r   r   r   q05q01q001rc   r  qspsr  vskslistr  r'   r   r_datar   r   r   r	  r   r	  ospathdirnamer  path_prefixrelative_pathopenr  filejsonr  pregenerated_datar   r	  r	  xfail_on_32bitr	  r	  r
  r
  r
  r

  r
  r
  r
  r:   r4   r2   r	  r	    s   'C'C(D 
c4(	)B	B
QBRVV	$B	BGBB',-D
 	*(	
Arvv()	
Arvv()	
B)*F [[: : [[: : ''//(+K<M	bggll;6	74%DIIdO 
8 [[],=j,IJ8 K8 [[],=j,IJ8 K8 [[[[ MN[[],=m,LM8 N O 8 [[# # [[< < [[_f5$ 6$ [[[[ MNC O C [[: :	?F*C 
8	7s   ?I::Jr	  c                     t        t        j                  j                  d      ddd       t        t        j                  j                  d      ddd       t        t        j                  j                  dd	d
      ddd       y )Ng2g?rY   test_540_567)rQ  r  g2gk?g;B.?gͣh?gHŎ*?r]   g.y?)r   r8   r  rj   r:   r4   r2   r)
  r)
  E  sk    

}57J "N<

}57K "N<

}.-; ' =+ "N<r4   c                  Z    t        t        j                  j                  dd      dd       y )Nrz   r`   ru   r  rM  r:   r4   r2   test_regression_ticket_1326r+
  Q  s    

sA.R8r4   c            	      j   t        j                  ddd      } t        j                  d      5  dddt        j                  dgdgdgg      fD ]k  }t        j
                  j                  | |      }t        |dk7  j                                t        t        j                  |      j                                 m t        j                  dgdgd	gg      }t        j
                  j                  | |      }d d d        t        t        j                        j                                 t        |d
   dk7  j                                t        |d   dk7  j                                t        |d   dk7  j                                t        |d   dk(  j                                y # 1 sw Y   xY w)N      rN  rW   rO  rt  rz   r  rc  ry   r   r   r`   )rc   rR  r\  r   r8   r*   rb   r	   r   r  r   )rX   r  ro  s      r2   test_regression_tukey_lambdar/
  V  sT    	D#s#A	H	%tRXXvutf.E%FGC!!%%a-AQ#XNN$%RXXa[__&&' H
 hhu-.!!!S) 
& RXXa[__QqTS[ QqTS[ QqTS[ QqTS[  
&	%s   C	F))F2zdocstrings strippedr  c                      t        dt        j                  j                  v       t        dt        j                  j                  v        y )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r	   r8   r}  r  r:   r4   r2   test_regression_ticket_1421r1
  k  s1    (0E0EEFH---.r4   c            	      	   t        j                  d      5  t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j!                  t         j                  d                   t        t        j                  t        j                  j#                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   d d d        y # 1 sw Y   y xY w)NrO  rP  r   ru   )rc   r\  r	   r  r8   r   r  r  rj   ru  r   rb   r   r   r  r  rI  r  r:   r4   r2    test_nan_arguments_gh_issue_1362r3
  q  sj   	X	&266234Q/01q"&&123Arvv./0Q/01266234Q/01Q/01//<=>,,RVVS9:;..rvvs;<=++BFFC89:,,RVVS9:;//<=>,,RVVS9:;,,RVVS9:;# 
'	&	&s   R!SS
c                     t         j                  j                  d       t        j                  g d      } t        j
                  j                  | d   | d   | d   d      }t        j                  d	      5  t        j                  t        j
                  j                  |d
            }d d d        t        | d       t        j                  t        j
                  j                  |dd            }t        || d       t        j                  t        j
                  j                  |dd            }t        || d       t        j                  t        j
                  j                  |dd            }t        || d       t         j                  j                  d       d}d}t        j                  j                  |dd      }t        j                  t        j                  j                  ||            }t        j                  |t        j                  ||z
  dz  j                               g      }t        ||d       y # 1 sw Y   xY w)Ni.  )re  rz   ru   r   r   r`   rZ   r4  rO  r.
  rz   r   rP  ru   )r   r^   re  )r   r^   r+  r   ry   r   )rc   r   r   r   r8   r!  r   r\  r   r   r  r  r   )truerX   r\  r^   r   rQ   s         r2   test_frozen_fit_ticket_1536r6
    s   IINN488O$D$q'47DG#>A	H	%%--++AB+78 
& a0XXemm''#1'=>Fa0XXemm''d':;Fa0XXemm''d';<Fa0IINN4
CD

sBS)AXXejjnnQTn23Fxxrww4!'9'9';<=>H!4) 
&	%s   95IIc                      t         j                  j                  d       t        j                  j                  d      } t        j                  j                  |       }d}t        ||d       y )Ni	 rZ   r4  )g
ףp=
?gʡE?r   rP  )rc   r   r   r8   r#  r   r   r   )r   r\  rQ   s      r2   test_regression_ticket_1530r8
    sN    IINN6
,,



$C\\c"FH!4r4   c                     t         j                  j                  d       t         j                  j                  d      } dD ]C  }t        j
                  j                  | |z         \  }}t        ||d       t        |dd       E y )Nr   rc  )r  g   6ArM  r   r  )rc   r   r   r  r8   r#  r   r   )rX   offsetr^   r_   s       r2   test_gh_pr_4806r;
    sb    IINN4
		A'\\%%a&j1
UV#.s- (r4   c                  b   t         j                  j                  dd      } dt        j                  dz  dz  ddg}t	        | |d       t         j                  j                  d	d      } g d
}t	        | |d       t         j                  j                  dd      } g d}t	        | |d       y )Nr   rU  rV  r`   r   r  rY   rP  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r8   r*   rc   rd   r   )r[  rQ   s     r2   "test_tukeylambda_stats_ticket_1545r=
    s     
			 	 F	 	3B255!8A:q#&HHb1				 	 v	 	6BCHHb1				 	 v	 	6BCHHb1r4   c                  |    t        t        j                  t        j                  j                  dd                   y )Nr  r  )r	   rc   r  r8   r}  r  r:   r4   r2   test_poisson_logpmf_ticket_1436r?
    s$    BKK,,T3789r4   c                  z    ddg} | D ]2  \  }}t         j                  j                  |d      }t        ||       4 y)a  Test the powerlaw stats function.

    This unit test is also a regression test for ticket 1548.

    The exact values are:
    mean:
        mu = a / (a + 1)
    variance:
        sigma**2 = a / ((a + 2) * (a + 1) ** 2)
    skewness:
        One formula (see https://en.wikipedia.org/wiki/Skewness) is
            gamma_1 = (E[X**3] - 3*mu*E[X**2] + 2*mu**3) / sigma**3
        A short calculation shows that E[X**k] is a / (a + k), so gamma_1
        can be implemented as
            n = a/(a+3) - 3*(a/(a+1))*a/(a+2) + 2*(a/(a+1))**3
            d = sqrt(a/((a+2)*(a+1)**2)) ** 3
            gamma_1 = n/d
        Either by simplifying, or by a direct calculation of mu_3 / sigma**3,
        one gets the more concise formula:
            gamma_1 = -2.0 * ((a - 1) / (a + 3)) * sqrt((a + 2) / a)
    kurtosis: (See https://en.wikipedia.org/wiki/Kurtosis)
        The excess kurtosis is
            gamma_2 = mu_4 / sigma**4 - 3
        A bit of calculus and algebra (sympy helps) shows that
            mu_4 = 3*a*(3*a**2 - a + 2) / ((a+1)**4 * (a+2) * (a+3) * (a+4))
        so
            gamma_2 = 3*(3*a**2 - a + 2) * (a+2) / (a*(a+3)*(a+4)) - 3
        which can be rearranged to
            gamma_2 = 6 * (a**3 - a**2 - 6*a + 2) / (a*(a+3)*(a+4))
    )rM  )ru   r  rz   r  )ry   )gUUUUUU?r  g^cQg333333rU  rV  N)r8   rZ  r   )r  r0   
exact_mvskrU  s       r2   test_powerlaw_statsrB
    sB    > ,=?E:~~##Av#6!$
3 r4   c                  \    t         j                  j                  dd      } t        | d       y )Nr   r   rz   )r8   rZ  r   r   ro  s    r2   test_powerlaw_edgerE
    s"    a#ACr4   c                  v   t         j                  j                  dd      } t        | d       t         j                  j	                  dg d      } t        | t
        j                  ddg       t         j                  j                  dg d      } t        | t
        j                  dt
        j                   g       y )Nr   r   rz   )re  rM  r  rM  )r8   r  r   r   rb   rc   r  rD
  s    r2   test_exponpow_edgerG
    s    a#AC 	1./ARVVS#&'a!12ARVVS266'*+r4   c                  ^    t         j                  j                  ddd      } t        | d       y )Nr   r   rM  )r8   gengammarb   r   rD
  s    r2   test_gengamma_edgerJ
    s$    1a#ACr4   za, c, ref, tol))g    `6Ar   g2j!@r}   )r  r   ggA@r}   )r  r   r2  r}   )r  r   g #@r   )g    `FAr  gI~mr}   )gl$W}Lr  g.I#Ur}   c                 \    t        t        j                  j                  | |      ||       y rJ  )r   r8   rI
  r@   )r0   r  r~  r  s       r2   test_gengamma_extreme_entropyrL
    s!    " ENN**1a0#C@r4   c                      t         j                  j                  ddd      } | dk(  sJ t         j                  j                  ddd      }|t        j
                   k(  sJ y )Nr   r   r   rz   )r8   rI
  rb   r   rc   r  )ro  rr  s     r2   !test_gengamma_endpoint_with_neg_crN
    sO    1a$A8O8>>  Ar*DBFF7??r4   c                      t         j                  j                  ddd      } t        | d       t         j                  j                  ddd      } t        | d       y )Nr   r  rM  g>rY   gqq?)r8   rI
  r	  r   rD
  s    r2   test_gengamma_munprP
  &  sF    Rb)A:&RR(A6"r4   c                  \   t        j                  g d      } t        j                  d      5  t               5 }|j	                  t
        d       |j	                  t        d       t        j                  j                  |        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N)0g>X*ȿgPix#?g=?g&^?goϿg뵏˿gO_ZQ?g\?g~?g)/?gRܶ?g핚οgH߃[g?gS"gm_ пg7k?g#BF?gKU=?gT?gZg[Qs?g2?g6Hwƭ8?g*-
?ga]?g'?g޻?g?J_ ?g~sw?g0FfͿgg"@ӿg?%:˿g&zM?g?Gg	F?g~,g HgW2ҿgTzy?gwmǿg @gW=ֿg	't?g".v1glg.Hꮿg,?g*˿rO  rP  z:The maximum number of subdivisions .50. has been achieved.z-floating point number truncated to an integer)
rc   r   r\  r   rK   r   rs  r8   r  r   )r	  r  s     r2   test_ksone_fit_freezerR
  /  s    
		/
	0A 
X	& CJJ)#$ JJ~FHKKOOA ! 
'	&   
'	&s#   B"ABB"B	B""B+c            	      T   t        j                  t        t        ddd                   } g d}t	        t        j                         j                  |       |d       t	        t        j                         j                  | dz         j                  |d       t
        j                  j                  | dz         d	z  j                  }t        j                  t
        j                  j                  |       t
        j                  j                  |       z
        }t	        ||d	       y )
Nr   r	  r   )gDB.g8_$g%`OAgjhwHRgWMB@v`g7VY}igۦx\Arg	xg#g/dg3$gegd)gNq{3gيGǓgr4g37'
gfFg?dJgضg2,
gm%gӅJgz;pgɿ{gk2gij<%giVSͶgBR4g
Q/Mr  r   y        +=y        |=r  )rc   r   r
  r  r   r8   r  r  realimagr   r   )rX   rQ   derivderiv_expecteds       r2   test_norm_logcdfrX
  G  s     
Dq#q)*	++A0H EJJL''*H4@ EJJL''F
388(N ZZq6z*5066EVVEJJ--a05::3D3DQ3GGHNE>6r4   c                     t        j                  g d      } t        j                  g d      }t        j                  j	                  |       }t        ||d       t        j                  j                  |      }t        || d       y )N)r   rM  ru   rV   rw   r]  )g~V1?r  gba"?g܄4ťY?r  g$%+Ir  r~   r   )rc   r   r8   r  rj   r   r   )rX   rQ   r  r  s       r2   test_levy_cdf_ppfrZ
  `  sf    
34A xx 1 2H 	

qAAxe, 
	!BB&r4   c                      t        j                  g d      } t        j                  g d      }t        j                  j	                  |       }t        ||d       y )N)rK  rm  gMraB3Gr  )gep[>g}XEQ=gѭEG<g?_%~:r|  r~   )rc   r   r8   r  r   r   rX   rQ   r  s      r2   test_levy_sfr]
  x  sD    
)*Axx 0 1H 	

aAAxe,r4   zp, expected_isf))r{  gj1e2H)r  g6C)r  gnE@)rp  g!^x1?)r  gZ?)g   ?g:}!Nu?c                 ^    t         j                  j                  |       }t        ||d       y )Nr2  r   )r8   r  r  r   )ro  expected_isfrX   s      r2   test_levy_isfr`
    s"     	

qAA|%0r4   c                      t        j                  g d      } t        j                  g d      }t        j                  j	                  |       }t        ||d       y )N)gMb{Gzg{Gztg~jtX)g#]<gOul2;gޢا6g̅7=!r   r~   )rc   r   r8   r   r   r   r\
  s      r2   test_levy_l_sfrc
    sD    
12Axx 1 2H 	AAxe,r4   c                      t        j                  g d      } t        j                  j	                  |       }t        j                  j                  |      }t        || d       y )N)g [n<re  r  r  r~   )rc   r   r8   r   r  r   r   )ro  rX   rx  s      r2   test_levy_l_isfre
    sC    
&'AAAAqu%r4   c                     t        t        j                  j                  dddd      d       t        t        j                  j                  dddd      d       t        t        j                  j                  dddd      d       t        t        j                  j	                  d	d
d
d      d       t        t        j                  j	                  dd
d
d      d       y )Nr  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@r  rZ   r=  r   )r   r8   r  r  r   r:   r4   r2   test_hypergeom_interval_1802rh
    s    ))#vucB!))$sC! ))#vucB! $$T3Q7;$$QS!4a8r4   c                  	   t         j                  j                  d       t        j                  ddd      } t	        t
        t        j                  j                  | ddd	       t	        t
        t        j                  j                  | ddd
d	       t	        t
        t        j                  j                  | ddd
d       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  | dddd       t        j                  j                  | dd       t        j                  j                  | ddd
       t        j                  j                  dd       t        j                  j                  ddd
       t        j                  j                  ddd
d       t        j                  j                  ddd
d       t        j                  j                  t        j                  j                  dd      d       t        j                  j                  | dd	       t	        t
        t        j                  j                  | ddd
       t	        t
        t        j                  j                  | ddd
	       t	        t
        t        j                   j                  | dd	       t	        t
        t        j"                  j                  | dd
dd	       t	        t
        t        j"                  j                  | dd
ddd       t	        t
        t        j$                  j                  | dd
ddd	       t	        t
        t        j$                  j                  | dd
dddd	       t        j$                  j                  | dd
ddd       y )Nr   rV   r  r   numr`   r   rM  r}  r   ru   r]   ry   r[  r  r4  r  r  )rc   r   r   rR  r  r  r8   rX  rb   r   rj   r   r@   r   rc  rI  r  r2	  r  r   s    r2   test_distribution_too_many_argsrl
    s   IINN4 	C!$A)U[[__aA3?)U[[__aAqcB)U[[__aAq!<)U[[__aA3cJ)U[[__b!CH)U[[__aQCsK)U[[__aQCsK)U[[..A3cJ)U[[00"aSL)U[[__aQCsK 
KKOOAq!	KKOOAq!Q	KKb!	KKb!Q	KKb!Q%	KKOOB1a 	KKOOEKKOOBQO/4 
JJNN1aQN)UZZ^^Q1a8)UZZ^^Q1!< )U[[__a<)U__00!Q1#F)U__00!Q1c3G)UYY]]Aq!QsC)UYY]]Aq!Q3cJ	IIMM!Q1a%r4   c                      t         j                  j                  t        j                  ddd      dd      } t         j                  j                  t        j                  ddd      dd      }t        | |dd       y )	Nr  r  r  r`   gYZ@r]  r   r_  )r8   ncx2rj   rc   r  _cdfvecr   r>  s     r2   test_ncx2_tails_ticket_955rp
    sZ     	

ryyR-q.AA

299RS11nEAAqt!,r4   c            
         t        j                         5  t        j                  dt               t	        t
        j                  j                  dt        j                  dd      d      d       t
        j                  j                  dt        j                  dd      d      } d d d        t        t        j                         j                                t        j                         5  t        j                  dt               t	        t
        j                  j                  ddd	      d       t        t
        j                  j                  ddd	      d
       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nrl  r   iT  i^  r`   r   r,  r   rO  gsq6)rp  rq  rr  rs  r   r8   rn
  rb   rc   r  r   r	   rq  r   r   )logvals    r2   test_ncx2_tails_pdfrs
    s     
	 	 	"g~6UZZ^^Aryyc':A>B""1biiS&91= 
#
 BKK##%& 
	 	 	"g~6UZZ^^E1b115

))%B79KL 
#	" 
#	" 
#	"s   BE&,A1E2&E/2E;zmethod, expectedrj   gu%>g	;Q=rb   g<x>gRz\R>r   gʎK$/gԆX1r   gfHu@ge:@c                 j     t        t        j                  |       dddgd      }t        ||d       y )NrV   r   r   rY   )r  r  r}   r   )r'  r8   rn
  r   )r7  rQ   r  s      r2   test_ncx2_zero_ncru
    s/      )WUZZ(!QB?FFH51r4   c                      t         j                  j                  ddd      } t         j                  j                  dd      }t	        | |d       y )NrY   r   r   )r  r  r   )r  r   r}   r   )r8   rn
  r   rN  r   )r  rQ   s     r2   test_ncx2_zero_nc_rvsrw
     s>     ZZ^^raa^8Fzz~~!~4HFH51r4   c                      dt        j                  dd      z  } t        t        j                  j                  dd|       d       y )NrY   r   r  r   r  r  r   )rc   r  r   r8   rn
  rj   )r  s    r2   test_ncx2_gh12731rz
     s4    	RYYq"	Bb115r4   c                      t        j                  g d      } d\  }}t        j                  j	                  | ||      }g d}t        ||d       y )N)gю]	@gj%@gb	y/7@g H@gIZ@gXl@g'/2?8@gݰmА@gU@gy]`'@g@g*\@g48c@)r  gh ?8@ry
  )rM  rM  rM  rM  rM  g?gy[qD?rz   rz   rz   rz   rz   rz   r  r   )rc   r   r8   rn
  r   r   )rX   nur  r   sf_expecteds        r2   test_ncx2_gh8665r~
  !   sM    
 " 	#A
 %GB	qRC	(B'K
 B%0r4   c            	         d} d}t        j                  t        j                  j	                  d| |      t        j                  j	                  d| |      d      }t        j                  j                  || |      }t        j                  j                  || |z   t        j                  d| z  d|z  z               }t        ||d	
       y )Ni,  i  r]  r  r,  rj
  r`   r   r  r   )	rc   rR  r8   rn
  r   rb   r  r  r   )r  r  rX   ncx2_pdfgauss_approxs        r2   test_ncx2_gh11777r
  <   s    
 
B	B
EJJNN5"b1JJNN5"b1u	>Azz~~aR(H::>>!R"Wbgga"fq2vo.FGLHl6r4   zx, c, expected))r`   r   g|1q?)r`   r`   g~?)r  r   V<3T1=) 7yQCr   u	lY<)r  g   vHGBg^b!*1=)r   r  gS?c                 ^    t         j                  j                  | |      }t        ||d       y Nr  )r8   
foldcauchyr   r   rX   r  rQ   r   s       r2   test_foldcauchy_sfr
  Y   s(     
				Q	"BB%(r4   ro  ))r`   g?)r  r
  )r
  r
  )g6ްPg8R#/c                 \    t         j                  j                  |       }t        ||d       y r
  )r8   r  r   r   )rX   rQ   r   s      r2   test_halfcauchy_sfr
  g   s&     
				Q	BB%(r4   zp, expected))g?g*wӄZ>)333333?gN9?)ru   rM  )rw   g8<,O@)r|  g:B)gl ׶w/gMb}[Pc                 Z    t         j                  j                  |       }t        ||       y ro   )r8   r  r  r   )ro  rQ   rX   s      r2   test_halfcauchy_isfr
  s   s$     	QAAx r4   c                  h    t        j                  dd      } t        | j                  d      d       y )Nr   r   r  )r8   r  r   rj   )rk  s    r2   test_foldnorm_zeror
     s$    		#BAr4   ))r`   r   gwo{?)r  r   gGd-P/)rY   r8  gof?)r  r8  gOul";c                 ^    t         j                  j                  | |      }t        ||d       y )Nr|  )r8   r  r   r   r
  s       r2   test_foldnorm_sfr
     s&     
		1a	 BB%(r4   c                     t         j                  j                  g ddd      } t         j                  j                  ddgdd      }t        d |D              }t        ||        t         j                  j                  g d      } t         j                  j                  ddg      }t        d	 |D              }t        ||        y )
N)rz   ru   rM  r   ru   rM  c              3   b   K   | ]'  }t         j                  t         j                  |f    ) y wro   rc   rG  r  r  s     r2   r  z-test_stats_shapes_argcheck.<locals>.<genexpr>   s"     8Cq"%%	*C   -/)r`   r  r   r`   r  c              3   b   K   | ]'  }t         j                  |t         j                  f    ) y wro   r
  r  s     r2   r  z-test_stats_shapes_argcheck.<locals>.<genexpr>   s"     8Cq"%%266	*Cr
  )r8   r  tupler   r!  )mv3mv2mv2_augmenteds      r2   test_stats_shapes_argcheckr
     s     ..

3
7C
..

Sz1c
2C8C88M$ --

l
+C
--

q#h
'C8C88M$r4   c                       e Zd Zd Zy)
_distr_genc                      yNrc  r:   rl   rX   r0   s      r2   _pdfz_distr_gen._pdf   s    r4   Nr   r   r   r
  r:   r4   r2   r
  r
     s    r4   r
  c                       e Zd Zd Zy)_distr2_genc                     d|z  |z   S r
  r:   r
  s      r2   _cdfz_distr2_gen._cdf       Avzr4   N)r   r   r   r
  r:   r4   r2   r
  r
     s    r4   r
  c                       e Zd Zd Zd Zy)_distr3_genc                     ||z   S ro   r:   rl   rX   r0   r1   s       r2   r
  z_distr3_gen._pdf   s    1ur4   c                     d|z  |z   S r
  r:   r
  s      r2   r
  z_distr3_gen._cdf   s     Avzr4   Nr   r   r   r
  r
  r:   r4   r2   r
  r
     s    r4   r
  c                       e Zd Zd Zd Zy)_distr6_genc                     ||z  |z   S ro   r:   r
  s       r2   r
  z_distr6_gen._pdf   s    sQwr4   c                     d|z  |z   S r
  r:   r
  s       r2   r
  z_distr6_gen._cdf   r
  r4   Nr
  r:   r4   r2   r
  r
     s    r4   r
  c                   r    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)TestSubclassingExplicitShapesc                 X    t        dd      }t        |j                  dd      d       y )Ndummyr0   r  r	  r   r  rc  r
  r   rb   rl   dummy_distrs     r2   test_correct_shapesz1TestSubclassingExplicitShapes.test_correct_shapes   s%     gc:[__Q!_,b1r4   c                 j    t        dd      }t        t        |j                  dfi t	        d       y )Nr
  Ar
  r   r  )r
  r  r  rb   r  r
  s     r2   test_wrong_shapes_1z1TestSubclassingExplicitShapes.test_wrong_shapes_1   s'     gc:i!AtayAr4   c                 r    t        dd      }t        ddd      }t        t        |j                  dfi | y )Nr
  za, b, cr
  r   r`   r   r  )r
  r  r  r  rb   )rl   r
  r(  s      r2   test_wrong_shapes_2z1TestSubclassingExplicitShapes.test_wrong_shapes_2   s1     gi@Q!q!i!;s;r4   c                 H    t        dd      }t        t        t        fi | y )Nr
  rc  r
  )r  r  r  r
  rl   r(  s     r2   test_shapes_stringz0TestSubclassingExplicitShapes.test_shapes_string   s    +i3s3r4   c                 H    t        dd      }t        t        t        fi | y )Nr
  z(!)r
  r  r  SyntaxErrorr
  r
  s     r2   test_shapes_identifiers_1z7TestSubclassingExplicitShapes.test_shapes_identifiers_1   s    .k:55r4   c                 H    t        dd      }t        t        t        fi | y )Nr
  4chanr
  r
  r
  s     r2   test_shapes_identifiers_2z7TestSubclassingExplicitShapes.test_shapes_identifiers_2       0k:55r4   c                 H    t        dd      }t        t        t        fi | y )Nr
  zm(fti)r
  r
  r
  s     r2   test_shapes_identifiers_3z7TestSubclassingExplicitShapes.test_shapes_identifiers_3   s    1k:55r4   c                 H    t        dd      }t        t        t        fi | y )Nr
  za=2r
  r
  r
  s     r2   "test_shapes_identifiers_nodefaultsz@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaults   s    .k:55r4   c                 H    t        dd      }t        t        t        fi | y )Nr
  z*argsr
  r
  r
  s     r2   test_shapes_argsz.TestSubclassingExplicitShapes.test_shapes_args   r
  r4   c                 H    t        dd      }t        t        t        fi | y )Nr
  z**kwargsr
  r
  r
  s     r2   test_shapes_kwargsz0TestSubclassingExplicitShapes.test_shapes_kwargs   s    
3k:55r4   c                 H    t        dd      }t        t        t        fi | y )Nr
  za, b, c, lambdar
  r
  r
  s     r2   test_shapes_keywordsz2TestSubclassingExplicitShapes.test_shapes_keywords   s    (9:k:55r4   c                      G d dt         j                        } |d      }t        |j                  dd      t         j                  j                  d      dz         y )Nc                       e Zd Zd Zy)FTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_genc                 F    t         j                  j                  |      |z  S ro   r8   r  r
  r
  s      r2   r
  zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdf!      zzq)A--r4   Nr
  r:   r4   r2   	_dist_genr
  !      .r4   r
  r0   r	  ru   r`   r  r8   r>   r   rb   r  rl   r
  rM   s      r2   test_shapes_signaturez3TestSubclassingExplicitShapes.test_shapes_signature!  sI    	.++ 	. $TXXcQX')<Q)>?r4   c                      G d dt         j                        } |d      }t        t        |j                  dfi t        dd       y )	Nc                       e Zd Zd Zy)STestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_genc                 F    t         j                  j                  |      |z  S ro   r
  r
  s      r2   r
  zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdf!  r
  r4   Nr
  r:   r4   r2   r
  r
  !  r
  r4   r
  r  r
  ru   r   r`   r>  )r8   r>   r  r  rb   r  r
  s      r2   "test_shapes_signature_inconsistentz@TestSubclassingExplicitShapes.test_shapes_signature_inconsistent!  s;    	.++ 	. 'i3A$a.Ar4   c                     G d dt         j                        } |d      }t        |j                  dd      t         j                  j                  d      dz         t        |j                  dd      t         j                  j                  d      dz         t        t        |j                  dfi t        d       y )	Nc                       e Zd Zd Zy)?TestSubclassingExplicitShapes.test_star_args.<locals>._dist_genc                 P    |d   }t         j                  j                  |      |z  S Nr   r
  )rl   rX   r)  extra_kwargs       r2   r
  zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdf!  s#    "1gzzq)K77r4   Nr
  r:   r4   r2   r
  r
  !  s    8r4   r
  r
  r
  ru   !   r
  )xxx)r8   r>   r   rb   r  r  r  r  r
  s      r2   test_star_argsz,TestSubclassingExplicitShapes.test_star_args!  s    	8++ 	8
 .TXXcrX2EJJNN34G4JKTXXc2&

s(;B(>?i3?$2,?r4   c                 J    G d dt         j                        } |d      }t        |j                  ddd      t         j                  j                  d      dz  dz          t        |j                  ddd      t         j                  j                  d      dz  dz          y )	Nc                       e Zd Zd Zy)ATestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_genc                 V    |d   }t         j                  j                  |      |z  |z   S r
  r
  )rl   rX   r:
  r)  r
  s        r2   r
  zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf%!  s(    "1gzzq)K7&@@r4   Nr
  r:   r4   r2   r
  r
  $!  s    Ar4   r
  zoffset, extra_kwargr
  ru   o   r
  )r:
  r
  r
  r
  s      r2   test_star_args_2z.TestSubclassingExplicitShapes.test_star_args_2!!  s    	A++ 	A
  56TXXc#2X>ZZ^^C(+c1	3TXXc3+ZZ^^C(+c1	3r4   c                      G d dt         j                        } |d      }t        |j                  dd      t         j                  j                  d             y )Nc                       e Zd Zd Zy)BTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_genc                 j    |j                  dd      }t        j                  j                  |      |z  S )Nr
  r   )popr8   r  r
  )rl   rX   r)  kwargsr
  s        r2   r
  zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf3!  s,     %jj:zzq)K77r4   Nr
  r:   r4   r2   r
  r
  2!  s    8r4   r
  r
  r
  r   r   r
  r
  )rl   r
  rM   s      r2   test_extra_kwargz.TestSubclassingExplicitShapes.test_extra_kwarg/!  sD    	8,, 	8 /TXXaQX/1BCr4   c                      G d dt         j                        } |d      }t        |j                  d      t         j                  j                  d             y )Nc                       e Zd Zd Zy)ITestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_genc                 @    t         j                  j                  |      S ro   )r8   r  rb   r  s     r2   r
  zNTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdf@!  s    zz~~a((r4   Nr
  r:   r4   r2   r
  r  ?!  s    )r4   r
   r
  ru   r
  r
  s      r2   test_shapes_empty_stringz6TestSubclassingExplicitShapes.test_shapes_empty_string=!  s?    	)++ 	) #TXXc]EJJNN3$78r4   N)r   r   r   r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r:   r4   r2   r
  r
     s\    2B<
4
6
666666
@B@3D9r4   r
  c                       e Zd Zd Zd Zej                  j                  ed      d        Z	ej                  j                  ed      d        Z
d Zd Zd	 Zd
 Zy)TestSubclassingNoShapesc                 V    t        d      }t        |j                  dd      d       y )Nr
  r  r   r  rc  r
  r
  s     r2   test_only__pdfz&TestSubclassingNoShapes.test_only__pdfJ!  s#     g.[__Q!_,b1r4   c                 V    t        d      }t        |j                  dd      d       y )Nr
  r  r   r  )r
  r   rb   r
  s     r2   test_only__cdfz&TestSubclassingNoShapes.test_only__cdfN!  s#    !w/KOOAO3Q7r4   docstring strippedr  c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )Nr
  r  r   r0   zlogpdf\(x, a, loc=0, scale=1\))	r
  r   numargsr	  refindallr  r	   r
  rl   r
  r   s      r2   test_signature_inspectionz1TestSubclassingNoShapes.test_signature_inspectionS!  sX     !g.[((!,[''-jj:$,,.CAr4   c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )Nr
  r  r`   r  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	r
  r   r  r	  r  r  r  r	   r
  r  s      r2   test_signature_inspection_2argsz7TestSubclassingNoShapes.test_signature_inspection_2args^!  sX     "w/[((!,[''0jj=$,,.CAr4   c                 0    t        t        t        d       y )Nr
  r  )r  r  r
  rq   s    r2   0test_signature_inspection_2args_incorrect_shapeszHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapesh!  s    i7;r4   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd ZddZy)>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genc                      yr
  r:   r
  s      r2   r
  zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdfo!      r4   N)rc  r
  r:   r4   r2   r
  r  n!  s    r4   r
  r
  r  r8   r>   r  r  r  rl   r
  s     r2   test_defaults_raisez+TestSubclassingNoShapes.test_defaults_raisel!  *    	++ 	 	iAd.@Ar4   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd Zd Zy)>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_genc                      yr
  r:   )rl   rX   r0   r)  s       r2   r
  zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdfv!  r  r4   Nr
  r:   r4   r2   r
  r"  u!      r4   r
  r
  r  r  r  s     r2   test_starargs_raisez+TestSubclassingNoShapes.test_starargs_raises!  r  r4   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd Zd Zy)<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_genc                      yr
  r:   )rl   rX   r0   r
  s       r2   r
  zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdf}!  r  r4   Nr
  r:   r4   r2   r
  r(  |!  r$  r4   r
  r
  r  r  r  s     r2   test_kwargs_raisez)TestSubclassingNoShapes.test_kwargs_raisez!  r  r4   N)r   r   r   r	  r  r   r   r  DOCSTRINGS_STRIPPEDr  r  r  r  r%  r*  r:   r4   r2   r  r  G!  sy    28
 [[+4HI J [[+4HI J<BBBr4   r  r  c                     g d} t         j                  D ]o  }t        t         |      }t        |t         j                  t         j
                  f      s>| D ]-  }t        t        j                  ||j                        d u        / q y )N)z,\s*,z\(\s*,z^\s*:)
r8   rJ   r'  r=  r=   r>   r	   r  searchr  )badonesdistnamerM   regexs       r2   r  r  !  sb    -GMMuh'dU..0C0CDE 		%6$>? ! "r4   c                      t        t        j                  j                  t        j
                  dd      d       t        t        j                  j                  t        j
                  dd      d       y )NrY   r#  r   r=  rV   r   )r   r8   r  r   rc   r  rn
  r
  r:   r4   r2   test_infinite_inputr2  !  sB    ((R8!<

37;r4   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | d       y r  )r8   lomaxr   rj   r   rD
  s    r2   test_lomax_accuracyr5  !  s/    2A6AAvr4   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | d       y r  )r8   r  r   rj   r   rD
  s    r2   test_truncexpon_accuracyr7  !  s7    U--11&!<a@AAvr4   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | dd       y )Nrh  r   rA  r8  rP  )r8   r$  r  r   r   rD
  s    r2   test_rayleigh_accuracyr9  !  s5    5>>,,Q2A6A3+r4   c                     t        j                  d      5 } t        j                  d       t        j                  j                  dd       t        j                  j                  dd       t        j                  j                  dd       t        j                  j                  t        j                   d       t        |       }t        |d       ddd       y# 1 sw Y   yxY w)zregression test for gh-6219T)r  alwaysru   r   rz   N)rp  rq  rr  r8   r  rj   rb   r   r   rc   r  r
  r   )r  number_of_warnings_throwns     r2    test_genextreme_give_no_warningsr=  !  s     
	 	 	-h'R#R#R#-$'F!.2 
.	-	-s   B<CC%c                     d} t         j                  j                  d      }t        |d| z  dz   d       t         j                  j                  d      }t        || dz   d       t         j                  j                  d      }t	        |d       t         j                  j                  d	d
      }t        || dz  t        j                  d
      z   dz   d       t         j                  j                  d
      }t        |d| z  dz   d       t         j                  j                  d      }t        |d| z  dz   d       y )Ngox?r  r`   r   r|  r~   r   rM  rc  rY   r  r   rO  r  r#  )r8   r  r@   r   r   rc   r  )euler_gammari  s     r2   test_genextreme_entropyr@  !  s   $K  &AAq}q(u5  #AA{QU3  %AA  R 0AA{1}rvvbz1A5EB  $AAr+~)6  %AAr+~)6r4   c                      d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        y )	Nr   r  g'b%4gQ@r   gؗҜ;r   g.l6?)r8   r  r   r   r  )rX   rG   r  s      r2   test_genextreme_sf_isfrB  !  s    2 	AAv&AA-.					a	(BBAAu%AA()					a	'BBAAq!AA-.					a	#BBr4   c                  b    d} t         j                  j                  | dd      }t        |d       y )Nr|  r`   r   gH&8>)r8   r	  r   r   )probr  s     r2   test_burr12_ppf_small_argrE  !  s,    D||a+H H45r4   c                     t        j                  ddd      dd } t        j                  j	                  | dd      }t        j
                  g d	      }t        ||d
       t        j                  j	                  | dd      }t        j
                  g d      }t        ||d
       t        j                  j	                  | dddd      }t        j
                  g d      }t        ||d
       t        j                  j                  | dd      }t        j
                  g d      }t        ||d
       t        j                  j                  | dd      }t        j
                  g d      }t        ||d
       t        j                  j                  | dddd      }t        j
                  g d      }t        ||d
       y)z
    All values are calculated using the independent implementation of the
    ROOT framework (see https://root.cern.ch/).
    Corresponding ROOT code is given in the comments.
    r-
  rN  r  Nr   rM  ry   )r  rW  )gC,d	Ɣ?gH㸘?g5?gM"M#w?gɫs^?g @?gƴ?g@w?ɫs^?|?q ?g C?rH  rG  gJó?g,BV\ۤ?g;?g#ek?g%ǓE?g(Ȍx?g>J>r]  r~   rT  )g#{`?gdf?g Jq?gSS){?g'	w?uL? T)?cAJ?GTn?R1#?gA]P?rM  rL  rK  rJ  gvӢ?gKq?gL?g
	N<!?gAw>ru   )r  rW  r^   r_   )g=aO}?gI8?g#T?aW)?ǓI?
J?E?d۳?GTn?8?R1#?kP?g(*T?rU  rT  rS  rR  rQ  rP  rO  rN  )gD
)?g:3P?g9?g?S[?rG  gOqx?gD
)?g9?gɫs^?gK?gX?g3<֌?gM+?gyS
c?gI`s?g辜?g{i ?g^0?g?#c?)g%r?gc@v?ghtj}?g(˔^?gHK4U?rI  ğ@ _?y}D?焂Rr/?N?YjhG?a0L?4f?<@?@CH?g	ސF?g5+-#?g?g?q ?rV  )g}'v?rI  g*V?rW  gr/0+?rX  g[8	?rY  gΥ?rZ  gY?r[  g#)a?r\  g?̔?r]  g]ؚ?r^  g|c ?r_  )rc   rR  r8   crystalballrb   r   r   rj   )r"  
calculatedrQ   s      r2   test_crystalball_functionrb  "  s    	D#r"3B'A ""&&qsc&:Jxx & 'H
 Hju5 ""&&qsc&:Jxx 3 4H
 Hju5 ""&&qscs#&NJxx $ %H
 Hju5 ""&&qsc&:Jxx K LH Hju5 ""&&qsc&:Jxx # $H
 Hju5 ""&&qscs#&NJxx K LH Hju5r4   c                     t        j                  g d      } t        j                  g d      }t        j                  g d      }t        j                  j	                  d| |      }t        ||d       t        j                  g d      }t        j                  dd	t         j                  d
dg      }||z  }t        j                  j	                  d| |      }t        ||d       t        j                  t         j                  t         j                  t         j                  ddg      }||z  }t        j                  j	                  d| |      }	t        ||	d       t        j                  t         j                  t         j                  t         j                  t         j                  dg      }||z  }
t        j                  j	                  d| |      }t        |
|d       t        j                  t         j                  t         j                  t         j                  t         j                  dg      }||z  }t        j                  j	                  d| |      }t        ||d       t        j                  t         j                  t         j                  t         j                  t         j                  dg      }||z  }t        j                  j	                  d| |      }t        ||d       y)zg
    All values are calculated using the pdf formula and the integrate function
    of Mathematica
    )ry   rM  rT  ry   rT  )rT  rT  ry   r  rA  )rM  rM  rM  rM  rM  r   r]  r~   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr   g
@gn(@r`   g?Җ)r   gMg'#@r   g('UHr   N)rc   r   r8   r`  r	  r   r  )r  rW  expected_0th_momentcalculated_0th_momentr  r0   expected_1th_momentcalculated_1th_momentexpected_2th_momentcalculated_2th_momentexpected_3th_momentcalculated_3th_momentexpected_4th_momentcalculated_4th_momentexpected_5th_momentcalculated_5th_moments                   r2   !test_crystalball_function_momentsrp  I"  s*    88-.D
*+A ((#<=!--33AtQ?')>UK 88DED
(HbffiCDAd(!--33AtQ?')>UK
"&&"&&"&&&(;<Ad(!--33AtQ?')>UK
"&&"&&"&&"&&*=>Ad(!--33AtQ?')>UK
"&&"&&"&&"&&':;Ad(!--33AtQ?')>UK
"&&"&&"&&"&&(;<Ad(!--33AtQ?')>UKr4   c                      t        j                  dd      } | j                         }d\  }}}t        j                  |||      }t        t        | j                  |            |      }t        ||d       y )Nr`   r   )ir3  r  r  r~   )	r8   r`  r@   rc   rR  r   r   rb   r   )cbr  r  r  r  rX   r  s          r2   test_crystalball_entropyrs  w"  s`    			1a	 B::<D"IBA
BAAT"&&)_a(DD$T*r4   c                      d
d} t        j                  g d      }t        j                  j	                  |d|       \  }}}t        |dd       |dk(  sJ t        |dd       y	)a?  
    Test fitting invweibull to data.

    Here is a the same calculation in R:

    > library(evd)
    > library(fitdistrplus)
    > x = c(1, 1.25, 2, 2.5, 2.8,  3, 3.8, 4, 5, 8, 10, 12, 64, 99)
    > result = fitdist(x, 'frechet', control=list(reltol=1e-13),
    +                  fix.arg=list(loc=0), start=list(shape=2, scale=3))
    > result
    Fitting of the distribution ' frechet ' by maximum likelihood
    Parameters:
          estimate Std. Error
    shape 1.048482  0.2261815
    scale 3.099456  0.8292887
    Fixed parameters:
        value
    loc     0

    r   c                 $    t        | |||dd      S )Nr  )r)  dispxtolftol)r%   )r   x0r)  rv  s       r2   rZ  z&test_invweibull_fit.<locals>.optimizer"  s    D"4dUKKr4   )r   r  r`   r  r   r   r  r   r   r=  rY   rO  @   c   )r   rZ  g`?r  r~   g [@N)r:   r   )rc   r   r8   r  r   r   )rZ  rX   r  r^   r_   s        r2   test_invweibull_fitr|  "  s_    .L 	HIA$$((i(HMAsEAxd+!8O8E8$/r4   ))r   r  g7Ըh?)r   r  gz]r>)r   g     "@goBڱ9)rK  r  g$=cC;c                 `    t         j                  j                  | |      }t        ||d       y r|   )r8   r  r   r   )rX   r  rQ   r  s       r2   test_invweibull_sfr~  "  s(     ""1a(HHhU3r4   zp, c, expected)ru   r  g9?)geK<r   g@c                 `    t         j                  j                  | |      }t        ||d       y r|   )r8   r  r  r   )ro  r  rQ   r  s       r2   test_invweibull_isfr  "  s(     ##Aq)HHhU3r4   z	df1,df2,x)r   r  rM  r  r   r#  r  r  r  c                 L   d}t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       y )Nr   r|  r~   r  )r8   r  rj   r  r   rb   )df1df2rX   r  expected_cdfcalculated_cdfr   calculated_pdfs           r2   test_ncf_edge_caser  "  s     
B77;;q#s+LYY]]1c33NL.u= 77;;q#s+LYY]]1c33NL.t<r4   c                  b    t         j                  j                  ddd      } t        | dd       y )Nr`   r  r   g     `E@r|  r~   )r8   r  r  r   )rX  s    r2   test_ncf_variancer  "  s&     			aAAAu5)r4   c                      t         j                  j                  dddd      } d}t        |t	        j
                  | d             y )Nr  r  r
  gffffff>@g&4I,)?)decimals)r8   r  rj   r   rc   round)	scipy_val	check_vals     r2   test_ncf_cdf_spotcheckr  "  s6    
 		b!R.IIIrxx	A>?r4   r  z(On some 32-bit the warning is not raisedc                  X   t        j                  ddd      } d| d<   d}t        j                  t              5  t        j                  j                  | g| }| D cg c]"  }t        j                  j                  |g| $ }}d d d        t               y c c}w # 1 sw Y   xY w)Nr   r   r  r|  )rV   r`   r   r   r   )	rc   rR  r   r  rs  r8   r  r   r   )rX   parrx  xiq0s        r2   test_ncf_ppf_issue_17026r  "  s     	Aq#AAaD
C	n	%IIMM!"c"012"eiimmB%%2 
& Ar 3 
&	%s   %B 'BB B  B)c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestHistogramc                 P   t         j                  j                  d       t        j                  g dd      }t	        j
                  |      | _        t        j                  j                  dddd	      }t        j                  |d
      }t	        j
                  |      | _	        y )Nr   )r   r`   r`   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r=  r=  rh  r=  binsrM  r  r,  {   r  r6  )
rc   r   r   	histogramr8   r?   templater  r   norm_template)rl   r  r   norm_histograms       r2   r0  zTestHistogram.setup_method"  s{    
		t LL "@FGI	**95zz~~#Su3~Od4"//?r4   c                    t        j                  g d      }t        j                  g d      }t        | j                  j                  |      |       t        | j                  j                  d      d       t        | j                  j                  d      d       t        | j                  j                  d      d       t        | j                  j                  d      d       t        j                  d	d
d      }t        | j                  j                  |      t        j                  j                  |dd      d       y )Nrz   ru   rM  r  ry   r  rT  r8  r  r:  rN        @r  r  r  rg  r        !@rA  r  )rz   rz   rF  rF  {Gz?r  Q?r  {Gz?r  r  r  r  r  r  r  r  r  rz   rz   r  r  r  rA  rz   r  r   r`   rY   rM  r  r]   rV   r~   )rc   r   r   r   r  rb   r   rR  r  r8   r  )rl   r  
pdf_valuesrX   s       r2   rK  zTestHistogram.test_pdf #  s     M NZZ !I J

 	))&1:> 	DMM--c2H=DMM--c2H= 	DMM--c2H=DMM--d3X>KKAr"**..q1

qc=C	Ir4   c                    t        j                  g d      }t        j                  g d      }t        | j                  j                  |      |       t        | j                  j                  |dd       |dd        t        j                  ddd      }t        | j                  j                  | j                  j                  |            |       t        j                  ddd      }t        | j                  j                  | j                  j                  |            |       t        j                  d	dd
      }t        | j                  j                  |      t        j                  j                  |dd      d       y )Nr  )rz   rz   rz   r  rF  r  r  
ףp=
?Q?{Gz?r)  ru   r  (\?RQ?=
ףp=?)\(?rg
  rM  rM  r`   r   rM  rA  rZ   rz   r   rY   r  r]   rV   r~   )rc   r   r   r   r  rj   r   rR  r  r8   r  )rl   r  
cdf_valuesrX   s       r2   r  zTestHistogram.test_cdf_ppf#  s)    M NZZ !M N

 	))&1:>))*Qr*:;VAb\J KKS#&))$--*;*;A*>?CKKS#&))$--*;*;A*>?CKKAr"**..q1

qc=C	Ir4   c                    d}| j                   j                  |d      }t        t        j                  |dk        d       t        t        j                  |dk        d|z  d	       t        t        j                  |d
k        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |d k        d!|z  d	       t        t        j                  |d"k        d#|z  d	       t        t        j                  |d$k        d%|z  d	       t        t        j                  |d&k        d|z  d	       t        t        j                  |d&k        d|z  d	       t        t        j                  |d&kD        d       y )'Nr,  r  r   rM  rz   ry   rF  r  r~   r  r  rT  r  rV   r8  r  r  r  r:  r  rN  r)  r  r  ru   r  r  r  r  r  r  rg  r  r  r  r  rg
  rA  )r  r   r   rc   rf  r   )rl   r  r  s      r2   rC  zTestHistogram.test_rvs0#  s   """<RVVFSL)3/v}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4HRVVFSL)3/r4   c                     t        d      D ]L  }t        | j                  j                  |      t	        j
                  dd      j                  |      d       N y )Nr   rM  r  r  r~   )r  r   r  r	  r8   r  r  ry  s     r2   ru	  zTestHistogram.test_munpF#  sG    qAD..44Q7!JJsC077:G r4   c                     t        | j                  j                         t        j                  j                  dd      d       y )NrM  r  r]   r  r~   )r   r  r@   r8   r  rq   s    r2   rj  zTestHistogram.test_entropyK#  s5    **224

**s#*>T	Kr4   N)	r   r   r   r0  rK  r  rC  ru	  rj  r:   r4   r2   r  r  "  s%    @ I4I,0,G
Kr4   r  c                     ddgg d}} t        j                  | |fd      }t        j                  j	                  |j                  ddg      ddg       |j                         dk(  sJ t        j                  | |fd      }t        j                  j	                  |j                  ddg      d	       |j                         d
k(  sJ d}t        j                  t        |      5  t        j                  | |f      }|j                         d
k(  sJ 	 d d d        t        j                  | g df      }|j                         dk(  sJ y # 1 sw Y   8xY w)Nr   )r   r   r+  F)r  ru   r  r	  Tg'^P?g     H@z(Bin widths are not constant. Assuming...r  r  )
r8   r?   rc   r[  r   rb   r  r   r  rs  )countsr  rM   r  s       r2   test_histogram_non_uniformr  P#  s   FLDFvtne<DJJtxxc
3c6]C;;=Avtnd;DJJtxxc
3V<;;=F""" 9G	nG	4!!64.1{{}&&& 
5
 vy12D;;=A 
5	4s   &-EEc                   `    e Zd Zd Zej
                  j                  dddg      d        Zd Zy)TestLogUniformc                 Z   t         j                  j                  d      }t        j                  dd      }|j                  d|      }t         j                  j                  d      }t        j                  dd      }|j                  d|      }t        ||       t        j                  t        j                  |      d      \  }}d|j                         cxk  r|j                         cxk  rd	k  sJ  J t        j                  t        j                  |      d
z
        dk  sJ y )N   0o[ r]  r   r,  r   rY   r  r  iL  r   )rc   r   r   r8   
loguniformr   
reciprocalr   r  log10r%  rh  r   r  )rl   r   rk  r   rv2r   rA  r   s           r2   
test_aliaszTestLogUniform.test_aliash#  s     ii##K0h0ff%cf2ii##K0x1wwEw4c",,rxx}26adhhj6DHHJ6$66666vvbiio,-333r4   r7  r:  r5  c                 >   t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  j                  ||      \  }}}}|dk(  sJ t        j                  j                  |d|      \  }}}}|dk(  sJ y )	Nr  rV   r   r   r   r9  r`   r6  )rc   r   r   r8   r  r   r   )rl   r7  r   r   r0   r1   r^   r_   s           r2   test_fit_overridez TestLogUniform.test_fit_overridey#  s     ii##K0""33"G ++//F/C1c5zz ++//Af/M1c5zzr4   c                    t         j                  j                  d      }d\  }}t        j                  ||      }|j                  ddd      }t        |j                  |j                  |            |       |j                  d      }t        |j                  |j                  |            |       dt        j                  dd	      z  }|j                  |      }t        |d d
 |dd  z  d       ||z
  t        j                  |      t        j                  |      z
  z  }	t        |j                         |	       y )Nl   eVi
P )gN~hgZbtir   r   r   r4  r  i8r  r   rY   )rc   r   r   r8   r  rn  r   rj   r   r   r  rb   r  r   )
rl   r   r0   r1   rM   rj   r   rX   rb   r   s
             r2   test_overflowzTestLogUniform.test_overflow#  s    ii##$7811% kk!QTk*#/5hhDh!#/5 4%%hhqkCRQR("- Aq	BFF1I-.		T*r4   N)	r   r   r   r  r   r   r   r  r  r:   r4   r2   r  r  g#  s5    4" [[Xt}5
 6
+r4   r  c                      e Zd Zd Zej
                  j                  dddgddgddgg      d	        Zej
                  j                  d
ddg      d        Zej
                  j                  dg d      d        Z	ej
                  j                  dg d      d        Z
ej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zy )!	TestArgusc                     t         j                  j                  ddd      }t        t        j                  d      j	                         |j	                         d       y )Nr6  rv  E  r   r   rP  )r8   argusr   r   r   r  s     r2   test_argus_rvs_large_chiz"TestArgus.test_argus_rvs_large_chi#  s=    KKOOBSsO;EKKO002AFFHaHr4   zchi, random_staterV   r  rC     r8     c                     t         j                  j                  |d|      }t        j                  |d|f      \  }}t	        |dkD         y )Nrv  r   r  r  r8   r  r   r  r	   )rl   r  r   rX   r   ro  s         r2   rC  zTestArgus.test_rvs#  s@     KKOOCcOE||Aw01Dr4   r  r?  r  c                     t         j                  j                  |dd      }t        j                  |d       \  }}t	        |dkD         y )Nrv  ie r   c                     dd| dz  z
  dz  z
  S )Nr   r`   r  r:   r   s    r2   rH   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>#  s    a!Q$h#->)>r4   r  r  )rl   r  r  r   ro  s        r2   test_rvs_small_chizTestArgus.test_rvs_small_chi#  s=    
 KKOOCcO?||A>?1Dr4   zchi, expected_mean))r   g щi?)rY   g.憃?)r  g\paP?)r  g	?)r{  g,6?c                 b    t         j                  j                  |d      }t        ||d       y )Nr   r  r   r~   )r8   r  r   r   )rl   r  expected_meanrW  s       r2   r  zTestArgus.test_mean#  s)     KKS*=u5r4   zchi, expected_var, rtol))r   gLH'B?r   )rY   go$?r&  )r  g
=>r  )r  g2W>r  )r{  gb~P>r  c                 b    t         j                  j                  |d      }t        |||       y )Nr   r  r~   )r8   r  r  r   )rl   r  expected_varr   rX  s        r2   r  zTestArgus.test_var#  s&     KKOOCqO)<d3r4   zchi, expected, rtol))r   gwM?r|  )ru   gj?r|  )rV   gHEA`!?r|  )rw   gcف>r}   )r]  gF=r|  )r  g߹Q#B=r|  )r  g0ޟ<r|  )r?  g*W%:r}   c                 2    t        t        |      ||       y rJ  )r   r#   )rl   r  rQ   r   s       r2   test_argus_phi_small_chiz"TestArgus.test_argus_phi_small_chi#  s     	
3=r4   zchi, expected))ru   )g-\/?g+p7c?g5Ϧ\?)r  )g
f?gi{?ٸ?gZ@7?)rV   )gB	?g]?gR{?)rw   )glͅw?g,?g[Z=?)r]  )gz,?g]?gѪ1?)r  )g8<?gE-?gI?)r  )g~7?g7B.?g9?)r?  )g;?g9B.?g}5?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrV   ru   r   r   r~   )rc   r   r   r8   r  rb   rl   r  rQ   rX   s       r2   test_pdf_small_chizTestArgus.test_pdf_small_chi#  -     HH_%3/Fr4   ))ru   )gQ߹?e?grJ,?g򺗄?)r  )gΎd?g?gh?)rV   )g|
o?gvb?g+@?)rw   )g̈́On?ge?gC|[3?)r]  )g!?m?g{jiH?gu53?)r  )g~m?g0-.?g3?)r  )g~m?g7;B.?gŗ3?)r?  )g~m?g9B.?gŗ3?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )Nr  r|  r~   )rc   r   r   r8   r  r   r  s       r2   test_sf_small_chizTestArgus.test_sf_small_chi#  s-     HH_%q#.uEr4   ))ru   )g+&?gk?gμm/?)r  )g?CL\f?g^N?g]AͭR?)rV   )ga>$?g;Lf?gaW?)rw   )gx?g 43n?gwY?)r]  )go7🤎?g
+-oGn?gIQ9Y?)r  )gT?gGn?g@̋Y?)r  )gU?g{Gn?giG͋Y?)r?  )gDU?g {Gn?gH͋Y?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )Nr  r  r~   )rc   r   r   r8   r  rj   r  s       r2   test_cdf_small_chizTestArgus.test_cdf_small_chi#  r  r4   ))ru   )gQ)?g6{?r  )gB`"۹?)g?g8%?r&  )rV   )g388?gV%?r   )rw   )g*j?gRS%?r   )r]  )g!|?gZ%?r   )r  )gy[|?gG%?r   )r  )g"3|?gW%?r   )r?  )g!3|?gW%?r   c                 b    t         j                  j                  |d      }t        |||       y )Nr[  rV  r~   )r8   r  r   )rl   r  rQ   r   rB  s        r2   test_stats_small_chizTestArgus.test_stats_small_chi$  s)     kkT2XD1r4   N)r   r   r   r  r   r   r   rC  r  r  r  r  r  r  r  r  r:   r4   r2   r  r  #  s   I
 [[0#J#J#J3
 


 [[UT4L1 2 [[189696
 [[6BC4C4
 [[2DE>E> [[	M	NG	NG
 [[	N	OF	OF
 [[	P	QG	QG
 [[	C	D2	D2r4   r  c                      e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	d Z
ej                  j                  d	g d
      d        Zej                  j                  d      ej                  j                  dg d      ej                  j                  dg d      ej                  j                  dg d      d                             Zej                  j                  dg d      ej                  j                  dg d      d               Zy)TestNakagamic                 d    d}d}t         j                  j                  ||      }t        |d       y )Nr  r  gM+)r8   nakagamir   r   )rl   r|
  rX   rr  s       r2   rs  zTestNakagami.test_logpdf$  s/     ~~$$Q+12r4   c                     d}d}t         j                  j                  ||      }t        |dd       t         j                  j	                  ||      }t        ||d       y )Nr  rN  g"S+:r   r~   )r8   r  r   r   r  )rl   r|
  ry  r   r  s        r2   r  zTestNakagami.test_sf_isf)$  sS     ^^r2&1>^^B'BU+r4   zm, ref))r   g|Bd븿)ru   r  )rY   g/ۿc                 Z    t        t        j                  j                  |      |d       y )Ng^~z=r~   r   r8   r  r@   rl   rW  r~  s      r2   rj  zTestNakagami.test_entropy<$  s      	..q13WEr4   ))r  g}Ô%I)r  gq_)g    ScAgB4U)g    cAgu1U)r  gb>%)r  gWҙ\c                 V    t        t        j                  j                  |      |       y ro   r  r  s      r2   test_extreme_nuzTestNakagami.test_extreme_nuN$  s    
 	..q137r4   c                     t        j                  t        j                  j	                  d            sJ t        j                  t        j                  j	                  d            sJ y )Nr  r  )rc   r  r8   r  _entropyrq   s    r2   test_entropy_overflowz"TestNakagami.test_entropy_overflowU$  sD    {{5>>2259:::{{5>>226:;;;r4   znu, ref))r  g2H?)r  g:U?)r  g>c                 Z    t        t        j                  j                  |      |d       y r  )r   r8   r  r   )rl   r|
  r~  s      r2   r  zTestNakagami.test_meanY$  s     	++B/5Ar4   z+Fit of nakagami not reliable, see gh-10908.r  r|
  )r!  r  r  r^   )rx   rY   r	  r_   )r  r   r  c                   
 d
t         j                  j                  
|||d      t         j                  j                        \  }}}t	        ||d       t	        ||d       t	        ||d       fd}
fd}
fd}	t	         ||||      d	d
       t	         ||||      d	d
       t	         |	|||      d	d
       y )NrZ   9  r   r|
  r^   r_   r   r  r~   c                     d| z  dz   t        j                  d|z
  z        z  d| z  |dz  z  t        j                  |z
        z  z   S )Nr   r   r`   rc   rf  )r|
  r^   r_   r  s      r2   	dlogl_dnuz(TestNakagami.test_fit.<locals>.dlogl_dnut$  sP    UQY"&&GcM):";;d5!8mbffWs]&;;< =r4   c                     dt        j                  |       z   t        d|       z
  z  dt        j                  t        j                  |z
  |z              z  z   t        j                  |z
  |z  dz        z
  S )Nr   r   r`   )rc   r  r   rf  r|
  r^   r_   r  r  s      r2   
dlogl_dlocz)TestNakagami.test_fit.<locals>.dlogl_dlocx$  sp    RVVBZ)Ar*::;rvvw}&=>??@ffw}59:; <r4   c                 j    dz  | z  |z  d| z  |dz  z  t        j                  |z
  dz        z  z   S )Nr   r`   r   r  r  s      r2   dlogl_dscalez+TestNakagami.test_fit.<locals>.dlogl_dscale}$  sF    !GbL5("fuz)BFFGcMa3G,HHI Jr4   r   r]  r   )r8   r  r   r   r   )rl   r|
  r^   r_   nu_estloc_est	scale_estr  r  r  r  r  s             @@r2   r  zTestNakagami.test_fite$  s     ..$$!+0t % E%*^^%7%7%@"-3/	5s3	=	<
	J 		&'9=qtL
67I>MVWi@!$Or4   c                 x   d}d}t         j                  j                  ||||d      }t         j                  j                  ||      \  }}}t	        j
                  |      }	t	        j                  t	        j                  ||z
  dz              }
t        ||d       t        ||	d       t        ||
d       y )	Nru   rZ   r  r  r  r`   r  r~   )	r8   r  r   r   rc   r%  r  r   r   )rl   r^   r_   r|
  rn  r  r  r  r  loc_theo
scale_theos              r2   test_fit_nuzTestNakagami.test_fit_nu$  s    
 ..$$!+0t % E%*^^%7%7B%7%G" 66'?WWRWWg&7A%=>?
.5	:D9r4   N)r   r   r   rs  r  r   r   r   rj  r  r  r  r  r  r   r:   r4   r2   r  r  $  sI   3",& [[X	$%F	%F [[X	DE8	E8< [[Y>?B	?B [[KL[[T?3[[UN3[[Wk2P 3 4 4 MP8 [[UN3[[Wk2: 3 4:r4   r  c                       e Zd Zd Zd Zd Zy)TestWrapCauchyc                    t        j                  ddgddgg      }t        j                  dgdgg      }t        j                  j	                  ||      }|j
                  dk(  sJ t        j                  ||f      D cg c]%  \  }}t        j                  j	                  ||      ' }}}t        |j                         |d	       y c c}}w )
NQ?re  ru   r   rM  r  r  r   r~   )	rc   r   r8   
wrapcauchyrj   r;  nditerr   r	  )rl   r  rX   ro  r  r	  scalar_valuess          r2   test_cdf_shape_broadcastingz*TestWrapCauchy.test_cdf_shape_broadcasting$  s     HHtTlS$K01HHsecU^$  A&ww&   )+Aq6):<):Xb" ))--b"5): 	 <	=u=<s    *C
c                 |    t         j                  j                  t        j                  d      }t        |dd       y )Nr  ru   r|  r~   )r8   r  rj   rc   rd   r   r  s     r2   test_cdf_centerzTestWrapCauchy.test_cdf_center$  s*      -3U+r4   c                    d}d}d}t         j                  j                  ||g|      }d|z   d|z
  z  }t        |d   t	        j
                  |t	        j                  |dz        z        t        j                  z         t        |d   dt	        j
                  |t	        j                  t        j                  |dz  z
        z        t        j                  z  z
         y )NrM  r  r   r   r   r`   )r8   r  rj   r   rc   arctantanrd   )rl   r  r  r  ro  crs         r2   rU  zTestWrapCauchy.test_cdf$  s      "b1-!ea!e_!bii266"Q$<8>?!a"))Brvvbeebdl/C,C"DRUU"JJKr4   N)r   r   r   r  r
  rU  r:   r4   r2   r  r  $  s    
>,Lr4   r  c                       G d dt         j                        }  | d      }t        t        d      5  |j	                          d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zd Zy)/test_rvs_no_size_error.<locals>.rvs_no_size_genc                      yr   r:   rq   s    r2   _rvsz4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvs$  s    r4   N)r   r   r   r  r:   r4   r2   rvs_no_size_genr  $  s    	r4   r  rvs_no_sizer  z_rvs\(\) got (an|\d) unexpectedr  )r8   r>   r  r  r   )r  r  s     r2   test_rvs_no_size_errorr  $  sB    %--  "}5K	y(J	K 
L	K	Ks   AAzdistname, argsc                 t   | t         v rt        j                  d|  d       t        t        |       }t        |t        j                        rt        |      dk7  rF |j                  | \  }}t        |t        j                         t        |t        j                         d\  }} |j                  g ||| \  }}t        |t        j                         t        |t        j                         y  |j                  | \  }	}
t        |	t        j                         t        |
t        j                         y )Nz6skipping test for the support method for distribution .r   ru  )$skip_test_support_gh13294_regressionr   r   r'  r8   r=  r>   r
  supportr   rc   r  )r/  r)  rM   a0b0r  r  a1b1r0   r1   s              r2   test_support_gh13294_regressionr  $  s    77 $$,:Q0 	15(#D$++,t9>!T\\4(FBRVV$RVV$
 f2t2T262BR R t||T"1QQr4   c                     t         j                  j                  g dg d      \  } }t        j                  t        j
                   t        j
                   t        j
                   t        j                  g      }t        j                  t        j
                  t        j
                  t        j
                  t        j                  g      }t        | |       t        ||       | j                  |j                  k(  sJ |j                  |j                  k(  sJ t         j                  j                  g g       \  }}t        j                  g       t        j                  g       }}t        ||       t        ||       |j                  |j                  k(  sJ |j                  |j                  k(  sJ t         j                  j                  g ddg      \  }}	t        j                  dt        j                  gz        }
t        j                  dt        j                  gz        }t        ||
       t        |	|       |j                  |
j                  k(  sJ |	j                  |j                  k(  sJ y )N)r   r   r   r   )r   r   r   r   r   r   )	r8   r  r  rc   r   r  r  r   r;  )r  r  ex_a0ex_b0r  r  ex_a1ex_b1r<  r7  ex_a2ex_b2s               r2   ,test_support_broadcasting_gh13294_regressionr'  $  s   ZZm<FBHHrvvgw89EHHbffbffbffbff56EUU88u{{"""88u{{"""ZZB'FB88B<"5EUU88u{{"""88u{{"""ZZrd3FBHHQxZ EHHQxZ EUU88u{{"""88u{{"""r4   c                  4   ddg} dgdgdgg}t        t        j                  j                  | |      ddgddgddgg       t	        j
                  d      } t	        j
                  d      }t        j                  j                  | |      j                  dk(  sJ y )	Nrz   rM  ry   rT  r  rA  )r   r}  )r   r8   r  r  rc   r	  r;  r]   s     r2   *test_stats_broadcasting_gh14953_regressionr)  $  s    r(CTB4"EU+r2hR2r(-KL
((5/CHHVE::>>#u%++v555r4   )gn!	g:I"<)gQ	@gE?c                     t        t        j                  j                  |       |       t        t        j                  j	                  |        |       y ro   )r   r8   cosinerj   r   )rX   rQ   s     r2   test_cosine_cdf_sfr,  %  s6     ELL$$Q'2ELLOOQB'2r4   ))r  gkM6O)rR  g0ӭ!	)r
  g;'u(@c                     t        t        j                  j                  |       |       t        t        j                  j	                  |       |        y ro   )r   r8   r+  r   r  )ro  rQ   s     r2   test_cosine_ppf_isfr.  %  s8    
 ELL$$Q'2ELL$$Q'(3r4   c                      t         j                  j                  t        j                   t        j                  g      } t        | d       y )NgrB)r8   r+  r   rc   rd   r   )rr  s    r2   test_cosine_logpdf_endpointsr0  %  s1    <</D d./r4   c                  0   t         D  ch c]  \  } }t        | t              r|  }} }t        D  ch c]  \  } }| 	 }} }||k(  sJ t        D  ch c]  \  } }| 	 }} }t
        D  ch c]  \  } }| 	 }} }||k(  sJ y c c}} w c c}} w c c}} w c c}} w ro   )r    r=  rD   r!   r   r   )r  r   discrete_distnamesinvdiscrete_distnamescont_distnamesinvcont_distnamess         r2   test_distr_params_listsr6  %  s     /; 4l74'c2 l 41@AgdATA!6666*23(wtQd(N3-89['$[9....4A 49s   B BB)Bc                      t         j                  j                  dd       t         j                  j                  dd      dk(  sJ t         j                  j	                  dd      dk(  sJ y )Nr   rU   r  r   )r2  r0   rT  )r8   r  _statsr  r	  r:   r4   r2   test_moment_order_4r9  )%  s`     
NNAs+ >>  qA .#555 >>1%,,,r4   c                   &   e Zd Zej                  d        Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	ej                  j                  ej                  j                  d ej                  d	d
ej                  j                         ej                  ddej                  j                         ej                  ddej                  j                        g      d               Zy)TestRelativisticBWc                     t        j                  t        t              j                  dz        }t         j
                  j                  |j                  d      }|S )a&  Sample data points for pdf computed with CERN's ROOT

        See - https://root.cern/

        Uses ROOT.TMath.BreitWignerRelativistic, available in ROOT
        versions 6.27+

        pdf calculated for Z0 Boson, W Boson, and Higgs Boson for
        x in `np.linspace(0, 200, 401)`.
        z-data/rel_breitwigner_pdf_sample_data_ROOT.npyzx,pdf,rho,gammar  rr  r  s     r2   ROOT_pdf_sample_dataz'TestRelativisticBW.ROOT_pdf_sample_data>%  sL     wwN!!;<
 vv  /@ Ar4   zrho,gamma,rtol))qVEB@gj+@r  )FC@Gz @r|  )ND@_LU?r  c                     ||d   |k(  |d   |k(  z     }|d   |d   }}t        |t        j                  j                  |||      |       y )NrhorX  rX   rb   r  r~   )r   r8   rel_breitwignerrb   )rl   r=  rE  rX  r   r   rX   rb   s           r2   test_pdf_against_ROOTz(TestRelativisticBW.test_pdf_against_ROOTQ%  sg     $!%(C/#G,57
 cDK3&&**1c*?d	
r4   zrho, Gamma, rtol))r>  r?  r  )r@  rA  r  )rB  rC  g&.>c                     d }t        j                  ddd      }t        j                  j	                  |||      }t        j                  j                  |||      } ||||z  |      }t        |||       y )Nc                     t        j                  |dz  |dz  |dz  z   z        }dt        j                  d      z  |z  |z  |z  t         j                  t        j                  |dz  |z         z  z  }|| dz  |dz  z
  dz  |dz  |dz  z  z   z  S r  )rc   r  rd   )Er  GammarX  rU   s        r2   rb   zFTestRelativisticBW.test_pdf_against_simple_implementation.<locals>.pdfj%  s    GGAqDAqD5!8O45ERWWQZ!#e+e3EEBGGAqD5L113AA1q(1a4q=899r4   r  r  rY   r  r~   )rc   rR  r8   rF  r   rb   r   )	rl   rE  rK  r   rb   ro  rX   r   r~  s	            r2   &test_pdf_against_simple_implementationz9TestRelativisticBW.test_pdf_against_simple_implementationb%  ss    	: KKdB'!!%%aE%:##''3e'<!SY&St,r4   z	rho,gammar>  r?  rz  r@  rA  rB  rC  c                    d}t         j                  j                  |      }t        j                  j                  ||d|      }t        j                  j                  |d      }t        |d   |d   f||fd       |d	   dk(  sJ t        j                  j                  |d|
      }t        |d   |d       |d	   |d   fd|fk(  sJ y)zpTests fit for cases where floc is set.

        `rel_breitwigner` has special handling for these cases.
        l   s;
rl# r   )r_   r   r   r   r   r`   r  r~   r   r  rw   N)rc   r   r   r8   rF  r   r   r   )rl   rE  rX  r   r   r   r   s          r2   test_fit_flocz TestRelativisticBW.test_fit_flocv%  s    & #ii##D)$$((u4c ) 
 ##''1'5QQ(3,TB1v{{##''1U'CA$/AAAu:---r4   N)r   r   r   r   r2  r=  r   r   rG  rL  r   r  r   rN  r:   r4   r2   r;  r;  =%  s   ^^ $ [[ 


 [[/ 2 -- [[[[FLL"F&++2B2B FLL!50A0A FLL &0A0A

. .r4   r;  c                   T    e Zd Zej                  j                  dddg      d        Zy)TestJohnsonSUrP  )rb
  r}  r  r  g={?g?5mV>gn?g\}\1@)g`fo@g$ں_@r   r   gvUgN<fj?gwCg~l
@c                 j    t        j                  j                   |d d ddi}t        ||dd  d       y )Nr   rW  rU  r|  r~   )r8   r  r   )rl   rP  r   s      r2   test_moment_gh18071z!TestJohnsonSU.test_moment_gh18071%  s5     oo##T"1X>v>T!"XE2r4   N)r   r   r   r   r   r   rR  r:   r4   r2   rP  rP  %  s9    [[VOJ&K L
3L
3r4   rP  c                       e Zd Zd Zej
                  j                  dddg      ej
                  j                  dddg      ej
                  j                  dddg      ej
                  j                  dddg      d                             Zy	)
TestTruncParetoc                 .   d\  }}t        j                  dd      }t        j                  ||      j	                  |      }t        j
                  |      j	                  |      t        j
                  |      j                  |      z  }t        ||       y )N)?333333@rV  rW  )rc   rR  r8   truncparetorb   r;  rj   r   )rl   r1   r  rX   r   r~  s         r2   rK  zTestTruncPareto.test_pdf%  sr    1KKS!1%))!,ll1o!!!$u||A':':1'==S!r4   r   TFr  rB  rR  c                    t         j                  j                  d      }d\  }}}}	t        j                  ||||	      }
|
j                  d|      }i }|r||d<   |r|	|d<   |r||d<   |r||d	<   |rM|rK|rI|rGd
}t        j                  t        |      5  t        j                  j                  |fi | d d d        y t        t        j                  |fi | y # 1 sw Y   y xY w)Nl   Z#Lm )rV  rW  r   r  r]   rv  r   r   r   r   r  r  r  )rc   r   r   r8   rX  r   r   r   r  r   r   )rl   r   r  rB  rR  r   r1   r  r^   r_   rM   r   r   r  s                 r2   r  zTestTruncPareto.test_fit%  s     ii##$78+1c5  A3e<xxSsx3DL"DNDJDJyUuKG|7;!!%%d3d3 <; *%*;*;TJTJ <;s   !CC%N)r   r   r   rK  r   r   r   r  r:   r4   r2   rT  rT  %  s    " [[Yu6[[[4-8[[WtUm4[[WtUm4K 5 5 9 7Kr4   rT  c                       e Zd Zd Zy)
TestKappa3c                     dt         j                  j                  dd      z
  }t         j                  j                  dd      }t	        ||       y )Nr   ru   g     j@)r8   kappa3rj   r   r   )rl   sf0r  s      r2   r  zTestKappa3.test_sf%  s=     %,,""3,,llooc3'S!r4   N)r   r   r   r  r:   r4   r2   r[  r[  %  s    "r4   r[  c                       e Zd Z ej                  dd      Z ej                  d      Z ej                  d      Zd Z	d Z
d Zd Zd Zd	 Zd
 Zd Zd Zy)TestIrwinHallr   r   rY   c                 N    t        | j                  j                  d      d       y )NrU  )r   g?r   gQ)r   ih10r8   rq   s    r2   test_stats_ih10zTestIrwinHall.test_stats_ih10%  s     	TYY__V46JKr4   c                     g d}t        t        |            D cg c]   }| j                  j                  |dz         " }}t	        ||       | j                  j                  d      }d}t	        ||       y c c}w )N)	r   gUUUUU9@g     0a@i  gx@gn۶mˠ@g    :PAg8)Ag   SAr   r6  g2⍚H)r  r
  rb  r  r   )rl   rA  rn  rW  m50	m50_exacts         r2   test_moments_ih10zTestIrwinHall.test_moments_ih10%  sp    - 38D	2BC2BQ499##AaC(2BCWd+iir"H	S), Ds   %A8c                     t        j                  ddd      }| j                  j                  |      }| j                  j                  |      }t        ||d       y Nr   r   rZ   rY   maxulp)rc   rR  unifrb   ih1r   )rl   ptspdf_unifpdf_ih1s       r2   test_pdf_ih1_unifzTestIrwinHall.test_pdf_ih1_unif%  sF     kk!Q$99==%((,,s#Whr:r4   c                     t        j                  d      }d}t        j                  dd|      }t        j                  dd|      }d||dz   dz  d  z
  ||dz   dz  d  |j	                  |      }t        ||d       y )Nr`   rW   r   r   rY   rj  )r8   r  rc   rR  rb   r   )rl   ih2nptsrn  rQ   pdf_ih2s         r2   test_pdf_ih2_trianglez#TestIrwinHall.test_pdf_ih2_triangle%  s|    ooa kk!Q%;;q!T*%&4!8/2B)C%C$(q!"''#,Whr:r4   c                     t        j                  ddd      }| j                  j                  |      }| j                  j                  |      }t        ||d       y ri  )rc   rR  rl  rj   rm  r   )rl   rn  cdf_unifcdf_ih1s       r2   test_cdf_ih1_unifzTestIrwinHall.test_cdf_ih1_unif&  sD    kk!Q$99==%((,,s#Whr:r4   c                     t        j                  dd      }t        j                  |      }|j	                  |dz        }t        j
                  dt        |            }t        ||d       y )Nr   rY   r`   ru   rj  )rc   r  r8   r  rj   rN  r
  r   )rl   rn  ihih_cdfexacts        r2   rU  zTestIrwinHall.test_cdf&  sQ    IIa__QA		#s1v&VU26r4   c                     g d}t        | j                  j                  t        j                  d            |d       t        | j                  j                  d      dd       d}t        | j                  j                  d      |d       y )	N)r   g\xO~>g-P2?g8ʝi?gg{Ȇ?ru   g&M?g׈Y?gB?gDl?r   r#  rY   rj  rV   g+|<rM  g#@)r   rb  rj   rc   r  r  s      r2   test_cdf_ih10_exactz!TestIrwinHall.test_cdf_ih10_exact&  sd    ( 	TYY]]299R=94KTYY]]402EbQ1TYY]]513rBr4   c                     g d}|dg|d d d   z   z  }t        | j                  j                  t        j                  d            |d       y )N)r   g4V>gP3NV?g*8f?gNgX?gjS?r   r#  rY   rj  )r   rb  rb   rc   r  rk  s     r2   test_pdf_ih10_exactz!TestIrwinHall.test_pdf_ih10_exact'&  sD     J$tt*,,TYY]]299R=94Kr4   c           	      $   t        | j                  j                  t        j                  d            d| j                  j                  t        j                  d            z
         d}t        | j                  j                  d      |d       y )Nr#  r   rM  rV   rY   rj  )r   rb  r   rc   r  rj   r   )rl   r~  s     r2   test_sf_ih10_exactz TestIrwinHall.test_sf_ih10_exact.&  s\    		RYYr]3QryyQS}9U5UV 2TYY\\$/R@r4   N)r   r   r   r8   rn  rl  r  rm  rb  rc  rg  rq  rv  rz  rU  r  r  r  r:   r4   r2   r`  r`  %  se    5==AD
%//!
C5??2DL-
;;;7C LAr4   r`  rP  ))r]  NNNN)rL  NNNN)r!  NNNN)r4  NNNN)r;  NNNNc                    | \  }}}}}t        j                  d      }|xs d}|xs d}|xs d}|xs d}t        t        |      }t	        t
              |   } || }	t        j                  ||      }
|	j                  |	j                  |
            }t        ||
||       dt        j                  ||d      z
  }
|	j                  |	j                  |
            }t        ||
||       y )	Nru   iir   r  r  r   r  )
rc   r  r'  r8   r  r   r  r   r  r   )rP  r/  lp1lp2r   r   lpmrM   r\  dist_frozenr~  r   s               r2   test_sf_isf_overridesr  :&  s     &*"Hc3d
((3-C
+C
*C91D=5D5(#D(^H%F-K ++c3
C
..-
.CC4d3 bkk#sB'
'C
..-
.CC4d3r4   ro   )NF(  r  rp  r  r  rh  pathlibr   r
  r%
  r  numpy.testingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r  numpyrc   r   r   numpy.lib.recfunctionsr   r7   r   scipy._lib._utilr   r  r   r   r   r   scipy.statsr8   !scipy.stats._distn_infrastructurer   scipy.stats.distributionsscipy.specialr   r   r   scipy.stats._distr_paramsr   r   test_discrete_basicr    r!   scipy.stats._continuous_distnsr"   r#   scipy.optimizer$   r%   r&   	itertoolsr'   flagsoptimizer+  r  r  r  r3   r;   rR   rT   r   r  r   r   r*  r,  rW  r  r  r  r  r  r  r  r/  r8  r`  r  r  r  r  r  r  r  r  r  r  r  rn  r  r  r  r  r  r  r$  r6  r`  r  r  r  r  r  r  r  r4  rI  rX  rh  rr  r{  r  r  r  r  r  r  rd   ra  r  rc  rt  r  r  r  r  r  r  r  r  r  r'  r:  r<  rK  rS  r^  rc  r  r  r  r  rS  r  r  r  r
	  r	  r"	  r0	  r>	  rE	  rS	  rY	  r	  r	  r	  r	  r	  r	  r	  r	  r)
  r+
  r/
  r  r1
  r3
  r6
  r8
  r;
  r=
  r?
  rB
  rE
  rG
  rJ
  rL
  rN
  rP
  rR
  rX
  rZ
  r]
  r`
  rc
  re
  rh
  rl
  rp
  rs
  ru
  rw
  rz
  r~
  r
  r
  r
  r
  r
  r
  r
  r>   r
  r
  r
  r
  r
  r  r  r2  r5  r7  r9  r=  r@  rB  rE  rb  rp  rs  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r)  r,  r.  r0  r6  r9  r;  rP  rT  r[  r`  r  r:   r4   r2   <module>r     sg    	 
   	  : : : :
  *  " 4  /3 3  8   0 0 ; > C = =  ii((1,  ||x'M.>h.>.>.@H.L )6z'B $$8
G@ G@T4D.. >?

6?

69 9>G, G,T* * > /B /Bd# #<E; E;PG GT2 2.CD CDLA: A:H2 2"'K 'KT> >*'D 'DT
C 
CA2 A2H4 4D;6 ;6|* *. G  GFK" K"\=I =I@`& `&FXD XDvD D,D D,U< U<p%( %(P"B "BJT# T#nt: t:nUO UOp< <~'* '*TO@ O@d/ /2!, !,HME ME`m5 m5`7F 7FtT6 T6n9J 9Jx0D 0Df4D 4Dn( (VcA cALaJ aJH*9 *9Z+G +Gl 72771ag;		
	gbgga255k"	"	
	1RUU7$	$		AbeeG%	%		GBGGAqwK(	(	* + 	72771c"%%i=!72771c"%%i=))72771c"%%i=))50gbggaRUUm,,g53ruu9..	9; < "WRWWQruuW


r'"''!BEE'""
#

WRWWQruuW%%
&

#gbggag&&
'

D255))
*

eGBGGAbeeG,,
-

wrwwqw//
0

 '!  H^V ^VB6 6&5 5:
8 
8s5 s5l/, /,d	E 	E /G /Gd7B 7BtoC oCdN" N"bi> i>X	3P6 P6f'C 'CT& &>$ $*n
 n
b) ) , mG mG`e, e,Pw; w;t>> >>B", ",JB& B&J6 68;" ;"|e. e.P. ..SF SFl. .2J/ J/Z ?  ?Fh" h"V6 6(? ?,N NRB RBj2, 2,jC CL	<9
!* '0EF/ G/
<*585.2(:#4L	, )JK
AK
A#072'0	-. *FG1G1
	-&9%&P-M" +
HBHHo789
HBHHo789xrxx|456
HBHHk;/01	. 2226167: );<)<) :;
);
) ;<!<!
( );<
)<
)
%*$$ 
%%% 
%%% %%% u9 u9p8B 8Bv '0DE@ F@<
,37.)X6D6N+L\+0D )FG
4G
4 )<<>?4?4
 !""#_== *@ CKK5(E  GG^K ^KB.3+ 3+lv2 v2r@: @:FL L8	 )?[+HI  J 4#26 ;467373
 784	84
0/-(W. W.t3 3 #K #KL" "]A ]AF  "G H
4H
4r4   