
    -ii,d                       d Z ddl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 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*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@        jA        dk    ZBej
        dk    o e
jC                    dk    ZDddgZEddZFd ZGd ZH G d d          ZIddZJd ZKejL        M                    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/ d0          ZU G d1 d2          ZV G d3 d4          ZW G d5 d6          ZX G d7 d8          ZY G d9 d:          ZZ G d; d<          Z[ G d= d>          Z\ G d? d@          Z] G dA dB          Z^ G dC dD          Z_ G dE dF          Z` G dG dH          Za G dI dJ          Zb G dK dL          Zc G dM dN          Zd G dO dP          Ze G dQ dR          Zf G dS dT          Zg G dU dV          Zh G dW dX          Zi G dY dZ          Zj G d[ d\          Zk G d] d^          Zl G d_ d`          Zm G da db          Zn G dc dd          Zo G de df          Zp G dg dh          Zq G di dj          Zr G dk dl          Zs G dm dn          Zt G do dp          Zu G dq dr          Zv G ds dt          Zw G du dv          Zx G dw dx          Zy G dy dz          Zz 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          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          Z G d d          Z G d d          Zd	 ZejL                            eBd
          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd ZejL        M                    dg d          d             Zd Zd ZÐd ZĐd ZŐd ZƐd Zǐd ZȐd  Zɐd! Zʐd" ZejL        M                    d#d$ ej        d%d&g          fd' ej        d(d)g          fd* ej        d+d,g          fd- ej        d.d/g          fg          d0             Z̐d1 Z͐d2 Zΐd3 Zϐd4 ZejL        M                    d5g d6          d7             ZejL        M                    d8g d9          d:             ZejL        M                    d;g d<          d=             ZӐd> ZejL        M                    d5g d?          d@             ZՐdA Z G dB dCe'j                  Z G dD dEe'j                  Z G dF dGe'j                  Z G dH dIe'j                  Z G dJ dK          Z G dL dM          ZejL                            eBdN          dO             ZސdP ZߐdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZejL        M                    d5g dZ          d[             ZejL        M                    d\d]d^g          d_             ZejL        M                    d`ddg dafdbdcg dafdddeg dffg          dg             Zdh Zdi Z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jL        M                    dwe6e3z             dx             Zdy Zdz ZejL        M                    d8d{d|g          d}             ZejL        M                    d;g 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 G d d          ZejL        M                    dg d          d             ZdS (  z!
Test functions for stats module
    N)Path)assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_allcloseassert_assert_array_lessassert_array_max_ulp)raises)	typecodesarray)rec_append_fields)special)check_random_state)IntegrationWarningquad	trapezoidcumulative_trapezoid)
argsreduce)_XMAX)xlogy	polygammaentr)distcontinvdistcont   )distdiscreteinvdistdiscrete)FitDataError
_argus_phi)rootfmindifferential_evolution)productdarwinx86_64tukeylambdapearson3c                 V    ||  d| }t          t          | |          |           d S )Nz does not have attribute msg)r	   hasattr)abr,   s      j/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattrr1   5   s;    
{00Q00GAqMMs######    c                  D    t          t          j        j        d           d S )Nf_gen)r1   scipystatsdistributions r2   r0   test_api_regressionr9   ;   s    EK-w77777r2   c                      t          t          j        j        j                  } d t
          D             }d t          D             }g d}||z   |z   }t          t          d |                    }| |k    sJ d S )Nc                     g | ]
}|d          S r   r8   .0dists     r0   
<listcomp>z0test_distributions_submodule.<locals>.<listcomp>B   s    ///d$q'///r2   c                     g | ]
}|d          S r<   r8   r=   s     r0   r@   z0test_distributions_submodule.<locals>.<listcomp>C   s    111DQ111r2   )rv_discreterv_continuousrv_histogramentropyc                 H    t          |                               d           S )N<)str
startswithss    r0   <lambda>z.test_distributions_submodule.<locals>.<lambda>J   s    A(9(9#(>(>$> r2   )setr5   r6   r7   __all__r   r   filter)actual
continuousdiscreteotherexpecteds        r0   test_distributions_submodulerU   @   s    *233F//h///J11L111H  EH$u,H 6>>IIJJHXr2   c            	       |   e Zd Zd Zej                            dg d          ej                            dddej        ddg          d	                         Z	d
 Z
d Zej                            dg d          d             Zej                            dg d          d             Zd Zej                            dg d          d             Zd Zej        j        ej                            dddg          ej                            dg d          ej                            dddg          ej                            dddg          d                                                             Zej        j        d              Zej                            d!d"dg          d#             Zd$ Zd% Zd& Zd'S )(TestVonMisesc                 N    t           j                            d          | _        d S )Nl   Exq nprandomdefault_rngrngselfs    r0   setup_methodzTestVonMises.setup_methodP       9((44r2   k)皙?r   e   xr   r   
   d   c                     d }d } ||dd|            ||dd|            ||dd|            ||dd|            ||dd|            ||dd|           d S )Nc                     t          j        | ||          }t          |                    |          |                    |dt          j        z  |z  z                       d S )Nlocscale   )r6   vonmisesr   pdfrZ   pirb   LrK   re   vms        r0   check_vonmises_pdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicV   sS    q222Bq		266!q25y1}2E+F+FGGGGGr2   c                     t          j        | ||          }t          |                    |          dz  |                    |dt          j        z  |z  z            dz             d S )Nrj   r   rm   )r6   rn   r   cdfrZ   rp   rq   s        r0   check_vonmises_cdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicZ   sl    q222Bq		A "qAIM': ; ;a ?A A A A Ar2   r   r   rf   r8   )r_   rb   re   rt   rw   s        r0   test_vonmises_periodicz#TestVonMises.test_vonmises_periodicS   s    	H 	H 	H	A 	A 	A
 	$#Aq!Q///##Aq!Q///##Aq"a000##Aq!Q///##Aq!Q///##Aq"a00000r2   c                     t          t          j        j        t          j                    t          t          j        j        t          j                   d S N)r   r6   vonmises_liner.   rZ   rp   r/   r^   s    r0   test_vonmises_line_supportz'TestVonMises.test_vonmises_line_supportg   s:    U(*RUF333U(*BE22222r2   c                 t    t          j        d          }t          |                    d          d           d S )N   r         ?)r6   rn   r   rv   )r_   rs   s     r0   test_vonmises_numericalz$TestVonMises.test_vonmises_numericalk   s1    ^C  BFF1IIs+++++r2   zx, kappa, expected_pdf))rc   {Gz?g|65?)rc         9@g?U?)rc   r~   g"?)       @r   gDfI?)r   r   g1<)r   r~           c                 j    t           j                            ||          }t          ||d           d S NV瞯<rtol)r6   rn   ro   r   )r_   re   kappaexpected_pdfro   s        r0   test_vonmises_pdfzTestVonMises.test_vonmises_pdfy   s6     n  E**\666666r2   zkappa, expected_entropy))r   gA	?)   g,eޞ?)rg   gBb9d22)  g
G )  gc                 h    t           j                            |          }t          ||d           d S NvIh%<=r   )r6   rn   rE   r   )r_   r   expected_entropyrE   s       r0   test_vonmises_entropyz"TestVonMises.test_vonmises_entropy   s5     .((//!1>>>>>>r2   c                 h   d}t           j                            |          }t           j                            |          }t           j                            |          }t          j        ddd                              |          }t          j        ddt           j        z  d                              |          }t          j        dddt           j        z  t          |          z  dz                                 |          }t          ||d           t          ||d           d S )	Ni@}r   r   rj   random_staterm   r   atol)	rZ   r[   r\   r6   rn   rvsrp   absr   )r_   seedrng1rng2rng3rvs1rvs2rvs3s           r0   test_vonmises_rvs_gh4598z%TestVonMises.test_vonmises_rvs_gh4598   s   y$$T**y$$T**y$$T**~aQa00044$4GG~aQruWA666:::MM~aQ%&ruWSYY%6q%8; ; ;;>3D3;Q;Q 	d////d//////r2   zx, kappa, expected_logpdf))rc   r   gEJ?)rc   r   goι?)rc   r~   g0,)r   r   gdty)r   r   gʹw[A)r   r~   gc                 j    t           j                            ||          }t          ||d           d S r   )r6   rn   logpdfr   )r_   re   r   expected_logpdfr   s        r0   test_vonmises_logpdfz!TestVonMises.test_vonmises_logpdf   s6     &&q%00e<<<<<<r2   c                 :   t           j                            d          }|                    d          dz  \  }}}t          j        ||                              d           }t          |d           t          j        |j        t           j	                  sJ ||dt           j
        z  z   f} t          j        ||          j        d g|R  }t          |d           t          j        |j        t           j	                  sJ ||dt           j
        z  z   f} t          j        ||          j        d	 g|R d
di}t          t          j        |          |dt           j
        z  z             t          j        |j        t           j                  sJ dS )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    rf   rk   r   c                     dS Nr   r8   re   s    r0   rL   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>       A r2   r   rm   c                     dS r   r8   r   s    r0   rL   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   r   r2   c                 0    t          j        d| z            S )Ny              ?)rZ   expr   s    r0   rL   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   s    BF2a4LL r2   complex_funcN)rZ   r[   r\   r6   rn   expectr   
issubdtypedtypefloatingrp   anglecomplexfloating)r_   r]   rk   r   lbresboundss          r0   test_vonmises_expectz!TestVonMises.test_vonmises_expect   s    i##$788A+UBnE22299++FFQ}SY44444R!be)^#9enE2229++OOOOQ}SY44444R!be)^#9enE2229:P:P S;AS S SPQS Ssag777}SY(:;;;;;;;r2   rvs_locrm   	rvs_shape)r   rg       חAfix_locTF	fix_shapec                 .   |r|rt          j        d           t          j                            d          }t
          j                            |d||          }ddi}|r||d<   |r||d<   t          t
          j        |t
          j        j	        fi | d S )	NzNothing to fit.r   r   sizerk   r   fscaler   flocf0)
pytestskiprZ   r[   r\   r6   rn   r   _assert_less_or_close_loglikennlf)r_   r   r   r   r   r]   datakwdss           r0   test_fit_MLE_comp_optimizerz(TestVonMises.test_fit_MLE_comp_optimizer   s      	+ 	+K)***i##$788~!!)$G/2 " 4 4 !} 	#"DL 	#"DJ%end&+n&9	C 	C=A	C 	C 	C 	C 	Cr2   c                 @   g d}t          j        |          }dt           j        z  }t          j                            ||          \  }}}|t          j        t                    j        k    sJ t          t          j        |t          j        j
        d|           d S )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   )rZ   asarrayrp   r6   rn   fitfinfofloattinyr   r   )r_   r   rk   	kappa_fitloc_fit	scale_fits         r0   test_vonmises_fit_bad_flocz'TestVonMises.test_vonmises_fit_bad_floc   s    M M M z$RUl(-(:(:4c(:(J(J%	7IBHUOO00000%end&+n&9!#	O 	O 	O 	O 	O 	Or2   signc                    t           j                            d          }t          j        |dz  t           j        z  d                              d|          }|dt           j        z  z   }t          j                            |          \  }}}t          j                            |          \  }}	}
t          ||	           t          ||           |dk    sJ t           j         |cxk     rt           j        k     sn J d S )	Nr   r   rf   r   順 r      r   )	rZ   r[   r\   r6   rn   rp   r   r   r   )r_   r   r]   r   shifted_datar   r   r   kappa_fit_shiftedloc_fit_shifted_s              r0    test_vonmises_fit_unwrapped_dataz-TestVonMises.test_vonmises_fit_unwrapped_data   s    i##$788~$s(25.;;;??MP @ R Rag~(-(:(:4(@(@%	7I050B0B<0P0P-?A111	#4555A~~~~v''''"%''''''''r2   c                    t          j        d          }t          |                    d          ddt          j        z  z  d           t          |                    t          j        dz            dd           t          |                    t          j         dz            dd           t          |                    d          t          j        dz  d           t          |	                                dd	           t          |
                                dd	           t	          j        t	          j        |                    d
| j                            t          j        k              sJ d S )Nr   r   rm   r   r         ??皙?r   rf   r   r   )r6   rn   r   ro   rZ   rp   rv   sfppfmeanr   allr   r   r]   )r_   r?   s     r0   test_vonmises_kappa_0_gh18166z*TestVonMises.test_vonmises_kappa_0_gh18166   s(   ~a  Q!be)_5AAAAq))4e<<<<q))4e<<<<ruSyu====		QU3333qu5555vbfTXX2DHXEEFF"%OPPPPPPPr2   c                 v    t           j                            dg          \  }}}|dk    r|dk    r|dk    sJ d S )Nr   g 7yACr   )r6   rn   r   )r_   r   rk   rl   s       r0   test_vonmises_fit_equal_dataz)TestVonMises.test_vonmises_fit_equal_data	  sA    !N..s33sE}}eqjjjjjjr2   c                     t           j        j                            ddgd           t           j        j                            t          j        dz  dz  gd           d S )Nr   gl=c>r   rm   gd?)r5   r6   rn   r   rZ   rp   r^   s    r0   test_vonmises_fit_boundsz%TestVonMises.test_vonmises_fit_bounds  sZ     	  !WA 666 	  "%'9"5!6Q ?????r2   N)__name__
__module____qualname__r`   r   markparametrizerZ   rp   rx   r|   r   r   r   r   r   r   xslowr   slowr   r   r   r   r   r8   r2   r0   rW   rW   O   s       5 5 5 [S---00[S1aC"8991 1 :9 101$3 3 3, , , [5/ / /0 07 70 07 [6; ; ;< <? ?< <?0 0 0  [8B B BC C= =C C=< < <4 [[YA//[[---88[Yu66[[4-88C C 98 76 98 0/ 
C$ [
O 
O 
O [Vb!W--
( 
( .-
(	Q 	Q 	Q9 9 9
@ @ @ @ @r2   rW   Fc                    || j         } | j        |fi |} t          t          |           |           j        |fi |}|st	          j        ||k              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 dS dS )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typerZ   anyallclose)	r?   r   funcmaybe_identicalr   mle_analyticalnumerical_optll_mle_analyticalll_numerical_opts	            r0   r   r     s!    |yTXd++d++N/E$t**d++/====M
  7vn566666^T22tM400!111K)+;%HHH 211
 ~~b!T&\11114b!T(^3333 33r2   c           
         ddg}| j         r6t          | j                             d                    }|g dd |         z  }t          t	          |t          j        t          |                                        }g d}t          j        t          d          5   | j
        |fi | d d d            n# 1 swxY w Y   t          j        t          d          5  | 
                    t
          j        g           d d d            n# 1 swxY w Y   t          j        t          d          5  | 
                    t
          j        g           d d d            n# 1 swxY w Y   t          j        t          d	          5  | 
                    |d
           d d d            n# 1 swxY w Y   t          j        t          d          5   | j
        |gdgt          |          dz
  z  R   d d d            d S # 1 swxY w Y   d S )Nr   r   ,)r   f1f2r   rm   r   3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:rm   )extra_keywordzToo many positional arguments.r   )shapeslensplitdictziprZ   aranger   r   RuntimeErrorr   
ValueErrornaninf	TypeError)r?   paramnshapes	all_fixedr   s        r0   assert_fit_warningsr  >  sL   XE{ .dk'',,--###HWH--S	#e** 5 56677I99D	|&
' 
' 
' $ $ 	#####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
zB
D 
D 
D  "&               
zB
D 
D 
D  "&               
y(D	E	E	E ( (Q'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	y(H	I	I	I . .-SZZ!^,----. . . . . . . . . . . . . . . . . .sZ   B88B<?B<!DDD1!EE"%E"F((F,/F,#G>>HHr?   )alpha	betaprimefatiguelifeinvgammainvgauss
invweibull	johnsonsblevylevy_llognormgibratpowerlognormrayleighwaldc                    t          t                    }||          }t          t          |           } t	           | j        | j        g|R  d           t           | j        | j        g|R  t          j
                    t	           | j        | j        g|R  d           t           | j        | j        g|R  t          j
                    dS )zgh-6235r   N)r  r   getattrr6   r   ro   r.   r   r   rZ   r  r/   )r?   dctargss      r0   test_supportr1  U  s     x..Ct9D5$D/$///333TV+d+++bfW555/$///333TV+d+++bfW55555r2   c                   &    e Zd Zd Zd Zd Zd ZdS )TestRandIntc                 N    t           j                            d          | _        d S )Nl   {2 rY   r^   s    r0   r`   zTestRandInt.setup_methodh  ra   r2   c                    t           j                            ddd| j                  }t	          t          j        |dk               t          j        |dk              z             t	          t          |          dk               t           j                            ddd| j                  }t	          t          j        |          dk               t	          |j	        j
        t          d         v            t           j                            dd| j        	          }t	          |dk    |dk     z             t	          t          |t
          j                  t          t          |                    
           t          j        dd                              d| j        	          }t	          |j	        j
        t          d         v            d S )Nr      rg   r   rm   2   
AllInteger   .   r   r+   r   )r6   randintr   r]   r	   rZ   r   r  shaper   charr   
isinstance
ScalarTypereprr   r_   valsvals      r0   test_rvszTestRandInt.test_rvsk  sm   }  BStx HHtby!!BF419$5$55666D		S !!!}  BW48 LL')***
9\#::;;;mBTX>>sRx()))
3..DcOODDDDmB##'''AA	)L"99:::::r2   c                     t           j        dd         }t          j        |dk    |dk     z  dd          }t          j                            |dd          }t          ||           d S )Nr   $   r   r6  {Gz?)rZ   r_wherer6   r<  pmfr   )r_   rb   outrC  s       r0   test_pdfzTestRandInt.test_pdfx  s`    E!B$KhQ1r6*J::}  Ar**!$,,,,,r2   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                            |dd          }t          ||d
           d S )Nr   rG  rg   r6  r         ?      @r   r      decimal)rZ   linspacefloorselectr6   r<  rv   r   )r_   re   rb   rL  rC  s        r0   test_cdfzTestRandInt.test_cdf~  s    K2s##HQKKib!q&)C!C%'F1C+DaHH}  Ar**!$R888888r2   N)r   r   r   r`   rE  rM  rW  r8   r2   r0   r3  r3  g  sP        5 5 5; ; ;- - -9 9 9 9 9r2   r3  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )	TestBinomc                 N    t           j                            d          | _        d S )Ni&8jrY   r^   s    r0   r`   zTestBinom.setup_method  ra   r2   c                    t           j                            ddd| j                  }t	          t          j        |dk              t          j        |dk              z             t	          t          j        |          dk               t	          |j        j	        t          d         v            t           j                            dd| j                  }t	          t          |t                               t          j        dd                              d| j                  }t	          t          |t
          j                             t	          |j        j	        t          d         v            d S 	Nrf   r   r7  r   r   r9  r   r   )r6   binomr   r]   r	   rZ   r   r=  r   r>  r   r?  intndarrayrB  s      r0   rE  zTestBinom.test_rvs  s   {r4gDHMMtqy!!BF42:$6$66777')***
9\#::;;;koob$TXo>>
3$$%%%k"d##'''AA
3
++,,,	)L"99:::::r2   c                     t           j                            ddd          }t           j                            ddd          }t          |ddd           t          |ddd           d S )Nrg   r   r   rO  r   r   r   r6   r]  rK  r   )r_   vals1vals2s      r0   test_pmfzTestBinom.test_pmf  sd    S!,,3**sQ7777sQ777777r2   c                    t          j        dd          }t          j        g d          }t	          t          ||                     }|                                }t          ||           t          j        dd          }|                                }t          |d           t          j        dd          }|                                }t          |d           d S )Nrm   r   )      ?r   rg  r   rO  )	r6   r]  rZ   r   sumr   rE   r   r   )r_   r/   
expected_p
expected_hhs        r0   test_entropyzTestBinom.test_entropy  s    K3X///00
%
J77888
IIKK:&&&K3IIKKQK3IIKKQr2   c                 j   t          j                    5  t          j        dt                     t	          t          j        dd                                          d           t	          t          j        dd                                          d           d d d            d S # 1 swxY w Y   d S )Nerrorrm   r   np)	warningscatch_warningssimplefilterRuntimeWarningr   r6   r]  r   stdr^   s    r0   test_warns_p0zTestBinom.test_warns_p0  s    $&& 	9 	9!'>:::qA...3355q999qA...2244a888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   BB((B,/B,c                 Z    d}t           j                            d|d          |k    sJ d S )Nr   333333?rO  )qrp  rq  )r6   r]  r   r_   rp  s     r0   test_ppf_p1zTestBinom.test_ppf_p1  s2    {S11Q666666r2   c                     d}d}t          j        d          }t          j                            |||          }t          j                            |||z            }t          ||d           d S )NglyCgq]\	T3<r   ro  缉ؗҜ<r   )rZ   r  r6   r]  rK  poissonr   )r_   rp  rq  re   r   refs         r0   test_pmf_poissonzTestBinom.test_pmf_poisson  sh    "IaLLkooa1o**m1q5))Su------r2   c                     d}d}d}t           j                            |||          }t           j                            |||          }t	          ||d           d S )NgJ-DgO
;r   r~  r   )r6   r]  rK  rv   r   )r_   rp  rq  rr   r  s         r0   test_pmf_cdfzTestBinom.test_pmf_cdf  sZ    kooaA&&kooaA&&Su------r2   c                 l    t           j                            ddd          }t          |dd           d S )Nr   r   +?r   r~  r   rb  )r_   r   s     r0   test_pmf_gh15101zTestBinom.test_pmf_gh15101  s4    kooau--QU++++++r2   N)r   r   r   r`   rE  re  rl  rw  r|  r  r  r  r8   r2   r0   rY  rY    s        5 5 5	; 	; 	;8 8 8   9 9 97 7 7
. . .. . ., , , , ,r2   rY  c                       e Zd Zd ZdS )TestArcsinec                     t           j                            ddg          }t          |t          j        t          j        g           d S Nr   r   )r6   arcsinero   r   rZ   r  r_   rq  s     r0   test_endpointszTestArcsine.test_endpoints  s<     Mq!f%%Q()))))r2   N)r   r   r   r  r8   r2   r0   r  r    s#        * * * * *r2   r  c                        e Zd Zd Zd Zd ZdS )TestBernoullic                 N    t           j                            d          | _        d S )Nl   u7& rY   r^   s    r0   r`   zTestBernoulli.setup_method  ra   r2   c                    t           j                            dd| j                  }t	          t          j        |dk              t          j        |dk              z             t	          t          j        |          dk               t	          |j        j	        t          d         v            t           j                            d| j                  }t	          t          |t                               t          j        d                              d| j                  }t	          t          |t
          j                             t	          |j        j	        t          d         v            d S )	Nr   r7  r   r   r   r9  r   r   )r6   	bernoullir   r]   r	   rZ   r   r=  r   r>  r   r?  r^  r_  rB  s      r0   rE  zTestBernoulli.test_rvs  s   ""4gDH"MMtqy!!BF419$5$55666')***
9\#::;;;o!!$TX!>>
3$$%%%od##'''AA
3
++,,,	)L"99:::::r2   c                    t          j        d          }dt          j        d          z  dt          j        d          z  z
  }|                                }t          ||           t          j        d          }|                                }t          |d           t          j        d          }|                                }t          |d           d S )Nrg        пr   r   rO  )r6   r  rZ   logrE   r   r   )r_   r/   rj  rk  s       r0   rl  zTestBernoulli.test_entropy  s    OD!!26$<<'$rvd||*;;
IIKK:&&&OC  IIKKQOC  IIKKQr2   N)r   r   r   r`   rE  rl  r8   r2   r0   r  r    sA        5 5 5	; 	; 	;    r2   r  c                       e Zd Zd ZdS )TestBradfordc                     d}t          j        dd          }t          j                            ||          }t          j                            ||          }t          ||           d S )Nrc   )rZ   logspacer6   bradfordrv   r   r   )r_   cre   rz  xxs        r0   test_cdf_ppfzTestBradford.test_cdf_ppf  s\    KR  Nq!$$^1%%2r2   N)r   r   r   r  r8   r2   r0   r  r    s#            r2   r  c                   F   e Zd Zd Zej                            dddddddd	d
ddedfg          d             Zej                            dg d          ej                            de	j
        j        dfe	j
        j        dfg          d                         Zej                            dg d          d             Zej                            dg d          ej                            de	j
        j        dfe	j
        j        dfg          d                         ZdS )
TestCauchyc                 T    t           j                            d          }|dk    sJ d S )NZbtir   )r6   cauchyro   r  s     r0   test_pdf_no_overflow_warningz'TestCauchy.test_pdf_no_overflow_warning  s*     LU##Cxxxxxxr2   x, ref)r   罡HP)g       r  )gIL8r  )gOd@<r  ):0yU>gHP)Mb@?gP)rc   g*6y)      ?g8@(J)g NgmCg'K@$[U)r  gonьgs32c                 r    t           j                            || g          }t          |||gd           d S r   )r6   r  r   r   )r_   re   r  logps       r0   test_logpdfzTestCauchy.test_logpdf  s>     |""Ar7++sCju555555r2   ))g 7y1gu	lY<)g^?)r   rg  )r   r   )r   r   )r   g)nE?)g 7y1C?zmethod, sgnr   r   c                 F     |||z            }t          ||d           d S r   r   )r_   re   r  methodsgnrq  s         r0   test_cdf_sfzTestCauchy.test_cdf_sf  s0      F3q5MM3U++++++r2   ))gRyXsg!;v+͋)(,* EgjLҳ)      $@g
 )r   9B.)g      $gCį)g:@sgg>Z)g 5g*\Bc                     t           j                            |          }t          ||d           t           j                            |           }t          ||d           d S N+<r   )r6   r  logcdfr   logsfr_   re   r  r  r  s        r0   test_logcdf_logsfzTestCauchy.test_logcdf_logsf2  s`     $$Q''%0000""A2&&s//////r2   zp, ref))#B;g8)&.>g/)rg        )r   r   )r   rO  )!?gqmA)g?gqJRBc                 F    | ||          z  }t          ||d           d S r   r  )r_   rq  r  r  r  re   s         r0   test_ppf_isfzTestCauchy.test_ppf_isfA  s0     q		M3U++++++r2   N)r   r   r   r  r   r   r   r   r  r6   r  rv   r   r  r  r   isfr  r8   r2   r0   r  r    s          [	#	&	%	'	$	#	#	#	#	$
$	%
	'( (6 6( (6
 [	% 	% 	%	 	 [
,
A	
,/2		  
, , 	 	,
 [X; ; ;< <0 0< <0 [	/ 	/ 	/	 	 [
,
A	
,
B		!" ", ,	" "	 	, , ,r2   r  c                       e Zd ZdZdZd Zd Zd Zd Ze	j
                            ddefd	g          d
             Ze	j
                            dg d          d             ZdS )TestChignT9;g2 >h?@c                 t    t           j                            dd          }t          || j        d           d S )Nrf   r   r   r   )r6   chir   r   CHI_SF_10_4r_   rK   s     r0   test_sfzTestChi.test_sf]  s5    ILLQ4+%888888r2   c                 t    t           j                            | j        d          }t	          |dd           d S )Nr   rf   r   r   )r6   r  r  r  r   r_   re   s     r0   test_isfzTestChi.test_isfa  s5    IMM$*A..2E******r2   c                 r    d}d}t           j                            ||          }t          |dd           d S )Nr  r:  gar  r   )r6   r  r  r   )r_   re   dfr  s       r0   test_logcdfzTestChi.test_logcdfe  s?    !!!R(( 6UCCCCCCr2   c                 r    d}d}t           j                            ||          }t          |dd           d S )Nr   r:  @y`r  r   )r6   r  r  r   )r_   re   r  r  s       r0   
test_logsfzTestChi.test_logsfl  s=    	2&&5EBBBBBBr2   df, ref     @@)g  ļBgcAc                 d    t          t          j                            |          |d           d S N-q=r   )r   r6   r  r   r_   r  r  s      r0   	test_meanzTestChi.test_meany  s-     		r**Ce<<<<<<r2   ))-C6?gQ(݂)r   ńjɮ9?)r  gWr4'?)    _Bgr$h(?)}Ô%ITgs$h(?c                 r    t          t          j        |                                          |d           d S r   )r   r6   r  rE   r  s      r0   rl  zTestChi.test_entropy  s3     		"--//5AAAAAAr2   N)r   r   r   r  CHI_MEAN_1000r  r  r  r  r   r   r   r  rl  r8   r2   r0   r  r  T  s         'K $M9 9 9+ + +D D DC C C [Y"M279: := =: := [Y; ; ;< <B B< <B B Br2   r  c                   r    e Zd Zd Zd Zej                            dg d          d             Zd Z	d Z
dS )	TestCrystalBallc                    t          j        ddd          dd         }t          j                            |dd          }t          j        g d	          }t          ||d
           t          j                            |dd          }t          j        g d          }t          ||d
           t          j                            |dddd          }t          j        g d          }t          ||d
           dS )
        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.
              rP     Nr   rO  r   betam)gF6Ɣ?g9nZ丘?g9b?g"i"w?g|^?g>?gG6ƴ?g9b?|^?߈܁r ?gTC?r  r  gm?gFZۤ?g
HB?gTXek?g?bȓE?gLZ;x?gJ>+=r         @)g2c}`?g>t\f?g˂q?gg'T){?gmw?g>t\?h'T)?7-h	J?u8n?A#?g:Q?r  r  r  r  gZrԢ?g߄q?g)aL?gr'O<!?g99{-w>r   r  r  rk   rl   )g3c}?g>t\?g˂?f'T)?#n?5-h	J??u8n?vL1??#?||P?g:Q?r  r  r  r  r  r  r  r  )rZ   rT  r6   crystalballro   r   r   r_   X
calculatedrT   s       r0   rM  zTestCrystalBall.test_pdf  s;    Kc2&&ss+ &**13#*>>
8 	K 	K 	K 	L 	L 	*59999 &**13#*>>
8 	J 	J 	J 	K 	K 	*59999 &**13#3c*RR
8 	G 	G 	G 	H 	H 	*5999999r2   c                    t          j        ddd          dd         }t          j                            |dd          }t          j        g d	          }t          ||d
           t          j                            |dd          }t          j        g d          }t          ||d
           t          j                            |dddd          }t          j        g d          }t          ||d
           dS )r  r  rP  r  Nr   rO  r   r  )ghQ|
)?gj,,?gd}9?gH6?g|^?gEv?glQ|
)?gd}9?g|^?go[?gsX?g&Ռ?g~M+?gZRc?gtE_s?gi?gB?gEg?gvP
?gx훟?r   r   r  )g pr?g t\v?ge}?gݠn^?gCȘU?at\?ݠn^?~[n|D?gS4s/?2s?`qfhG?IgL?荩s?rA?IH?guk?ghi"?gP ?g.q?gs?r   r  )go?r  ge?r  gPU,?r  gjݗ	?r  g?r  g_!Y?r  ga?r	  gR?r
  g(?r  g܉x?r  )rZ   rT  r6   r  rv   r   r   r  s       r0   rW  zTestCrystalBall.test_cdf  s;    Kc2&&ss+ &**13#*>>
8 	E 	E 	E 	F 	F 	*59999 &**13#*>>
8 	E 	E 	E 	F 	F 	*59999 &**13#3c*RR
8 	E 	E 	E 	F 	F 	*5999999r2   zx, beta, m, rootref))      (@rO  r   gI9)      "@      @      ?gy
 <)   rc   gjt?g+,)g      r   r  gGA*?)g      >r   rP  g^v'?)gd~Qr  皙?g眭?c                 n    t           j                            |||          }t          ||d           d S )Nr  r   r   )r6   r  r   r   )r_   re   r  r  rootrefr   s         r0   r  zTestCrystalBall.test_sf  s<     !!!$!!44G%000000r2   c                    t          j        g d          }t          j        g d          }t          j        g d          }t          j                            d||          }t          ||d           t          j        g d          }t          j        dd	t           j        d
dg          }||z  }t          j                            d||          }t          ||d           t          j        t           j        t           j        t           j        ddg          }||z  }	t          j                            d||          }
t          |	|
d           t          j        t           j        t           j        t           j        t           j        dg          }||z  }t          j                            d||          }t          ||d           t          j        t           j        t           j        t           j        t           j        dg          }||z  }t          j                            d||          }t          ||d           t          j        t           j        t           j        t           j        t           j        dg          }||z  }t          j                            d||          }t          ||d           dS )zs
        All values are calculated using the pdf formula and the integrate function
        of Mathematica
        )r   rO  r  r   r  )r  r  r   r  r  )rO  rO  rO  rO  rO  r   MbP?r   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr   g
@gn(@rm   g?Җ)r   gMg'#@r   g('UHr   N)rZ   r   r6   r  _munpr   r  )r_   r  r  expected_0th_momentcalculated_0th_momentnormr.   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                    r0   test_momentszTestCrystalBall.test_moments"  sg    x11122H...// !h'@'@'@AA % 1 7 74 C C+-BOOOO xHHHIIHh"&)YGHH$h % 1 7 74 C C+-BOOOOHbfbfbffh?@@$h % 1 7 74 C C+-BOOOOHbfbfbfbfjABB$h % 1 7 74 C C+-BOOOOHbfbfbfbfg>??$h % 1 7 74 C C+-BOOOOHbfbfbfbfh?@@$h % 1 7 74 C C+-BOOOOOOr2   c                    t          j        dd          }|                                }d\  }}}t          j        |||          }t          t          |                    |                    |          }t          ||d           d S )Nrm   r   )ir6  @ Hz>r   )	r6   r  rE   rZ   rT  r   r   ro   r   )r_   cbres1lohiNre   res2s           r0   rl  zTestCrystalBall.test_entropyO  sy    q!$$zz||&	BKB""bffQii!,,d......r2   N)r   r   r   rM  rW  r   r   r   r  r%  rl  r8   r2   r0   r  r    s        <: <: <:|<: <: <:D [	0 	0 	0 1 1 1+P +P +PZ/ / / / /r2   r  c                   &    e Zd Zd Zd Zd Zd ZdS )
TestNBinomc                 N    t           j                            d          | _        d S )Nl   \: rY   r^   s    r0   r`   zTestNBinom.setup_method[  ra   r2   c                    t           j                            ddd| j                  }t	          t          j        |dk                         t	          t          j        |          dk               t	          |j        j	        t          d         v            t           j                            dd| j                  }t	          t          |t                               t          j        dd                              d| j                  }t	          t          |t
          j                             t	          |j        j	        t          d         v            d S r\  )r6   nbinomr   r]   r	   rZ   r   r=  r   r>  r   r?  r^  r_  rB  s      r0   rE  zTestNBinom.test_rvs^  s   |DwTXNNtqy!!"""')***
9\#::;;;lr4dh??
3$$%%%l2t$$(((BB
3
++,,,	)L"99:::::r2   c           	      2   t          t          j        t          j                            ddd                    t          j                            ddd                     t          j        j                            ddd          }t          |d           d S )Ni  i  gp=
ף?r   r   )	r   rZ   r   r6   r3  logpmfrK  r5   r   )r_   rD  s     r0   re  zTestNBinom.test_pmfi  s    u|223TBBCC((c488	: 	: 	: k ''1a00S!r2   c                     t           j                            g ddd          }t          j        t           j                            g ddd                    }t          ||           d S )N)r   r   r   r   333333@?ro  )r6   r3  r  rZ   r  rv   r   r_   rC  r  s      r0   test_logcdf_gh16159zTestNBinom.test_logcdf_gh16159q  sb    |""<<<3$"??fU\%%lllcT%BBCCc"""""r2   N)r   r   r   r`   rE  re  r:  r8   r2   r0   r0  r0  Z  sP        5 5 5	; 	; 	;  # # # # #r2   r0  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d
S )TestGenInvGaussc                 N    t           j                            d          | _        d S )Nl   n rY   r^   s    r0   r`   zTestGenInvGauss.setup_methody  ra   r2   c                     t          j        dd          }t          j        |                    d| j                  |j                  \  }}t          |dk    d           d S )Nffffff@r    r   皙?Tr6   geninvgausskstestr   r]   rv   r   r_   gigr   rq  s       r0   test_rvs_with_mode_shiftz(TestGenInvGauss.test_rvs_with_mode_shift|  Y     S))|CGGDHGEEswOO1QXt$$$$$r2   c                     t          j        dd          }t          j        |                    d| j                  |j                  \  }}t          |dk    d           d S )Nr   r   r@  r   rA  TrB  rE  s       r0   test_rvs_without_mode_shiftz+TestGenInvGauss.test_rvs_without_mode_shift  sY     T**|CGGDHGEEswOO1QXt$$$$$r2   c                     t          j        dd          }t          j        |                    d| j                  |j                  \  }}t          |dk    d           d S )Nrc   皙?r@  r   rA  TrB  rE  s       r0   test_rvs_new_methodz#TestGenInvGauss.test_rvs_new_method  rH  r2   c                       fd}t           |dd          d           t           |dd          d           t           |dd          d           d S )Nc                     t          j        | |          }|                    dj                  }t          j        ||j                  d         dk    S )Nr@  r   r   rA  )r6   rC  r   r]   rD  rv   )rq  r/   rF  r   r_   s       r0   my_ks_checkz4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_check  sJ    #Aq))C''t$(';;C<SW--a0477r2   r   rL  Tr   r  )r   )r_   rP  s   ` r0   test_rvs_p_zerozTestGenInvGauss.test_rvs_p_zero  sx    	8 	8 	8 	8 	8
 	[[C(($///[[C(($///[[C(($/////r2   c                     t          t          j        dd                              dd          dt          j        dd                              dd          z             d S )N      rm   rf     r   r   r  )r   r6   rC  r   r^   s    r0   test_rvs_negative_pz#TestGenInvGauss.test_rvs_negative_p  sn    !$**..BT.JJE%c1--11r1MMM	O 	O 	O 	O 	Or2   c                 H   t           j                            dddd          }t          t          j        |ddg          d         dk    d	           d
t          j        ddd          }}t           j                            |dd|z  |          }t          |t          j	        |                              |                     t           j        
                    |dd|z  |          }t          |t          j	        |          
                    |                     d S )Nr@  r   r   iFPW)r   rq  r/   r   r#  r0  333333?Trg   r   rf   )rq  r/   rl   )r6   rC  r   r   rD  rZ   rT  ro   r   r#  rv   )r_   igmure   pdf_igcdf_igs         r0   test_invgausszTestGenInvGauss.test_invgauss  s   ""
"SSU\"js;;;A>EtLLLR[q"--A"&&qDAF"&EEr 2 2 6 6q 9 9:::"&&qDAF"&EEr 2 2 6 6q 9 9:::::r2   c                     t          j        g d          }t          j        ddd          }t          |t          j                            |dd                     d S )N)
g;g8y8?g\}Z?ghܲ<?g&Khdd?g7!L?g	Cf?g_诱?g>0|?gRq?r   r   rf   r   r   )rZ   r   rT  r   r6   rC  ro   )r_   vals_Rre   s      r0   
test_pdf_RzTestGenInvGauss.test_pdf_R  sd      , , , - - Ka$$ 1 5 5aa @ @AAAAAr2   c                     t          t          j                            ddd          d           t          t          j                            ddd          d           d S )Nr   r   g    >Ar8  rm   )r   r6   rC  ro   r^   s    r0   test_pdf_zerozTestGenInvGauss.test_pdf_zero  sT    U&**1c377;;; 	U&**3A66:::::r2   N)r   r   r   r`   r   r   r   rG  rJ  rM  rQ  rU  r]  r`  rb  r8   r2   r0   r<  r<  x  s        5 5 5 [% % % [% % % [% % % [0 0 0O O O	; 	; 	;	B 	B 	B; ; ; ; ;r2   r<  c                       e Zd Zd Zd Zej                            dg d          d             Zej                            dg d          d             Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestGenHyperbolicc                     t          j        g d          }d\  }}}d\  }}|||z  ||z  f}t          j        |||d}t          j        ddd          }	t          |                    |	          |dd	           d S )
N)
gF^T=g{X'=gNunƢsy>g7!t?gɫzI?g̸?g?gq6.?gmPZz?g:PgN?rm   rm   r   r   r  rj   rf   r   r   r   r   )rZ   r   r6   genhyperbolicrT  r   ro   
r_   r_  lmbdar  r  rZ  deltar0  ghre   s
             r0   
test_pdf_rzTestGenHyperbolic.test_pdf_r  s           %ud	EuU{DJ/ $Be<<<KR$$q		6>>>>>>r2   c                     t          j        g d          }d\  }}}d\  }}|||z  ||z  f}t          j        |||d}t          j        ddd          }	t          |                    |	          |dd	           d S )
N)
g=R0W<=gEB=g#Nb>g_PG>g! 1Or?gUM?g u./?gfy?gl5\?gkV?rf  rg  rj   rh  rf   r   ư>ri  )rZ   r   r6   rj  rT  r   rv   rk  s
             r0   
test_cdf_rzTestGenHyperbolic.test_cdf_r  s           %ud	EuU{DJ/ $Be<<<KR$$q		6======r2   zx, p, a, b, loc, scale, ref)
)rm   r   r  r   r  g8ɹvF(;)rs  rf   r  rg  r   r   g[Ϡ?)rs  rf   r  g      ?r   r   g ✝`D;)rs        ?r  ):?r   r   gdL;)r   rt  r  ru  r   r   gzK^7?)r         r  ru  r   r   gj?)r   rv  r     r   r   ga=vG:)r  rv  r   rw  r   r   g?)(   rv  r   rw  r   r   g1bV?)<   rv  r   rw  r   r   g?c                 t    t           j                            ||||||          }t          ||d           d S Nrj   dy=r   )r6   rj  rv   r   )	r_   re   rq  r.   r/   rk   rl   r  rv   s	            r0   test_cdf_mpmathz!TestGenHyperbolic.test_cdf_mpmath  sB     !%%aAqc%GGSu------r2   ))r   rq  rQ  r   r   r   gC!,?)r   r         @      @r   r   g,Ћf?)r  r   r~  r  r   r   rO  )   rm   r   r  r   r  gm"چ>),  rf   r  rg  r   r   g:;)ry  rv  r   rw  r   r   gw=)K   rv  r   rw  r   r   g3Z0&K<c                 t    t           j                            ||||||          }t          ||d           d S r{  )r6   rj  r   r   )	r_   re   rq  r.   r/   rk   rl   r  r   s	            r0   test_sf_mpmathz TestGenHyperbolic.test_sf_mpmath  sB      ##Aq!QCu#EECe,,,,,,r2   c                     g d}d\  }}}d\  ||z  |z  ffdt          dd          D             }t          ||dd	           d S )
N)g@쐧@g@쐧 @g܊B@gvGăi@rf  rg  c                 Z    g | ]'}t          j        d                     |          (S )rj   )r6   rj  moment)r>   ir0  rm  rZ  s     r0   r@   z4TestGenHyperbolic.test_moments_r.<locals>.<listcomp>%  sI        2U;;;BB1EE  r2   r   r   r   r   ri  )ranger   )	r_   r_  rl  r  r  vals_usr0  rm  rZ  s	         @@@r0   test_moments_rz TestGenHyperbolic.test_moments_r  s    5 5 5 %ud	EuU{DJ/     1a[[  
 	ae<<<<<<r2   c                     d\  }}}d\  }}|||z  ||z  f}t          j        |||d}t          j        |                    dd          |j                  \  }}	t          |	dk    d           d S )	Nrf  rg  rj   r@  rT  r   rA  T)r6   rj  rD  r   rv   r   )
r_   rl  r  r  rZ  rm  r0  rn  r   rq  s
             r0   rE  zTestGenHyperbolic.test_rvs,  s     %ud	EuU{DJ/ $Be<<<|BFF4F@@"&II1QXt$$$$$r2   c                 2   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        |	                    d          |	                    d          d	          d d t           j
        f         }t          |                    |          t          j                            ||          dd
           d S )Nr   r6  rf   rm   r   rj   r   Gz?r8  rq  ri  )rZ   rT  float_powerr   float32epssqrtr6   rj  r   newaxisr   ro   t)	r_   r  r  r  rZ  rm  r0  rn  re   s	            r0   
test_pdf_tzTestGenHyperbolic.test_pdf_t9  s    [B## nR++BHRZ,@,@,DDatrwr{{EAud# $Be<<<KtbffTllB772:FFF1IIuw{{1b))	 	 	 	 	 	r2   c                    dt          j        t           j                  j        d}}}d\  }}|||f}t	          j        |||d}t          j        |                    d          |                    d          d          d d t           j        f         }t          |
                    |          t          j        
                    |          dd	           d S )
Nr   r   )r   r   rj   r   r  r8  rq  ri  )rZ   r   r  r  r6   rj  rT  r   r  r   ro   r  )	r_   rl  r  r  rZ  rm  r0  rn  re   s	            r0   test_pdf_cauchyz!TestGenHyperbolic.test_pdf_cauchyK  s    
 "28BJ#7#7#;Qdu	Eud# $Be<<<KtbffTllB772:FFF1IIu|''**	 	 	 	 	 	r2   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          |	                    |          t
          j
        	                    ||d          d	d
           d S )Nrh  rf   )r   r   r   rj   r  r  r8  r   r   dy=ri  )rZ   rT  r   r  r  r6   rj  r  r   ro   laplace)	r_   rk   rm  rl  r  r  r0  rn  re   s	            r0   test_pdf_laplacez"TestGenHyperbolic.test_pdf_laplace\  s    k#r2&& $$($uduU{DJ/  $Cu===KR$$QQQ
]3FF1IIu}((1(==	 	 	 	 	 	r2   c           
      p   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        |                    d          |                    d          d          d d t           j        f         }t          |	                    |          t          j
        	                    |||||          dd           d S )Nr   r  rf   r      r   rg   r   rj   r   r  r8  )r.   r/   rk   rl   r   ri  )rZ   rT  r  r  r6   rj  r   r  r   ro   norminvgauss)	r_   r  r  rm  rZ  rl  r0  rn  re   s	            r0   test_pdf_norminvgaussz'TestGenHyperbolic.test_pdf_norminvgaussq  s/    Ar2&&Ar2&&r~b%))'D'DDAq"%%D#r**	"tUB uu}dUl3 $Be<<<KtbffTllB772:FFF1IIu)--Ud% . 9 9	 	 	 	 	 	r2   N)r   r   r   ro  rr  r   r   r   r}  r  r  rE  r  r  r  r  r8   r2   r0   rd  rd    s       ? ? ?,> > >4 [%		< 		< 		< . . . [%	@ 	@ 	@	 	- -	 	-= = =.% % %  $  "  *    r2   rd  c                       e Zd Zej                            dddg          d             Zej                            dddg          d             Zd	 Zd
S )TestHypSecantzx, reference)r6  gA0=)r8  g!b;c                 h    t           j                            |          }t          ||d           d S r  )r6   	hypsecantr   r   )r_   re   	referencer   s       r0   r  zTestHypSecant.test_sf  s4     _""IE222222r2   zp, reference)rq  g9bT*@)r  gTW-;@c                 h    t           j                            |          }t          ||d           d S r  )r6   r  r  r   )r_   rq  r  re   s       r0   r  zTestHypSecant.test_isf  s4     O""95111111r2   c                     d}d}t           j                            |          }t          ||d           t           j                            |           }t          ||d           d S )N      I@g!br  r   )r6   r  r  r   r  r  s        r0   r  zTestHypSecant.test_logcdf_logsf  sh    %''**%0000%%qb))s//////r2   N)	r   r   r   r   r   r   r  r  r  r8   r2   r0   r  r    s        
 [^9:<= =3 3= =3 [^89;< <2 2< <20 0 0 0 0r2   r  c                   ~    e Zd Zd Zd Zej                            dg d          d             Zd Z	d Z
d Zd	 Zd
S )TestNormInvGaussc                     t          j        g d          }t          j        g d          }t          j                            |dd          }t          ||d           d S )N)gp~٧>g @X>g}e?g{)߳?gwH?ir  r      r:  r   r   r.   r/   r  r   )rZ   r   r6   r  rv   r   )r_   r_cdfx_testvals_cdfs       r0   
test_cdf_RzTestNormInvGauss.test_cdf_R  sr      < < < = =,,,--%))&A)==%d333333r2   c                     t          j        g d          }t          j        g d          }t          j                            |dd          }t          ||d           d S )N)gp϶>g\H55$?geСt&?go NiH?g]u>r  r   r   r  r  r   )rZ   r   r6   r  ro   r   )r_   r_pdfr  vals_pdfs       r0   r`  zTestNormInvGauss.test_pdf_R  sp     < < < = =,,,--%))&A)==%d333333r2   zx, a, b, sf, rtol))r   r   r   !7?r   )r  r   r   ?=r  )r   r   rS  gy5`?r  )rf   r   rS  gMLC9r  c                     t           j                            |||          }t          |||           t           j                            |||          }t          |||           d S Nr   r6   r  r   r   r  )r_   re   r.   r/   r   r   rK   r  s           r0   test_sf_isf_mpmathz#TestNormInvGauss.test_sf_isf_mpmath  sh     !!!Q**2D))))""2q!,,14((((((r2   c                     ddg}ddg}d}ddg}t           j                            |||          }t          ||dd	           t           j                            |||          }t          ||d
           d S )Nr   r  r   r   r  r  r   r~  ra  rq  r   r  )r_   re   r.   r/   r   rK   r  s          r0   test_sf_isf_mpmath_vectorizedz.TestNormInvGauss.test_sf_isf_mpmath_vectorized  s    HF "89!!!Q**2E6666""2q!,,14((((((r2   c                     t          j        dd          }t          j        ddd          }|                    |          }|                    |          }t          ||           d S )Nr   r   r  rm   )r6   r  rZ   r  r   r  r   )r_   dstre   r   r  s        r0   test_gh8718zTestNormInvGauss.test_gh8718  s[     A&&IaQVVAYYggbkkQr2   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                            ||d                     d S )	Nr   r   rm   r   r  r   r   mvskmoments)rZ   r  r   r6   r  )r_   r.   r/   gammav_statss        r0   
test_statszTestNormInvGauss.test_stats  s    11q!t$$u9adUAXosQw!bgenn:L/M!a!Q$hAo-.68We066q!V6LLMMMMMr2   c                     d\  }}t          j        g d          }t          j                            |||          }t          |t          j                            |||                     d S )Nr  r  r   r  )rZ   r   r6   r  r   r   rv   )r_   r.   r/   r  rC  s        r0   test_ppfzTestNormInvGauss.test_ppf  sf    1---..!%%fa33 2 6 6tQ B BCCCCCr2   N)r   r   r   r  r`  r   r   r   r  r  r  r  r  r8   r2   r0   r  r    s        
4 
4 
44 4 4 [0J J JK K
) )K K
)	) 	) 	)     N N ND D D D Dr2   r  c                   P    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S )TestGeomc                 N    t           j                            d          | _        d S )Nl   y rY   r^   s    r0   r`   zTestGeom.setup_method  ra   r2   c                    t           j                            dd| j                  }t	          t          j        |dk                         t	          t          j        |          dk               t	          |j        j	        t          d         v            t           j                            d| j                  }t	          t          |t                               t          j        d                              d| j                  }t	          t          |t
          j                             t	          |j        j	        t          d         v            d S )Nr   r7  r   r   r9  r   r   )r6   geomr   r]   r	   rZ   r   r=  r   r>  r   r?  r^  r_  rB  s      r0   rE  zTestGeom.test_rvs  s   z~~dtx~HHtqy!!"""')***
9\#::;;;jnnTn99
3$$%%%j""148"<<
3
++,,,	)L"99:::::r2   c                    t           j                            t          j        d          d| j                  }|j        t          j        k    sJ t          j        |t          j	        t          j
                  j        k              sJ d S )Nir   r   )r6   r  r   rZ   r   r]   r   int64r   iinfoint32maxr_   r   s     r0   test_rvs_9313zTestGeom.test_rvs_9313  sl     jnnRVC[[qtxnHHyBH$$$$vcBHRX..223333333r2   c                 n    t           j                            g dd          }t          |g d           d S )Nr  r   )r   rg  rt  )r6   r  rK  r   r_   rC  s     r0   re  zTestGeom.test_pmf  s8    z~~iii--!$(:(:(:;;;;;r2   c                 8   t          j        t          j                            g dd                    }t          j                            g dd          }t          ||dd           t          j                            dd          }t          |d           d S )Nr  r   r   r   ra  r   r   )rZ   r  r6   r  rK  r5  r   r   )r_   rc  rd  rD  s       r0   test_logpmfzTestGeom.test_logpmf  s    uz~~iii5566
!!)))S11u5q9999 j1%%S#r2   c                     t           j                            g dd          }t           j                            g dd          }t	          g d          }t          ||           t          |d|z
             d S )Nr  r   r   r         ?r   )r6   r  rv   r   r   r   r_   rC  vals_sfrT   s       r0   r  zTestGeom.test_cdf_sf  sr    z~~iii--*--			3//+++,,!$111!'1X:66666r2   c                 :   t           j                            g dd          }t           j                            g dd          }t	          g d          }t          |t          j        |                     t          |t          j        |                      d S )Nr  r   r  )	r6   r  r  r  r   r   rZ   r  log1pr  s       r0   r  zTestGeom.test_logcdf_logsf  s    z  C00*""999c22+++,,!$x(8(8999!'28XI+>+>?????r2   c                     t           j                            g dd          }t          g d          }t	          ||           d S )Nr  r   )rO  r   r  )r6   r  r   r   r   r_   rC  rT   s      r0   r  zTestGeom.test_ppf  sE    z~~000#66))!$11111r2   c                 f    t          t          j                            dd          dd           d S )Nr  rO  r  r   )r   r6   r  r   r^   s    r0   test_ppf_underflowzTestGeom.test_ppf_underflow#  s-    
ue44cFFFFFFr2   c                 v    t          j        d                                          }t          |dd           d S )Ng<,Ԛ?g۩@r   r   )r6   r  rE   r   )r_   rk  s     r0   test_entropy_gh18226zTestGeom.test_entropy_gh18226'  s;     Jv&&((,5999999r2   c                     t           j                            d          }t          j                            dd|          dk                                    sJ d S )NiKH9rf   r   r   )rZ   r[   RandomStater6   r  r   r   )r_   r   s     r0   test_rvs_gh18372zTestGeom.test_rvs_gh18372-  sP     y,,Y77
u2LIIAMRRTTTTTTTr2   N)r   r   r   r`   rE  r  re  r  r  r  r  r  r  r  r8   r2   r0   r  r    s        5 5 5	; 	; 	;4 4 4< < <  7 7 7@ @ @2 2 2
G G G: : :U U U U Ur2   r  c                       e Zd Zd Zd ZdS )
TestPlanckc                     t           j                            g dd          }t          g d          }t	          ||           d S )Nr  rP  )g|dy?g8'\>ggrU!>)r6   planckr   r   r   r  s      r0   r  zTestPlanck.test_sf7  sQ    |yyy"-- 2 2 2 3 3 	"$11111r2   c                     t           j                            g dd          }t          g d          }t	          ||           d S )N)r       @@     p@r  )g    P.g    h>g    TF)r6   r  r  r   r   r  s      r0   r  zTestPlanck.test_logsf>  sJ    |!!"7"7"7??:::;;!$11111r2   N)r   r   r   r  r  r8   r2   r0   r  r  5  s2        2 2 22 2 2 2 2r2   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestGennormc                     g d}t           j                            |d          }t           j                            |          }t	          ||           d S Nr  r   )r6   gennormro   r  r   r_   pointspdf1pdf2s       r0   test_laplacezTestGennorm.test_laplaceE  sM    }  ++}  ((D$'''''r2   c                     g d}t           j                            |d          }t           j                            |d          }t	          ||           d S Nr  rm   g;f?rl   )r6   r  ro   r  r   r  s       r0   	test_normzTestGennorm.test_normL  sO    }  ++z~~fF~33D$'''''r2   c                    t          j        d          }t          j                            d          }|                    d|          }t          j        ||j                  j        dk    sJ t          j        d          }|                    d|          }t           j	                            d|          }t          j
        ||          j        dk    sJ t          j        d          }||_        |                    d|          }t           j                            dd|	          }t          j
        ||          j        dk    sJ d S )
Nr       r   r   rc   r   rm   g;f?rl   r   r   )r6   r  rZ   r[   r\   r   rD  rv   pvaluer  ks_2sampr   r  )r_   r?   r]   r   rvs_laplacervs_norms         r0   rE  zTestGennorm.test_rvsS  s&   }S!!i##J//hhDsh33|C**1C7777}QhhDsh33m''T'DD~c;//6<<<<}QhhDsh33:>>t#>NN~c8,,3c999999r2   c                    t          j        ddgddgg          }t          j                            d          }|                    g d|          }t          j        |d d ddf         t          j        d          j                  d	         d
k    sJ t          j        |d d dd	f         t          j        d          j                  d	         d
k    sJ t          j        |d d d	df         t          j        d          j                  d	         d
k    sJ t          j        |d d d	d	f         t          j        d          j                  d	         d
k    sJ d S )Nr   rO  r   rP  r  )r   rm   rm   r   r   r   rc   )r6   r  rZ   r[   r\   r   rD  rv   )r_   r?   r]   r   s       r0   test_rvs_broadcastingz!TestGennorm.test_rvs_broadcastinge  sF   }sBi"b233i##J//hhLLLsh;;|C1aL%-*<*<*@AA!DsJJJJ|C1aL%-*<*<*@AA!DsJJJJ|C1aL%-*<*<*@AA!DsJJJJ|C1aL%-*<*<*@AA!DsJJJJJJr2   N)r   r   r   r  r  rE  r
  r8   r2   r0   r  r  D  sU        ( ( (( ( (: : :$K K K K Kr2   r  c                   Z    e Zd Zej                            dddg          d             ZdS )
TestGibratx, sfx)r  gD.?)  gJ]b<c                     t          t          j                            |          |d           t          t          j                            |          |d           d S N+=r   )r   r6   r)  r   r  r_   re   sfxs      r0   test_sf_isfzTestGibrat.test_sf_isf}  sR     	**Ce<<<<((--qu======r2   N)r   r   r   r   r   r   r  r8   r2   r0   r  r  o  sV         [X(A(E(G H H> >H H> > >r2   r  c                       e Zd Zd Zej                            dg d          d             Zd Zd Z	ej                            dg d          d	             Z
d
S )TestGompertzc                     t           j                            t           j                            dd          d          }t	          |d           d S N0.++r   )r6   gompertzr   rv   r   r  s     r0   test_gompertz_accuracyz#TestGompertz.test_gompertz_accuracy  sA    Nu~11&!<<a@@6"""""r2   z	x, c, sfx))r   r~  g|t?)r   r~  g(fMr;)rA  r   g[?)      @r   gg[<c                     t          t          j                            ||          |d           t          t          j                            ||          |d           d S Nr  r   )r   r6   r  r   r  )r_   re   r  r  s       r0   r  zTestGompertz.test_sf_isf  sX    
 	))!Q//5AAAA**322AEBBBBBBr2   c                 v    d}d}d}t           j                            ||          }t          ||d           d S )N       @rc   g_r  r   )r6   r  r  r   )r_   re   r  r  r  s        r0   r  zTestGompertz.test_logcdf  sC    %&&q!,,%000000r2   c                 v    d}d}d}t           j                            ||          }t          ||d           d S )Ng"ul/rQ  gH7Wr  r   )r6   r  r  r   )r_   re   r  r  r  s        r0   r  zTestGompertz.test_logsf  sC    $$Q**s//////r2   c, ref))r  geUT8?)r   gtqq?)r   gs{)r  gN*6c                 d    t          t          j                            |          |d           d S r  )r   r6   r  rE   r_   r  r  s      r0   rl  zTestGompertz.test_entropy  s/    
 	..q113UCCCCCCr2   N)r   r   r   r  r   r   r   r  r  r  rl  r8   r2   r0   r  r    s        # # #" [[ +M +M +M N NC C	N NC1 1 10 0 0 [X (E (E (E F FD D	F FD D Dr2   r  c                   Z    e Zd Zej                            dddg          d             ZdS )TestFoldNorm	x, c, ref)r  :0yE>g:0N<?)r  r  g:?c                 f    t          t          j                            ||          |d           d S r   )r   r6   foldnormrv   r_   re   r  r  s       r0   rW  zTestFoldNorm.test_cdf  s1     	**1a00#EBBBBBBr2   N)r   r   r   r   r   r   rW  r8   r2   r0   r&  r&    s[         [[+N+M+O P PC CP PC C Cr2   r&  c                      e Zd Zej                            dddg          d             Zej                            dg d          d             Zej                            dd	d
g          ej                            dg d          ej                            dddg          ej                            dddg          d                                                 Zd Z	dS )TestHalfNormr  )r   |N?)rf   Oul2;c                     t          t          j                            |          |d           t          t          j                            |          |d           d S r  )r   r6   halfnormr   r  r  s      r0   r  zTestHalfNorm.test_sf_isf  sT     	))!,,c>>>>**3//??????r2   r  ))Ww'&l7g;G<^͛7)C]r2<gE~o-<)r  g?c                 d    t          t          j                            |          |d           d S r   )r   r6   r1  rv   r_   re   r  s      r0   rW  zTestHalfNorm.test_cdf  s/     	**1--s??????r2   r   h㈵>r  	rvs_scaler   rg   r   r   TF	fix_scalec                    t           j                            d          }t          j                            ||d|          }|r[|rYd}t          j        t          |          5  t          j	        
                    |||           d d d            n# 1 swxY w Y   d S i }|r||d<   |r||d<   t          t          j        |fi |d	d
i d S Nr   r   rk   rl   r   r   r  r  r   r   r   r   r  T)rZ   r[   r\   r6   r1  r   r   r   r  halflogisticr   r   	r_   r   r7  r   r9  r]   r   	error_msgr   s	            r0   r   z(TestHalfNorm.test_fit_MLE_comp_optimizer  s^    i##$788~!!gYT/2 " 4 4  	y 	%I|9=== M M"&&t')&LLLM M M M M M M M M M M M M M MF 	#"DL 	'&DN 	&end 	< 	<d 	< 	<6:	< 	< 	< 	< 	< 	<   $#BBBc                     t          j        t                    5  t          j                            g dd           d d d            d S # 1 swxY w Y   d S Nr  rm   r   )r   r   r    r6   r1  r   r^   s    r0   test_fit_errorzTestHalfNorm.test_fit_error	  s    ]<(( 	2 	2Nyyyq111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2   $AAAN)
r   r   r   r   r   r   r  rW  r   rD  r8   r2   r0   r-  r-    sK        [X(?(C(E F F@ @F F@ [X (A (A (A B B@ @B B@ [Yt55[[*:*:*:;;[Yu66[[4-88< < 98 76 <; 65<22 2 2 2 2r2   r-  c                   2   e Zd Zej                            dddg          ej                            dddg          ej                            ddd	g          ej                            d
dd	g          d                                                 Zd ZdS )TestHalfCauchyr   r6  r  r7  r   r   r   TFr9  c                    t           j                            d          }t          j                            ||d|          }|r[|rYd}t          j        t          |          5  t          j	        
                    |||           d d d            n# 1 swxY w Y   d S i }|r||d<   |r||d<   t          t          j	        |fi | d S )	Nr   r   r<  r  r  r=  r   r   )rZ   r[   r\   r6   r1  r   r   r   r  
halfcauchyr   r   r?  s	            r0   r   z*TestHalfCauchy.test_fit_MLE_comp_optimizer  s=    i##$788~!!gYT/2 " 4 4  	y 	%I|9=== K K $$T	$JJJK K K K K K K K K K K K K K KF 	#"DL 	'&DN%e&6EEEEEEErA  c                     t          j        t                    5  t          j                            g dd           d d d            d S # 1 swxY w Y   d S rC  )r   r   r    r6   rI  r   r^   s    r0   rD  zTestHalfCauchy.test_fit_error+  s    ]<(( 	4 	4   333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4rE  N)r   r   r   r   r   r   r   rD  r8   r2   r0   rG  rG    s        [Yt55[[4+66[Yu66[[4-88F F 98 76 76 65F,4 4 4 4 4r2   rG  c                      e Zd Zej                            dddg          d             Zej                            dg d          d             Zd Zd	 Z	ej                            d
ddg          ej                            dg d          ej                            dddg          ej                            dddg          d                                                 Z
d ZdS )TestHalfLogisticr  )rg   ]6)   L-c                 d    t          t          j                            |          |d           d S r   )r   r6   r>  r   r5  s      r0   r  zTestHalfLogistic.test_sf9  s0     	*--a00#EBBBBBBr2   q, ref))rM  rg   )rO  rN  )硏v?g   .!>)g?g      <c                 d    t          t          j                            |          |d           d S r   )r   r6   r>  r  r_   rz  r  s      r0   r  zTestHalfLogistic.test_isfE  s0    
 	*..q113UCCCCCCr2   c                 p    d}d}t           j                            |          }t          ||d           d S )Ng      >@guVJr  r   )r6   r>  r  r   r_   re   r  r  s       r0   r  zTestHalfLogistic.test_logcdfL  s=    $#**1--%000000r2   c                 p    d}d}t           j                            |          }t          ||d           d S )Nr  g+r  r   )r6   r>  r  r   r_   re   r  r  s       r0   r  zTestHalfLogistic.test_logsfS  s=    $"((++s//////r2   r   r6  r  r7  r8  r   TFr9  c                    t           j                            d          }t          j                            ||d|          }i }|r[|rYd}t          j        t          |          5  t          j        	                    |||           d d d            n# 1 swxY w Y   d S |r||d<   |r||d<   t          t          j        |fi |d	d
i d S r;  )rZ   r[   r\   r6   r>  r   r   r   r  r   r   )	r_   r   r7  r   r9  r]   r   r   r@  s	            r0   r   z,TestHalfLogistic.test_fit_MLE_comp_optimizerZ  s`    i##$788!%%'36 & 8 8  	y 	%I|9=== M M"&&t')&LLLM M M M M M M M M M M M M M MF 	#"DL 	'&DN 	&e&8$ 	< 	<$ 	< 	<6:	< 	< 	< 	< 	< 	<s   &#BBBc                     d}t          t          |          5  t          j                            g dd           d d d            d S # 1 swxY w Y   d S )Nz; Maximum likelihood estimation with 'halflogistic' requiresr  )r   rm   r   r   r   )assert_raisesr    r6   r>  r   r_   r,   s     r0   test_fit_bad_flocz"TestHalfLogistic.test_fit_bad_flocw  s    L<s333 	6 	6""9991"555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   $A

AAN)r   r   r   r   r   r   r  r  r  r  r   r]  r8   r2   r0   rL  rL  1  si        [X(D(D(F G GC CG GC [X (K (K (K L LD D	L LD1 1 10 0 0 [Yt55[[*:*:*:;;[Yu66[[4-88< < 98 76 <; 65<26 6 6 6 6r2   rL  c                        e Zd Zd Zd Zd ZdS )TestHalfgennormc                     g d}t           j                            |d          }t           j                            |          }t	          ||           d S r  )r6   halfgennormro   exponr   r  s       r0   
test_exponzTestHalfgennorm.test_expon~  sL     $$VQ//{v&&D$'''''r2   c                     g d}t           j                            |d          }t           j                            |d          }t	          ||           d S r  )r6   ra  ro   r1  r   r  s       r0   test_halfnormzTestHalfgennorm.test_halfnorm  sS     $$VQ//~!!&!77D$'''''r2   c                     g d}t           j                            |d          }t           j                            |d          }t	          |d|z             d S )Nr  g
(?rm   )r6   ra  ro   r  r   r  s       r0   test_gennormzTestHalfgennorm.test_gennorm  sT     $$VW55}  11D!D&)))))r2   N)r   r   r   rc  re  rg  r8   r2   r0   r_  r_  }  sA        ( ( (( ( (* * * * *r2   r_  c                        e Zd Zd Zd Zd ZdS )TestLaplaceasymmetricc                     t          j        g d          }t          j                            |d          }t          j                            |          }t          ||           d S r  )rZ   r   r6   laplace_asymmetricro   r  r   r  s       r0   r  z"TestLaplaceasymmetric.test_laplace  sX    )))$$'++FA66}  ((d#####r2   c                     t          j        g d          }d}d|z  }t          j                            ||          }t          j                            ||dz  z  |          }t          ||           d S )Nr  rm   r   )rZ   r   r6   rk  ro   r   )r_   r  r   kapinvr  r  s         r0   test_asymmetric_laplace_pdfz1TestLaplaceasymmetric.test_asymmetric_laplace_pdf  sr    )))$$5'++FE::'++FE1H,=vFFd#####r2   c           
         t          j        t          j        d           t          j        d          g          }d}t          j                            ||          }t          j                            ||          }t          j                            ||          }t          j        ddg          }t          j        ddg          }t          j        dd	g          }t          j                            ||          }	|}
t          j        	                    ||          }|}t          t          j        ||||	|f          t          j        ||||
|f                     d S )
N   rf   rm   rc   gMbp?rL  V-?r   gMb`?)rZ   r   r  r6   rk  ro   rv   r   r   r  r   concatenate)r_   r  r   r  cdf1sf1r  cdf2sf2ppf1ppf2isf1isf2s                r0   !test_asymmetric_laplace_log_10_16z7TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16  s9   BF2JJ;r

344'++FE::'++FE::&))&%88xu&&xi())hU|$$'++D%88'++C77dCt'DEEdCt'DEE	G 	G 	G 	G 	Gr2   N)r   r   r   r  rn  r{  r8   r2   r0   ri  ri    sF        $ $ $$ $ $G G G G Gr2   ri  c                      e Zd Zd Zej                            dg d          d             Ze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                            de          d             Zd Zd Zd  Zd! Zd" Zd# Zd$S )%TestTruncnormc                 N    t           j                            d          | _        d S )Nl   A$ rY   r^   s    r0   r`   zTestTruncnorm.setup_method  ra   r2   	a, b, ref))r   rg   r  )333333?ffffff?gܲl)rq  g>g+c                 f    t          t          j                            ||          |d           d S N绽|=r   r   r6   	truncnormrE   r_   r.   r/   r  s       r0   rl  zTestTruncnorm.test_entropy  s1    $ 	//155sGGGGGGr2   ))r  r  ghiɮ9?)r  r  r  )g0.+r  r  )}Ô%Ir  Z_2?c                 f    t          t          j                            ||          |d           d S r  r  r  s       r0   test_extreme_entropyz"TestTruncnorm.test_extreme_entropy  s1      	//155sGGGGGGr2   c           	          t           j                            g ddddgdz  d          }t          j        t          j        dd	dd
dt          j        g          }t          ||           d S )Nr   r   r  r   H.?r   rm   r  rO  r      rm   rj   r   fO?l@r   )r6   r  r   rZ   r   r  r   r  s      r0   test_ppf_ticket1131z!TestTruncnorm.test_ppf_ticket1131  n    ""#E#E#EsB()s1uA # 7 78RVQ
Az1bfMNN!$11111r2   c           	          t           j                            g ddddgdz  d          }t          j        t          j        dd	dd
dt          j        g          }t          ||           d S )Nr  r  rO  r   r  rm   rj   r   r  r  r   )r6   r  r  rZ   r   r  r   r  s      r0   test_isf_ticket1131z!TestTruncnorm.test_isf_ticket1131  r  r2   c                    d\  }}t           j                            ||ddd| j                  }t	          ||                                cxk     o|                                cxk     o|k     nc            d\  }}t           j                            ||ddd| j                  }t	          ||                                cxk     o|                                cxk     o|k     nc            d S )N)irh  r   r   rf   r   )rf      r6   r  r   r]   r	   minr  r_   lowhighre   s       r0   test_gh_2477_small_valuesz'TestTruncnorm.test_gh_2477_small_values  s    	TOT1abtxPPaeegg........$....///	TOT1abtxPPaeegg........$..../////r2   c                    d\  }}t           j                            ||ddd| j                  }t	          ||                                cxk    o|                                cxk    o|k    nc           t          |||g          f d\  }}t           j                            ||ddd| j                  }t	          ||                                cxk     o|                                cxk     o|k     nc            d\  }}t           j                            ||ddd| j                  }t	          ||                                cxk     o|                                cxk     o|k     nc            d\  }}t           j                            ||ddd| j                  }t	          ||                                cxk     o|                                cxk     o|k     nc            d S )	N)rg   rd   r   r   rf   r   )r     )'  i'  )i)r6   r  r   r]   r	   r  r  rH   r  s       r0   test_gh_2477_large_valuesz'TestTruncnorm.test_gh_2477_large_values  s   	TOT1abtxPPquuww1111!%%''1111T111122CdA4G4GGG 	TOT1abtxPPaeegg........$..../// 	TOT1abtxPPaeegg........$....///"	TOT1abtxPPaeegg........$..../////r2   c                    ddgddgfD ]\  }}t          j        t           j         ||t           j        g          }||z   dz  }t          j                            |||          }t          j                            |||          }t          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        
                    |||          }t          j        |t          j        |          dz  |g          }t          ||           |d	k     r_t          t          j                            |||          d           t          t          j                            |||          d           n^t          t          j                            |||          d           t          t          j                            |||          d           t          j                            |||          }t          t          j	        ||
d         z            |dz   dz             d S )Nr   r   r  r   r   r   r   r   rO  rO  r   r   )r   d._MT
@BKg?r   r   )r   r  r  r   r   rm   r   r   r   rO  gĖy	@gdv*?g,mj%V?rg  )rZ   r   r  r6   r  rv   r   ro   r   r  r   r   )r_   r  r  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsro   s                  r0   test_gh_9403_nontail_valuesz)TestTruncnorm.test_gh_9403_nontail_values
  s   a&2r(+  	M  	MICHrvgsD"&9::EHc>D?&&uc488D/$$UC66C?&&uc488DH\\\22M8$8$8$899LH%A%A%ABBMQww ")E)E)E F Fm444\222m444}Q'7a8H'H I I #c	+ + +H]]]++E?&&uc488DHc273<<	+A4%HIIMm444Qww#EO$6$6tS$$G$G$68 8 8#EO$7$7c4$H$H$68 8 8 8 $EO$7$7c4$H$H$68 8 8#EO$6$6tS$$G$G$68 8 8/%%dC66Cs=+;'; < <tDy!mLLLLA 	M  	Mr2   c           	         ddgddgfD ]F\  }}t          j        t           j         ||t           j        g          }||z   dz  }t          j                            |||          }t          j                            |||          }t          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        
                    |||          }t          j        |t          j        |          dz  |g          }t          ||           t          j                            |||          }t          ||           |d	k     r_t          t          j                            |||          d           t          t          j                            |||          d           n^t          t          j                            |||          d           t          t          j                            |||          d           t          j                            |||          }t          t          j	        ||
d         z            |dz   dz             t          j        ||d          }|d d d          }t          t          j                            |||          t          j                            || |           d d d                    t          t          j                            |||          t          j                            || |           d d d                    t          t          j                            |||          t          j                            || |           d d d                    Hd S )N'   rx  ir   r  r  )r   pGC@Ff<r   r   )r   r  r  r   r   rm   r   r  gEC@g i?gspXio)>rg  r  r   )rZ   r   r  r6   r  rv   r   ro   r   r  r   r   rT  )r_   r  r  r  r  r  r  r  r  r  r  r  r  r  ro   xvals2s                   r0   test_gh_9403_medium_tail_valuesz-TestTruncnorm.test_gh_9403_medium_tail_values-  s   r(S#J/ ,	P ,	PICHrvgsD"&9::EHc>D?&&uc488D/$$UC66C?&&uc488DH\\\22M8$8$8$899LH%K%K%KLLMQww " *= *= *= !> !>m444\222m444}Q'7a8H'H I I #c	+ + +H]]]++E?&&uc488DHc273<<+CT%JKKMm444?&&tS$77De,,,Qww#EO$6$6tS$$G$G$68 8 8#EO$7$7c4$H$H$9; ; ; ; $EO$7$7c4$H$H$68 8 8#EO$6$6tS$$G$G$9; ; ;/%%dC66Cs=+;'; < <tDy!mLLLKT2..EDDbDk\F 3 3E3 E E % 2 26D53$ G G" MO O O 2 25#t D D % 3 3FTEC4 H H2 NP P P 3 3E3 E E % 3 3FTEC4 H H2 NP P P PW,	P ,	Pr2   c                     t          t          j        dd                              d          d           t          t          j        dt          j                                      d          d           d S )Ng      *@      .@      ,@g T?r  g @gR?)r   r6   r  rv   rZ   r  r^   s    r0   test_cdf_tail_15110_14753z'TestTruncnorm.test_cdf_tail_15110_14753\  sr    
 	S1155c::*	, 	, 	,262266s;;*	, 	, 	, 	, 	,r2   )r6  r   rO  r   r   )rh  rf   r   rO  r   gLFu)r  r   r   gMFmz%?r   gſ)r   rm   r   ghI}?r   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r   r   gU*? bn?gnA??c3TXʿ)r  r   gU*ҿr  gnAr  )rh  g"$7"gOxr?gp7`g'>K@casec                     |\  }}}}}}t           j                             ||d          \  }}	}
}t          ||	|
|g||||gd           d S )Nr  r  FFg<r   )r6   r  r   )r_   r  r.   r/   m0v0s0k0r  vrK   rb   s               r0   r%  zTestTruncnorm.test_moments  sd    #1b"b"_**1a*@@
1aAq!r2r2&6UCCCCCCr2   c                     t           j                             dt          j        d          \  }}t	          |d           t	          |d           d S )Nr   mvr  g e3E?g:&A?)r6   r  rZ   r  r   )r_   r  r  s      r0   test_9902_momentszTestTruncnorm.test_9902_moments  sJ    $$Q$==1Az***Az*****r2   c                     d\  }}t           j                            ||ddd| j                  }t	          ||                                cxk     o|                                cxk     o|k     nc            d S )N)rf   r:  r   r   rf   r   r  r  s       r0   test_gh_1489_trac_962_rvsz'TestTruncnorm.test_gh_1489_trac_962_rvs  s}    	TOT1abtxPPaeegg........$..../////r2   c                 \   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                            ||dt          |          f| j        
          }t          j        |          dt          |          fk    sJ t          t          j	        ||
                    d          k                         t          t          j	        |                    d          |k                         d S )Nrh  rf   r  irx  r  r   r  -   r   r   )axis)rZ   r  r6   r  r   r  r]   r=  r	   r   r  r  r  s       r0   test_gh_11299_rvszTestTruncnorm.test_gh_11299_rvs  s     BbfWrvgsCS"MB262sBRHOTCHHDHUUx{{q#c((m++++saeeemm+,,---quu!u}},--.....r2   c                     t          t          j        d          r*t          j                            ddd| j                   d S d S )Nr\   rh  r  r   r   )r-   rZ   r[   r6   r  r   r]   r^   s    r0   test_rvs_Generatorz TestTruncnorm.test_rvs_Generator  sJ    29m,, 	HORadhGGGGG	H 	Hr2   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        ||                              |          |           t          t	          j        | |                               |           |           d S )Nrf   r  )rf         @r  	   r  )gOul"gځ=!gL!g>EG	f g^K[X)rZ   r   r  r   r6   r  r  r  )r_   r.   r/   re   rT   s        r0   test_logcdf_gh17064z!TestTruncnorm.test_logcdf_gh17064  s    HrvgwRVGR899HbfbfaRV455H***+++ + + 	1--44Q77BBBQB//55qb998DDDDDr2   c                 z    t          j        dd                              d          }d}t          ||           d S )Nr   r   r   gl).0S?)r6   r  r  r   )r_   r   r  s      r0   test_moments_gh18634z"TestTruncnorm.test_moments_gh18634  s@     ob!$$++A..  S!!!!!r2   N)r   r   r   r`   r   r   r   rl  r  r  r  r  r  r  r  r  rZ   r  _truncnorm_stats_datar   r%  r  r  r  r  r  r  r8   r2   r0   r}  r}    su       5 5 5 [[B B BC CH H	C CH  [[D D DE E
H HE E
H2 2 22 2 20 0 00 0 0&!M !M !MF-P -P -P^, , ,	 	 		1 	1 	1	= 	= 	=	< 	< 	<	
BF						
 &!						
	 	 	
	 	 	
	 	 	;"F %BH%:;;[V%:;;D D <;D
+ + +
0 0 0/ / /H H H
	E 	E 	E" " " " "r2   r}  c                      e Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            ddd	g          d
             Zej                            dddg          d             Z	ej                            dddg          d             Z
ej                            dddg          d             ZdS )TestGenLogisticx, expected))ig4`n)ig4	ncg)r   gX
=)rg   gh@X)r   gh<c                 n    d}t           j                            ||          }t          ||d           d S )Nr  r   r   )r6   genlogisticr   r   )r_   re   rT   r  r  s        r0   r  zTestGenLogistic.test_logpdf  s<      ''1--hU333333r2   r"  ))r  gTKEl@)r  gJk$@)r   gsF<?)r  7~F<?c                 d    t          t          j                            |          |d           d S r  )r   r6   r  rE   r$  s      r0   rl  zTestGenLogistic.test_entropy  s0    
 	)11!44cFFFFFFr2   r'  )rN  rf   g8.)  r  gpT	oc                 f    t          t          j                            ||          |d           d S r  )r   r6   r  r   r+  s       r0   r  zTestGenLogistic.test_sf  s2     	),,Q22CeDDDDDDr2   	q, c, ref)r   rN  g^ #@)r  rm   gGFf@c                 f    t          t          j                            ||          |d           d S NV瞯<r   )r   r6   r  r  r_   rz  r  r  s       r0   r  zTestGenLogistic.test_isf  2     	)--a33SuEEEEEEr2   )r   rN  gİ@)r  r  g1a@c                 f    t          t          j                            ||          |d           d S r  )r   r6   r  r   r  s       r0   r  zTestGenLogistic.test_ppf  r  r2   )rg   {Gz?g(?)r8  r  g'Tn7c                 f    t          t          j                            ||          |d           d S r   )r   r6   r  r  r+  s       r0   r  zTestGenLogistic.test_logcdf  s2     	)00A66%HHHHHHr2   N)r   r   r   r   r   r   r  rl  r  r  r  r  r8   r2   r0   r  r    s        [] -I -I -I J J
4 4J J
4 [X (E (E (E F FG G	F FG& [[+L+L+N O OE EO OE [[+I+H+J K KF FK KF [[+I+H+J K KF FK KF [[+N+K+M N NI IN NI I Ir2   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ej        j        d             ZdS )TestHypergeomc                 N    t           j                            d          | _        d S )Ni~<irY   r^   s    r0   r`   zTestHypergeom.setup_method  ra   r2   c                 t   t           j                            dddd| j                  }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                            ddd| j                  }t          |t                    sJ t          j        ddd                              d| j                  }t          |t          j                  sJ |j        j        t          d         v sJ d S )	Nr  rf   r   r7  r   r   r9  r   )r6   	hypergeomr   r]   rZ   r   r=  r   r>  r   r?  r^  r_  rB  s      r0   rE  zTestHypergeom.test_rvs  s   ""2r17"RRvdai  26$!)#4#44444x~~((((z)L"99999o!!"a$(!CC#s#####ob!R((,,QTX,FF#rz*****y~<!8888888r2   c                     d}d}d}|}|}t           j                            d|||          }t          |dd           d S )Ni	  r8  r  rm   gkㅒP?r  )r6   r  rK  r   )r_   Mrp  r-  totgoodhgpmfs          r0   test_precisionzTestHypergeom.test_precision  sO    ##AsD!44E#8"=====r2   c                    t          t          j                            dddd          dd           t          t          j                            dddd          dd           t          t          j                            dddd          dd           t          t          j                            dddd          dd           d S )Nr   rm   r   rO  r  r   )r   r6   r  rK  r^   s    r0   	test_argszTestHypergeom.test_args  s     	EO//1a;;S"EEEEO//1a;;S"EEEEO//1a;;S"EEEEO//1a;;S"EEEEEr2   c           	          t          dt          j                            dddd          cxk    odk    nc            d S )Nr   r6  io i  if0  rO  )r	   r6   r  rv   r^   s    r0   test_cdf_above_onez TestHypergeom.test_cdf_above_one&  sH    U_((XtUCCJJJJsJJJJKKKKKr2   c                 <  	 ddt          j        g d          dz  }d		fd|D             }t          j        g d          }t          ||dd	
           g d}t          j                            |z   d          }g d}t          ||dd	
           d S )Ng    +@g     @)r   ffffff@333333@r   gffffff@@r        @     @c                 Z    g | ]'}t           j                            z   |          (S r8   )r6   r  r   )r>   eatenorangespearsquantiles     r0   r@   z1TestHypergeom.test_precision2.<locals>.<listcomp>1  sC     * * * !!(GeOWeLL * * *r2   )r   gpR(g㘍R2gJޱ p9g?Mf=
G?r   r   gƠ>ri  )g     @r  g     @g     @g     @)r   r  g)9g"1)rZ   r   r   r6   r  r   )
r_   fruits_eatenr   rT   	quantilesr.  	expected2r	  r
  r  s
          @@@r0   test_precision2zTestHypergeom.test_precision2*  s     x = = =>>D* * * * * *(* * *8 9 9 9 : :XAD9999 0//	!!)Wu_guMM>>>	iad;;;;;;r2   c                 `   t          j        ddd          }|                                }t          j        ddg          }t          j        t          ||                     }t          ||           t          j        ddd          }|                                }t          |d           d S )Nr   r   r   rg  r   )	r6   r  rE   rZ   r   rh  r   r   r   )r_   hgrk  ri  rj  s        r0   rl  zTestHypergeom.test_entropy=  s    _Q1%%JJLLXtTl++
fU:z::;;;
:&&&_Q1%%JJLLQr2   c                     d}d}d}d}t           j                            ||||          }d}t          ||d           d}d	}d
}d}t           j                            ||||          }d}t          ||d           d S )Nr      cA    .A     j@gor   rR  r   @  X  r  g_7	j$r:  )r6   r  r  r   r_   rb   r  rp  r-  resultrT   s          r0   r  zTestHypergeom.test_logsfI  s     &&q!Q22FHa8888&&q!Q22 FHb999999r2   c                 D   d}d}d}d}t           j                            ||||          }d}t          ||d           d}d	}d
}d}t           j                            ||||          }d}t          ||d           d}d	}d}d}t           j                            ||||          }d}t          ||d           t	          j        g d          }d	}d
}d}t           j                            ||||          }t	          j        dd          }t          ||d           d S )Nr   r  r  r  g)\Ur   rR  rx  r  r8  r  g*@Vr:  }      r  gר)rx  rx  rx  )r6   r  r  r   rZ   r   fullr  s          r0   r  zTestHypergeom.test_logcdfa  sM    ''1a33FHa8888 ''1a33&FHb9999''1a33 FHb9999
 H\\\""''1a3371122FHb999999r2   c                     d}d}d}t           j                            |||          }||z  |z  }t          ||           d S )Nip iP i.  )r6   r  r   r   )r_   r  rp  r-  hmrms         r0   test_mean_gh18511zTestHypergeom.test_mean_gh18511  sO     _!!!Q**UQYBr2   c                    d}d}t          j        dd          }d|z  }t          j                            |dz
  |||          }t          j        |dk              sJ t          j        t          j        |          dk               sJ d S )Nrf   r   r   r:  r  r   r   )rZ   r  r6   r  r   r   diff)r_   rp  r-  r  population_sizerq  s         r0   test_sf_gh18506zTestHypergeom.test_sf_gh18506  s     Iaq&Oq1uoq!<<va!e}}vbgajj1n%%%%%%%r2   N)r   r   r   r`   rE  r  r  r   r  rl  r  r  r"  r   r   r   r&  r8   r2   r0   r  r    s        5 5 5	9 	9 	9> > >F F FL L L< < <&
 
 
: : :0,: ,: ,:\	  	  	  [	& 	& 	& 	& 	&r2   r  c                   \   e Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zd Z	d	 Z
d
 Zd Zej                            dddg          d             Zej                            dg d          d             ZdS )TestLoggammac                 N    t           j                            d          | _        d S )Nl   L rY   r^   s    r0   r`   zTestLoggamma.setup_method  ra   r2   z	x, c, cdf))r   rm   g;Y%?)r      gRٲa6_<)gHr  gi|e?)r  g6l?)i+rc   g֬CCf9)ir   g ֺlc                     t           j                            ||          }t          ||d           t           j                            ||          }t          ||d           d S r   )r6   loggammarv   r   r   )r_   re   r  rv   rq  ys         r0   r  zTestLoggamma.test_cdf_ppf  sb     Nq!$$3U++++NsA&&15))))))r2   zx, c, sf))r   r  gQOu3;)   rg   g\Z{0)r+  r  geɐ?)ig{Gzd?gr0T?c                     t           j                            ||          }t          ||d           t           j                            ||          }t          ||d           d S r   )r6   r-  r   r   r  )r_   re   r  r   rK   r.  s         r0   r  zTestLoggamma.test_sf_isf  sb     Na##2E****Nr1%%15))))))r2   c                 j    t           j                            dd          }t          |dd           d S )Nrm   g     @r  r   )r6   r-  r   r   )r_   lps     r0   r  zTestLoggamma.test_logpdf  s6    
 ^""4++G%000000r2   c                 v    d}d}t           j                            ||          }d}t          ||d           d S )Nr        @gI.r  r   )r6   r-  r  r   )r_   re   r  r  r  s        r0   r  zTestLoggamma.test_logcdf  sC    &&q!,,%%000000r2   c                 v    d}d}t           j                            ||          }d}t          ||d           d S )Ng      9      @g!{1+ҷr  r   )r6   r-  r  r   )r_   re   r  r  r  s        r0   r  zTestLoggamma.test_logsf  sC    $$Q**#s//////r2   c                     t          j        g d                              dd          }|D ]?\  }}}}}t          j                            |d          }t          |||||gd           @d S )N)r   g"~jg46<@g oŏr  rO  g	h"lxgQ?gZd;333333@r  g{/L@g??gгYҿgh|?5?r   r   msvkr  r   rR  )rZ   r   reshaper6   r-  r   )r_   tabler  r   varskewkurtcomputeds           r0   r  zTestLoggamma.test_stats  s          
 wr1~~ 	 ). 	1 	1$AtS$~++Av+>>H%hsD$0G./1 1 1 1 1	1 	1r2   r  rc   r  c                    t           j                            |d| j                  }t	          j        |                                          sJ t           j                            |          }t          j        t	          j	        ||k               t          |                    }|                    d          }|j        dcxk     r|j        k     sn J d S )Nr   r   r  )confidence_levelr   )r6   r-  r   r]   rZ   isfiniter   median	binomtestcount_nonzeror  proportion_cir  r  )r_   r  re   medbtestcis         r0   rE  zTestLoggamma.test_rvs  s     NqvDHEE {1~~!!##### n##A&& 0S 9 93q66BB  % 88v%%%%bg%%%%%%%%r2   r"  ))r(  g3H໱k3@)r   r  )r  g8,[H^}	)r  g90$)r  gtum\c                 d    t          t          j                            |          |d           d S r  )r   r6   r-  rE   r$  s      r0   rl  zTestLoggamma.test_entropy	  s/     	..q113UCCCCCCr2   N)r   r   r   r`   r   r   r   r  r  r  r  r  r  rE  rl  r8   r2   r0   r(  r(    sg       5 5 5 [[E E EF F* *F F* [ZB B BC C
* *C C
*1 1 11 1 10 0 01 1 1 [S3,//& & 0/& [X< < <= =	D 	D= =	D 	D 	Dr2   r(  c                   ^    e Zd Zg dZej                            de          d             ZdS )TestJohnsonsu))r2  r   r   g?r(  )r   r   r   gH';vIh%,=)r   r   r   g?x7rN  r  c                     |\  }}}}}t          t          j                            |||          |d           t          t          j                            |||          ||           d S NrN  r   )r   r6   	johnsonsur   r  r_   r  re   r.   r/   r   tols          r0   r  zTestJohnsonsu.test_sf_isf#	  j    1aS**1a33ReDDDD++B155qsCCCCCCr2   Nr   r   r   casesr   r   r   r  r8   r2   r0   rM  rM  	  sX        ; ; ;E [VU++D D ,+D D Dr2   rM  c                   ^    e Zd Zg dZej                            de          d             ZdS )TestJohnsonb))r  r   r   r  r(  )r  r   r   g0jA:rN  )r  r   r   gQbF5rN  r  c                     |\  }}}}}t          t          j                            |||          |d           t          t          j                            |||          ||           d S )NrN  r   r   )r   r6   r%  r   r  rR  s          r0   r  zTestJohnsonb.test_sf_isf9	  rT  r2   NrU  r8   r2   r0   rX  rX  *	  sX        = = =E [VU++D D ,+D D Dr2   rX  c                       e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             Zd Ze	j
                            dddg          d             Zd ZdS )TestLogisticc                 N    t           j                            d          | _        d S )Nl   }$N rY   r^   s    r0   r`   zTestLogistic.setup_methodA	  ra   r2   c                     t          j        dd          }t          j                            |          }t          j                            |          }t          ||           d S Nr  r  )rZ   rT  r6   logisticrv   r   r   r_   re   r.  r  s       r0   r  zTestLogistic.test_cdf_ppfE	  sS    KR  Nq!!^""2r2   c                     t          j        dd          }t          j                            |          }t          j                            |          }t          ||           d S r^  )rZ   rT  r6   r_  r   r  r   r`  s       r0   r  zTestLogistic.test_sf_isfK	  sS    KR  Na  ^""2r2   c                     d}d}t          t          j                            d|z
            |           t          t          j                            |          |           d S )Ng      <gg|EA@r   )r   r6   r_  r   r  )r_   rq  desireds      r0   test_extreme_valuesz TestLogistic.test_extreme_valuesQ	  sV    !#**1q5117;;;**1--w77777r2   c                 t    t           j                            g d          }g d}t          ||d           d S )N)rs  r   rf   )gm\  .g9B.gO& $r   r   )r6   r_  r   r   )r_   r  rT   s      r0   test_logpdf_basiczTestLogistic.test_logpdf_basicX	  sI    ~$$\\\22) ) ) 	hU333333r2   c                 l    t           j                            ddg          }t          |ddg           d S )Nr~   r+  )r6   r_  r   r   r_   r  s     r0   test_logpdf_extreme_valuesz'TestLogistic.test_logpdf_extreme_values`	  s7    ~$$c4[11 	TD$<(((((r2   zloc_rvs,scale_rvs)g9x&?gi '?)gB"?gs^&?c                 (   t           j                            d||| j                  }d }t	          |t           j                            |          |f          j        }t           j                            |          }t          ||d           d S )Nrg   r   rk   rl   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   rm   )r  rZ   rh  r   )inputr   r.   r/   rp  x1x2s          r0   r  z#TestLogistic.test_fit.<locals>.funcm	  s    DAqD		AqA~..RVTAXN3335 6 689A>B$(a&$(a0014&$(a001467 8 8:;<B r6Mr2   rW  r  r   )	r6   r_  r   r]   r"   	_fitstartre   r   r   )r_   loc_rvs	scale_rvsr   r  expected_solution
fit_methods          r0   test_fitzTestLogistic.test_fitf	  s     ~!!sy/3x " 9 9	 	 	 !u~'?'?'E'EM    	^''--
 	
$5EBBBBBBr2   c                     t           j                            ddd| j                  }t	          t           j        |           t	          t           j        |d           t	          t           j        |d           d S )Nrg   r   rm   rk  r   r   r   )r6   r_  r   r]   r   r_   r   s     r0   test_fit_comp_optimizerz$TestLogistic.test_fit_comp_optimizer	  sh    ~!!s148!TT%end;;;%endCCCC%end1EEEEEEr2   
testlogcdfTFc                     t          j        g d          }|r t          j                            |          }n t          j                            |           }g d}t          ||d           d S )N)r  r+     r8  r  )     g      g%h9fg?~T}%mgCx^&ْV瞯<r   )rZ   r   r6   r_  r  r  r   )r_   r{  re   r.  rT   s        r0   test_logcdfsf_tailsz TestLogistic.test_logcdfsf_tails	  s     H00011 	)%%a((AA$$aR((AF F F8%000000r2   c                     t          j        g ddgdz  z   dgdz  z             }t          t          j        |           d S )N)	i5%   +   r  r  0   6   7   :   ;   r   =   r  )rZ   r   r   r6   r_  ry  s     r0   test_fit_gh_18176zTestLogistic.test_fit_gh_18176	  sT     x>>>$(#&(TAX. / / 	&end;;;;;r2   N)r   r   r   r`   r  r  rd  rf  ri  r   r   r   rv  rz  r  r  r8   r2   r0   r[  r[  @	  s       5 5 5    8 8 84 4 4) ) ) [03J3K3M N NC CN NC.F F F [\D%=991 1 :91< < < < <r2   r[  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )
TestLogserc                 N    t           j                            d          | _        d S )Ni5-rY   r^   s    r0   r`   zTestLogser.setup_method	      9((33r2   c                 6   t           j                            dd| j                  }t	          j        |dk              sJ t	          j        |          dk    sJ |j        j        t          d         v sJ t           j                            d| j                  }t          |t                    sJ t          j        d                              d| j                  }t          |t          j                  sJ |j        j        t          d         v sJ d S )Nr   r7  r   r   r9  r   r   )r6   logserr   r]   rZ   r   r=  r   r>  r   r?  r^  r_  rB  s      r0   rE  zTestLogser.test_rvs	  s    |7JJvdai     x~~((((z)L"99999lt$(;;#s#####l4  $$QTX$>>#rz*****y~<!8888888r2   c                 f    t           j                            dd          }t          |d           d S )Nr   r  g&Y3)r6   r  rK  r   r_   r  s     r0   test_pmf_small_pzTestLogser.test_pmf_small_p	  s1    LQ&& 	7#####r2   c                 d    t           j                            d          }t          |d           d S )Nr(  gW  ?)r6   r  r   r   r  s     r0   test_mean_small_pzTestLogser.test_mean_small_p	  s/    Ld## 	;'''''r2   c                     dgdgdgg}g d}g dg dg dg}t           j                            ||          }t          j                            ||d	           d S )
Nr   r6  wJ?)r   rf   rg   r   )g5q?gD,t"?g02L9g@Y	 )g%Lӷ>gU5r   r   )g0gu8?g+?g㳒?g,nq?gYnr   )r6   r  r   rZ   testingr   )r_   rq  rb   r  r   s        r0   r  zTestLogser.test_sf	  s    UTFXJ'A A A@@@8 8 89
 looa##

""3&"99999r2   N)r   r   r   r`   rE  r  r  r  r8   r2   r0   r  r  	  s_        4 4 4	9 	9 	9$ $ $( ( (: : : : :r2   r  c            	          e Zd Z ej        d          d             Zej                            dej	        ej
        g          ej                            dg d          ej                            dg d          ej                            d	d
dgdd
gf          d                                                 Zej                            dej	        dfej
        dfg          d             ZdS )TestGumbel_r_lfunctionscopec                 @    t           j                            d          S NrT  rZ   r[   r\   r^   s    r0   r]   zTestGumbel_r_l.rng	      y$$T***r2   r?   rr  r   r   r   rs  rc   r   r   zfix_loc, fix_scaleTFc                     |                     d|||          }t                      }|r|dz  |d<   |r|dz  |d<   t          ||fi | d S )Nrg   rk  rm   r   r   )r   r  r   )	r_   r?   rr  rs  r   r9  r]   r   r   s	            r0   rz  z&TestGumbel_r_l.test_fit_comp_optimizer	  s|     xxSgY%(  * * vv  	'"Q;DL 	+&]DN 	&dD99D99999r2   z	dist, sgnr   r   c                     |t          j        g d          z  }|                    |          \  }}t          ||dz             t          |dd           d S )N)r   r   r   r   r   r   r   gW  @g   @g3qtw>rq  r   )rZ   r   r   r   )r_   r?   r  zrk   rl   s         r0   rv  zTestGumbel_r_l.test_fit	  sf     :::;;;XXa[[
U 	S!334445DAAAAAAr2   N)r   r   r   r   fixturer]   r   r   r6   gumbel_rgumbel_lrz  rv  r8   r2   r0   r  r  	  s=       V^*%%%+ + &%+ [Venen%EFF[Y


33[[***55[1#UmeT];= =: := = 65 43 GF
:  [[ENA+>,1NB+?+A B BB BB BB B Br2   r  c                      e Zd Zd Zd Zej                            d          ej                            dddg          ej                            dddg          ej                            d	dd
g          d                                                 Z	ej                            dddg          ej                            dddg          ej                            d	dd
g          ej                            dd  e
ddgd          D                        ej        d          d                                                             Z ej        d          d             Zd Zd ZdS )
TestParetoc                 	   t          j                    5  t          j        dt                     t          j                            dd          \  }}}}t          |t          j                   t          |t          j                   t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |t          j                   t          |t          j                   t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |t          j                   t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |t          j                   t          |t          j	                   t          |t          j	                   t          j                            d	d          \  }}}}t          |d
           t          |d           t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |d           t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |d           t          |dt          j        d          z             t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |d           t          |dt          j        d          z             t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |d           t          |dt          j        d          z             t          |d           d d d            d S # 1 swxY w Y   d S )Nrn  r   r  r  rO  r  r  r   r~  g?grq@r   r7  gffffff?gK~?g      2@g۶m۶m?r  UUUUUU?gqq?r  r5  g%I$I?gQ?gUUUUUU@grq?g88Nb@)rr  rs  rt  ru  r6   paretor   rZ   r  r  r   r  r_   r  r  rK   rb   s        r0   r  zTestPareto.test_stats	  sk    $&& 7	N 7	N!'>:::++C+@@JAq!QBF###BF###BF###BF###++C+@@JAq!QBF###BF###BF###BF###++C+@@JAq!QC   BF###BF###BF###++C+@@JAq!QC   BF###BF###BF###++C+@@JAq!QAy)))A2333BF###BF###++C+@@JAq!QAs###At$$$BF###BF###++C+@@JAq!QAy)))A2333A	277+;+;;<<<BF###++C+@@JAq!QAy)))Az***A027;3G3GGHHHBF###++C+@@JAq!QAy)))A2333A	RWW-=-==>>>ALMMMo7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	Ns   R8SS Sc                     d}d}d}t           j                            ||d|          }||z  |z  }t          ||           d S )N    eArm   r  r   rj   )r6   r  r   r   )r_   re   r/   rl   rq  rT   s         r0   r  zTestPareto.test_sf4
  sO    LOOAqauO55!Ga<8$$$$$r2   z2ignore:invalid value encountered in double_scalarsr   r   rm   r   r   r7  r   c                 j   t           j                            d          }t          j                            d||||          }t          j                            |dd          d         }t          j                            |dd          d         }t          j                            |dd          d         }||cxk    r|cxk    rdk    sn J t          j                            d|||d	z   |          }t          j                            |d	
          \  }	}
}t          |d	z   |                                           |d	z
  }|j	        d         }t          |	|t          j
        t          j        ||                                z                      z             t          |
d	           d S )NrT  rg   r   r/   rl   rk   r   r   p=
ף?)r   r   )r   fix_b)r   fbrm   r   )rZ   r[   r\   r6   r  r   r   r   r  r=  rh  r  )r_   r   r   r7  r]   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r0   rv  zTestPareto.test_fit<
  s    i##D))|SIY$+#   ? ? !& 0 0A$ 0 G G J % 0 0AT 0 J J1 M % 0 0A$ 0 G G J%)> . . . .%. . . .)-. . . . . . |SIY%,q[   E E.3l.>.>t!.>.L.L+Y[1_dhhjj111AX
 #[RVBF:jnn6F6F+F$G$GHHH	J 	J 	JY"""""r2   rc   fix_shape, fix_loc, fix_scalec                     g | ]}d |v |	S Fr8   r>   rq  s     r0   r@   zTestPareto.<listcomp>]
  (     - - -A!&!  !+r2   TFr   repeatignoreinvalidc                     t           j                            d          }t          j                            d||||          }i }	|r||	d<   |r||	d<   |r||	d<   t          t          j        |fi |	 d S )NrT  rg   r  r   r   r   )rZ   r[   r\   r6   r  r   r   
r_   r   r   r7  r   r   r9  r]   r   r   s
             r0   r   z&TestPareto.test_fit_MLE_comp_optimizerY
  s     i##D))|SIY$+#   ? ?  	#"DJ 	#"DL 	'&DN%elDAADAAAAAr2   c           	          d\  }}}t           j                            |||dt          j                            d                    }t          t           j        |           d S )N)r   r   r   rg   ið& r   )r6   r  r   rZ   r[   r\   r   )r_   r=  locationrl   r   s        r0   test_fit_known_bad_seedz"TestPareto.test_fit_known_bad_seedp
  sa    
 ")x|xS-/Y-B-B7-K-K   M M%elD99999r2   c                     t          t          j                   t          t          t          j        j        g dd           t          t          t          j        j        g ddd           d S )Nr  rm   r   )r   rm   r   r   r   r=  )r  r6   r  r[  r    r   r^   s    r0   test_fit_warningszTestPareto.test_fit_warningsz
  sg    EL)))lEL$4iiiaHHHHlEL$4iiia	  	  	  	  	  	 r2   c                     t           j                            d          }t          j                            ddd|          }t          |d           t          j                            |          }d S )NrT  i~r   rg   )rk   r/   r   r   r   )rZ   r[   r\   r6   r  r   r
   r   )r_   r]   r   r   s       r0   test_negative_datazTestPareto.test_negative_data
  s`    i##D))|DACcJJ$"""
 LT""r2   N)r   r   r   r  r  r   r   filterwarningsr   rv  r%   rZ   errstater   r  r  r  r8   r2   r0   r  r  	  s       :N :N :Nx% % % [ !1 2 2[[1a&11[YA//[[1a&11# # 21 0/ 212 2
#0 [[2q'22[YA//[[1a&11[<- -$q)I)I)I - - -. . R["""B B #". . 21 0/ 32B  R[""": : #":     # # # # #r2   r  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                            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dS )TestGenparetoc                 r   dD ]i}t          j        |          }t          j                            |          \  }}t          |d           t          t          j        |                     jt          j        d          }t          j                            |          \  }}t          ||gddg           d S )NrO  r   r          r   )	rZ   r   r6   	genpareto_get_supportr   r	   isposinfr   )r_   r  r.   r/   s       r0   test_abzTestGenpareto.test_ab
  s     	$ 	$A
1A?//22DAqBBKNN#### JsOO++A..1AS	*****r2   c                    t          j        d          }t          j        ddd          }t	          |                    |          t           j                            |                     t	          |                    |          t           j                            |                     t	          |                    |          t           j                            |                     t          j        ddd          }t	          |	                    |          t           j        	                    |                     d S )Nr   r  r   r  r6  rO  rf   )
r6   r  rZ   rT  r   ro   rb  rv   r   r   r_   rvre   rz  s       r0   test_c0zTestGenpareto.test_c0
  s     _r"""K3##q		5;??1#5#5666q		5;??1#5#5666a%+.."3"3444KB##q		5;??1#5#566666r2   c                    t          j        d          }t          j        ddd          }t	          |                    |          t           j                            |                     t	          |                    |          t           j                            |                     t	          |                    |          t           j                            |                     t          j        ddd          }t	          |	                    |          t           j        	                    |                     t	          |
                    d	          d           d S )
Nr  r  r   r  r6  r   rO  rf   r   )r6   r  rZ   rT  r   ro   uniformrv   r   r   r   r  s       r0   test_cm1zTestGenpareto.test_cm1
  s   _s###K3##q		5=#4#4Q#7#7888q		5=#4#4Q#7#7888a%-"2"21"5"5666KB##q		5=#4#4Q#7#7888 			!a(((((r2   c                    t          j        d          }t          |                    t          j                  |                    t          j                  gddg           t          t	          j        |	                    t          j                                       t          j        d          }t          |                    t          j                  |                    t          j                  gddg           t          t	          j        |	                    t          j                                       t          j        d          }t          |                    t          j                  |                    t          j                  gddg           t          t	          j        |	                    t          j                                       d S )Nrc   r  r   rO  r  )
r6   r  r   ro   rZ   r  rv   r	   isneginfr   r_   r  s     r0   
test_x_infzTestGenpareto.test_x_inf
  sC   _s###82r(CCCBIIbf--..///_r"""82r(CCCBIIbf--..///_s###82r(CCCBIIbf--../////r2   c                    t          j        ddd          }dD ]}t          j                            ||          }dD ]7}t          j                            |||z             }t          ||d           8t          j                            ||          }dD ]7}t          j                            |||z             }t          ||d           8d S )	Nr   rf   r6  r   r   r  g+r  r   )r  r  )rZ   rT  r6   r  ro   r   rv   )r_   re   r  pdf0dcpdfccdf0cdfcs           r0   test_c_continuityzTestGenpareto.test_c_continuity
  s    K2r"" 		8 		8A?&&q!,,D% 8 8**1a"f55d77777?&&q!,,D$ 8 8**1a"f55d777778		8 		8r2   c           	      t   t           j        t          j        ddd          t          j        dddd          d	t          j        ddd          z
  f         }d
D ]\}t          j                            ||          }dD ]7}t          j                            |||z             }t          ||d           8]d S Nr  r   rc   baser   r6  FendpointrO  )r   r  r  r   )rZ   rI  r  rT  r6   r  r   r   )r_   rz  r  ppf0r  ppfcs         r0   test_c_continuity_ppfz#TestGenpareto.test_c_continuity_ppf
      E"+eT444+dArE:::r{5$S9999: ;  	8 	8A?&&q!,,D% 8 8**1a"f55d777778	8 	8r2   c           	      t   t           j        t          j        ddd          t          j        dddd          d	t          j        ddd          z
  f         }d
D ]\}t          j                            ||          }dD ]7}t          j                            |||z             }t          ||d           8]d S r  )rZ   rI  r  rT  r6   r  r  r   )r_   rz  r  isf0r  isfcs         r0   test_c_continuity_isfz#TestGenpareto.test_c_continuity_isf
  r  r2   c           	      \   t           j        t          j        ddd          t          j        dddd          d	t          j        ddd          z
  f         }d
D ]P}t	          t
          j                            t
          j                            ||          |          |d           Qd S )Nr  r   rc   r  r   r6  Fr  rO  )r(  gC]r2r   gV瞯Ҽr   r   )	rZ   rI  r  rT  r   r6   r  rv   r   )r_   rz  r  s      r0   test_cdf_ppf_roundtripz$TestGenpareto.test_cdf_ppf_roundtrip
  s    E"+eT444+dArE:::r{5$S9999: ; / 	+ 	+AEO//0C0CAq0I0I1MME+ + + + +	+ 	+r2   c                 j    t           j                            dddd          }t          |d           d S )Nr  r   r   r   gpEȜ)r6   r  r  r   rh  s     r0   r  zTestGenpareto.test_logsf
  s4    $$T3155122222r2   zc, expected_statsr   )r   r   rm   r/  rg  r  gqq@rf   rm   gqq?g      ?g$I$	?rq?r  gll0@r   )r   UUUUUU?r   333333c                 n    t           j                             |d          }t          ||dd           d S )Nr  r  r   r   ra  )r6   r  r   )r_   r  expected_statsr  s       r0   r  zTestGenpareto.test_stats
  s;     &&q&&99UGGGGGGr2   c                 h    t           j                            d          }t          |dd           d S )Nr(  gvǼ
  ?r   r   )r6   r  r=  r   )r_   r  s     r0   test_varzTestGenpareto.test_var
  s3    O%%,5999999r2   N)r   r   r   r  r  r  r  r  r  r  r  r  r   r   r   rZ   r  r  r  r	  r8   r2   r0   r  r  
  sA       + + +
7 
7 
7) ) )0 0 08 8 88 8 88 8 8+ + +3 3 3 [
\\\	
T2gbgajj="&1	2
]T7271::$5v>	?
"""	#	%& &H H& &H: : : : :r2   r  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestPearson3c                 N    t           j                            d          | _        d S )Nl   TJ rY   r^   s    r0   r`   zTestPearson3.setup_method  ra   r2   c                 ,   t           j                            dd| j                  }t	          j        |          dk    sJ |j        j        t          d         v sJ t           j                            d| j                  }t          |t                    sJ t          j        d                              d| j                  }t          |t          j                  sJ |j        j        t          d         v sJ t          |          dk    sJ d S )Nrc   r7  r   AllFloatr   r   r   )r6   r)   r   r]   rZ   r=  r   r>  r   r?  r   r_  r  rB  s      r0   rE  zTestPearson3.test_rvs  s    ~!!#G$(!KKx~~((((z)J"77777n  48 <<#u%%%%%nS!!%%adh%??#rz*****y~:!666663xx1}}}}}}r2   c                    t           j                            dg d          }t          |t	          j        g d          d           t           j                            dd          }t          |t	          j        dg          d           t           j                            g d	d          }t          |t	          j        g d
          d           d S )Nrm   r   rc   rL  )gtT?g+q?g?rq  r   r  rc   ND}i?r  r   r   r   r   )r  gj?gdC?gs?g'M?)r6   r)   ro   r   rZ   r   r  s     r0   rM  zTestPearson3.test_pdf  s    ~!!!___55bh'K'K'KLL!	# 	# 	# 	#~!!"c**bh
|444@@@@~!!"4"4"4c::bh (@ (@ (@ A AGK	M 	M 	M 	M 	M 	Mr2   c                 h   t           j                            dg d          }t          |t	          j        g d          d           t           j                            dd          }t          |dgd           t           j                            g d	d          }t          |g d
d           d S )Nrm   r  )grE?gTp]0?g~?rq  r   r  rc   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r6   r)   rv   r   rZ   r   r  s     r0   rW  zTestPearson3.test_cdf  s    ~!!!___55bh'K'K'KLL!	# 	# 	# 	#~!!"c**zl6666~!!"4"4"4c:: ? ? ?EI	K 	K 	K 	K 	K 	Kr2   c                     g d}ddt           j                            |          }fd|D             }t          ||           d S )Nr  r   r   r   r   r  c                 l    g | ]0}t          t          j        |          j                  d          1S r<   )r   r6   r)   ro   )r>   r>  neg_infx_evals     r0   r@   z<TestPearson3.test_negative_cdf_bug_11186.<locals>.<listcomp>.  sG     ' ' ' --17FCCAF ' ' 'r2   )r6   r)   rv   r   )r_   skewsr  int_pdfsr  r  s       @@r0   test_negative_cdf_bug_11186z(TestPearson3.test_negative_cdf_bug_11186'  su     !  ~!!&%00' ' ' ' ' %' ' 'h'''''r2   c                 6   t           j                            dd          }t          |d           t	          |t
          j                  sJ t           j                            dd          }t          |d           t	          |t
          j                  sJ d S )Nr   rm   r   rq  )r6   r)   r  r   r?  rZ   number)r_   r  s     r0   test_return_array_bug_11746z(TestPearson3.test_return_array_bug_117462  s     &&q!,,VQ&"),,,,,&&q(33VQ&"),,,,,,,r2   c                    g d}d}t           j                            t           j                            ||          |          }t	          ||           t          j        dgdgg          }t          j        dd          }t	          t           j                            ||          t           j                            | |                      t	          t           j                            ||          t           j        	                    | |                      t	          t           j                            ||          t           j        
                    ||                       d S )Nr  r   r   r  r   rm   )r6   r)   r   rv   r   rZ   r   rT  ro   r   r  )r_   r  r  r   r>  re   s         r0   test_ppf_bug_17050zTestPearson3.test_ppf_bug_17050=  s?    !  n  !3!3FE!B!BEJJV$$$ x$#((KA**1d33**A2u55	7 	7 	7**1d33))1"te44	6 	6 	6**1d33++Au555	7 	7 	7 	7 	7r2   c                    g d}g d}g d}t          t          j                            ||          |d           t          t          j                            |d          t          j                            |          d           d S )N)rc   r   rO  皙)rP  r  r  r   )g7>g~׼=gp'+7g;r  r   r   )r   r6   r)   r   r  )r_   r>  re   r  s       r0   r  zTestPearson3.test_sfP  s     %$$"""> > >))!T22CeDDDD))!Q//q1A1ANNNNNNr2   N)r   r   r   r`   rE  rM  rW  r  r  r   r  r8   r2   r0   r  r    s        5 5 5	 	 	M M MK K K	( 	( 	(	- 	- 	-7 7 7&	O 	O 	O 	O 	Or2   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	
TestKappa4c                     g d}d}dD ]T}t           j                            |||          }t           j                            ||           }t	          ||           Ud S )N)r   rc   rL  r   rO  )
gffffffr  r   皙ɿr"  rc   rL  r   rO  ffffff?)r6   kappa4rv   r  r   r_   re   rk  rb   rC  	vals_comps         r0   test_cdf_genparetozTestKappa4.test_cdf_genpareto]  sr        	- 	-A<##Aq!,,D++Ar22ID),,,,	- 	-r2   c                    t          j        ddd          }d}t          j        ddd          }t          j                            |||          }t          j                            ||          }t          ||           d S )Nr  r   rf   r   r  r   )rZ   rT  r6   r(  rv   
genextremer   r)  s         r0   test_cdf_genextremezTestKappa4.test_cdf_genextremeh  st    KAr""KAr""|1a(($((A..	i(((((r2   c                     t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           d S )Nr   rf   rO  r   )rZ   rT  r6   r(  rv   rb  r   r)  s         r0   test_cdf_exponzTestKappa4.test_cdf_exponq  sa    K2r""|1a((KOOA&&	i(((((r2   c                     t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           d S )Nr  r   rf   r   )rZ   rT  r6   r(  rv   r  r   r)  s         r0   test_cdf_gumbel_rzTestKappa4.test_cdf_gumbel_rz  sc    KAr""|1a((N&&q))	i(((((r2   c                     t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           d S )Nr  r   rf   r  r   )rZ   rT  r6   r(  rv   r_  r   r)  s         r0   test_cdf_logisticzTestKappa4.test_cdf_logistic  sc    KAr""|1a((N&&q))	i(((((r2   c                     t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           d S )Nr  r   rf   rO  )rZ   rT  r6   r(  rv   r  r   r)  s         r0   test_cdf_uniformzTestKappa4.test_cdf_uniform  sc    KAr""|1a((M%%a((	i(((((r2   c                 0    t          j        dd           d S rm  )r6   r(  r^   s    r0   test_integers_ctorzTestKappa4.test_integers_ctor  s     	Qr2   N)
r   r   r   r+  r.  r0  r2  r4  r6  r8  r8   r2   r0   r$  r$  \  s}        	- 	- 	-) ) )) ) )) ) )) ) )) ) )    r2   r$  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestPoissonc                 N    t           j                            d          | _        d S )Nl   ,	 rY   r^   s    r0   r`   zTestPoisson.setup_method  ra   r2   c                     t          j        d          }t          j                            g d|          }d|dz  |dz  dz  g}t          ||           d S )Nrm   r   r   rm   r   r   )rZ   r  r6   r  rK  r   )r_   ln2rC  rT   s       r0   test_pmf_basiczTestPoisson.test_pmf_basic  sX    fQii}  C00QQq)h'''''r2   c                     t           j                            g dd          }g d}t          ||           t           j                            dd          }t          |d           d S )Nr=  r   )r   r   r   ffffff?r   r   )r6   r  rK  r   intervalr   )r_   rC  rT   rC  s       r0   test_mu0zTestPoisson.test_mu0  sc    }  A..994***=))$22Xv&&&&&r2   c                 6   t           j                            dd| j                  }t	          j        |dk              sJ t	          j        |          dk    sJ |j        j        t          d         v sJ t           j                            d| j                  }t          |t                    sJ t          j        d                              d| j                  }t          |t          j                  sJ |j        j        t          d         v sJ d S )Nr   r7  r   r   r9  r   r   )r6   r  r   r]   rZ   r   r=  r   r>  r   r?  r^  r_  rB  s      r0   rE  zTestPoisson.test_rvs  s    }  7 JJvdai     x~~((((z)L"99999m$(;;#s#####mC  $$QTX$>>#rz*****y~<!8888888r2   c           	         d}t           j                             |d          }t          |||t          j        d|z            d|z  g           t          j        g d          }t           j                             |d          }||t          j        ddt          j        d          z  gt          j        ddgf}t          ||           d S )	Ng      0@r  r  rO  )r   rO  r   r   rm   r   )r6   r  r   rZ   r  r   r  )r_   rZ  r  rT   s       r0   r  zTestPoisson.test_stats  s    $$R$88RR#b& ABBBXooo&&$$R$88RVQ"'!**537GH)))))r2   N)r   r   r   r`   r?  rD  rE  r  r8   r2   r0   r:  r:    s_        5 5 5( ( (' ' '	9 	9 	9* * * * *r2   r:  c                   P    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S )	TestKSTwoc                    dD ]}t          j        dd|z  d|z  ddd|z  z
  dg          }d|z  |z  }t          j                            |dz             }|dk    rt          j        |          nd}t          j        dd||z  ddt          j                            d|          z  z
  t          dd|z  z
  d          dg          }t          j
                            ||          }t          ||           d S )Nr   rm   r   rf   rg   r   r   r   r   rO  rm   r   )rZ   r   r5   r   gammalnr   r6   ksoner   r  kstworv   r   )r_   rp  re   v1lgelgrT   r  s           r0   rW  zTestKSTwo.test_cdf  s   ) 	0 	0A !SUAaCaAgq9::Aa%!B&&qs++B!#q26":::aCxArCx!"Qu{~~c1'='=%=!=!$Q2Xs!3!3!$!& ' 'H {q!,,HHh////#	0 	0r2   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                            |dz             }|dk    rt          j        |          nd}t          j        ddd||z  z
  dt          j        	                    d|          z  t          d|z  d          dg          }t          j        	                    ||          }t          ||           d S )Nr   r   r  rJ  r   rO  rm   )rZ   rT  r   r5   r   rK  r   r6   rL  r   r  rM  r   )r_   re   rp  rN  rO  rP  rT   r  s           r0   r  zTestKSTwo.test_sf  s   K1b!!) 	/ 	/A!SUAaCaAgq9::Aa%!B&&qs++B!#q26":::aCxc!"R#X!"5;>>#q#9#9!9!$QrT3!4 5 5H knnQ**GGX....	/ 	/r2   c                 
   t          j        ddd          dd          }g d}|D ]]}|t          j        |          z  }t          j                            ||          }t          j        |          }t          |d           ^d S )Nr   rm   r  r   )r8  rg   rN  i  r   r   r(  )rZ   rT  r  r6   rM  rv   r$  r
   )r_   re   ns_xxnprobsdiffss          r0   test_cdf_sqrtnzTestKSTwo.test_cdf_sqrtn  s    
 K1b!!!""%,,, 	+ 	+Bbgbkk!BKOOB++EGENNEeT****		+ 	+r2   c                     t          j        ddd          }dD ]U}t          j                            ||          }t          j                            ||          }t          |d|z
             Vd S Nr   r   r  rJ  )rZ   rT  r6   rM  rv   r   r   )r_   re   rp  r  r  s        r0   r  zTestKSTwo.test_cdf_sf  so    K1b!!) 	= 	=A{q!,,HknnQ**G%hG<<<<	= 	=r2   c                    t          j        ddd          }dD ]l}|t          j        |          z  }t          j                            ||          }t          j                            ||          }t          |d|z
             md S rZ  )rZ   rT  r  r6   rM  rv   r   r   )r_   re   rp  rU  r  r  s         r0   test_cdf_sf_sqrtnzTestKSTwo.test_cdf_sf_sqrtn  s    K1b!!) 	= 	=ARWQZZB{r1--HknnR++G%hG<<<<		= 	=r2   c                 0   t          j        ddd          }dD ]|}||d|z  k             }t          j                            ||          }d|k     |dk     z  }t          j                            ||          }t          ||         ||         d           }d S )	Nr   r   r  rJ  r   r  r  r   )rZ   rT  r6   rM  rv   r   r   r_   re   rp  rU  r  condrC  s          r0   test_ppf_of_cdfzTestKSTwo.test_ppf_of_cdf  s    K1b!!) 	= 	=A1s1u9B{r1--HLX_5D;??8Q//DDJ4t<<<<<	= 	=r2   c                 0   t          j        ddd          }dD ]|}||d|z  k             }t          j                            ||          }d|k     |dk     z  }t          j                            ||          }t          ||         ||         d           }d S )	Nr   r   r  rJ  r   rO  r  r   )rZ   rT  r6   rM  r  r   r   )r_   re   rp  rU  vals_isfr_  rC  s          r0   test_isf_of_sfzTestKSTwo.test_isf_of_sf  s    K1b!!) 	= 	=A1s1u9B{r1--HLX^4D;>>(A..DDJ4t<<<<<	= 	=r2   c                 V   t          j        ddd          }dD ]}|t          j        |          z  |d|z  k             }t          j                            ||          }d|k     |dk     z  }t          j                            ||          }t          ||         ||                    d S )Nr   r   r  rJ  r   rO  )rZ   rT  r  r6   rM  rv   r   r   r^  s          r0   test_ppf_of_cdf_sqrtnzTestKSTwo.test_ppf_of_cdf_sqrtn  s    K1b!!) 	2 	2Abgajj.!c!e),B{r1--HLX^4D;??8Q//DDJ41111	2 	2r2   c                 V   t          j        ddd          }dD ]}|t          j        |          z  |d|z  k             }t          j                            ||          }d|k     |dk     z  }t          j                            ||          }t          ||         ||                    d S )Nr   r   r  rJ  r   rA  )rZ   rT  r  r6   rM  r   r  r   )r_   re   rp  rU  r  r_  rC  s          r0   test_isf_of_sf_sqrtnzTestKSTwo.test_isf_of_sf_sqrtn"  s    K1b!!) 	2 	2Abgajj.!c!e),BknnR++GKGdN3D;??7A..DDJ41111	2 	2r2   c                     t          j        ddd          dd          }dD ]R}t          j                            ||          }t          j                            ||          }t          ||           Sd S rZ  )rZ   rT  r6   rM  r   rv   r   )r_   rV  rp  rU  r  s        r0   r  zTestKSTwo.test_ppf,  st    Aq"%%abb)) 	- 	-A**B{r1--HHe,,,,	- 	-r2   c           	         g d}t          j        g d          }t          j        g dg dg dg dg dg dg          }t          |          D ]y\  }}|t          j        d	          z  t          j        t           j        d	z  |z            z  }t          j                            ||          }t          |||         d
           zd S )N)rf   r8  rg   rN  r  r   )rg  gUUUUUU?r   r   rm   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?rm   r6  r   )
rZ   r   	enumerater  r  rp   r6   rM  rv   r   )r_   rS  ratiosrT   idxrp  re   r  s           r0   test_simard_lecuyer_table1z$TestKSTwo.test_simard_lecuyer_table13  s    +**888998- - -- - -- - -- - -- - -- - -
    mm 	@ 	@FC"RWRU1WQY%7%77A{q!,,HHhsm$?????	@ 	@r2   N)r   r   r   rW  r  rX  r  r\  r`  rc  re  rg  r  rm  r8   r2   r0   rH  rH    s        0 0 0(/ / /+ + += = == = == = == = =2 2 22 2 2- - -@ @ @ @ @r2   rH  c                        e Zd Zd Zd Zd ZdS )TestZipfc                 N    t           j                            d          | _        d S )Nl   p\# rY   r^   s    r0   r`   zTestZipf.setup_methodV  ra   r2   c                 6   t           j                            dd| j                  }t	          j        |dk              sJ t	          j        |          dk    sJ |j        j        t          d         v sJ t           j                            d| j                  }t          |t                    sJ t          j        d                              d| j                  }t          |t          j                  sJ |j        j        t          d         v sJ d S )Nr  r7  r   r   r9  r   r   )r6   zipfr   r]   rZ   r   r=  r   r>  r   r?  r^  r_  rB  s      r0   rE  zTestZipf.test_rvsY  s    z~~cdh~GGvdai     x~~((((z)L"99999jnnStxn88#s#####joo!!!$(!;;#rz*****y~<!8888888r2   c                 v   t           j                             d          \  }}t          t          j        |                     t          |t          j                   t           j                             dd          \  }}t          t          j        ||g                                                      d S )Nffffff@r.   r7  skr.   r  )r6   rr  r	   rZ   rC  r   r  r   r  s        r0   r%  zTestZipf.test_momentsd  s    z#&&1AQz#t441BKA''++---.....r2   N)r   r   r   r`   rE  r%  r8   r2   r0   ro  ro  U  sA        5 5 5	9 	9 	9/ / / / /r2   ro  c                   &    e Zd Zd Zd Zd Zd ZdS )TestDLaplacec                 N    t           j                            d          | _        d S )Ni1qrY   r^   s    r0   r`   zTestDLaplace.setup_methodo  r  r2   c                 R   t           j                            dd| j                  }t	          j        |          dk    sJ |j        j        t          d         v sJ t           j                            d| j                  }t          |t                    sJ t          j        d                              d| j                  }t          |t          j                  sJ |j        j        t          d         v sJ t           j                            d| j                  J d S )Nr  r7  r   r9  r   r   r   )r6   dlaplacer   r]   rZ   r=  r   r>  r   r?  r^  r_  rB  s      r0   rE  zTestDLaplace.test_rvsr  s   ~!!#G$(!KKx~~((((z)L"99999n  48 <<#s#####nS!!%%adh%??#rz*****y~<!88888~!!#DH!==IIIIIr2   c                    d}t          j        |          }|                     d          \  }}}}d}t          j        | |dz             }|                    |          }	t          j        |	|dz  z            t          j        |	|dz  z            }}
t          ||fd           t          ||f|
||
dz  z  dz
  fd	d
           d S )NrO  r  r  r   rm   r   rB  r  r  r(  ri  )r6   r|  rZ   r  rK  rh  r   r   )r_   r.   dlr  r  rK   rb   r-  r  ppm2m4s               r0   r  zTestDLaplace.test_stats}  s    ^AXXf%%
1aYr1Q3VVBZZ2q5!!26"RU(#3#3BaVV$$$ARAX] 3%dKKKKKKr2   c                     t          j        d          }t          j        |          }|                    d          \  }}}}t	          ||fd           t          ||fd           d S )Nr   r  )r   r   )r        
@)rZ   r  r6   r|  r   r   )r_   r.   r~  r  r  rK   rb   s          r0   test_stats2zTestDLaplace.test_stats2  se    F2JJ^AXXf%%
1aaVX&&&A
+++++r2   N)r   r   r   r`   rE  r  r  r8   r2   r0   ry  ry  n  sV        4 4 4	J 	J 	JL L L, , , , ,r2   ry  c                       e Zd Zd Zej                            dddg          d             Zej                            dddg           fd            Zd Z	d	 Z
d
 Zej                            dg d          d             Zd Z xZS )TestInvgaussc                 N    t           j                            d          | _        d S )Nl   xs rY   r^   s    r0   r`   zTestInvgauss.setup_method  ra   r2   zrvs_mu,rvs_loc,rvs_scale)rm   r   r   )g
ףp=@g r@gʡE6@c                    t           j                            d|||| j                  }t           j                            ||          \  }}}||z
  }t          j        |          }t          |          t          j        |dz  |dz  z
            z  }	||	z  }
t          |
|dd           t          |	|dd           t          ||           t           j                            d|||| j                  }t           j                            ||dz
  |dz             \  }}}t          |dz   |           t          |dz
  |           t           j                            |d	
          d         }t           j                            |d	          d         }t           j                            |d	          d         }||cxk    r|cxk    rd	k    sn J d S )Nrg   r   rZ  rk   rl   r   r   r   r   ri  r   r=  r  )fmur   )fix_mur   )r6   r#  r   r]   r   rZ   r   r  rh  r   r   )r_   rvs_mur   r7  r   rZ  rk   rl   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r0   rv  zTestInvgauss.test_fit  s    ~!!sv&-YTX " W W ++Dw+??Cg~'$--IIr
Wr](B!C!CD	" 	U;;;;	5u5AAAAS'"""~!!sv&-YTX " W W ++Dw{3<q= , B BCY]E***Wq[#&&& ^''$'77:
^''T'::1=
^'''66q9
Z====:============r2   )gX9v>@g	@gGz@c                 R   t           j                            d          }t          j                            d||||          }t          t          t          j                  t          j                  j        } ||          }t          j                            |          }t          ||            ||dd          }t          j                            |dd          }t          ||           t          t          j        ||           t          j        ||dz
  z
  dk              sJ t          t          j        ||dz
             t          t          j        |d           t          t          j        ||| j                            d          d         	           d S )
NrT  rg   r  r   rm   )r   r  r   r   r=  )rZ   r[   r  r6   r#  r   r   r   r   r   r   r   r]   )
r_   r  r   r7  r]   r   	super_fitsuper_fittedinvgauss_fit	__class__s
            r0   r   z(TestInvgauss.test_fit_MLE_comp_optimizer  s    i##D))~!!sv&-YS " R R $u~..??C	 y~))$//\<000 !yA1555~))$QA)>>\<000 	&endIIII vtw{+q011111%end1MMMM 	&endCCCC 	&end-1X__Q-?-?-B	D 	D 	D 	D 	D 	Dr2   c                     t          t          j                   t          j        t
                    5  t          j                            g dd           d d d            d S # 1 swxY w Y   d S rC  )r  r6   r#  r   r   r    r   r^   s    r0   test_fit_raise_errorsz"TestInvgauss.test_fit_raise_errors  s    EN+++]<(( 	2 	2Nyyyq111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   $A$$A(+A(c                    g d}g d}t           j                            d|          }t          ||           t           j                            dd          }t	          |d           t           j                            dd          }t	          |d	           t           j                            d
d          }t	          |d           t           j                            dd          }t	          |d           d S )N)g4wT;?gjdV&}?g{i\0>gDV_h?gqacX?)r   r   r   r   r   皙?rZ  r  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r6   r#  rv   r   r   r   )r_   rZ  rT   rP   
cdf_actual	sf_actuals         r0   r  zTestInvgauss.test_cdf_sf  s    . . ."??##CB#//Xv&&& ^''$'77

$9:::N%%cd%33		#7888 ##GV44 3444 ##Hf55 122222r2   c                    t           j                            dd          }t          |d           t           j                            dd          }t          |d           t           j                            dd          }t          |d           t           j                            dd          }t          |d	           d S )
Nr  r  r  giJ.r  gr^ߺr  gpgFgpQ^L)r6   r#  r  r   r  )r_   r  r  s      r0   r  zTestInvgauss.test_logcdf_logsf  s     &&v$&77 1222&&sD11 5666$$Ut$445666$$S$//011111r2   zmu, ref))r  g,9)r  g%!)r   g40)r   gK'
@)r  g`p
@c                 d    t          t          j                            |          |d           d S rP  )r   r6   r#  rE   )r_   rZ  r  s      r0   rl  zTestInvgauss.test_entropy  s/     	..r22CeDDDDDDr2   c                    t          j        t          j                  }t          j        dd          }d\  }}t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |	                    |          |	                    |                     t          |
                    |          |
                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     d S )Nr  r   r   )rO  r   )r6   r#  rZ   r  r"  r   r   ro   r  rv   r  r   r   r  )r_   r?   dist0re   rq  s        r0   test_mu_inf_gh13666z TestInvgauss.test_mu_inf_gh13666!  s[    ~(((s#...1AQ888UYYq\\222AQ888UYYq\\222

1u{{1~~666

EHHQKK000UYYq\\222UYYq\\22222r2   )r   r   r   r`   r   r   r   rv  r   r  r  r  rl  r  __classcell__r  s   @r0   r  r    sF       5 5 5 [7')>?A A> >A A>: [7')>?A A D  D  D  DA A DD2 2 2!3 !3 !3F2 2 2. [Y )D )D )D E E
E EE E
E3 3 3 3 3 3 3r2   r  c                   `    e Zd Zej                            dg d          d             Zd ZdS )
TestLandauname)ro   rv   r   r   r  c                    |dv rt          j        ddd          f}nt          j        ddd          f}t          t          j        |          }t          t          j        |          } || } |g |ddR  }t          ||d	           d S )
N>   r  r   rc   r   r   r   rf   r   r  r   )rZ   rT  r.  r6   landaulevy_stabler   )r_   r  re   landau_methodlevy_methodr   r  s          r0   test_landau_levy_agreementz%TestLandau.test_landau_levy_agreement3  s    
 >!!Ca(()AAB2&&'Ad33e/66mQk#1#a####Su------r2   c                     t          t          j                            d          t          j        fdz             t          t          j                            d          t          j                   d S )Nr  r  r   r   )r   r6   r  rZ   r  r  r^   s    r0   r%  zTestLandau.test_momentsC  sU    U\'''77"&1EEEU\((++RV44444r2   N)r   r   r   r   r   r   r  r%  r8   r2   r0   r  r  2  sW        [V%G%G%GHH. . IH.5 5 5 5 5r2   r  c                       e Zd Zej                            dg d          ej                            dg d          d                         Zej                            dg d           fd            Zd	 Zd
 Z	d Z
d Zd Z xZS )TestLaplacer   )r  r   r   rm   r7  )r   rm   r   rf   c                    t           j                            d          }t          j                            d|||          }t          j        |          }t          j        t          j        ||z
                      t          |          z  }t          j        
                    |          \  }}t          ||dd           t          ||dd           t          j        
                    ||          \  }}t          ||dd           t          j        
                    ||          \  }}t          ||           |dz  }t          j        t          j        ||z
                      t          |          z  }t          j        
                    ||          \  }}t          ||           t          j        
                    ||          \  }}t          ||           t          t          t          j        j
        |||	           t          t          t          j        j
        t           j        g           t          t          t          j        j
        t           j        g           d S )
NrT  rg   rk  r   ri  r   rx  rm   r=  )rZ   r[   r  r6   r  r   rD  rh  r   r  r   r   r   r[  r  r  r  r  )	r_   r   r7  r]   r   loc_mler  rk   rl   s	            r0   rv  zTestLaplace.test_fitJ  s   
 i##D))}  cwi.1 ! 3 3 )D//F26$.1122SYY>	 ]&&t,,
UW5u====yu5AAAA ]&&t'&::
Uyu5AAAA]&&tI&>>
UW%%% kF26$*--..T:	 ]&&t#&66
UY&&& ]&&tI&>>
UWc""" 	lEM$5t'&	( 	( 	( 	( 	j%-"3bfX>>>j%-"3bfX>>>>>r2   rvs_loc,rvs_scale))r  rf   rf   r   )r   rL  c                    t           j                            d          }t          j                            d|||          }d }t          j                            |          \  }}t          t          t          j                  t          j                                      |          \  }}	 ||||          }
 |||	|          }|
|k     st          j	        |
|dd          sJ d S d S )NrT  r   rk  c           	          dt          |           t          j        d|z            z  d|z  t          j        t          j        || z
                      z  z
  z  S )Nr   rm   r   )r  rZ   r  rh  r   )rk   rl   r   s      r0   llz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.ll  sS    CII%8E'26"&*<*<#=#==> ? ?r2   r   ri  )
rZ   r[   r  r6   r  r   r   r   r   r   )r_   r   r7  r]   r   r  rk   rl   loc_opt	scale_optll_mlell_optr  s               r0   r   z'TestLaplace.test_fit_MLE_comp_optimizery  s     i##D))}  dy.1 ! 3 3	? 	? 	? ]&&t,,
U"4#6#6#(=2 225#d)) 	C%%GY--"+ff38u#F #F #Fr2   c                    t          j        g d          }t          j                            |d          \  }}t          |ddd           t          j                            |d          \  }}t          |ddd           d S )N)rO  rO  r  rP  r   r  r/  r   r   r   ri  rx  )rZ   r   r6   r  r   r   )r_   r   rk   rl   s       r0   test_fit_simple_non_random_dataz+TestLaplace.test_fit_simple_non_random_data  s    x77788]&&t!&44
Uqu59999]&&tA&66
UQU777777r2   c                 F   d}t           j                            |           }|dk    sJ t           j                            |          }|dk    sJ t           j                            |          }|dk    sJ t           j                            |           }|dk    sJ d S )Nr   r   rO  )r6   r  rv   r   )r_   re   p0p1s       r0   test_sf_cdf_extremesz TestLaplace.test_sf_cdf_extremes  s    ]r"" Syyyy ]q!!Syyyy]a   Syyyy ]qb!!Syyyyyyr2   c                     d}t           j                            |          }t          |t	          j        |           dz  d           d S )NrN  rm   r   r   )r6   r  r   r   rZ   r   )r_   re   rq  s      r0   r  zTestLaplace.test_sf  sE    MQ261"::a<e444444r2   c                     d}t           j                            |          }t          |t	          j        d|z             d           d S )Ng}:rm   r   r   )r6   r  r  r   rZ   r  )r_   rq  re   s      r0   r  zTestLaplace.test_isf  sE    Ma  BF1Q3KK<e444444r2   c                     d}d}t           j                            |          }t          ||           t           j                            |           }t          ||d           d S )Nrx  g$ICr  r   )r6   r  r  r   r  r  s        r0   r  zTestLaplace.test_logcdf_logsf  sc    %%%a(($$$##QB''s//////r2   )r   r   r   r   r   r   rv  r   r  r  r  r  r  r  r  s   @r0   r  r  I  s       [Y66[[---88+? +? 98 76+?Z [0 3? 3? 3? @ @F F F F@ @F(8 8 8  *5 5 5
5 5 5
0 0 0 0 0 0 0r2   r  c                      e Zd Zd Zd Zej                            dg d          d             Zej                            dg d          ej                            dd	g          ej                            d
ddg          ej                            dddg          d                                                 Z	dS )TestLogLaplacec                     t          j        g d          }t          j        g d          }g d}t          t          j                            ||          |d           d S )N)r   r  rP  )r6  r    4&kC)g ?gKH9gXrL0r   r   )rZ   r   r   r6   
loglaplacer   )r_   r  re   r  s       r0   r  zTestLogLaplace.test_sf  sf     H___%%H'''((+++(++Aq113UCCCCCCr2   c                 z    d}g d}g d}t          t          j                            ||          |d           d S )Nr  )r   rc   r  r  r2  )gHhlh#?gH]9@?g"fj#@g11Ags!8wBr  r   )r   r6   r  r  )r_   r  rz  r  s       r0   r  zTestLogLaplace.test_isf  sS     +++6 6 6(,,Q22CeDDDDDDr2   r  r   rm   r   r   c                 L   d|dz
           }t          j        d|dz   d          }t          t          j                            ||          t           j                   t          j        t          j        t          j                            ||                              rJ d S )Nr  r   r   r  )	rZ   r  r   r6   r  r  r  r   rC  )r_   r  momr  s       r0   test_moments_statsz!TestLogLaplace.test_moments_stats  s    QUmIc1s7C(( 	(//155rv>>> 6"+e&6&<&<Q&<&L&LMMNNNNNNNr2   r  )r   rO  r   z
loc, scale)r  g@fix_cTFr9  c                    t           j                            d          }t          j                            |||d|          }d|i}|r||d<   |r||d<   dt          |          z
  }	|	dk    rUd	}
t          j        t          t          f|

          5  t          j        j        |fi | d d d            n# 1 swxY w Y   d S t          t          j        |fi | d S )Nr   rg   r<  r   fcr   r   r   r  r  )rZ   r[   r\   r6   r  r   r  r   r   r  r  r   r   )r_   r  rk   rl   r  r9  r]   r   r   nfreer@  s              r0   test_fit_analytic_mlez$TestLogLaplace.test_fit_analytic_mle  s=    i##$788##A3e#14 $ 6 6 } 	DJ 	#"DNCIIA::MIj9KKK 3 3 $T22T2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3F%e&6EEEEEEEs   B66B:=B:N)
r   r   r   r  r  r   r   r   r  r  r8   r2   r0   r  r    s       D D DE E E [S,,,//O O 0/O [S///22[\L>::[WtUm44[[4-88F F 98 54 ;: 32F F Fr2   r  c                      e Zd Zej                            dddg          d             Z ej        d          d             Zej                            dg d	          ej                            d
g d          ej                            dg d          ej                            dd  e	ddgd          D                       d                                                 Z
d Zd Zd ZdS )TestPowerlawzx, a, sf)rg  r   g      ?)g     ?g      p?gSQ>c                 f    t          t          j                            ||          |d           d S r   )r   r6   powerlawr   )r_   re   r.   r   s       r0   r  zTestPowerlaw.test_sf  s1     	))!Q//%@@@@@@r2   r  r  c                 @    t           j                            d          S r  r  r^   s    r0   r]   zTestPowerlaw.rng  r  r2   r   )rc   r   r   r   rm   r   r  r7  r  r  c                     g | ]}d |v |	S r  r8   r  s     r0   r@   zTestPowerlaw.<listcomp>  r  r2   TFr   r  c                 ,   t           j                            d||||          }t                      }	|r||	d<   |r5t	          j        |                                t          j                   |	d<   |r||	d<   t          t           j        |fi |	ddi d S )Nr  )r   r.   rk   rl   r   r   r   r   r  T)	r6   r  r   r  rZ   	nextafterr  r  r   r  s
             r0   r   z(TestPowerlaw.test_fit_MLE_comp_optimizer	  s     ~!!siW(1 " E E vv 	#"DJ 	=<

RVG<<DL 	'&DN 	&end 	< 	<d 	< 	<6:	< 	< 	< 	< 	< 	<r2   c           	          d}d}d}t           j                            |||dt          j                            d                    }dt          j        |          dz  i}t          t           j        |fi | d S )	Ng`- @r   grߟA@rg   r   )r.   rk   rl   r   r   r   rm   )r6   r  r   rZ   r[   r\   ptpr   )r_   r.   r  rl   r   r   s         r0   test_problem_casezTestPowerlaw.test_problem_case!  s     #"~!!A85s/1y/D/DQ/G/G " I I "&,,*+%endCCdCCCCCr2   c                 z   t          t          j                   d}t          t          |          5  t          j                            g ddd           d d d            n# 1 swxY w Y   d}t          t          |          5  t          j                            g dd           d d d            n# 1 swxY w Y   d}t          t          |          5  t          j                            g dd	           d d d            n# 1 swxY w Y   d
}t          t          |          5  t          j                            g dd           d d d            n# 1 swxY w Y   d}t          t          |          5  t          j                            g dd           d d d            d S # 1 swxY w Y   d S )Nz7 Maximum likelihood estimation with 'powerlaw' requiresr  r   rm   r   r   r   r=  rm   r   r   z$Negative or zero `fscale` is outsider  rx  z0`fscale` must be greater than the range of data.)r  r6   r  r[  r    r   r  r\  s     r0   r  zTestPowerlaw.test_fit_warnings/  s   EN+++H<s333 	< 	<Nyyyq;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< I<s333 	2 	2Nyyyq111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 I<s333 	2 	2Nyyyq111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 6:S111 	5 	5Nyyy444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 B:S111 	4 	4Nyyy333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4sY   %A##A'*A'$B66B:=B:$D		DD,$EE #E ?$F00F47F4c                     g d}t           j        }t          j        d          5  t	          ||           d d d            d S # 1 swxY w Y   d S )N)r   r   rm   rm   r   r   r   r   r   r   r   r/  r  over)r6   r  rZ   r  r   )r_   r   r?   s      r0   test_minimum_data_zero_gh17801z+TestPowerlaw.test_minimum_data_zero_gh17801J  s     433~[h''' 	6 	6)$555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   AAAN)r   r   r   r   r   r   r  r  r]   r%   r   r  r  r  r8   r2   r0   r  r    s{        [Z1HJK KA AK KA V^*%%%+ + &%+ [[*=*=*=>>[Y


33[[***55[<- -$q)I)I)I - - -. .< <. . 65 43 ?><$D D D4 4 466 6 6 6 6r2   r  c                   >   e Zd Zej                            dg d          d             Zej                            dddg          d             Zej                            dg d          d	             Zej                            dg d
          d             Z	dS )TestPowerLogNormzx, c, s, ref))rg   r  r   ga!R()r  r  r   g;?)r  r  r   gE?)MDr  r   g=c                 h    t          t          j                            |||          |d           d S r   )r   r6   r*  r   r_   re   r  rK   r  s        r0   r  zTestPowerLogNorm.test_sfd  s4     	*--aA66%HHHHHHr2   zq, c, s, ref)g?r  r   r   )gR4-r  r   r   c                 h    t          t          j                            |||          |d           d S )Ng|=r   )r   r6   r*  r  )r_   rz  r  rK   r  s        r0   r  zTestPowerLogNorm.test_isfn  s4     	*..q!Q775IIIIIIr2   ))r  r  r   g?)rq  r  r   gv6)rq  rN  r   g+	94|7)ry  rN  r   g?c                 h    t          t          j                            |||          |d           d S )Ngt =r   )r   r6   r*  rv   r  s        r0   rW  zTestPowerLogNorm.test_cdft  s4     	*..q!Q775IIIIIIr2   ))r  r  r   gS^Ռe9)@xDr  r   g0g;)g\)c=Hr  r   g7H7c                 h    t          t          j                            |||          |d           d S )NgAfc=r   )r   r6   r*  ro   r  s        r0   rM  zTestPowerLogNorm.test_pdf  s4    
 	*..q!Q775IIIIIIr2   N)
r   r   r   r   r   r   r  r  rW  rM  r8   r2   r0   r  r  S  s<       " [^E E EF F
I IF F
I
 [^ACEF FJ JF FJ [^A A AB B
J JB B
J [^G G GH HJ J	H HJ J Jr2   r  c                       e Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zd	S )
TestPowerNormr'  ))r  r   g| <)r  rm   ge()rg   r  g%!@6)rN  r   gT;-c                 f    t          t          j                            ||          |d           d S r   )r   r6   	powernormr   r+  s       r0   r  zTestPowerNorm.test_sf  s1     	**1a00#EBBBBBBr2   r  ))r6  r  gĿ)r  rg   g!X)r  r  g缂U)rA  r  gͫ1@)r3  rm   gD@)Jz5r   gU!zYr@c                 f    t          t          j                            ||          |d           d S Nr|  r   )r   r6   r  r  r  s       r0   r  zTestPowerNorm.test_isf  s1     	++Aq113UCCCCCCr2   ))ir  g.u	T9)rm   r  ?)r  r  gsK-)r  r  gk8>)r  r  g^u1-c                 f    t          t          j                            ||          |d           d S rP  )r   r6   r  rv   r+  s       r0   rW  zTestPowerNorm.test_cdf  s1     	++Aq113UCCCCCCr2   N)	r   r   r   r   r   r   r  r  rW  r8   r2   r0   r  r    s         [[C C CD D
C CD D
C [[= = => >D D> >D [[B B BC CD DC CD D Dr2   r  c                   x    e Zd Zd Zd Zd Zd Zd Zej	        
                    dddg          d	             Zd
S )TestInvGammac                    t          j                    5  t          j        dt                     t          j                            dd          }g d}t          ||           g d}t          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            d S # 1 swxY w Y   d S )Nrn  g(\O3@r  rw  )g~?gCX&?g*7gS?gBqFq @)r  @gffffff@)r  gEy?gў3oz?g^Yb?g,r?gOD@g2*Z@gFN8@)rr  rs  rt  ru  r6   r"  r   rZ   r  r  r  r   )r_   r  rT   r.   re   r.  s         r0   test_invgamma_inf_gh_1866z&TestInvGamma.test_invgamma_inf_gh_1866  sU    $&& 	* 	*!'>:::>''%'@@D% % %HD(+++A>''!V'<<D888}=k:57H D(++ * *1#Aq))))*	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   CC66C:=C:c                     t          j        dd          }t          j                            |d          }t          j                            |d          }t          ||           d S )Ngr   r   )rZ   r  r6   r"  rv   r   r   r`  s       r0   r  zTestInvGamma.test_cdf_ppf  sW    Ka  Nq!$$^1%%2r2   c                     t           j        dk    rt          j        dd          }nt          j        dd          }t          j                            |d          }t          j                            |d          }t          ||d           d S )Nl        rm   rg      r   rO  r   )	sysmaxsizerZ   r  r6   r"  r   r  r   r`  s       r0   r  zTestInvGamma.test_sf_isf  s~    ;As##AA Ar""ANa##^1%%2C((((((r2   c                 v    d}d}d}t           j                            ||          }t          ||d           d S )Nr  r  gM$r  r   )r6   r"  r  r   r_   re   r.   r  r  s        r0   r  zTestInvGamma.test_logcdf  sC    #&&q!,,%000000r2   c                 v    d}d}d}t           j                            ||          }t          ||d           d S )Nr   r7  grطr  r   )r6   r"  r  r   r_   re   r.   r  r  s        r0   r  zTestInvGamma.test_logsf  sC    $$$Q**s//////r2   a, ref)r   g70K6:)r  gVMOuc                 d    t          t          j                            |          |d           d S r   )r   r6   r"  rE   r_   r.   r  s      r0   test_large_entropyzTestInvGamma.test_large_entropy  s/     	..q113UCCCCCCr2   N)r   r   r   r  r  r  r  r  r   r   r   r  r8   r2   r0   r  r    s        * * *&  ) ) )1 1 10 0 0 [X?:<= =	D 	D= =	D 	D 	Dr2   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestFc                     t           j        ddgg}|D ]\  }}} |j        |j        g|R  }d |D             }d |D             }t	          ||           d S )N)rm   r   rO  c                 <    g | ]\  }}} |j         |j        g|R  S r8   ro   r.   r>   _f_argsr   s       r0   r@   z(TestF.test_endpoints.<locals>.<listcomp>  4    ===E1vrvbd#U###===r2   c                     g | ]\  }}}|	S r8   r8   r>   r  r  	_correct_s       r0   r@   z(TestF.test_endpoints.<locals>.<listcomp>      >>>!5UI9>>>r2   )r6   fro   r.   r   )r_   r   r  r  _correctanscorrects          r0   r  zTestF.test_endpoints
  s    &#&'#' 	' 	'Bx"&&&&&CC=====>>>>>!#w/////r2   c                 ^   t           j                             ddd          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                      d S )Nr        @r  r  )r6   r  r	   rZ   rC  r  s        r0   test_f_momentszTestF.test_f_moments  s    W]]2sF];;
1aAAABKNN"#####r2   c                     t          j                    5  t          j        dt                     t          j                            dgdz  g dd           d d d            d S # 1 swxY w Y   d S )Nrn  r  r   )rm   r   r/  r  r  dfndfdr  )rr  rs  rt  ru  r6   r  r^   s    r0   test_moments_warningszTestF.test_moments_warnings  s    $&& 	H 	H!'>:::GMMrd1f,,,MGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   AA$$A(+A(c                    t          j        dgdgg          }t          j        ddg          }t          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	          ||           d S )Nr   r  rQ  r  r"  rm   r   r  r/  r      )rZ   r   r6   r  r   r  )r_   r#  r$  r  r  rK   rb   r  v2s2k2numk2denk2s                r0   test_stats_broadcastzTestF.test_stats_broadcast"  s   hbT{##hBx  W]]sV]DD
1aS1Woq 2aZ39q=)C/37Q,>#'J2us{Q"'!S1W+"6"66a273c	A#677792cQsURZ(C#IM:Qw37Q,./ 0sQw37+sSy1}=U]2r2   N)r   r   r   r  r   r%  r-  r8   r2   r0   r  r  	  sS        0 0 0$ $ $H H H    r2   r  c                      e Zd Zd Zd Zd Zej                            dddg          d             Z	ej                            dg d	          e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                            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ej                            dg d          d             ZdS )TestStudentTc                 h    t          t          j                            ddg          ddg           d S )Nr   r/  g?g?)r   r6   r  rv  r^   s    r0   test_rvgeneric_stdzTestStudentT.test_rvgeneric_std5  s/    !%'++q!f"5"5
J7OPPPPPr2   c                 f   t          t          j                            dd          t          j        t          j        t          j        t          j        f           t          t          j                            dd          dt          j        t          j        t          j        f           t          t          j                            dd          dt          j        t          j        t          j        f           t          t          j                            dd          ddt          j        t          j        f           t          t          j                            d	d
          t          j        t          j        f           t          t          j                            dd
          dt          j        f           t          t          j                            dd
          dt          j        f           t          t          j                            dd
          dd           d S )Nr   r  )r  r  )\(?r   rm   gGz @g     i@r   rv  gGz@r   g
ףp=
@)r   gq    @r  r   )r   r6   r  rZ   r  r  r   r^   s    r0   test_moments_tzTestStudentT.test_moments_t9  s   UW]]a]88VRVRVRV4	6 	6 	6UW]]dF];;"&"&"&1	3 	3 	3UW]]a]88"&"&"&1	3 	3 	3UW]]dF];;/2626:	< 	< 	<UW]]a]668HIIIUW]]dD]99C=IIIUW]]a]66bfFFFt<<>U"	$ 	$ 	$ 	$ 	$ 	$r2   c                 t    g d}g d}t          t          j                            |          |d           d S )N)r   rm   r  rg   )g?@gTM]?ggY?U?r   r   r   r6   r  rE   )r_   r  rT   s      r0   test_t_entropyzTestStudentT.test_t_entropyI  sE    __; ; ;++XEBBBBBBr2   zv, ref)rg   r6  )r  r  c                 d    t          t          j                            |          |d           d S r  r7  )r_   r  r  s      r0   test_t_extreme_entropyz#TestStudentT.test_t_extreme_entropyP  s-     	**Ce<<<<<<r2   methname)ro   r   rv   r   r   r  
df_infmaskr   r   )r   r   r   )r   r   r   c                    t          j        |t                    }t           j                            d          }|                    dd|j                  }|                    |j                  }t           j        ||<   t          j
        |dd          }t          j
        ||          dd          }t          j        dd	          }t          ||          }	t          ||          }
t          ||          } |	|          }t          ||          |||                   d
           t          ||           |
||                               d S )Nr      S8 r   rf   r   r   r   r  rk   rl   rj   r  r   )rZ   r   boolr[   r\   r  r=  standard_normalr  r6   r  r  r.  r   r   )r_   r;  r<  r]   r  re   t_dist
t_dist_ref	norm_distt_meth
t_meth_ref	norm_methr   s                r0   test_t_inf_dfzTestStudentT.test_t_inf_dfa  s<    Z
$777
i##J//[[BZ%5[66
 011:BAQ///WJ;Qa@@@
J1A...	**Z22
Ix00	fQiiJ1Z=)A)ANNNNS*%zz!ZK.'A'ABBBBBr2   c                    t          j        |t                    }t           j                            d          }|                    dd|j                  }t           j        ||<   t          j	                            |ddd	          }t          j
                            ddd
          }t          j	                            ||          ddd	          }t          d          D ]G}t          ||         |         ||                    t          ||         |          ||                    Ht          j	                            |dd          }t          j
                            dd          }t          j	                            ||          dd          }t          ||         |           t          ||          |           d S )Nr>  r?  r   rf   r@  r   r   r  )r  rk   rl   r  rk   rl   r  r   rA  rj   )rZ   r   rB  r[   r\   r  r=  r  r6   r  r  r  r   rE   )r_   r<  r]   r  r   
res_ex_infres_ex_noinfr  s           r0   test_t_inf_df_stats_entropyz(TestStudentT.test_t_inf_df_stats_entropyw  s   
 Z
$777
i##J//[[BZ%5[66:gmmrq6mBBZ%%!1f%EE
w}}J;Qa,2 % 4 4q 	? 	?AQ
+Z];;;Q,l1o>>>>goo!o44Z''AQ'77
w"j[/qJJS_j111S*%|44444r2   c                     g d}g d}g d}g d}t          t          j                            ||          |d           t          t          j                            ||          |d           d S )N)r   r  rf   r   )r  d~QJr  r   )gZ_2g9g!ǟuIgdg)g73?r   gմFhAW;gm0_?r  r   )r   r6   r  r   ro   )r_   re   r  
logpdf_refpdf_refs        r0   test_logpdf_pdfzTestStudentT.test_logpdf_pdf  s     OO###@ @ @
> > >q"--zFFFFAr**G%@@@@@@r2   
x, df, ref))g     Rr:  guSaG)r   r:  r  )     R@r:  gGn`?c                     t           j                            ||          }t          ||d           t           j                            | |          }t          ||d           d S r  )r6   r  r  r   r  )r_   re   r  r  r  r  s         r0   r  zTestStudentT.test_logcdf_logsf  s`    
 2&&%0000qb"%%s//////r2   N)r   r   r   r1  r4  r8  r   r   r   r:  rJ  rO  rT  r  r8   r2   r0   r/  r/  4  s       Q Q Q$ $ $ C C C [X68:; ;= =; ;= [Z *< *< *< = =[\QFQFQF-6YY			,B./VaV,<./S1#J,8 9 9C C	9 9= =C  [\QFQFQF-6YY			,B./VaV,<./S1#J,8 9 95 5	9 95&
A 
A 
A [\C C CD D0 0	D D0 0 0r2   r/  c                   V    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S )TestRvDiscretec                 N    t           j                            d          | _        d S )Ni}rY   r^   s    r0   r`   zTestRvDiscrete.setup_method  r  r2   c                    g d}g d}d}t          j        d||f          }|                    || j                  }t	          |t
          j                  sJ t          ||          D ]>\  }}t          t          ||k              t          |          z  |z
            dk     sJ ?|                    | j                  }t          j        t          |          t
          j                  sJ d S )	N)r   r   r   rm   r   r   )r   ry  r  r   ry  r   r   sample)r  valuesr   rA  r   )r6   rB   r   r]   r?  rZ   r_  r  r   rh  r   r   r   integer)r_   statesprobabilitysamplesr  re   rK   rq  s           r0   rE  zTestRvDiscrete.test_rvs  s    $$$4448V[4IJJJEEwTXE66!RZ(((((,, 	> 	>DAqs16{{5>>1A566=====EEtxE((}T!WWbj1111111r2   c                 f   t          j        g d          }t          j        g d|f          }t	          t          ||                     }|                                }t          ||           t          j        g dg df          }|                                }t          |d           d S )N)rg  r8  ry  r=  r]  )rO  r   r   r   )	rZ   r   r6   rB   rh  r   rE   r   r   )r_   r  rq  rj  rk  s        r0   rl  zTestRvDiscrete.test_entropy  s    ***++iii%7888%u--...
IIKK:&&&iii%=>>>IIKKQr2   c                     g d}g d}t          j        ||f          }ddgddgg}t          |                    |          dd	gd
dggd           d S )Nr  r   ry  rL  rc  rO  r  r  rm   r   rL  r   ry  r  r   )r6   rB   r   rK  )r_   xkpkr  re   s        r0   re  zTestRvDiscrete.test_pmf  s    YY__r2h///"X!Wq		sc$*/	1 	1 	1 	1 	1 	1r2   c                     g d}g d}t          j        ||f          g d}g d}t                              |          |d           t          fd|D             |d           d S )	Nr  re  rc  )r   rO  r  r  r   r  r   r   )r   r   r   r   r   r   r   r   r  r   c                 :    g | ]}                     |          S r8   )rv   )r>   r  r  s     r0   r@   z+TestRvDiscrete.test_cdf.<locals>.<listcomp>  s#    777777r2   )r6   rB   r   rv   )r_   rf  rg  x_valuesrT   r  s        @r0   rW  zTestRvDiscrete.test_cdf  s    YY__r2h///555555x(((???? 	7777h777 u	. 	. 	. 	. 	. 	.r2   c                     g d}g d}t          j        ||f          g d}g d}t                              |          |d           t          fd|D             |d           d S )	Nr  re  rc  )rc   r   r  r   r   rO  )r   r   rm   rm   r   r   r  r   c                 :    g | ]}                     |          S r8   )r   )r>   rz  r  s     r0   r@   z+TestRvDiscrete.test_ppf.<locals>.<listcomp>  s#    555q555r2   )r6   rB   r   r   )r_   rf  rg  q_valuesrT   r  s        @r0   r  zTestRvDiscrete.test_ppf  s    YY__r2h///000%%%x(((???? 	5555H555 u	. 	. 	. 	. 	. 	.r2   c           	          g dg df}t          j        |          }t          |                    |                    |j        d d                   dz             |j        dd                     d S )N)r   rm   r   r  r  )rc   rL  ry  ry  rc   rc  r   r(  r   )r6   rB   r   r   rv   rf  )r_   rC  r  s      r0   test_cdf_ppf_nextz TestRvDiscrete.test_cdf_ppf_next  s|    !:!:!:;d+++266"&&ss"4"4t";<<59	& 	& 	& 	& 	&r2   c                 B   t          j        d                              d          }t          j        g dg dg dg          }t	          j        ||f          }t          |                                t          j        |j	        |j
        z            d           d S )NrQ  )r   r   )rc   rc   rX  rA  )rc   rc   rA  rA  rc  r  r   )rZ   r  r;  r   r6   rB   r   r   rh  rf  rg  r_   rf  rg  r  s       r0   test_multidimensionz"TestRvDiscrete.test_multidimension  s    Yr]]""6**X---------/ 0 0 r2h///		RVBEBEM%:%:GGGGGGr2   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           d S )Nr  r   rc  )r   333333?gffffff濩r   rm   r   r   r   )ry  ry  ry  ry  r&  r   )r[  r  r6   rB   r  r_   rf  rg  s      r0   test_bad_inputzTestRvDiscrete.test_bad_input  s/   YY3Zj%"3MMtB87L7L7LMMMYYj%"3MMtB87L7L7LMMMYYj%"3MMtB87L7L7LMMM__'''j%"3MMtB87L7L7LMMMV3Zj%"3MMtB87L7L7LMMMMMr2   c                    t          j        d                              d          t          j        dd          }}t	          t
          t          j        fi t          ||f           t          j        d                              d          t          j        dd          }}t	          t
          t          j        fi t          ||f           t          j        d                              d          t          j        dd          }}t          t          j        ||f          
                    d          d           d S )	Nr   rm   rm   rm   r   gUUUUUU?rc  r/  r   rm   r   )rZ   r  r;  r  r[  r  r6   rB   r  r   rK  rv  s      r0   test_shape_rv_samplez#TestRvDiscrete.test_shape_rv_sample  s    1%%f--rwvs/C/CBj%"3MMtB87L7L7LMMM 1%%f--rwvs/C/CBj%"3MMtB87L7L7LMMM 1%%f--rwvs/C/CBU&r2h777;;A>>DDDDDr2   c                     g d}g d}t          j        ||f          }t          |                                t	          j        |j        |j        z            d           d S )N)r   rm   r   r/  r  r  )rc   rL  rL  rL  rL  rc   rc  r  r   )r6   rB   r   r   rZ   rh  rf  rg  rq  s       r0   test_expect1zTestRvDiscrete.test_expect1  sd       +++r2h///		RVBEBEM%:%:GGGGGGr2   c           
         g d}g d}t          j        ||f          }t          |                                |                                d           t          |                                t          d t          ||          D                       d           t          |                    d           t          d t          ||          D                       d           d S )	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:?r   gF%uk?g:vz?r   r   g.nr?g|гY?r   r   r   g @6*? 4U0*C?g@+?gC6z?g nr?g ?gOjM?g n?g1w-!?g:pΈ?gףp=
?g _Le?r   g^)p?g~jtx?gJ4q?gGzt?g J4q?g Mb@?g@Psׂ?g@^)ˀ?r   r   g N@s?g 1w-!_?r  gൄ|г?r   gH}}?r   g
F%u?r   r   g ^)ˀ?g v?r   rc  r  r   c              3   &   K   | ]\  }}||z  V  d S rz   r8   r>   r  ws      r0   	<genexpr>z.TestRvDiscrete.test_expect2.<locals>.<genexpr>E  s*      99daAE999999r2   c                     | dz  S Nrm   r8   r   s    r0   rL   z-TestRvDiscrete.test_expect2.<locals>.<lambda>H  
    AqD r2   c              3   ,   K   | ]\  }}|d z  |z  V  dS )rm   Nr8   r  s      r0   r  z.TestRvDiscrete.test_expect2.<locals>.<genexpr>I  s.      <<AAqD1H<<<<<<r2   )r6   rB   r   r   r   rh  r  )r_   r.  pyr  s       r0   test_expect2zTestRvDiscrete.test_expect2&  s
   = = =? ? ?  q"g... 			RWWYYU;;;;		99c!Rjj99999	G 	G 	G 	G 			..11<<Q<<<<<5	J 	J 	J 	J 	J 	Jr2   N)r   r   r   r`   rE  rl  re  rW  r  ro  rr  rw  r|  r~  r  r8   r2   r0   rY  rY    s        4 4 42 2 2
 
 
	1 	1 	1. . .. . .& & &H H HN N N(E E EH H H#J #J #J #J #Jr2   rY  c                       e Zd Zd Zd ZdS )TestSkewCauchyc                    t          j        ddd          }t          t          j                            |d          t          j                            |                     t          t          j                            |d          t          j                            |                     t          t          j                            |d          t          j                            |                     d S Nr  r   rg   r   ru  )	rZ   rT  r   r6   
skewcauchyro   r  rv   r   r  s     r0   test_cauchyzTestSkewCauchy.test_cauchyM  s    KAs##!%"2"6"6qA"6">">"',"2"21"5"5	7 	7 	7!%"2"6"6qA"6">">"',"2"21"5"5	7 	7 	7!%"2"6"6qA"6">">"',"2"21"5"5	7 	7 	7 	7 	7r2   c                    t           j                            d          }|                    d          dz  dz
  }|                    d          dz  dz
  }g d}g d}t	          t
          j                            ||          |           t	          t
          j                            ||          |           t	          t
          j        	                    ||          |           d S )Nr   rf   rm   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?)
rZ   r[   r  randr   r6   r  ro   rv   r   )r_   r]   r.   re   ro   rv   s         r0   test_skewcauchy_Rz TestSkewCauchy.test_skewcauchy_RV  s    & i##A&&HHRLL1q HHRLL2!% % %$ $ $ 	(,,Q22C888(,,Q22C888(,,S!44a88888r2   N)r   r   r   r  r  r8   r2   r0   r  r  L  s2        7 7 7 9  9  9  9  9r2   r  c                       e Zd Zd Zej        d             Zej                            dg d          d             Z	dS )TestJFSkewTc                 *   dx}}|dz  }g d}g d}t          j        ||          }t          j        |          }t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                    |          |                    |                     t          |                     d          |                     d                     d S )Nr   rm   )r  r   rO  r   )r   rc   rg  r   r   rO  r  )r6   	jf_skew_tr  r   ro   rv   r   )r_   r.   r/   r  re   rz  jfr  s           r0   test_compare_tzTestJFSkewT.test_compare_tz  s     	AU!!!---_Q""GBKKq		15588,,,q		15588,,,q		15588,,,((!''&//:::::r2   c                     t          j        t          t                    j        dz            }t           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)rZ   loadr   __file__parentrec
fromarraysry  s     r0   gamlss_pdf_datazTestJFSkewT.gamlss_pdf_data  sD     wNN!$HH
 
 v  [ 999r2   za,b)rz  )r  r   )rQ     c                     ||d         |k    |d         |k    z           }|d         |d         }}t          |t          j        ||                              |          d           dS )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`.
        r.   r/   re   ro   r  r   N)r   r6   r  ro   )r_   r  r.   r/   r   re   ro   s          r0   test_compare_with_gamlss_rz&TestJFSkewT.test_compare_with_gamlss_r  sr     S!Q&?3+?1+DE
 cDK3U_Q2266q99FFFFFFr2   N)
r   r   r   r  r   r  r  r   r   r  r8   r2   r0   r  r  y  s{        ; ; ;  ^: : ^: [U$>$>$>??	G 	G @?	G 	G 	Gr2   r  rm   r   g@r   gףp=
1@r:  gRZ@i   gS㥛Ԋ@rc   rd   g&@iQ i'  i0ybi l   HO1Z i3r  irf   irg   ikrN  i1r   i  i4i N  i(  lEI. r'  i c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            de          d	             Zd
 Zd Zd ZdS )TestSkewNormc                 .    t          d          | _        d S r  )r   r]   r^   s    r0   r`   zTestSkewNorm.setup_method  s    %d++r2   c                     t          j        ddd          }t          t          j                            |d          t          j                            |                     d S r  )rZ   rT  r   r6   skewnormro   r  r  s     r0   test_normalzTestSkewNorm.test_normal  sY    KAs##!%."4"4Q!"4"<"<"'*.."3"3	5 	5 	5 	5 	5r2   c                    t          d          }d}t          j                            d||          }t	          ||j                   t          j                            d||          }t	          ||j                   d S )NrT  )r   r   r   r   )r.   r   r   r  )r   r6   r  r   r   r=  )r_   r]   r=  re   s       r0   rE  zTestSkewNorm.test_rvs  sv     &&NEDDUAG$$$N%cBBUAG$$$$$r2   c                    t          d          }t          j                            dt	          d          dd|          }t          j        |          t          j        |          t          j        |          t          j	        |          g}t          j                            dddd          }t          ||d	           t          j                            d
t	          d          dd|          }t          j        |          t          j        |          t          j        |          t          j	        |          g}t          j                            d
ddd          }t          ||d	           d S )NrT  r   r  r   rm   )r.   r   rk   rl   r   r  )r.   rk   rl   r  rR  r  )r   r6   r  r   r^  rZ   r   r=  r>  kurtosisr   )r_   r]   r   rT   r@  s        r0   r%  zTestSkewNorm.test_moments  s5    &&NSq,/  1 1GAJJq		5:a==%.:K:KL>''!!V'LL!(Ha@@@@N#c((,/  1 1GAJJq		5:a==%.:K:KL>''"!1f'MM!(Ha@@@@@@r2   c                     g dg dg dg dg dg dg dg}|D ]8\  }}}t           j                            ||          }t          ||d	           9d S )
N)rx  r   gEAV)rx  r   gV|@$a)rx  r   g0rY)rx  r   Zk)r  r   r  )r   r  ļ)rm   g    cr  r(  r   )r6   r  r   r   )r_   
logpdfvalsre   r.   	logpdfvalr  s         r0   test_pdf_large_xzTestSkewNorm.test_pdf_large_x  s     211333000222444555555

  * 	8 	8OAq)>((A..DD)$77777	8 	8r2   c                     t           j                            g dd          }t          |t	          j        d          d           t           j                            dd          }t          |dd           d S )	N)rf   r  r6  r   r   r  r   r  r~  rO  )r6   r  rv   r   rZ   onesr  s     r0   test_cdf_large_xzTestSkewNorm.test_cdf_large_x  sn     N|||R00271::E2222Nr3''3U++++++r2   c                    g dg dg dg dg dg}|D ]l\  }}}t           j                            ||          }t          ||d           t           j                            | |           }t          ||d           md S )N)r  r   gzbLe9)r  rm   gn'/2;)r   r   g::)r  r   g|<)rh  r  r/  r(  r   )r6   r  rv   r   r   )r_   cdfvalsre   r.   cdfvalrq  s         r0   test_cdf_sf_small_valuesz%TestSkewNorm.test_cdf_sf_small_values  s     .--+++,,,...///
 $ 	2 	2LAq&""1a((AAvD1111!!1"qb))AAvD11111	2 	2r2   z
a, momentsc                     t          |d          D ]7\  }}t          j                            ||          }t	          ||d           8d S )Nr   )startr  r   )rj  r6   r  r  r   )r_   r.   r  orderrT   r  s         r0   test_noncentral_momentsz$TestSkewNorm.test_noncentral_moments  s[    (::: 	7 	7OE8.''q11CC66666	7 	7r2   c           	      t   t           j                            d          }d\  }}}t          j        |||          }|                    d|          }t          j                            |dd          \  }}}	t          j                            |dd          \  }
}}||cxk    rdk    sn J ||
k    sJ t          j                            |ddd	
          \  }}}|dk    sJ t          j        |||          }|                    d          }t          j        |          t          j        |          f}t          ||           t          j
                            dd|          }t          j                            |          }t          j        t          j        |                    sJ t          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                            |d          \  }}}t          j                            | d          \  }}}t          |||g| | |g           t          j                            |d	          \  }} }!t          j                            | d	          \  }"}#}$t          |"|#|$g| |  |!g           d S )Nl   #ke )r   r7  r   rg   r   rS  r   r   gmmr   r  msr  r   r  rm   mle)rZ   r[   r\   r6   r  r   r   r   r>  r   r  r   rC  isinfr=  r  rp   )%r_   r]   r.   rk   rl   r?   r   a2loc2scale2a3loc3scale3a4loc4scale4dist4r   r  r   a5loc5scale5r  r  a6ploc6pscale6pa6mloc6mscale6ma7ploc7pscale7pa7mloc7mscale7ms%                                        r0   rv  zTestSkewNorm.test_fit#  s   i##$788$3~ae,,hhCch22 !>--c4a-@@D& >--c4a-@@D&t    q      Rxxxx !>--c1Qt-LLD&{{{{r400kk$k''gcllEJsOO+S!!! |#>> n  &&vbk#&&''''' !>--d4-@@D&x|| wt}}bfTll14&271RU7+;+;";;<<<619AI6777 $n00U0CCUG#n00#e0DDUGeW-ufg/FGGG#n00T0BBUG#n00#d0CCUGeW-ufg/FGGGGGr2   c                 F  	 t          j        g dddgz  z   dgz             }t          j                            |          }t          j                            ||          }t          j                            |d          }t          j                            ||          }||dz
  k     sJ t           j                            d          	d	d
dd}	fd}t          j        t          j        |||          }t           j        	                    ||j
        d           d S )N)r  r   r6  rQ  r   r   T)superfitr   l   y
ND )r  r   )rh  rf   )r~  rf   r.   rk   rl   c                 (    t          | |          S )N)r]   )r$   )funr   r]   s     r0   	optimizerz0TestSkewNorm.test_fit_gh19332.<locals>.optimizerh  s    )#v3????r2   )r  r  r   )rZ   r   r6   r  r   r   r[   r\   r  r   params)
r_   re   r  r   params_superr  r   r  
fit_resultr]   s
            @r0   test_fit_gh19332zTestSkewNorm.test_fit_gh19332S  s$   
 H***R1#X5;<<##A&&n!!&!,,
 ~))!d);;n!!,22S3Y i##$788y;GG	@ 	@ 	@ 	@ 	@ Yu~q&INNN


""6:+<4"HHHHHr2   c                 f    t          t          j                            dd          dd           d S )Nr   r  gi}#%?r   r   )r   r6   r  r   r^   s    r0   r  zTestSkewNorm.test_ppfn  s2     	**4557HuUUUUUUr2   N)r   r   r   r`   r  rE  r%  r  r  r  r   r   r   _skewnorm_noncentral_momentsr  rv  r  r  r8   r2   r0   r  r    s        , , ,5 5 5% % %A A A8 8 8 , , ,2 2 2" [\+GHH7 7 IH7
.H .H .H`I I I6V V V V Vr2   r  c                   &    e Zd Zd Zd Zd Zd ZdS )	TestExponc                 `    t          t          j                            d          d           d S r  )r   r6   rb  ro   r^   s    r0   	test_zerozTestExpon.test_zerov  s&    U[__Q''+++++r2   c                     t          t          j                            d          d           t          t          j                            t          j                            d                    d           d S )Nr3  rx  )r   r6   rb  rv   r  r   r^   s    r0   	test_tailzTestExpon.test_taily  sR    U[__U++U333U[__U[^^B%7%788"=====r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S No_?46@yX5ͻ@j+?UX@)rZ   r   r  r[  r  r6   rb  r   r  s     r0   test_nan_raises_errorzTestExpon.test_nan_raises_error}  <    HfffffbfEFFj%+/155555r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S r  )rZ   r   r  r[  r  r6   rb  r   r  s     r0   test_inf_raises_errorzTestExpon.test_inf_raises_error  r  r2   N)r   r   r   r  r  r  r  r8   r2   r0   r  r  u  sP        , , ,> > >6 6 6
6 6 6 6 6r2   r  c                   l    e Zd Zd Zd Zd Zej                            dddg          d             Z	dS )	TestNormc                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S r  )rZ   r   r  r[  r  r6   r  r   r  s     r0   r  zTestNorm.test_nan_raises_error  <    HfffffbfEFFj%*.!44444r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S r  )rZ   r   r  r[  r  r6   r  r   r  s     r0   r  zTestNorm.test_inf_raises_error  r  r2   c                 \    g d}t          t          t          j        j        |d           d S )Nr  shrimp)plate)r[  r  r6   r  r   r  s     r0   test_bad_keyword_argzTestNorm.test_bad_keyword_arg  s,    IIi(CCCCCCr2   rk   r   r   c                     d}t           j                            d|z   d|z   |          }t          ||d           t           j                            d|z    d|z    |           }t          ||d           d S )Ngg	{F.:r  rQ  rk   r   r   )r6   r  
_delta_cdfr   )r_   rk   rT   rm  s       r0   test_delta_cdfzTestNorm.test_delta_cdf  s     )
%%bfbf#%>>xe4444
%%3i2c6%EExe444444r2   N)
r   r   r   r  r  r  r   r   r   r  r8   r2   r0   r   r     sv        5 5 5
5 5 5
D D D [UQF++
5 
5 ,+
5 
5 
5r2   r   c                       e Zd ZdZd Zd ZdS )TestUniformgh-10300c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S r  )rZ   r   r  r[  r  r6   r  r   r  s     r0   r  z!TestUniform.test_nan_raises_error  =    HfffffbfEFFj%-"3Q77777r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S r  )rZ   r   r  r[  r  r6   r  r   r  s     r0   r  z!TestUniform.test_inf_raises_error  r  r2   N)r   r   r   __doc__r  r  r8   r2   r0   r  r    s7        N8 8 8
8 8 8 8 8r2   r  c            
       D   e Zd Zd Zd Zd Zd Zej        	                    dg d          d             Z
ej        	                    dg d	g d
g dg dg dg          d             Zej        	                    dg dg dg dg dg dg dg          d             ZdS )TestExponNormc                 l   d }d\  }}}d||z  z  }t           j                             |||d          }t          | ||||                     d\  }}}d||z  z  }t           j                             |||d          }t          | ||||                     d\  }}}d||z  z  }t           j                             |||d          }t          | ||||                     d\  }}}d||z  z  }t           j                             |||d          }t          | ||||                     d S )	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 )NrO  r   rm   r   rS        @r   r8   )lamsigrZ  opK2exp_skewexp_kurts         r0   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Lr2   )r   r   r   rO  r  rL  )r  rm   rc   )r   r   r   )r  r  r7  )r6   	exponnormr   )r_   r  rZ  r  r  Kstss          r0   r%  zTestExponNorm.test_moments  sp   	M 	M 	M C39o##A2S&#IIC#sB!7!7888!C39o##A2S&#IIC#sB!7!7888C39o##A2S&#IIC#sB!7!7888"C39o##A2S&#IIC#sB!7!788888r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |dd           d S 	Nr  r  r  r  r  r   r   r=  )rZ   r   r  r[  r  r6   r  r   r  s     r0   r  z#TestExponNorm.test_nan_raises_error  D    HfffffbfEFFj%/"5qqKKKKKKr2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |dd           d S r"  )rZ   r   r  r[  r  r6   r  r   r  s     r0   r  z#TestExponNorm.test_inf_raises_error  r#  r2   c                 v   t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           d S )Ni|r   r     r   )r   r6   r  ro   r^   s    r0   test_extremes_xzTestExponNorm.test_extremes_x  s    EO//a88#>>>EO//a88#>>>EO//d;;SAAAEO//d;;SAAAAAr2   zx, K, expected))r  r   g6
N-)r   r   g՜n+H?)r   r   gi?)r  r   gbJI-)rf   r   gI8?)rf   r  gQ3|-0?c                 f    t          t          j                            ||          |d           d S r  )r   r6   r  ro   )r_   re   r  rT   s       r0   test_std_pdfzTestExponNorm.test_std_pdf  s1     	++Aq118%HHHHHHr2   zx, K, scale, expected)r   r   r   gVAҤ?)r  {Gzt?r   g'^>)r~  r   rg   r   )r~  r   r   gbr ;)r   r  r   gVMe?c                     t           j                            |||          }|dk    r
|dk    sJ d S t          ||d           d S )Nr   r   r   r   )r6   r  rv   r   r_   re   r  rl   rT   rq  s         r0   test_cdf_small_KzTestExponNorm.test_cdf_small_K   sU     O1E22s??888888Axe444444r2   )rf   r   r   ghG}$;)rm   r*  r   g]fJ?)r   r*  r   g31"g#;)rf   r*  r   gf
+-)r  r*  r   r   )r  r  r   ga9S?c                     t           j                            |||          }|dk    r
|dk    sJ d S t          ||d           d S )Nr   r   -a=r   )r6   r  r   r   r,  s         r0   test_sf_small_KzTestExponNorm.test_sf_small_K  sU     Oq!511s??888888Axe444444r2   N)r   r   r   r%  r  r  r'  r   r   r   r)  r-  r0  r8   r2   r0   r  r    s       9 9 96L L L
L L L
B B B$ [-B B BC CI IC CI [4>>>DDD444GGG???	AB B5 5B B5& [4BBB@@@DDDFFF333@@@BC C5 5C C5 5 5r2   r  c                       e Zd Zd Zd Zej                            dg d          d             Zej                            dg d          d             Z	dS )	TestGenExponc                     ddl m} t          j                            t          j        ddd          ddd          }t           ||d          dd           d S )	Nr   )simpsonrf   r   r   r   )dxr   )scipy.integrater4  r6   genexponro   rZ   r  r   )r_   r4  rq  s      r0   test_pdf_unity_areaz TestGenExpon.test_pdf_unity_area)  sd    ++++++NryB55sCEEGGA$///A66666r2   c                     t           j                            t          j        ddd          ddd          }t          j        d|k    |dk    z            sJ d S )Nr   rf   r   r   r   r   )r6   r7  rv   rZ   r  r   )r_   rv   s     r0   test_cdf_boundszTestGenExpon.test_cdf_bounds/  sT    n  1b$!7!7c3GGvqCxC1H-.......r2   zx, p, a, b, c))r:  gM <r   rm   r  )rg  g%DYY?r   rm   r   )rg  gS4z?      #@rm   r   )r   ga^5?r~  rg  r   )r  gs%)?r~  rg  r   )rt  gdm?rg  r   r   c                     t           j                            ||||          }t          ||d           t           j                            ||||          }t          ||d           d S r  )r6   r7  r   r   r  )r_   re   rq  r.   r/   r  r   r  s           r0   r  zTestGenExpon.test_sf_isf?  sj     ^q!Q**AE****n  Aq!,,QU++++++r2   ))rg  g;\i?r   rm   r   )rg  gu0?r;  rm   r   )r   g-%I?r~  rg  r   )r  g]d?r~  rg  r   )rt  g泩'?rg  r   r   c                     t           j                            ||||          }t          ||d           t           j                            ||||          }t          ||d           d S r  )r6   r7  rv   r   r   )r_   re   rq  r.   r/   r  rv   r   s           r0   r  zTestGenExpon.test_cdf_ppfM  sj     n  Aq!,,QU++++n  Aq!,,QU++++++r2   N)
r   r   r   r8  r:  r   r   r   r  r  r8   r2   r0   r2  r2  (  s        7 7 7/ / /  [_I I IJ J, ,J J, [_J J JK K, ,K K, , ,r2   r2  c                       e Zd Zd ZdS )TestTruncexponc                     ddg}ddg}ddg}t          t          j                            ||          |d           t          t          j                            ||          |d	           d S )
Nr  rg   g_93@gBX@g,M<gǃ@֫5gLa㧝=r   r  )r   r6   
truncexponr   r  )r_   r/   re   r  s       r0   r  zTestTruncexpon.test_sf_isf\  sx     I	"%'=>(++Aq113WEEEE(,,S!44aeDDDDDDr2   N)r   r   r   r  r8   r2   r0   r?  r?  Z  s(        E E E E Er2   r?  c                       e Zd Zd ZdS )TestExponpowc                     t          t          j                            dd          d           t          t          j                            t          j                            dd          d          d           d S )Nr  r   r  r   r   )r   r6   exponpowrv   r  r   r^   s    r0   r  zTestExponpow.test_tailg  si    EN..ub995AAAEN..u~/@/@B/G/GLL	 	 	 	 	r2   N)r   r   r   r  r8   r2   r0   rC  rC  f  s#            r2   rC  c                        e Zd Zd Zd Zd ZdS )TestSkellamc                     t          j        dd          }d\  }}t          j        g d          }t          t          j                            |||          |d           d S )Nrh  r:  r  )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~?rR  )rZ   r  r   r   r6   skellamrK  )r_   rb   mu1mu2skpmfRs        r0   re  zTestSkellam.test_pmfn  sm    Ic2S- - -. . 	EM--ac::FBOOOOOOr2   c                     t          j        dd          }d\  }}t          j        g d          }t          t          j                            |||          |d           d S )Nrh  r:  r  )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   rR  )rZ   r  r   r   r6   rI  rv   )r_   rb   rJ  rK  skcdfRs        r0   rW  zTestSkellam.test_cdf  sm    Ic2S- - -. . 	EM--ac::FANNNNNNr2   c                     d\  }}}t          t          j                            |||          dd           t          t          j                            |||          dd           d S )N)r   r   gs1Cr   r~  r   r   )r   r6   rI  rK  rv   )r_   re   rJ  rK  s       r0   test_extreme_mu2zTestSkellam.test_extreme_mu2  se    .3))!S#66FFFF))!S#66FFFFFFr2   N)r   r   r   re  rW  rP  r8   r2   r0   rG  rG  m  sL        P P P*O O O*G G G G Gr2   rG  c                      e Zd Zd Zd Z ej        d          d             Zej        	                    dddg          ej        	                    d	g d
          ej        	                    dg d          ej        	                    dd  e
dd          D                        ej        d          d                                                             Zd ZdS )TestLognormc                     t          j                    5  t          j        dt                     t          j                            g dd          }t          |g d           d d d            d S # 1 swxY w Y   d S )Nrn  r   r   r   r   )r   g~r?g e3E?)rr  rs  rt  ru  r6   r(  ro   r   r_   ro   s     r0   rM  zTestLognorm.test_pdf  s     $&& 	J 	J!'>:::-##KKK33C%c+H+H+HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   AA00A47A4c           	         d\  }}}t          t          j                            ||z
  |          t          j                            t          j        ||z
            |z                       t          t          j                            ||z
  |          t          j                            t          j        ||z
            |z                       d S )N)g(\5i@   gOn?rJ   )r   r6   r(  r   r  rZ   r  r  )r_   rp  rZ  sigmas       r0   r  zTestLognorm.test_logcdf  s    *B((B%(88
bfRUmmE&9::	< 	< 	<++BrEU+;;
((2u)<==	? 	? 	? 	? 	?r2   r  r  c                 @    t           j                            d          S r  r  r^   s    r0   r]   zTestLognorm.rng  r  r2   r   rc   rm   r   )r   r   rm   r7  )rL  r   r   r  c                     g | ]}d |v |	S r  r8   )r>   es     r0   r@   zTestLognorm.<listcomp>  r  r2   )FTr   r  r  r  c                     t           j                            d||||          }i }	|r||	d<   |r||	d<   |r||	d<   t          t           j        |fi |	ddi d S )Nrg   )r   rK   rl   rk   r   r   r   r   r  T)r6   r(  r   r   r  s
             r0   r   z'TestLognorm.test_fit_MLE_comp_optimizer  s     }  cYi%,3 ! @ @  	#"DJ 	#"DL 	'&DN 	&emT 	< 	<T 	< 	<6:	< 	< 	< 	< 	< 	<r2   c                 z    d}g d}g d}t          t          j                            ||          |d           d S )NgI+?)rc   绽|=gҶOɃ;gk3;9"7)g?y+@g~K8ax@gƶ@g9]Ar  r   )r   r6   r(  r  )r_   rK   rz  r  s       r0   r  zTestLognorm.test_isf  sR    
 &&&# # #))!Q//5AAAAAAr2   N)r   r   r   rM  r  r   r  r]   r   r   r%   rZ   r  r   r  r8   r2   r0   rR  rR    sP       J J J? ? ? V^*%%%+ + &%+ [[2q'22[Y


33[[***55[<- -q)I)I)I - - -. . R["""< < #". . 65 43 32<$	B 	B 	B 	B 	Br2   rR  c                       e Zd Zd Zd Zd Zd Zej        	                    e
d          d             Zej        	                    e
d          d             Zej        	                    e
d          d	             Zd
 Zd Zej                            dej        j        ej        j        g          ej                            dddg          d                         Zej                            dddg          d             Zej                            dddg          d             Zej                            dg d          d             Zej                            dg d          d             Zd ZdS ) TestBetac                     t           j                            ddd          }t          |d           t           j                            ddd          }t          |t          j                   d S )Nr   r   r   g;B.)r6   r  r   r   rZ   r  r_   r   s     r0   r  zTestBeta.test_logpdf  s\    ""1a--FN333""1c1--FBF+++++r2   c                 `   d\  }}t          j        g d          }t          j        ||          }t	          |                    |                                          d           t	          |                    |          t          j        |                    |                               d S )Ni  i  rL  r   r  gƒ)	rZ   r   r6   r  r   r   rh  ro   r   r_   r  r  re   r/   s        r0   test_logpdf_ticket_1866z TestBeta.test_logpdf_ticket_1866  s    tH___%%Jud##))+=>>>a"&!"5"566666r2   c                 `    g d}t          t          t          j        j        |ddd           d S )Nrc   r   r  r   r   r  )r   r   r  )r[  r  r6   r  r   r  s     r0   test_fit_bad_keyword_argsz"TestBeta.test_fit_bad_keyword_args  s=    OOi1$	& 	& 	& 	& 	& 	&r2   c                 ^    g d}t          t          t          j        j        |dd           d S )Nri  r   )fafix_a)r[  r  r6   r  r   r  s     r0   #test_fit_duplicated_fixed_parameterz,TestBeta.test_fit_duplicated_fixed_parameter  s0     OOj%*.!3GGGGGGr2   zOverflow, see gh-14901reasonc                 p    d\  }}}t          t          j                            |||          d           d S )N)g?rV  g   0xAgx)>)r   r6   r  r   )r_   rq  r.   r/   s       r0   test_issue_12635zTestBeta.test_issue_12635  s8     71a
q!Q//1FGGGGGr2   c                 >   t          j        g d          }t          j        g d          }d}t          j                            ||dz   d|z
            }t          ||           t          j                            ||dz   d|z
            }t          ||           d S )N)g@3@?g^?gNC?)rf   rg   r   r  r   r   )rZ   r   r6   r  r  r   r   )r_   inv_R
count_listrq  invr   s         r0   test_issue_12794zTestBeta.test_issue_12794  s      1 1 1 2 2 Xooo..
jnnQ
Q0CDDU###jmmCa*1DEEQr2   c                     d}t          j        dd          }d}d|z
  |dz   ||z
  }}}t          j                            |||          }t          j                            |||          }t          |d|z
             d S )Nh㈵>r   r  r   )rZ   r  r6   r  r   rv   r   )	r_   alpha_2count_nobsrz  r.   r/   rv  r   s	            r0   test_issue_12796zTestBeta.test_issue_12796  s     1b!!g+vz4&=a1jnnQ1%%jnnS!Q''Q[)))))r2   c                    d\  }}t          t          j                            d||          t          j                   d\  }}t          t          j                            d||          t          j                   d\  }}t          t          j                            d||          d           t          t          j                            d||          d           d\  }}t          t          j                            d||          d           t          t          j                            d	||          d           d S )
Nr  r   )rL  r   r   )r   r   r   +ph  )r   r   rO  )r   r6   r  ro   rZ   r  )r_   r.   r/   s      r0   r  zTestBeta.test_endpoints  s    1UZ^^Aq!,,bf555 1UZ^^Aq!,,bf555 1UZ^^Aq!,,a000UZ^^FAq111555 1UZ^^Aq!,,a000UZ^^Ha33Q77777r2   c                 T    d\  }}}t           j                            |||           d S )N)gףp=
?g   vH7B  @0B)r6   r  r   )r_   rz  r.   r/   s       r0   test_boost_eval_issue_14606z$TestBeta.test_boost_eval_issue_146064  s+    '1a
q!Qr2   r  a, b)r        )@)r  r  c                 H    d}	  ||||           d S # t           $ r Y d S w xY w)Nr   )OverflowError)r_   r  r.   r/   rq  s        r0    test_beta_ppf_with_subnormal_a_bz)TestBeta.test_beta_ppf_with_subnormal_a_b8  sG    
 
	F1aOOOOO 	 	 	 DD	s    
!!zx, a, b, ref)r  r  r~  g>׵NlIq)&.!>r  r~  g'rOc                 l    t           j                            |||          }t          ||d           d S r  )r6   r  r  r   r_   re   r.   r/   r  r  s         r0   r  zTestBeta.test_logcdfQ  s8     ""1a++%000000r2   )r  r  r~  gp}^U)rq  r  r~  g
1*c                 j    t           j                            |||          }t          ||d           d S )Nr  )r6   r  r  r   r_   re   r.   r/   r  r  s         r0   r  zTestBeta.test_logsfY  s5     
  Aq))sE*****r2   r  ))r   r   gο)r  r   g )r   r  g&׾k )r   r   g*)Mc                 p    t          t          j        ||                                          |           d S rz   r   r6   r  rE   r  s       r0   rl  zTestBeta.test_entropyj  s2     	
1a((0022C88888r2   za, b, ref, tol))r   rf   gCpr  )rf   r  g8EOr   )g    NAg    NAg(4Fr  )    SAg   SAg8TAUr(  )r  g   _Bg[VVuD&r  )rQ  rQ  gR#Lr   )rm   r  g?r5r  )rm   r  <Fr  )rm   rQ  guRTc\r  )r   r  gL4r  )r   r  6Er  )r   rQ  g.fq>\r  )rf   r  gnQc}4r  )rf   r  g{C Er  )rf   rQ  %\r  )r  rm   r  r  )r  r   r  r  )rQ  rf   r  r  c                 t    t          t          j        ||                                          ||           d S r  r  )r_   r.   r/   r  rS  s        r0   r  zTestBeta.test_extreme_entropyr  s8    H 	
1a((0022CcBBBBBBr2   c           
      p   t          j        t           j                  }t          j        g d          }t          j        g d          } |||                                          }t          j         ||d         |d                                                    ||d         |d                                                    ||d         |d                                                    ||d         |d                                                   g          }t          ||           d S )N)r  rg   r  rf   )r  r  rg   r  r  r   r   rm   r   )r6   make_distributionr  rZ   r   rE   r   )r_   Betar.   r/   r   r  s         r0   test_entropy_broadcastingz"TestBeta.test_entropy_broadcasting  s$    &uz22J***++J***++dQ!nnn$$&&j$$11...6688$11...6688$11...6688$11...6688: ; ; 	S!!!!!r2   N)r   r   r   r  rg  rj  rn  r   r   skipifMACOS_INTELrr  rw  r}  r  r  r   r6   r  r   r  r  r  r  rl  r  r  r8   r2   r0   r`  r`    s       , , ,7 7 7& & &
H H H [,DEE	H 	H FE	H [,DEE    FE " [,DEE	* 	* FE	*8 8 8.      [X

'GHH[Vnn%EFF  GF IH. [^GCEF F1 1F F1
 [^GEGH H+ +H H+ [[D D DE E
9 9E E
9 [	
 	
 	
 .C C/ .C" " " " "r2   r`  c                   x   e Zd Zg dZd Zd Zej                            dg d          d             Z	ej                            de          d             Z
d	 Zej                            d
eg dz             d             Zej                            d
ddg          d             Zd Zd Zd Zd Zd ZdS )TestBetaPrime))r        Y@rA  D>?)r  r  rA  m嗽?)r   rA  rc   gPK?)r   r  rA  g%p?)r  rA  rc   g#|/?)r  r  r  gsM
<)r  rA  r  $5Є*?)^ 9^;rA  rc   gompP?)r  r  r  g7j"!9)r  rA  r  z^J?)r  rA  rc   gܷ"+>)r  r  r  grNs: )r  rA  r  gK>c                    d\  }}t          j        g d          }t          j        ||          }t	          t          j        |                    |                                                               t          |	                    |          t          j
        |                    |                               d S )Nrd  re  )rZ   r   r6   r   r	   rC  r   r   r   ro   r   rf  s        r0   r  zTestBetaPrime.test_logpdf  s    tH___%%OE4((AHHQKK((,,..///a"&!"5"566666r2   c                    t           j                            ddd          }t          |d           d\  t	          j        g d          }t           j                            |          }t          t	          j        |                                                     t           j	        j
        fd|D             }t          ||dd	           d S )
Nr   rL  ry  r   rd  re  c                 @    g | ]} t           j        |          S r8   )r6   r   )r>   rD  r  r  gen_cdfs     r0   r@   z*TestBetaPrime.test_cdf.<locals>.<listcomp>  s+    JJJ''%/3t<<JJJr2   -=ri  )r6   r   rv   r   rZ   r   r	   rC  r   rC   _cdf_singler   )r_   re   r  cdfs_gr  r  r  s       @@@r0   rW  zTestBetaPrime.test_cdf  s     O3,,QtH___%%""1eT22D!!%%''((( %1JJJJJJJJJf15999999r2   zp, a, b, expected))r   r  r~  gV)?)r  r  r~  gWJB9*=)r3  r  r~  gOG J<)r  rg        @gΣ01)      ?rg  r  g8ǘ`?)>q?rA  rc   gMDc                 l    t           j                            |||          }t          ||d           d S r  )r6   r   r   r   )r_   rq  r.   r/   rT   re   s         r0   r  zTestBetaPrime.test_ppf  s8     O1a((8%000000r2   z
x, a, b, pc                 h    t          t          j                            |||          |d           d S r  )r   r6   r   r   )r_   re   r.   r/   rq  s        r0   test_ppf_gh_17631zTestBetaPrime.test_ppf_gh_17631  s1    ++Aq!44aeDDDDDDr2   c                     t          j        d          }t          j        d          }t          j        d          }t          t          j                            |||          dd           d S )NrO  r   r  r   )rZ   r   r   r6   r   _ppf)r_   r.   r/   rq  s       r0   	test__ppfzTestBetaPrime.test__ppf  sX    HSMMHSMMHSMM,,Q155sGGGGGGr2   zx, a, b, expected))r  r  r  r  )r  rA  rc   gV[?)r  rA  rc   r  c                 h    t          t          j                            |||          |d           d S r  )r   r6   r   rv   )r_   re   r.   r/   rT   s        r0   test_cdf_gh_17631zTestBetaPrime.test_cdf_gh_17631  s3     	++Aq!44hUKKKKKKr2   )rQ  rA  rc   g%?)rQ  r  rA  goXr?c                 |    t           j                            |||          }|dk     sJ t          ||d           d S )NrO  gh㈵>r   )r6   r   rv   r   )r_   re   r.   r/   rT   r.  s         r0   test_cdf_extreme_tailsz$TestBetaPrime.test_cdf_extreme_tails  sE     O1a((3wwww8$//////r2   c                     g d}g d}g d}g d}t           j                            |||          }t          ||d           d S )N)r   r   rm   rA  rA  rA  rA  r  r  rA  rA  rA  r  r  )r   rm   r   rc   rc   rc   rc   rA  rA  r  r  r  r  r  )r  r  ꌠ9Y>)Fr  r  r  r  r  r  r  r  r  r  r  )g/:g  U/7gKH9g<![a?gw 4?g)J?g5?r  r  r  r  g%?gsM
<r  r  r   )r6   r   r   r   )r_   r.   r/   re   r  	sf_valuess         r0   r  zTestBetaPrime.test_sf  s|        0 0 0; ; ;
 O&&q!Q//		3U333333r2   c                 |    d}d}d}d}t           j                            |||          }t          ||d           d S )Nr~   r   rP  gg%`ʼr  r   )r6   r   r  r   r  s         r0   r  zTestBetaPrime.test_logcdf+  sJ    $''1a00%000000r2   c                 |    d}d}d}d}t           j                            |||          }t          ||d           d S )Nr(  r5  r   g9;ЋVr  r   )r6   r   r  r   r  s         r0   r  zTestBetaPrime.test_logsf3  sJ    %%%aA..s//////r2   c                     t           j                            g ddd           t          j        dd                               d           d S )N)rc   rg  ry  rt  皙?r   r   r=  r  r  )r6   r   r   r^   s    r0   test_fit_stats_gh18274z$TestBetaPrime.test_fit_stats_gh18274<  sQ     	666QqIII!q!!!''/////r2   c                     t           j        dg}t          j        dddg                              d          }t          ||           d S )NgooB?rm   r  gffffff@r   )rZ   r  r6   r   r  r   )r_   r  r   s      r0   test_moment_gh18634z!TestBetaPrime.test_moment_gh18634C  sJ     v()oa#s,,33A66S!!!!!r2   N)r   r   r   cdf_valsr  rW  r   r   r   r  r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r    s         H 7 7 7: : :> [	B 	B 	B 1 1 1 [\844E E 54EH H H [ 
 
 
 	
 L L L [	.	/	12 20 0	2 204 4 4*1 1 10 0 00 0 0	" 	" 	" 	" 	"r2   r  c            
       t   e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             Ze	j
                            dg d          d             Ze	j
                            dg d          e	j
                            dg d          e	j
                            dg d          e	j
                            dddg          e	j
                            dddg          e	j
                            dddg          d                                                                         ZdS )	TestGammac                     t           j                            ddd          }t          |d           t           j                            ddd          }t          |d           d S )	NZ   i  rL  r   g
CTb?r   rf   gBΖ?)r6   r  ro   r   rU  s     r0   rM  zTestGamma.test_pdfP  sZ    koob#To22C---kooa4o00C+++++r2   c                 f    t           j                            dd          }t          |d           d S r  )r6   r  r   r   rb  s     r0   r  zTestGamma.test_logpdfX  s1     ##Aq))FA&&&&&r2   c                 ^    g d}t          t          t          j        j        |dd           d S )Nri  r   r  )r   r  )r[  r  r6   r  r   r  s     r0   rj  z#TestGamma.test_fit_bad_keyword_args^  s.    OOi!!8LLLLLLr2   c                     t          j        t          j                            dd          dd          sJ t          j        t          j                            dd          dd	          sJ d S )
Nr  r   gplC@r  r   r  rg   g1}t@r   )rZ   iscloser6   r  r  r^   s    r0   r  zTestGamma.test_isfb  s    " z%+//%33+%9 9 9 	9 	9 	9z%+//%55+%9 9 9 	9 	9 	9 	9 	9r2   c                 v    d}d}d}t           j                            ||          }t          ||d           d S )NP   r  gޟ򑁺r  r   )r6   r  r  r   r  s        r0   r  zTestGamma.test_logcdfx  sC    $##Aq))%000000r2   c                 v    d}d}d}t           j                            ||          }t          ||d           d S )Nr  r  gDmr  r   )r6   r  r  r   r  s        r0   r  zTestGamma.test_logsf  sC    %!!!Q''s//////r2   rl   rO  rP  c                 |    t           j                            |dz  |dz  d|          }t          |dd           d S )N   r  r   r   g>S*r   r   )r6   r  r
  r   r_   rl   rm  s      r0   r  zTestGamma.test_delta_cdf  sF     &&uSy%)Qe&LL6UCCCCCCr2   za, ref, rtol))r  gt.r   )rm   r  r   )rg   gX>k-־@r   )r  gwM7@r   )g NgmCg%og$6@r   )r  oܘ#]@r   c                 d    t          t          j                            |          ||           d S r  )r   r6   r  rE   )r_   r.   r  r   s       r0   rl  zTestGamma.test_entropy  s/     	++A..$??????r2   r.   )r   r   r  rk   )r   r   r  rm  TFr   r9  c                 H   t           j                            d          }t          j                            |||d|          }i }	|r||	d<   |r||	d<   |r||	d<   dt          |	          z
  }
|
dk    rPd	}t          j        t          |
          5  t          j        j
        |fddi|	 d d d            n# 1 swxY w Y   d S t          j        j
        |fddi|	}t          j        | }|
dk    r4t          |                                t          j        |                     |
dk    r8t          |                    d          t          j        |dz                       |
dk    r:t          |                    d          t          j        |dz                       d S d S )Nr   rg   r<  rl  r   r   r   r   r  r  r  r  r   rm   )rZ   r[   r\   r6   r  r   r  r   r   r  r   r   r   r  )r_   r.   rk   rl   rm  r   r9  r]   r   r   r  r@  thetar?   s                 r0   test_fit_mmzTestGamma.test_fit_mm  s    i##$788{qcS,/  1 1  	DJ 	DL 	#"DNCIIA::MIz;;; ; ;::T:T:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;F::T:T::{E"A::DIIKK777A::DKKNNBGD!G,<,<===A::DKKNNBGD!G,<,<===== :s   B66B:=B:N)r   r   r   rM  r  rj  r  r  r  r   r   r   r  rl  r  r8   r2   r0   r  r  O  s       , , ,' ' 'M M M9 9 9,1 1 10 0 0 [WsCj11D D 21D [^B B BC C@ @C C@ [S...11[UNNN33[Wnnn55[WtUm44[Yu66[[4-88> > 98 76 54 65 43 21> > >r2   r  c                      d} t          j        d| dz  z  d| dz  z  dd          }t          |                    d          d           d S )	Nr  g;f?rm   r   r   rj   rO  gV{q@)r6   r  r   ro   )jitterZs     r0   test_pdf_overflow_gh19616r    sT     F6FAI-q619}!1MMMAAEE#JJ 122222r2   c                       e Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d	             Z	d
 Z
dS )
TestDgammac                    t           j                            d          }d}|                    d|          }|                    d|          }t
          j                            ||          }t
          j                            t          j	        |          |          dz  }t          ||           t          j        |          }t          |                    |          |d           d S )Nl   OP($ rf   rl   r   )r  r   rm   r  r   )rZ   r[   r\   normalr  r6   dgammaro   r  r   r   )r_   r]   r   re   r.   r   r  r?   s           r0   rM  zTestDgamma.test_pdf  s    i##$788JJRdJ++KKRdK++lq!$$koobfQii++a/S!!!|ASu555555r2   zx, a, expected))r  r   ggrU>)r  r   g$IC<)ir   g2Wj<)rt  g~)A.=)r   r   gf?c                    t           j                            ||          }t          ||d           t           j                            ||          }t          ||d           t           j                            | |          }t          ||d           t           j                            ||          }t          || d           d S r  )r6   r  rv   r   r   r   r  )r_   re   r.   rT   rv   r   r   r  s           r0   test_cdf_ppf_sf_isf_tailz#TestDgamma.test_cdf_ppf_sf_isf_tail  s     lq!$$XE2222lx++QU++++\__aR##H51111lx++aRe,,,,,,r2   r	  ))r  gmqn @)?g?)r  gx?c                 d    t          t          j                            |          |d           d S r  r   r6   r  rE   r  s      r0   rl  zTestDgamma.test_entropy  s/      	,,Q//5AAAAAAr2   ))r  r  )r  g>_)r6  g5i)r  go@)r  g4Fa3@)r  grO]@c                 d    t          t          j                            |          |d           d S r  r  r  s      r0   test_entropy_entreme_valuesz&TestDgamma.test_entropy_entreme_values  s/    " 	,,Q//5AAAAAAr2   c                    t          j        g d          }t          j                            |          }t          t          |                    D ]3}||         t          j                            ||                   k    sJ 4d S )N)r   r   r  r6  )rZ   r   r6   r  rE   r  r  )r_   re   r.  r  s       r0   test_entropy_array_inputz#TestDgamma.test_entropy_array_input!  s~    H'''((L  ##s1vv 	6 	6AQ45<//!5555555	6 	6r2   N)r   r   r   rM  r   r   r   r  rl  r  r  r8   r2   r0   r  r    s        6 6 6, [-: : :; ;- -; ;- [X8 8 89 9B B	9 9B [X: : :; ;
B 
B; ;
B6 6 6 6 6r2   r  c                      e Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zd Z	ej                            dg d	          d
             Z
d ZdS )TestChi2c                     t          t          j                            dd          dd           t          t          j                            dd          dd           d S )Nr   gޞw1D?r*  rR  rg   g6:֜?r   r6   chi2ro   r^   s    r0   r  zTestChi2.test_precision+  sj    EJNN4668N$&	( 	( 	( 	(EJNN3446J$&	( 	( 	( 	( 	( 	(r2   rU  ))g     p@r   g~#e)g      ^@r:  gtA)r  r  gzĀ׿c                 j    t           j                            ||          }t          ||d           d S r  )r6   r  r  r   )r_   re   r  r  r  s        r0   r  zTestChi2.test_logcdf2  s6     ""1b))%000000r2   ))r  r:  r  )r  rx  gc)r  rf   g]3c                 j    t           j                            ||          }t          ||d           d S r  )r6   r  r  r   )r_   re   r  r  r  s        r0   r  zTestChi2.test_logsf=  s6     
  B''s//////r2   c                    d}t           j                            d|          }t          |dd           t           j                            d|          }t          |dd           d}t           j                            d	|          }t          |d
d           t           j                            d|          }t          |dd           d S )Nr7  gλm:=6g'bd5 <r  r   r   gQ8@r  gܐ؆0guu[9=rc   g8-*@)r6   r  r   r   )r_   r  re   s      r0   r  zTestChi2.test_ppfG  s    JNN5"%%<5IIIIJNN3##7eDDDDJNN5"%%:GGGGJNN3##8uEEEEEEr2   r  ))r  gܫ>)r   gƯʉ?)rg   gn>@)   g͔v0@)r  g9:3@c                 r    t          t          j        |                                          |d           d S r   )r   r6   r  rE   r  s      r0   rl  zTestChi2.test_entropy_  s3     	
2..00#EBBBBBBr2   c                 d    t          t          j                            dd          dd           d S )Nr   rm   r   r*  r  r^   s    r0   test_regression_ticket_1326z$TestChi2.test_regression_ticket_1326h  s*    EJNN322C<<<<<r2   N)r   r   r   r  r   r   r   r  r  r  rl  r  r8   r2   r0   r  r  (  s       ( ( ( [	+ 	+ 	+ 1 1 1
 [	+ 	+ 	+ 0 0 0F F F0 [Y: : :; ;C C; ;C= = = = =r2   r  c                   r    e Zd Zd Zd Zd Zd Zej        	                    dddg          d             Z
d	S )
TestGumbelLc                 N    t           j                            d          | _        d S )Nl   >S rY   r^   s    r0   r`   zTestGumbelL.setup_methodn  ra   r2   c                     t          j        dd          }t          j                            |          }t          j                            |          }t          ||           d S Nr  r  )rZ   rT  r6   r  rv   r   r   r`  s       r0   r  zTestGumbelL.test_cdf_ppfr  sS    Kb!!Nq!!^""2r2   c                    t          j        dd          }t          j                            |          }t          j                            |          }t          j        |          }t          j        |           }t          ||           d S r  )
rZ   rT  r6   r  r  r  r   r   expm1r   )r_   re   r.  r  ur  s         r0   r  zTestGumbelL.test_logcdf_logsfx  sr    Kb!!N!!!$$N  ##F1II]11r2   c                     t          j        dd          }t          j                            |          }t          j                            |          }t          ||           d S )Nr  r   )rZ   rT  r6   r  r   r  r   r`  s       r0   r  zTestGumbelL.test_sf_isf  sS    KQNa  ^""2r2   rk   r   r   c                     t           j                            d|| j                  }t           j                            ||          \  }}t          ||           d S )Nrg   r   r   )r6   r  r   r]   r   r   )r_   rk   r   
fitted_locr   s        r0   test_fit_fixed_paramz TestGumbelL.test_fit_fixed_param  sV     ~!!s$(!KK**4c*::
AZ%%%%%r2   N)r   r   r   r`   r  r  r  r   r   r   r   r8   r2   r0   r  r  m  s        5 5 5       [URG,,& & -,& & &r2   r  c                       e Zd Zd Zd ZdS )TestGumbelRc                 d    t          t          j                            d          dd           d S )Nr8  ?~T}%m;r  r   )r   r6   r  r   r^   s    r0   r  zTestGumbelR.test_sf  s=     	))"--/E"	$ 	$ 	$ 	$ 	$ 	$r2   c                 d    t          t          j                            d          dd           d S )Nr  r  r  r   )r   r6   r  r  r^   s    r0   r  zTestGumbelR.test_isf  s=     	**5113D"	$ 	$ 	$ 	$ 	$ 	$r2   N)r   r   r   r  r  r8   r2   r0   r  r    s2        $ $ $$ $ $ $ $r2   r  c                   	   e Zd 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
                            d ej        d	           ej        d
ej
        j                  g          ej
                            dddg          ej
                            dg d          ej
                            dddg          d                                                             Zej
        j        ej
                            dddg          d                         Zd Zej
                            d          ej
                            dddg          ej
                            dddg          d                                      Zd! Zd" Zd# Zej
        j        e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d0          ej
        j                  g          d1                         Ze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d0          ej
        j                  g          d2             Zej
                            d3d4dg          ej
                            d5d6d7g          d8                         Zej
                            d9d:d;gd<d;gg          d=             Zej
                            d>d?d4ej        ej        ej        fgd@dAgg          dB             Zej
                            dCg dD          ej
                            dEe j!        j"        dF ej        dGd4dH          dIfe j!        j#        dF ej        dGd4dH          dIfe j!        j"        dJ ej        d4dKdH          dFfe j!        j#        dJ ej        d4dKdH          dIfg          dL                         Z$ej
                            dMg dN          dO             Z%ej
        j        ej
                            dMg dP          dQ                         Z&ej        dR             Z'dS Z(dT Z)dUS )VTestLevyStablec                 N    t           j                            d          | _        d S )Nl   Y rY   r^   s    r0   r`   zTestLevyStable.setup_method  ra   r2   T)autousec                     dt           j        _        dt           j        _        dt           j        _        t           j        j        t           j        _        dS )z2Setup default parameters for levy_stable generatorS1	piecewiseN)r6   r  parameterizationcdf_default_methodpdf_default_method_levy_stable	_QUAD_EPSquad_epsr^   s    r0   reset_levy_stable_paramsz'TestLevyStable.reset_levy_stable_params  s<     .2*/:,/:,%*%7%A"""r2   c                     t          j        t          t                    j        dz            }t           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  rZ   r  r   r  r  r  r  Try  s     r0   nolan_pdf_sample_dataz$TestLevyStable.nolan_pdf_sample_data  sM    6 wNN!<=
 
 v  /C DDr2   c                     t          j        t          t                    j        dz            }t           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.npyr  r  r  ry  s     r0   nolan_cdf_sample_dataz$TestLevyStable.nolan_cdf_sample_data  sN    J wNN!<=
 
 v  /C DDr2   c                 b    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)rZ   r  r   r  r  ry  s     r0   nolan_loc_scale_sample_dataz*TestLevyStable.nolan_loc_scale_sample_data  s1     wNN!?@
 
 r2   sample_sizer8  r@  marksr  S0r  z
alpha,beta))rO  r   )rO  r   )r  r   )r'  r   zgamma,deltar   r   r{  c                     |t           j        _        t          j        ||||          }t          j        |                    || j                  |j                  \  }}	|	dk    sJ d S )N)r  r  rl   rk   r   rA  )r6   r  r  rD  r   r]   rv   )
r_   r  r  r  r  rm  r  lsr   rq  s
             r0   rE  zTestLevyStable.test_rvs  sr    ( .>*d%U
 
 
 |FF$(F;;RV
 
1 4xxxxxxr2   r  r   r   c                     d}d}d}t           j                            ||||d| j                  }t          j        |d||||f          \  }}|dk    sJ d	S )
z3Additional test cases for rvs for alpha equal to 1.rO  r   r  r  r<  r  rW  r   N)r6   r  r   r]   rD  )r_   r  r  rk   rl   re   statrq  s           r0   test_rvs_alpha1zTestLevyStable.test_rvs_alpha1*  s|     !!%3e'+$( " D D,q-%*D#u$=? ? ?a4xxxxxxr2   c                    g d}t           j                            |          \  }}}}t          |ddd           t	          |dd           t	          |dd	           t	          |d
d           |g dz   }t           j                            |          \  }}}	}
t          |d           t          |d           t	          |
dd	           t	          |	dd	           d S )N)wgr(  r   r   r   r   羼 u?r)  r)  r)  r)  67',?r*  r*  r*  r*  tA}˜.?r+  r+  r+  r+  Gz?r   r   ra  )\(̿rm   gۧ1?r   g9]c?)r+  r+  r+  r+  r+  r   gv?r*  )r6   r  rq  r   r   r   r_   re   alpha1beta1loc1scale1rp  alpha2beta2r  r  s              r0   rv  zTestLevyStable.test_fit7  s   
 
 

 ',&7&A&A!&D&D#tV148888E4+++FGQ///'1	
 	
 	

 9999&+&7&A&A"&E&E#tVVQUBFFA...D&!,,,,,r2   zUnknown problem with fitstart.ro  zalpha,beta,delta,gamma)r  r  rm   r   )rO  r  rm   r   parametrizationc                     |t           j        _        t           j                            ||||d| j                  }t           j                            |          }|\  }}	}
}t          ||||g||	|
|gd           dS )z7Test that fit agrees with rvs for each parametrization.r  r<  r   r   N)r6   r  r5  r   r]   rq  r   )r_   r  r  rm  r  r5  r   r   	alpha_obsbeta_obs	delta_obs	gamma_obss               r0   test_fit_rvszTestLevyStable.test_fit_rvsO  s     -<) $$4U%e$( % 
 
 ))$//471	8Y	D%')Y7	
 	
 	
 	
 	
 	
r2   c                 x   t          j        g d          }t          j                            |          \  }}}}t          j                            |           \  }}}}	t          |d           |dk    sJ t          ||           t          ||            t          ||            t          |	|           d S )Nr   r   r   r   rf   rf   rf   r6  r6  rg   rg   r   r   )rZ   r   r6   r  rq  r   r   )
r_   re   r/  r0  r1  r2  r3  r4  r  r  s
             r0   test_fit_beta_flipz!TestLevyStable.test_fit_beta_fliph  s    H???@@&+&7&A&A!&D&D#tV&+&7&A&A1"&E&E#tVUAqyyyyFF+++EE6***D4%(((FF+++++r2   c                 V   d}t          j        g d          }t          j                            |           \  }}}}t          j                            | |z             \  }}}	}
t          ||           t          ||           t          |	||z              t          |
|           d S )Nr   r=  )rZ   r   r6   r  rq  r   )r_   SHIFTre   r/  r0  r1  r2  r3  r4  r  r  s              r0   test_fit_delta_shiftz#TestLevyStable.test_fit_delta_shiftt  s    H???@@&+&7&A&A1"&E&E#tV&+&7&A&A1"u*&M&M#tVFF+++E5)))D$,///FF+++++r2   c                    g d}t           j                            |          \  }}}}|dk     sJ d|             |t          |          k     sJ dt          |           d|             g d}t           j                            |          \  }}}	}
|dk    sJ d|             |	t	          |          k    sJ dt	          |           d|	             d S )	N)r   r   r   r   rf   rf   rf   r6  r6     rC  r   zExpected alpha < 1, got zExpected loc < z, got )r   r   r   r   rf   rf   rf   r6  r6     rD  zExpected alpha > 1, got zExpected loc > )r6   r  rq  r  r  r.  s              r0   test_fit_loc_extrapz"TestLevyStable.test_fit_loc_extrap  s    666&+&7&A&A!&D&D#tVzzz>f>>zzzc!ff}}}DADDdDD}}}777&+&7&A&A"&E&E#tVzzz>f>>zzzc"gg~~~FRFFFF~~~~~r2   z pct_range,alpha_range,beta_range)r   r   r  )rc   r   rm   )r   r   r   )r   rA  r   rA  r  )rc   r   r   r  rm   )gr   r   ry  r  r   )r   rA  rc   rg  ffffff?r   ?r   r   rA  r  rc   rm   r  r   r  c                    |}t          j                    }|j        dk    o
|j        dk    d                    |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 ]\  }	\  }
}}|
t          j        _	        || ||                   n|}d}t          j                    5  t          j        d|t                     t          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           n# 1 swxY w Y   ||d         |k    t          j        |          z           }d|	 d |
 d!| d"|j        j         d#| 
}t-          ||d         ||d$%           ddd           n# 1 swxY w Y   dS )&z2Test pdf values against Nolan's stablec.exe outputLinuxi686/dnir(  c           	      r   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   r   r   r  r  r   r  ry  rA  rA  rL  rc   rg  r   )r   r  r  rF  rG  )gٿ333333ӿry  r  r   rO  rO  rc   rL  ry  r  )r   r   rO  r"  r  )rZ   isinr   r  alpha_range
beta_range	pct_ranges    r0   rL   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s   GAeHi00GAgJ445GAfIz223
 vY!^uX_. vY#-wZ3.0uX_. wZ3.GAeHsCj99: wZ3.GAeHsCj99:$ wZ3.GAeHr2h778%, wZ3.GAeHsCj99:GBF1V9$5$5|||DDE-6 wZ3.GAeHrd334GBF1V9$5$5t<<=7@ wZ3.GAeHsCj99:GBF1V9$5$57M7M7MNNOA#J wZ3.vY#-/uX-/K(T wZ3.vY$.0uX-/U-^ wZ3.vY#-/uX-/_2h wZ2-GAeHrd334GBF1V9$5$57G7G7GHHIi7r wZ2-GAeHsCj99:GBF1V9$5$5|||DDEs<| wZ2-GAeHsCj99:GBF1V9$5$5RyAAB}AF 7s*GC,EH r2   r  r  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk    z  S )NrN  r  r  rL  rO  rZ   rQ  rR  s    r0   rL   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  sq    GAeHi00GAgJ445GAfIz223 wZ#%' wZ2%	' r2   c                     | d         dk     z  t          j        | d                   z  dv z  t          j        | d                   z  S )Nr  rO  rN  r  rW  )r  rS  rT  is_linux_32rU  s    r0   rL   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s_    wZ2%$_&GAeHi001 ;&( GAfIz22	3 r2   g&.=c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  S )NrN  r  r  rL  rW  rR  s    r0   rL   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s^    GAeHi00GAgJ445GAfIz223 wZ3&( r2   fft-simpsonr6  c                     | d         dk    t          j        | d                   z  t          j        | d                   z  t          j        | d                   z  S )Nr  r'  rN  r  rW  rR  s    r0   rL   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>   s^    wZ3&GAeHi001GAgJ445 GAfIz223 r2   rq  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk     z  S )NrN  r  r  r   r'  rW  rR  s    r0   rL   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>(  sp    GAeHi00GAgJ445GAfIz223 wZ!^% wZ#%	' r2   Nz0Density calculations experimental for FFT methodr  re   r  r  r   r   rl   rk   r  calcabserrrelerrrq  rb  z	pdf test  failed with method 'z' [platform: z]

Ferr_msgverbose)platformunamesystemmachinejoin	processorrj  r6   r  r  rr  rs  r  ru  ro   rZ   r  r   r   isnanr   r  r   )r_   r  rU  rS  rT  r   ri  platform_desctestsixdefault_methodr   filter_funcsubdatar,   rq  subdata2failuresmessagerY  s     ```              @r0   test_pdf_nolan_samplesz%TestLevyStable.test_pdf_nolan_samples  s   4 %   lg-I%-62I\5=%/:< < t J J J J J JL^ U % % % % % % U % % % % % % % W ' ' ' ' ' ' t & & & & & & t & & & & & &kC
L "+5!1!1(	 (	 B 3AE0 + 7 ;;t,,  =A DC(** " "'#~FFF%))CLG$FO *   [h/// 	 	0444F1ws|#344F1ws|#344rvgcl7K7KK   H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $H%-(1++
W W W W W"/W W4<N4HW WLTW W   CL#!   9" " " " " " " " " " " " " " "(	 (	s9   $A'H2A(F?3H2?GH2GAH22H6	9H6	c                    |}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 ]\  }\  }}	}
|t          j        _        |
| |
|                   n|}t	          j                    5  t	          j        ddt                     t          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           n# 1 swxY w Y   ||d         |	k    t          j        |          z           }d| d| d|j        j         d| }t!          ||d         |	|d !           ddd           n# 1 swxY w Y   dS )"z4 Test cdf values against Nolan's stablec.exe output.r  r  c                    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 	NrN  r  r  rO  )rO  r&  r"  r   rc   rL  ry  r  rW  rR  s    r0   rL   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>~  s    GAeHi00GAgJ445GAfIz223
 wZ2-GAfI/A/A/ABBCuX-/
 wZ2-GAfI??@uX-/	 r2   rA  c                    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{  rW  rR  s    r0   rL   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  s    GAeHi00GAgJ445GAfIz223 7r)&	+=+=+=>>?5T)+	 7r)&	???;;<5T)+ r2   r[  r6  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  S )NrN  r  r  333333?rW  rR  s    r0   rL   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  s^    GAeHi00GAgJ445GAfIz223 wZ#%' r2   r  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk    z  S )NrN  r  r  r  r  rW  rR  s    r0   rL   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  q    GAeHi00GAgJ445GAfIz223 wZ#%' wZ3&	( r2   r  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk    z  S )NrN  r  r  r  r  rW  rR  s    r0   rL   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  r  r2   r   c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk    z  S )NrN  r  r  rO  r  rW  rR  s    r0   rL   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  r  r2   Nr  zZCumulative density calculations experimental for FFT method. Use piecewise method instead.re   r  r  r   r   r^  r  r_  rq  rb  z	cdf test rc  z'
rd  Fre  )rj  r6   r  r  rr  rs  r  ru  rv   rZ   r  r   r   rn  r   r  r   )r_   r  rU  rS  rT  r   rp  rq  rr  r   rs  rt  rq  ru  rv  rw  s     ```           r0   test_cdf_nolan_samplesz%TestLevyStable.test_cdf_nolan_samplesa  s   2 % U % % % % % %, T $ $ $ $ $ $& t & & & & & & t & & & & & & t & & & & & & t & & & & & &GL
\ "+5!1!1(	 (	 B 3AE0 + 7 ;;t,,  =A (** # #'>"	$ $ $
 %))CLG$FO *   [h/// 	 	0444F1ws|#344F1ws|#344rvgcl7K7KK   H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $H%-(1++Ar A A A A&n2A A6>A ACL#!   ;# # # # # # # # # # # # # # #(	 (	s9   A'G7A(E+G+E//G2E/3AGG	"G	r  r   r  ro   rv   c                    t          j                    }|j        dk    o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           dS )zGTests for pdf and cdf where loc, scale are different from 0, 1
        rI  32bitr   ro   z4Test unstable on some platforms; see gh-17839, 17859r  r  S)ro   rv   re   r  r  rm   r   r^  r6  N)rh  ri  rj  architecturer   r   r6   r  r  r  r  ro   rv   r   )
r_   r  r  r  ri  rY  r   rt  r  rN  s
             r0   test_location_scalez"TestLevyStable.test_location_scale  s      lg-W'X=R=T=TUV=W2W  	P45==KNOOO* 0;,/:,tG}-.-8[[*~%%%%%)U]]E!!8I8M 	 XCL''*GFO1!
 
 
 	GDM400000r2   zmethod,decimal_placesrL  r   r  c           	         t          j        g d          }t          j        g d          }t          j        g d          }t          j        d          5  t          j                    5  t          j        dt          d           |t          j        _	        t          j        
                    |d|dd	
          }t          ||||           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )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   rm   rm   rm   rm   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   rg  r   r   r   rg  r   r   r   rg  r   r   r   rg  r   r   r   rg  r   r   r  r   zDensity calculation unstable.*)categoryrw  r   r   r^  N)rZ   r   r  rr  rs  r  ru  r6   r  r  ro   r   )r_   r  decimal_placesxsdensitybetasro   s          r0   'test_pdf_alpha_equals_one_beta_non_zeroz6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zero  s    XHHH
 
 (  
 
   
 
 [X&&& 
	 
	(?(A(A 
	 
	#H'8    4:E0#''AuA1'EECWnf  
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	s7   C4,A$CC4C 	 C4#C 	$C44C8;C8zparams,expected)r,  r-  r   r   )rm   r   rf   r  )rf   r5  r   r   c                     t           j                             |d         |d         |d         |d         d          }t          ||           d S )Nr   r   rm   r   r  rL  )r6   r  r   )r_   r  rT   observeds       r0   r  zTestLevyStable.test_stats;  sU     $**1IvayfQivay + 
 
 	Hh/////r2   r  )rg  r   r   zfunction,beta,points,expectedrO  r  rf   r   r  r  c                     d|cxk     rdk     sn J t           ||||          t          j        t          |          |                     dS )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   rZ   r  r  )r_   r  r  r  r  rT   s         r0   !test_distribution_outside_supportz0TestLevyStable.test_distribution_outside_supportI  se    P 5}}}}1}}}}}}HV5t444GCKK**	
 	
 	
 	
 	
r2   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                            |||          |           dS )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r6   r  r  r   ro   r_   re   r  r  rT   s        r0   test_x_equal_zetaz TestLevyStable.test_x_equal_zetaw  sJ    Z &-"!!!5t!<<	
 	
 	
 	
 	
r2   )
)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                            |||          |           dS )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        r0   test_x_near_zetazTestLevyStable.test_x_near_zeta  sJ    D &-"!!!5t!<<	
 	
 	
 	
 	
r2   c                 (    t          j                    S rz   )	threadingLockr^   s    r0   levy_stable_lockzTestLevyStable.levy_stable_lock  s    ~r2   c           	      V   t           j        j        }t          dddd          }t          j        }t	          j        di |}|5  d|_        d|_         |j        di |d |d	          d
}|                    d |d	          
          }t          j        ||k              rJ d|_        d|_         |j        di |d |d	          d
}|                    d |d	          
          }	t          |	|           t          ||           d d d            d S # 1 swxY w Y   d S )Nr'  rc   r   rO  r  r  rk   rl   r   r  rf   
r   r8   )
rZ   r[   r\   r  r6   r  r  r   r   r   
r_   r  r]   r  unfrozenfrozen
unfrozen_afrozen_a
unfrozen_bfrozen_bs
             r0   $test_frozen_parameterization_gh20821z3TestLevyStable.test_frozen_parameterization_gh20821  s    i#Ccs#>>>$",,V,, 	/ 	/(,H%&*F#%UUURcc)nnUUUUJzzrIzGGHvh*455555(,H%&*F#%UUURcc)nnUUUUJzzrIzGGH:...X...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   CDD"%D"c           	      (   t           j        j        }t          dddd          }t          j        }|5  d|_        t	          j        di |} |j        di |d |d          d	}|                    d |d          	          }t          ||           d
|_        t	          j        di |} |j        di |d |d          d	}|                    d |d          	          }	t          |	|           d d d            d S # 1 swxY w Y   d S )Nr'  rc   r   rO  r  r   rf   r  r   r  r8   )	rZ   r[   r\   r  r6   r  r  r   r   r  s
             r0   %test_frozen_parameterization_gh20821bz4TestLevyStable.test_frozen_parameterization_gh20821b  s    i#Ccs#>>>$ 	/ 	/(,H%&0000F%UUURcc)nnUUUUJzzrIzGGH:...(,H%&0000F%UUURcc)nnUUUUJzzrIzGGH:...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   CDDDN)*r   r   r   r`   r   r  r  r  r  r  r   r   r   r  rE  r   r&  rv  xfailr;  r>  rA  rE  rZ   rT  rx  r  r  r  r  r  r  r6   r  rv   ro   r  r  r  r  r  r  r8   r2   r0   r  r    s?       5 5 5 V^D!!!B B "!B ^  ^B ^) ) ^)V ^  ^ [[FLlfl4v{7GHHH
 
 [/$>>[CCC  []VV,<==  >=  ?>  $ [[Vc1X..	 	 /. 	- - -0 [>??[ 	
  [D$< 
 
   @?

, 
, 
,	, 	, 	,
G 
G 
G [[*FL

 
 FL(((###(((k&	   FLDDDCB''B2&&k'	  -
 *~ ~+  ,~@ [*FL

 
 FL(((###(((k&	   FLDDDCB''B2&&k'	  -
 *z z+ *zx [Wq!f--[VeU^441 1 54 .-1@ [AJ!	
   @ [!RVRVRV!<=/	
 0 0 0 [W&7&7&788[' !%CB''	 !%CB''	 !%Ar2&&	 !%Ar2&&	'	
 :
 
;  98<
  [&	
 	
 	
) 8
 
9 8
0 [[	
 	
 	
  
 
!  "
0 ^    ^ / / /./ / / / /r2   r  c                       e Zd Zd Zd ZdS )TestArrayArgumentc                 N    t           j                            d          | _        d S )Nl   4c rY   r^   s    r0   r`   zTestArrayArgument.setup_method  ra   r2   c                     t           j                            t          j        d          t          j        d          d| j                  }t          |j        d           d S )Nr   r  r<  )	r6   r  r   rZ   r  r  r]   r   r=  r  s     r0   test_noexceptionz"TestArrayArgument.test_noexception  sQ    jnn")A,,rwqzz")  B BSY(((((r2   N)r   r   r   r`   r  r8   r2   r0   r  r    s2        5 5 5) ) ) ) )r2   r  c                       e Zd Zd Zd ZdS )TestDocstringc                    t           j        j        2t          dt           j        j                                        v            t           j        j        4t          dt           j        j                                        v            d S d S )Nr+  r  )r6   r+  r  r	   lowerr  r^   s    r0   test_docstringszTestDocstring.test_docstrings  sn    >!-J%."8">">"@"@@AAA?".K5?#:#@#@#B#BBCCCCC /.r2   c                 R    t          j                     t          j                     d S rz   )r6   rC   rB   r^   s    r0   test_no_name_argzTestDocstring.test_no_name_arg  s&    r2   N)r   r   r   r  r  r8   r2   r0   r  r    s5        D D D    r2   r  c                     t          g d          } t          | dk    | d          \  }}t          |g d           t          |dg           t          ddk    | d          \  }}t          ||            t          |dgt          j        |           z             t          | dk    | d          \  }}t          ||            t          |dgt          j        |           z             d S )N)r   r   rm   r   rm   r   r   r   rm   )r   rm   rm   r   r   r   )r   r   r   rZ   r   r.   r/   r  s      r0   test_args_reducer    s    ###$$Aa!eQ""DAqq///***q1#a!eQ""DAqq!q1#

*+++a!eQ""DAqq!q1#

*+++++r2   c                   R   e Zd Zg dZd Zg dZej                            de	          d             Z
d Zd Zd Zd	 Zd
 Zd Zd Zej        j        ej                            dddg          d                         Zej                            dddg          d             ZdS )TestFitMethod)ncfrL  rM  	irwinhallc                 N    t           j                            d          | _        d S )Nl   = rY   r^   s    r0   r`   zTestFitMethod.setup_method0  ra   r2   )rb  r  r  r  z	dist,argsc                 t   || j         v rt          j        | d           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           d	S )
r  z  fit known to fail or deprecatedr  r  r  r  r  r   rx  N)fitSkipNonFiniter   r   rZ   r   r  r  r.  r6   r[  r  r   )r_   r?   r0  re   r.  distfuncs         r0   !test_fit_w_non_finite_data_valuesz/TestFitMethod.test_fit_w_non_finite_data_values6  s     4(((K4AAABBBHfffffbfEFFHfffffbfEFF5$''j(,!<<<<j(,!<<<<<<r2   c           
         t          j        d          5  t          j                            dddd| j                  }t          j        t          j        |          t          j        d          z
  dz                                            }t          t          j
        t          j                            |d	d
                    |d	dgd           d d d            d S # 1 swxY w Y   d S )Nr  r  rg  r         4@r  r   rm   r   r=  r(  r   )rZ   r  r6   r(  r   r]   r  r  r   r   r   r   )r_   re   expected_shapes      r0   test_fix_fit_2args_lognormz(TestFitMethod.test_fix_fit_2args_lognormA  s.   [X&&& 	@ 	@!!$Dr!QQAWrvayy26"::'=&A%G%G%I%IJJNBHU]%6%6qq%6%L%LMM+Q3$@ @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   CC$$C(+C(c                    t          j        dd          }t          j                            |          \  }}t          |d           t          |t          j        d                     t          j                            |d          \  }}t          |d           t          |t          j        d                     t          j                            |d          \  }}t          |d           t          |d           d S )Nr   r/  r   rm   r   rx  )rZ   r  r6   r  r   r   r  r   r_   re   rk   rl   s       r0   test_fix_fit_normzTestFitMethod.test_fix_fit_normI  s    IaOOZ^^A&&
UC###E271::...Z^^AA^..
US!UBGAJJ'''Z^^Aa^00
UC###UAr2   c                    t          j        dd          }t          j        |                                          }d}t          j                            ||          \  }}}t          j        |                                          |z
  }t          t          j        |          t          j	        |          z
  |d           t          ||           t          ||                                |z  d           d}d}t          j                            |||          \  }}}t          ||           t          ||           t          ||                                |z  d           d	}d}t          j                            |||          \  }}}t          ||           t          ||           t          ||                                |z  d           d}d	}	t          j                            |||	
          \  }}}t          ||           t          ||	           |t          j        |	          z
  }
t          t          j	        |          |
           d S )Nr   r/  r   r   r   rR  r  r   r   rm   r=  )rZ   r  r  r   r6   r  r   r   r   digammar   )r_   re   meanlogr   r.   rk   rl   rK   r   r   r  s              r0   test_fix_fit_gammaz TestFitMethod.test_fix_fit_gammaX  s   IaOO&)).."" 553F16688w&BF1II(:(::AqIIIIS$E16688A:q9999
 bt<<3QS$E16688A:q9999bt<<3QS$E16688A:q9999 VDD3S$UF###bfVnn$GOA..22222r2   c           	         d }t          j        g d          }t          j                            |dd          \  }}}}t          |d           t          |d           t           ||||          ddgd           t          j        g d          }t          j                            |ddd	          \  }}}}t          |d           t          |d           t          |d            ||||          \  }}t          |dd
           d|z
  }	t          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           d S )Nc                 h   t          |          }t          j        |                                          }t          j        d|z
                                            }t	          j        | |z             }||| t	          j        |           z   z  z
  ||| t	          j        |          z   z  z
  g}|S r   )r  rZ   r  rh  r   psi)r.   r/   re   rp  s1r)  psiabr  s           r0   mlefuncz0TestFitMethod.test_fix_fit_beta.<locals>.mlefunc  s     AAB!""BKA&&Eufw{1~~566ufw{1~~5668DKr2   )rt  rg  r   r   r   r=  rq  r   rm   )r   r   r   r6  )r	  r   r   r   rT  )r   r   r   )r   r   r	  r   )r   r	  r   r   )
rZ   r   r6   r  r   r   r   r   r[  r  )r_   r  re   r.   r/   rk   rl   dadbrp  r  b2r  r  r.  s                  r0   test_fix_fit_betazTestFitMethod.test_fix_fit_beta~  s   		 		 		 H'''(( :>>!!A>>>1c5S!UA1a((1a&t<<<< H'''(( :>>!!>DD1c5QS!UAAq!!BAD)))) U$z~~bQQq~IIBfRT1VQR$$BAD))))B""" 	j%*.!#aHHHHHZZZ  j%*.!!AFFFFj%*.!!A!LLLLj%*.!!A!LLLL 	j%*.!aQ	( 	( 	( 	( 	( 	(r2   c                    t          j        g d          }t          j                            |          \  }}t          |d           t          |d           t          j                            |d          \  }}t          |d           t          |d           t          j                            |d          \  }}t          |d           t          |d           d S )N)rm   rm   r   r   r   r   r   r  rm   r   rx  r   r   r   )rZ   r   r6   rb  r   r   r  s       r0   test_expon_fitzTestFitMethod.test_expon_fit  s    H---..[__Q''
US!UA[__Qq_11
US!UA[__QQ_//
US!UAr2   c           	         t          j        g d          }t          j        |dz
            }t          j                            |d          \  }}}t          ||                                d           t          |d           t          |t          j	        |
                                          d           t          j                            |dd          \  }}}t          |t          j        |t          j        d          z
  dz  
                                          d           t          |d           t          |d           t          j                            |dd	
          \  }}}t          |d	           t          |d           t          |t          j	        |
                                          d           d S )N)r  r   rf   r:     r  r   r   r  r   r/  r=  rm   r   )r   fix_s)rZ   r   r  r6   r(  r   r   rv  r   r   r   r  )r_   re   lnxm1r=  rk   rl   s         r0   test_lognorm_fitzTestFitMethod.test_lognorm_fit  s   H---..q1u!M--aa-88sEuyy{{7777S!rvejjll33%@@@@!M--aa-BBsErw):Q(>'D'D'F'FGG"	$ 	$ 	$ 	$S!UA!M--aat-DDsEUD!!!S!rvejjll33%@@@@@@r2   c                    t          j        g d          }t          j                            |          \  }}t          ||                                           t          |t          j        |                     t          j                            |d          \  }}t          |d           t          ||                                           t          j                            |d          \  }}t          |d           t          |d           t          t          t          j        j        |d           t          t          t          j        j        |d           d S )N)rO  r  rt  r  r   r   rf   rx  r   rP  )rZ   r   r6   r  r   r   r  r  r  r[  r  r  s       r0   test_uniform_fitzTestFitMethod.test_uniform_fit  s#   H)))**]&&q))
US!%%''"""UBF1II&&&]&&qq&11
US!UAEEGG$$$]&&q&44
US!UBj%-"3QSAAAAj%-"3QsCCCCCCr2   r  MLEMMc           
      v   d\  }}t           j                            ||d| j                  }t           j                            |d|          }t           j                            |d|          }t          ||dd           t           j                            |d|	          }t          ||dd           t           j                            |d
|          }t           j                            |d
|          }t          ||dd           t           j                            |d
|          }t          ||dd           t          t          t           j        j        |dd|           t          t          t           j        j        |dddd|           t           j                            |ddd|          }	|	\  }
}}}t          |
||gg d           d}t           j	                            |d| j                  }t           j	                            |||          \  }
}}t          |
|           d S )N)r  r  rg   r   r  )r   r  )rl  r  r  ri  )rm  r  r  )r	  r  )r  r  )r  r  r   rm   )rl  r   r  r   r   )rl  r	  r   r   r  )rl  r   r   r  )r  r   r   )
r6   r  r   r]   r   r   r[  r  r   r  )r_   r  r.   r/   re   res_1res_2res_3res_4res_5aabbr  ssr   s                  r0   test_fshapeszTestFitMethod.test_fshapes  s   
 1JNN1acNAA
qR77
qR77u5u====
q6::u5u====
qR77
qR77u5u====
q6::u5u==== 	j%*.!aOOOO 	j%*.!aQv	7 	7 	7 	7
 
qRa&IIBBb"b\:::... {qsBB[__Ta_??
BRr2   c                     t           j        }|                    dd| j                  }t	          d          }t          t          |j        |fi |d|i d S )Nrm   rg   )r  r   r   i)enikibenikir  )r6   r  r   r]   r  r[  r  r   )r_   r  r?   r   r/  s        r0   test_extra_paramszTestFitMethod.test_extra_params  sa     xx!#DHx==t$$$i4FF3FFvFFFFFFr2   N)r   r   r   r   r`   r  r   r   r   r   r  r  r  r  r  r  r  r  r   r  r 	  r8   r2   r0   r  r  ,  sW       111D5 5 5 A@@[[(33= = 43=@ @ @  $3 $3 $3L5( 5( 5(n  A A A(D D D$ [[Xt}55$ $ 65 $L [Xt}55G G 65G G Gr2   r  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )

TestFrozenc                    t           j        }t          j        dd          }|                    d          }|                    ddd          }t          ||           |                    d          }|                    ddd          }t          ||           |                    d          }|                    ddd          }t          ||           |                    d          }|                    ddd          }t          ||           |                    d          }|                    ddd          }t          ||           |                                }|                    dd          }t          ||           |	                                }|	                    dd          }t          ||           |
                                }|
                    dd          }t          ||           |                                }|                    dd          }t          ||           |                                }|                    dd          }t          ||           |                    d          }|                    ddd          }t          ||           t          |j        |j                   t          |j        |j                   d S )Nr  r  rj   r  rg  rm   )r6   r  ro   r   rv   r   r  r   rD  r   r=  rv  rE   r  r.   r/   )r_   r?   r  result_fr  s        r0   r  zTestFrozen.test_norm!  s   zC000::d##$D44Xv&&&::d##$D44Xv&&&::d##$D44Xv&&&::d##$D44Xv&&&99T??4s33Xv&&&==??S11Xv&&&;;==t3//Xv&&&::<<d#..Xv&&&::<<d#..Xv&&&>>##$c22Xv&&&==##QD44Xv&&&VXtv&&&VXtv&&&&&r2   c                    d}t           j        }t          j        |          }|                    d          }|                    d|          }t          ||           |                    d          }|                    d|          }t          ||           |                    d          }|                    d|          }t          ||           |                    d          }|                    d|          }t          ||           |                    d          }|                    d|          }t          ||           |                                }|                    |          }t          ||           |	                                }|	                    |          }t          ||           |
                                }|
                    |          }t          ||           |                                }|                    |          }t          ||           |                                }|                    |          }t          ||           |                    d          }|                    d|          }t          ||           t          |j        |j        j                   t          |j        |j        j                   d S )Nr   r  rg  r  rm   )r6   r  ro   r   rv   r   r  r   rD  r   r=  rv  rE   r  r.   r?   r/   )r_   r.   r?   r  r	  r  s         r0   
test_gammazTestFrozen.test_gammaT  sa   {Q::d##$""Xv&&&::d##$""Xv&&&::d##$""Xv&&&::d##$""Xv&&&99T??q!!Xv&&&==??QXv&&&;;==1Xv&&&::<<!Xv&&&::<<!Xv&&&>>##aXv&&&==##Q""Xv&&&VXv{}---VXv{}-----r2   c                     t          j        d          }|                    d          }|                     d           |                    d          }t          ||           d S )Nr   rm   r  r  )r6   r(  r  r   )r_   r  m1r  s       r0   test_regression_ticket_1293z&TestFrozen.test_regression_ticket_1293  sa    q!!]]1V$$$ ]]1 	Rr2   c                 l   d}t          j        |          }|j                            |          \  }}t	          ||gddg           d}t           j                            d|           t	          |j                            |          dt          j        g           d}t          j        |          }|j                            |          \  }}t	          ||gddg           d}t           j                            d|           t	          |j        j        |j        j	        ft           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                            |          \  }}t          ||gdd	g           d S )
Nr"  r  r   r  rc   r   r  r  r   )r6   r  r?   r  r   ro   rZ   r  r.   r/   r	   r   r  r   )r_   r  r  r.   r/   rv1s         r0   r  zTestFrozen.test_ab  s    _q!!!w##A&&1aVb#Y'''A###RW))!,,q"&k:::_q!!!w##A&&1aVb#Y'''Aq!!!bgi+U_-I-I!-L-LMMMo$$$'(((  
	/ 
	/A
1A1%%%B4qABBKNN### 
3A?//22DAqQFRI....
	/ 
	/r2   c                 T    t          t          t          j        d                     d S )N	rv_frozen)r	   r-   r6   r7   r^   s    r0   test_rv_frozen_in_namespacez&TestFrozen.test_rv_frozen_in_namespace  s#    +[99:::::r2   c                    t          j                    }t          t          |d                     d|_        t          |j                                        t          j        	                    d                                                     t          j        	                    d          }|
                    d|           d S )Nr   *   rT  r  r   )r6   r  r	   r-   r   r   	get_staterZ   r[   r  r   )r_   r  rndms      r0   test_random_statezTestFrozen.test_random_state  s    //000 !V(2244Y**2..88::	< 	< 	< y$$T**


-----r2   c                    t          j        dd          }t          j        d          }t          j        g dg df          }|||fD ]}d|_        |                    d	           t          j        |          }|                    d	          }t          j        |          }|                    d	          }t          ||           |
                    d
          |
                    d
          g}	t          |	d         |	d                    t          |                    |	d                   |                    |	d                              d S )Ngdsz@g@e?r  )r   r   rm   r   rP  rc  rT  r  r@  r   r   r   )r6   r  r  rB   r   r   pickledumpsloadsr   r   rv   )
r_   r  poissr\  distfnrK   r0	unpickledr1medianss
             r0   test_picklingzTestFrozen.test_pickling  s[    z,.ABBb!!"<<<+?+?+?+A B B B UF+ 	4 	4F"&FJJAJV$$A##BQIA&&BR    zz#	c(:(:;GWQZ000GAJ//"wqz224 4 4 4	4 	4r2   c           
         d }t          j        ddd          }t          j        dd          5  |                    |ddd	
          }t           j                            |dddddd	          }d d d            n# 1 swxY w Y   t          ||           t          j        dd          }|                    |          }t           j                            |dd          }t          ||           d S )Nc                     | S rz   r8   r   s    r0   r  z$TestFrozen.test_expect.<locals>.func  s    Hr2   rm   r   r   r  r  )r  divider   T)r   ubconditionalrm   r0  rk   rl   r   r"	  r#	  r	  )r   r0  rk   )r6   r  rZ   r  r   r   r  )r_   r  gmgm_val	gamma_valrq  p_valpoisson_vals           r0   test_expectzTestFrozen.test_expect  sQ   	 	 	 [1!1---[(;;; 	I 	IYYtaTYBBF**4d./A4 + I II	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 		***M!###m**4d*BB{+++++s   A A==BBN)r   r   r   r  r	  r		  r  r	  r	  r	  r,	  r8   r2   r0   r	  r	    s        1' 1' 1'f2. 2. 2.h  */ */ */X; ; ;. . .4 4 40, , , , ,r2   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d
 Zd Zd Zd Zd ZdS )
TestExpectc                 @   t           j                            d dd          }t          |dd           t           j                            d dd          }t          |dd           t           j                            d	dd          }t           j                            d
dd          }t           j                            d dd||          }t          |dd           t           j                            d dd||d          }t          |dd           d S )Nc                     | dz
  | dz
  z  S )Nr   r8   r   s    r0   rL   z&TestExpect.test_norm.<locals>.<lambda>  s    1qs r2   r   rm   rj   r   r*  rR  c                     | S rz   r8   r   s    r0   rL   z&TestExpect.test_norm.<locals>.<lambda>	  s     r2   rA  rA  c                     dS r   r8   r   s    r0   rL   z&TestExpect.test_norm.<locals>.<lambda>      Q r2   rk   rl   r   r"	  r   c                     dS r   r8   r   s    r0   rL   z&TestExpect.test_norm.<locals>.<lambda>      a r2   Trk   rl   r   r"	  r#	  rO  )r6   r  r   r   r   )r_   r  r  r   r"	  prob90prob90cs          r0   r  zTestExpect.test_norm  s   J33!DDAq"----Jmm!<<Aq"----Z^^Daq^11Z^^Daq^11"";;AQ2""MMFC4444*##KKQaB204 $ 6 6GR444444r2   c           	      R   t           j                            d ddd          }t          |dd           t           j                            d	 dd
d          }t          |dd           t           j                            ddddd          }t           j                            ddddd          }t           j                            d dd
d||d          }t          |dd           t           j                            d ddd||d          }t          |dd           d S )Nc                     | dz
  | dz
  z  S )NUUUUUU@r8   r   s    r0   rL   z&TestExpect.test_beta.<locals>.<lambda>  s    51U7(; r2   r  r   rm   )r0  rk   rl   qq?r  rR  c                     | S rz   r8   r   s    r0   rL   z&TestExpect.test_beta.<locals>.<lambda>  s     r2   rP  r   r<	  rA  rf   rj   rA  c                     dS )NrO  r8   r   s    r0   rL   z&TestExpect.test_beta.<locals>.<lambda>   s    R r2   )rf   rf   Fr%	  r   c                     dS r   r8   r   s    r0   rL   z&TestExpect.test_beta.<locals>.<lambda>$  r6	  r2   TrO  )r6   r  r   r   r   )r_   r  r  r"	  r   r8	  r9	  s          r0   	test_betazTestExpect.test_beta  s=   J;;'"#1  . .Avr2222JkkRrJJAub1111Z^^D"baq^99Z^^D"baq^99""<<hB)+ru # N NFC4444*##KKhA*+rt $ M MGR444444r2   c                 T   t           j                             dddd          \  }}t           j                            d dd          }t          ||d	
           t           j                            d dd          }t          ||d
           t           j                            d dddd	          }t          ||d
           dt           j                            dd	gdddd                                          z
  }t           j                            d dddd          }t          ||d	
           t           j                            d ddddd          }t          |dd
           t           j                            d ddd          }	t          |	dd	
           d S )Nr  rf   r  rP  r	  c                     | S rz   r8   r   s    r0   rL   z+TestExpect.test_hypergeom.<locals>.<lambda>-  r3	  r2   )r  rf   r  r&	  r  rR  c                     | dz
  dz  S Nr  rm   r8   r   s    r0   rL   z+TestExpect.test_hypergeom.<locals>.<lambda>0  s    adQY r2   r*  c                     | dz
  dz  S rE	  r8   r   s    r0   rL   z+TestExpect.test_hypergeom.<locals>.<lambda>5  s    QrTAI r2   r   )r0  rk   r   r"	  r   c                     dS r   r8   r   s    r0   rL   z+TestExpect.test_hypergeom.<locals>.<lambda><  s    q r2   r/  rQ  c                     dS r   r8   r   s    r0   rL   z+TestExpect.test_hypergeom.<locals>.<lambda>A  s    1 r2   T)r0  rk   r   r"	  r#	  c                     dS r   r8   r   s    r0   rL   z+TestExpect.test_hypergeom.<locals>.<lambda>F  s    ! r2   r   )r0  r   r"	  )r6   r  r   r   rK  rh  )
r_   m_truev_truer  r  v_bounds	prob_trueprob_boundsprob_bcprob_bs
             r0   test_hypergeomzTestExpect.test_hypergeom(  s    ..r2qb.AAO"";;[b"IIAvr2222O""#6#6[') # + +Avr2222 ?))*=*=/:.0Q2 * ? ? 	Hfb9999 eo))1b'2r1!)DDHHJJJ	o,,[[{13b - B BKB???? /((;B,-"$ ) H HGQ3333 ''++, ( 4 4FAr222222r2   c                 $   t           j                            d ddd          }dt           j                            dd          z
  }t	          ||d	           t           j                            d
 ddd          }t	          |dd	           d S )Nc                     dS r   r8   r   s    r0   rL   z)TestExpect.test_poisson.<locals>.<lambda>L  s    Q r2   r$	  r   F)r0  r   r#	  r   rm   r*  rR  c                     dS r   r8   r   s    r0   rL   z)TestExpect.test_poisson.<locals>.<lambda>Q  s     r2   T)r6   r  r   rv   r   )r_   rN	  prob_b_trueprob_lbs       r0   test_poissonzTestExpect.test_poissonJ  s    m**;;Ta7< + > >))!Q///KbAAAA-&&{{!37 ' 9 9GQ333333r2   c                     t           j        }|                    d          }|                    d           |                    d          }t          ||d           d S )N)r  rW  )r   r*  rR  )r6   genhalflogisticr   r   )r_   halflogr*  r.  s       r0   test_genhalflogisticzTestExpect.test_genhalflogisticU  sa     '~~6~**F###~~6~**D$333333r2   c                 
   t          t          j        t          j                            dd                               t          t          j        t          j                            d d                               t          t          j        t          j                            d d                               t          t          j        t          j                            d d                               d S )Nrw  Gz?c                     dS r   r8   r   s    r0   rL   z/TestExpect.test_rice_overflow.<locals>.<lambda>d       r2   )r]	  rW  c                     dS r  r8   r   s    r0   rL   z/TestExpect.test_rice_overflow.<locals>.<lambda>e  r_	  r2   c                     dS Nr   r8   r   s    r0   rL   z/TestExpect.test_rice_overflow.<locals>.<lambda>f  r_	  r2   )r	   rZ   rC  r6   ricero   r   r^   s    r0   test_rice_overflowzTestExpect.test_rice_overflow_  s     	EJNN35566777EJ--kk-HHIIJJJEJ--kk-HHIIJJJEJ--kk-HHIIJJJJJr2   c                 (   d\  }}t           j                            d |f          }t          |||dz
  z  t	          j        d|z
            z  d           t           j                            d |f|          }t          |||z   d           d S )	N)ry  r   c                     | S rz   r8   rb   s    r0   rL   z(TestExpect.test_logser.<locals>.<lambda>k  r6	  r2   rW  rO  r   r   c                     | S rz   r8   rg	  s    r0   rL   z(TestExpect.test_logser.<locals>.<lambda>q  r6	  r2   r&	  )r6   r  r   r   rZ   r  )r_   rq  rk   res_0res_ls        r0   test_logserzTestExpect.test_logserh  s    3##KKqd#;;QVrvb1f~~5E	C 	C 	C 	C ##KKqd#DDus{777777r2   c                     d\  }}t           j                            d ||f          }t           j                            d ||f          }t          |||z
  d           t          ||dz  z
  ||z   d           d S )N)r  r'  c                     | S rz   r8   r   s    r0   rL   z)TestExpect.test_skellam.<locals>.<lambda>x      A r2   rW  c                     | dz  S r  r8   r   s    r0   rL   z)TestExpect.test_skellam.<locals>.<lambda>y  r  r2   r  r   rm   )r6   rI  r   r   )r_   r  p2r	  r  s        r0   test_skellamzTestExpect.test_skellamt  s     B]!!++RH!==]!!..Bx!@@BG%0000RU
BG%888888r2   c           
          d\  }}t           j                            d ||f          }t          |t	          d t          ||          D                       ||z
  z  d           d S )N)r   q   c                     | S rz   r8   r   s    r0   rL   z)TestExpect.test_randint.<locals>.<lambda>  r3	  r2   c              3      K   | ]}|V  d S rz   r8   r>   r   s     r0   r  z*TestExpect.test_randint.<locals>.<genexpr>  s"      55!A555555r2   r   r   )r6   r<  r   r   rh  r  )r_   r+  r,  r   s       r0   test_randintzTestExpect.test_randint}  s     Bm"";;R9955uR}}55555bA	O 	O 	O 	O 	O 	Or2   c                     t          j        t                    5  t          j                            d d           d d d            d S # 1 swxY w Y   d S )Nc                     | dz  S r  r8   r   s    r0   rL   z&TestExpect.test_zipf.<locals>.<lambda>  s
    1 r2   r$	  )r   warnsru  r6   rr  r   r^   s    r0   	test_zipfzTestExpect.test_zipf  s    \.)) 	4 	4Jnnd333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   "A		AAc                     t           j                            d d          }t           j                            d dddd          }t          ||d	
           d S )Nc                     dS r   r8   r   s    r0   rL   z/TestExpect.test_discrete_kwds.<locals>.<lambda>  rn	  r2   r$	  rW  c                     dS r   r8   r   s    r0   rL   z/TestExpect.test_discrete_kwds.<locals>.<lambda>  rn	  r2   r      r(  )r0  maxcount	chunksize	tolerancer*  rR  )r6   r  r   r   )r_   n0n1s      r0   test_discrete_kwdszTestExpect.test_discrete_kwds  sd    ]!!++D!99]!!++D+/2 " O OBB//////r2   c                     d }dD ]=}t           j                            d|          }t          | ||          d           >d S )Nc                 H    | dz  d| dz  z  z   d| dz  z  z   d| dz  z  z   | z   S )Nr   rf   r   r  r   r:  rm   r8   r  s    r0   poiss_moment5z-TestExpect.test_moment.<locals>.poiss_moment5  s8    q52b!e8#bQh.BE9B>>r2   )r   r  r   r  r   )r6   r  r  r   )r_   r	  rZ  m5s       r0   test_momentzTestExpect.test_moment  se    	? 	? 	?  	? 	?B%%a,,BBb 1 1>>>>>	? 	?r2   c                    t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            d          d	           t          t          j                            d
          d
           d S )NrG  rO  rj   rx  rf   rc   )   rW  r	  U   r	  )r   r6   r  r   r  r_  r^   s    r0   test_challenging_cases_gh8928z(TestExpect.test_challenging_cases_gh8928  s     	
))b)<<bAAA
))b)<<bAAA
))b)<<bAAA***77===--"-55r:::::r2   c           	      t   t           j        }|                    dd          }t          |                    dd          |           t          |                    dddd          |           t          |                    dddd          |d	z             t          |                    ddddd
          |           t          |                    dddd          d           t          |                    dddd          d           t          |                    ddddd
          d           d S )Nrf   r   rj   r  rp  r4	  r  r*  r  Tr7	  r  g433333@g433333rQ  )r6   r  r   r   r   )r_   r?   r  s      r0   test_lb_ub_gh15855zTestExpect.test_lb_ub_gh15855  sH   }iiBai((!44c:::!bAA3GGG!rBBCGLLL!r04 $ 6 67:	< 	< 	< 	!rBBFKKK!rBBGLLL!r04 $ 6 679	; 	; 	; 	; 	;r2   N)r   r   r   r  rA	  rQ	  rW	  r[	  rd	  rk	  rq	  rw	  r{	  r	  r	  r	  r	  r8   r2   r0   r.	  r.	     s        
5 5 5 5 5 5& 3  3  3D	4 	4 	44 4 4K K K
8 
8 
89 9 9O O O4 4 4
0 0 0? ? ?; ; ;; ; ; ; ;r2   r.	  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            ddd	g          d
             ZdS )TestNctc                     t          j        dd          }t          |                    d          d           t          j        dd          }t	          |                    d          dd           d S )Nr   r   r   r   g K?rf   rR  )r6   nctr   rv   r   r  s     r0   test_nc_parameterzTestNct.test_nc_parameter  sc     Yq!__RVVAYY$$$Yq"BFF1II~rBBBBBBr2   c           	          t           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	
           d S )Nr   r   r  rc   r   )gMp^j?g6].ftv?gȳ'ς?gu?)g!Y<a?g]d1p?go|?g?)gHdY?g2Ԥg?g}o/u?g .mr?r6  r   )r6   r	  ro   rZ   r  rT  r   r   )r_   r   rT   s      r0   test_broadcastingzTestNct.test_broadcasting  s    immAryAqqq$w7KQ224 4JJJJJJJJJL M M 	XD111111r2   c                 t    t          j        dd          }t          |                                d           d S )Nr   r   r   )r6   r	  r   r=  r  s     r0   test_variance_gh_issue_2401z#TestNct.test_variance_gh_issue_2401  s1    
 Yq!__RVVXXs#####r2   c                    t           j                             ddd          \  }}}}t          ||||gt          j        t          j        t          j        t          j        g           t           j                             ddd          \  }}}}t          t          j        |                     t          |||gt          j        t          j        t          j        g           t           j                             ddd          \  }}}}t          t          j        |||g                                                     t          |t          j                   d S )Nr   ry  r  )r  ncr  r'  r  )r6   r	  r   rZ   r  r	   rC  r   r  s        r0   test_nct_inf_momentszTestNct.test_nct_inf_moments  s	   Y__V_DD
1aaAq\BFBFBFBF#CDDDY__V_DD
1aAaAY 8999Y__V_DD
1aQ1I&&**,,---Qr2   c                    t           j                            dd          }t           j                             dd          }ddg}t          ||d         d           t          ||d           t           j                            dd          }t           j                             dd          }d	d
g}t          ||d         d           t          ||d           d S )Nr   rm   g@ @g*dn?r   r  r   r   gqI  @gL) ?r  )r6   r	  r   r   )r_   nct_mean_df_1000nct_stats_df_1000expected_stats_df_1000nct_mean	nct_statsr  s          r0   test_nct_stats_large_df_valuesz&TestNct.test_nct_stats_large_df_values  s     !9>>$22!IOOD!44
 #56H!I(*@*C"	$ 	$ 	$ 	$)+A"	$ 	$ 	$ 	$ 9>>&!,,IOOFA..	,.@A."3%@@@@	>======r2   c           	      ~    t          t          j                            ddt	          d                    d           d S )Nrm   i   r   )r   r6   r	  rv   r   r^   s    r0   test_cdf_large_nczTestNct.test_cdf_large_nc  s0    	aE%LL991=====r2   zx, df, nc, expected)r  rf   rp  gAs69)rh  r  rp  gV1c                 h    t          t          j                            |||          |d           d S r  )r   r6   r	  ro   )r_   re   r  r	  rT   s        r0   test_pdf_large_nczTestNct.test_pdf_large_nc  s1     		aR00(GGGGGGr2   N)r   r   r   r	  r	  r	  r	  r	  r	  r   r   r   r	  r8   r2   r0   r	  r	    s        C C C2 2 2$ $ $     > > >,> > >6 [2.+5
  H H	 H H Hr2   r	  c                   &    e Zd Zd Zd Zd Zd ZdS )TestRecipInvGaussc                 V    t           j                            dd          }|dk    sJ d S )Nr   r  r   )r6   recipinvgaussro   r  s     r0   test_pdf_endpointz#TestRecipInvGauss.test_pdf_endpoint  s+    ##As++Cxxxxxxr2   c                 l    t           j                            dd          }|t          j         k    sJ d S )Nr   r  )r6   r	  r   rZ   r  rh  s     r0   test_logpdf_endpointz&TestRecipInvGauss.test_logpdf_endpoint   s/    "))!S11wr2   c                 n    t           j                            dd          }d}t          ||d           d S )NrA  r   g9V9s;r  r   )r6   r	  rv   r   r_   rq  rT   s      r0   test_cdf_small_xz"TestRecipInvGauss.test_cdf_small_x$  s<      ##D#..(8%000000r2   c                 l    t           j                            dd          }d}t          ||d           d S )Nr  r   glH<r  )r6   r	  r   r   r	  s      r0   test_sf_large_xz!TestRecipInvGauss.test_sf_large_x8  s7    ""2s++(8U+++++r2   N)r   r   r   r	  r	  r	  r	  r8   r2   r0   r	  r	    sP            1 1 1(, , , , ,r2   r	  c                   &    e Zd Zd Zd Zd Zd ZdS )TestRicec                 N    t           j                            d          | _        d S )Ni'rY   r^   s    r0   r`   zTestRice.setup_method@  r  r2   c                    g d}t          t          j        t          j                            |d                                                               t          t          j        t          j                            |d                                                               t          t          j        t          j                            |d                                                               t          t          j        t          j        	                    |d                                                               g d}t          t          j        t          j        
                    |d                                                               t          j                            dd          }t          t          j        |                                                     d}t          t          j                            |d          t          j                            ||          |d	           d S )
N)rL  rO  rP  r   )r/   )rc   rc   r   r   r   r  r  r(  ri  )r	   rZ   rC  r6   rc	  ro   r   r   rv   r  r   r   )r_   re   rz  r  r/   s        r0   test_rice_zero_bzTestRice.test_rice_zero_bC  s   MMEJNN1N334488::;;;EJ--a2-6677;;==>>>EJNN1N334488::;;;EJ--a2-6677;;==>>>   EJNN1N334488::;;;z622D!!%%''(((
 
q!,,ejnnQ.B.BQ	( 	( 	( 	( 	( 	(r2   c                     t           j        j        }t           |d| j                  j        d           t           |dd| j                  j        d           d S )Nr  )r/   r   r   )r   r   )r/   r   r   )r6   rc	  r   r   r]   r   r=  r  s     r0   test_rice_rvszTestRice.test_rice_rvsX  s[    jnSS2DH555:A>>>SS2FBBBH&QQQQQr2   c                    t           j                            t          j        ddd          t          j        ddd                    }g d}t          ||           t          j        ddd          }t           j                            |dd          }g d	}t          ||           t          j         j                            d
t          j        ddd                    }g d}t          ||           d S )Nrf      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?rc   r   g     @_@r   r   )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@r      )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@)r6   rc	  rv   rZ   r  r   r   r5   )r_   rv   cdf_expprobabilitiesr   ppf_exps         r0   test_rice_gh9836zTestRice.test_rice_gh9836]  s     jnnRYr333RYr35K5KLLO O O
 	W%%%	#q#..jnn]En;;L L L 	W%%%k""3	"c2(>(>??; ; ;
 	W%%%%%r2   N)r   r   r   r`   r	  r	  r	  r8   r2   r0   r	  r	  ?  sS        4 4 4( ( (*R R R
'& '& '& '& '&r2   r	  c                        e Zd Zd Zd Zd ZdS )
TestErlangc                 N    t           j                            d          | _        d S )Nl   IL rY   r^   s    r0   r`   zTestErlang.setup_method  ra   r2   c           
         t          j                    5  t          j        dt                     t	          t          t
          j        j        dddd| j                   g d}t
          j        	                    |d          }t
          j
        	                    |d          }t          ||d	
           d d d            d S # 1 swxY w Y   d S )Nrn  r  r   r   r   r<  )r   rO  r   r  r  r  r   )rr  rs  rt  ru  r[  r6   erlangr   r]   r   r  r   )r_   r   result_erlangresult_gammas       r0   test_erlang_runtimewarningz%TestErlang.test_erlang_runtimewarning  s$    $&& 	D 	D!'>::: .%,*:CQ !B B B B (''D!L,,Ta,88M ;??4A?66LM<dCCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   B"CC
Cc                     t          t          j                            dddg          t          j                            dddg                     d S )Nr   r   r   ru  )r   r6   r	  ro   r  r^   s    r0   test_gh_pr_10949_argcheckz$TestErlang.test_gh_pr_10949_argcheck  sR    U\%%caW%55[__SQG_44	6 	6 	6 	6 	6r2   N)r   r   r   r`   r	  r	  r8   r2   r0   r	  r	    sD        5 5 5D D D&6 6 6 6 6r2   r	  c                       e Zd Zd Zd Zd Zej                            dddg          d             Z	ej                            ddd	gd
dgg          d             Z
d Zd ZdS )TestRayleighc                 N    t           j                            d          | _        d S )Nl   @X rY   r^   s    r0   r`   zTestRayleigh.setup_method  ra   r2   c                 d    t           j                            d          }t          |d           d S )Nr8  g)Zx)r6   r+  r   r   r_   r.  s     r0   r  zTestRayleigh.test_logpdf  s.    N!!"%%./////r2   c                 d    t           j                            d          }t          |d           d S )Nr8  i)r6   r+  r  r   r	  s     r0   r  zTestRayleigh.test_logsf  s-    N  $$5!!!!!r2   r  )gB)Q?got|?)gS2P?g3?c                    t           j                            d||| j                  }d } |||          }t           j                            ||          \  }}t          ||           t          ||           t           j                            |d          \  }}t          |d           t           j                            |          \  }}t          | |||                     d S )Nr  rk  c                 b    t          j        | |z
  dz            dt          |           z  z  dz  S )Nrm   r   )rZ   rh  r  )r   r   s     r0   r  z(TestRayleigh.test_fit.<locals>.scale_mle  s/    FD4KA-..!c$ii-@RGGr2   r   r  rx  )r6   r+  r   r]   r   r   )r_   r   r7  r   r  scale_expectrk   rl   s           r0   rv  zTestRayleigh.test_fit  s     ~!!s(1 " J J	H 	H 	H !yw//^''7';;
US'"""UL))) ^''R'88
UUB
 ^''--
UUIIdC0011111r2   r]	  r   g̡=E?g@1d?c                     t           j                            d||| j                  }t	          t           j        |           d S )Nr  rk  )r6   r+  r   r]   r   )r_   r   r7  r   s       r0    test_fit_comparison_super_methodz-TestRayleigh.test_fit_comparison_super_method  sE    
 ~!!s(1 " J J%end;;;;;r2   c                 8    t          t          j                   d S rz   )r  r6   r+  r^   s    r0   r  zTestRayleigh.test_fit_warnings  s    EN+++++r2   c                    t           j                            d          }d\  }}}t          j                            ||||          }t          j                            |          \  }}|t          j        |          k     sJ t          j                            ||          \  }}|t          j        |          k     sJ ||k    sJ d S )Ni  )r8  r  r  r   rx  )rZ   r[   r\   r6   r+  r   r   r  )	r_   r]   rk   rl   r   r   r   r   r   s	            r0   test_fit_gh17088zTestRayleigh.test_fit_gh17088  s     i##C(('UDn  e$S II^'',,
$$$$"^//E/BB$$$$E!!!!!!r2   N)r   r   r   r`   r  r  r   r   r   rv  r	  r  r	  r8   r2   r0   r	  r	    s        5 5 50 0 0" " " [03K3K3M N N2 2N N20 [0D$<4>
3K3M N N< <N N<, , ,
" 
" 
" 
" 
"r2   r	  c                   P   e Zd Zd Zd Zd Zej                            dg d          d             Z	ej                            dg d          d	             Z
ej                            dd
dg          d             Zej                            dddg          d             ZdS )TestExponWeibc                     d}d}d}t           j                            |||          }t           j                            |||          }t	          ||gddg           d S )Nrc   rO  r  g:23W+g~`9k)r6   	exponweibro   r   r   )r_   re   r.   r  rq  r  s         r0   test_pdf_logpdfzTestExponWeib.test_pdf_logpdf  ss    O1a((%%aA..D	/1DE	G 	G 	G 	G 	Gr2   c                 ~   t          j        ddd          }d}d}t          j                            |||          }t          j                            ||          }t          ||           t          j                            |||          }t          j                            ||          }t          ||           d S )Nr  r   r   r   rg   )rZ   r  r6   r	  ro   weibull_minr   r   r_   re   r.   r  rq  rT   r  s          r0   test_a_is_1zTestExponWeib.test_a_is_1  s     KB""O1a(($((A..8$$$%%aA..$++Aq11h'''''r2   c                 z   t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           t          j                            |||          }t          j                            |          }t          ||           d S )Nr  r   rf   )rZ   r  r6   r	  ro   rb  r   r   r	  s          r0   test_a_is_1_c_is_1z TestExponWeib.test_a_is_1_c_is_1   s    KAr""O1a((;??1%%8$$$%%aA..;%%a((h'''''r2   zx, a, c, ref))r   r~  r   g=J ?)r8  r~  r   g$+PR>)r  r~  r   g><)r  r~  r   ggX.X:)r        ?r   gRy9)r   r	  r  g'vR0=)g_QPr  r  gQ:<c                 l    t           j                            |||          }t          ||d           d S r  )r6   r	  r   r   )r_   re   r.   r  r  r   s         r0   r  zTestExponWeib.test_sf  s8     _1a((Ce,,,,,,r2   zp, a, c, ref))rg  r~  r   g;y$(@)gMg<r~  r   gdbq^@)r  r   rm   gE@)gvIh%L=r	  r   g/7@)rN  r  r  gTWTOc                 l    t           j                            |||          }t          ||d           d S rP  )r6   r	  r  r   )r_   rq  r.   r  r  r  s         r0   r  zTestExponWeib.test_isf>  s8     o!!!Q**Su------r2   )rm   r   r  g)r   r   r   gl̇կc                 l    t           j                            |||          }t          ||d           d S r  )r6   r	  r  r   )r_   re   r.   r  r  r  s         r0   r  zTestExponWeib.test_logcdfK  s8     ''1a00%000000r2   )gR]jp2r  r  gr)r^  rm   rf   gN~c                 l    t           j                            |||          }t          ||d           d S r  )r6   r	  r  r   )r_   re   r.   r  r  r  s         r0   r  zTestExponWeib.test_logsfS  s8     %%aA..s//////r2   N)r   r   r   r	  r	  r	  r   r   r   r  r  r  r  r8   r2   r0   r	  r	    sL       	G 	G 	G( ( ( ( ( (> [	5 	5 	5	 	- -	 	-* [	4 	4 	4 . . .
 [^AGIJ J1 1J J1
 [^IFHI I0 0I I0 0 0r2   r	  c                       e Zd Zd Zd ZdS )TestFatigueLifec                 j    t           j                            dd          }t          |dd           d S )Nr  r~  X9r   r   )r6   r!  r   r   r  s     r0   test_sf_tailzTestFatigueLife.test_sf_tail]  s8       ,,0u======r2   c                 n    d}t           j                            |d          }t          |dd           d S )Nr	  r~  r  r   r   )r6   r!  r  r   )r_   rq  rz  s      r0   test_isf_tailzTestFatigueLife.test_isf_tailk  s:    !!!!S))5u------r2   N)r   r   r   r	  r	  r8   r2   r0   r	  r	  [  s2        > > >. . . . .r2   r	  c                       e Zd Zd Zd Zej                            dddg          d             Zd Z	ej                            dd	d
g          d             Z
dS )TestWeibullc                 f    t           j                            dd          }t          |d           d S r  )r6   r	  r   r   r	  s     r0   r  zTestWeibull.test_logpdft  s0    $$Q**Qr2   c                    d}d}d}t           j                            |||          }t          |t	          j        d          dz             t           j                            |||          }t          |dt	          j        d          z
             t           j                            |||          }t          |t          j
        d                      t           j                            |||          }t          |t	          j        t          j
        d                                t           j                            |||          }t          |t	          j        d                     t           j                            |||          }	t          |	d           t           j                            ddd          }t          |t	          j        d	                     t           j                            ddd          }	t          |	d	           d
}t           j                            |||          }t          |t	          j        d          dz             t           j                            |||          }t          |dt	          j        d          z
             t           j                            |||          }t          |t	          j        d                     t           j                            |||          }t          |d           t           j                            |||          }t          |t          j
        d                      t           j                            |||          }	t          |	t	          j        t          j
        d                                t           j                            ddd          }t          |t          j
        d                      t           j                            ddd          }	t          |	t	          j        t          j
        d                                d S )Nr  r   r  r   r  r   r6  rm   r  rS  g&.gCe )r6   r	  ro   r   rZ   r   r   r  rv   r   r  r  r   r  weibull_max)
r_   re   r.   r/   rq  r3  r  lcrK   r#  s
             r0   test_with_maxima_distribz$TestWeibull.test_with_maxima_distriby  s   .  !!!Qa!0026%==?+++%%a!%44EBF1II-...!!!Qa!00GM%000111%%a!%44BFGM%$8$8#899:::  AQ //26%==)))$$Q$33E"""   Qa 0026$<<((($$R!$44D!!! !!!Qa!0026%==?+++%%a!%44EBF1II-...!!!Qa!0026%==)))%%a!%44E"""  AQ //GM%000111$$Q$33BFGM%$8$8#899:::    33GM*@AAABBB$$UAQ$77BFGM2H$I$I#IJJKKKKKr2   rl   rO  rc   c                 x    t           j                            |dz  |dz  d|          }t          |d           d S )Nr  r  r   r   g>)r6   r	  r
  r   r  s      r0   r  zTestWeibull.test_delta_cdf  sI    " !,,U3Ya38 - : :566666r2   c                    t           j                            d          }d\  }}}t          j        |||          }|                    d|          }t          j                            |dd          \  }}}	t          j                            |dd          \  }
}}||cxk    rdk    sn J ||
k    sJ t          j                            |ddd	
          \  }}}|dk    sJ t          j        |||          }|                    d          }t          j        |          t          j        |          f}t          ||           d S )Nl   > )rm   r7  r   rg   r   r  r   r   r  r  r  r  r  )
rZ   r[   r\   r6   r	  r   r   r   r>  r   )r_   r]   r  rk   rl   r?   r   c2r  r  c3r  r  c4r  r  r  r   r  s                      r0   test_fit_minzTestWeibull.test_fit_min  sT   i##$788#3 C//hhCch22 !,00c0BBD& ,00c0BBD&t    q      Rxxxx !,00a$0OOD&{{{{!"dF33kk$k''gcllEJsOO+S!!!!!r2   r'  )r8  r   r  )r   r   gq뮕qH)c                     t          t          j                            ||          |d           t          t          j                            ||          |d           d S rP  )r   r6   r	  r   r  r+  s       r0   r  zTestWeibull.test_sf_isf   sZ     	),,Q22CeDDDD)--c155quEEEEEEr2   N)r   r   r   r  r	  r   r   r   r  r	  r  r8   r2   r0   r	  r	  r  s          
RL RL RLh [WsCj117 7 217(" " "< [[+J,D+E F FF FF FF F Fr2   r	  c                       e Zd Zd Zd ZdS )TestDweibullc                 B   t           j                            d          }d|                    dd          z  }t          j                            |          }t          j                            |          t          j        d          z
  }t          ||d           d S )N   q>~). rf   rg   r  r   r   r   )
rZ   r[   r\   r  r6   dweibullrE   r	  r  r   )r_   r]   r  r   r  s        r0   rl  zTestDweibull.test_entropy	  s     i##$788

2
...n$$Q''''**RVC[[8Su------r2   c                 P   t           j                            d          }d|                    dd          z  }d|                                z  }t
          j                            ||          }dt
          j                            ||          z  }t          ||d           d S )Nr
  rf   r   r  r   r   r   )
rZ   r[   r\   r  r  r6   r
  r   r	  r   )r_   r]   r  re   r   r  s         r0   r  zTestDweibull.test_sf  s     i##$788


,,,n1%%E%((A...Su------r2   N)r   r   r   rl  r  r8   r2   r0   r 
  r 
    s2        . . .. . . . .r2   r 
  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestTruncWeibullc                 r    t           j                            ddgddd          }t          |ddg           d S )Nrc   r   g)\(?gףp=
?r   )r6   truncweibull_minro   r   r	  s     r0   test_pdf_boundsz TestTruncWeibull.test_pdf_bounds#  s<    "&&Sz3dCCQc
#####r2   c                     t           j                            dddt          j                  }t          |d           t           j                            dddd          }t          |d           d S )Nr   rO  r   r  g~?)r6   r
  r   rZ   r  r   r   r	  s     r0   r  zTestTruncWeibull.test_logpdf(  se    "))#sC@@Q "))#sC==./////r2   c                 r    t           j                            ddgddd          }t          |ddg           d S )Nr   rO  r   rc   )r6   r
  r   r   r	  s     r0   test_ppf_boundsz TestTruncWeibull.test_ppf_bounds0  s<    "&&Sz3SAAQc
#####r2   c                     g d}t           j                            |ddd          }t           j                            |ddd          }t	          ||           d S N)r   rc   rg  r   r   r   rO  r   r   r  )r6   r
  r   rv   r   r_   rz  re   q_outs       r0   test_cdf_to_ppfz TestTruncWeibull.test_cdf_to_ppf5  s[    000"&&q"b"55&**1b"b995!!!!!r2   c                     g d}t           j                            |ddd          }t           j                            |ddd          }t	          ||           d S r
  )r6   r
  r  r   r   r
  s       r0   test_sf_to_isfzTestTruncWeibull.test_sf_to_isf;  s[    000"&&q"b"55&))!RR885!!!!!r2   c                    dddfdt           j                            d          }t          |d           t           j                            d          }t	          fd          \  }}t          ||           t           j                            d          }t	          fd	          \  }}t          ||           t           j                            d
          }t	          fd          \  }}t          ||           t           j                            d          }	t	          fd          \  }
}t          |	|
           d S )Nr   rO  r  c                 T    | |z  t           j                            |           z  S rz   )r6   r
  ro   )re   rp  r.   r/   r  s     r0   xnpdfz)TestTruncWeibull.test_munp.<locals>.xnpdfF  s)    a4.221aA>>>>r2   r   r   c                      | d          S r   r8   re   r
  s    r0   rL   z,TestTruncWeibull.test_munp.<locals>.<lambda>M      a r2   rm   c                      | d          S r  r8   r
  s    r0   rL   z,TestTruncWeibull.test_munp.<locals>.<lambda>Q  r
  r2   r   c                      | d          S rb	  r8   r
  s    r0   rL   z,TestTruncWeibull.test_munp.<locals>.<lambda>U  r
  r2   r   c                      | d          S )Nr   r8   r
  s    r0   rL   z,TestTruncWeibull.test_munp.<locals>.<lambda>Y  r
  r2   )r6   r
  r  r   r   r   )r_   r  r	  m1_expectedr   r  m2_expectedm3m3_expectedr  m4_expectedr.   r/   r  r
  s              @@@@r0   	test_munpzTestTruncWeibull.test_munpA  s   	? 	? 	? 	? 	? 	? 	? #**1aA66R#**1aA663333Q::QK(((#**1aA663333Q::QK(((#**1aA663333Q::QK(((#**1aA663333Q::QK(((((r2   c                 ^   d}d}d}t          j        dt          j        dt          j        dt          j        d          z              z             z
            }t          j                            ||||          }t          |d           t          j                            ||||          }t          |t          j        d                      t          j        	                    d|||          }t          ||           t          j        
                    ||||          }t          |d           t          j                            ||||          }	t          |	t          j        d                      t          j                            d|||          }
t          |
|           d S )NrO  r  r   r   r   r   )rZ   r  r  r   r6   r
  rv   r   r  r   r   r  r  )r_   r.   r/   r  x_medrv   r	  r   r   r#  r  s              r0   test_reference_valuesz&TestTruncWeibull.test_reference_values\  so   BF3"rvbzz/0B)C)C#CDDDEE$((1a88S!!!#**5!Q::RVBZZK((($((aA66U####&&uaA66C   #))%Aq99RVBZZK((($((aA66U#####r2   c                 *   d}d}d}t           j        }d}t          j                            |||          }t          j                            |||||          }t          ||           t          j                            |||          }t          j                            |||||          }	t          ||	           t          j                            |||          }
t          j                            |||||          }t          |
|           t          j        	                    |||          }t          j        	                    |||||          }t          ||           t          j        
                    |||          }t          j        
                    |||||          }t          ||           t          j                            |||          }t          j                            |||||          }t          ||           t          j        
                    dd||d          }t          |t          j        d	                     t          j                            dd||d          }t          |d	           d S )
Nr  r   r   r  r   r6  rm   r   r  )rZ   r  r6   r	  ro   r
  r   r   rv   r  r   r  r   )r_   re   r  r.   r/   rl   rq  p_truncr3  lp_truncrv   	cdf_truncr	  lc_truncrK   s_truncr#  ls_truncs                     r0   test_compare_weibull_minz)TestTruncWeibull.test_compare_weibull_mint  se    F!!!Qe!44(,,Q1au,EE7###%%a%%88)00Aq!50IIH%%%##Aq#66*..q!Q.GG	Y'''%%a%%88)00Aq!50IIH%%%  AU 33(++Aq!Qe+DD7###$$Q$77)//1a%/HHH%%% "%%b!Q%;;26$<<(((#))"aAQ)??D!!!!!r2   c                    d\  }}}t          j        ||d          }t          j                            ||||          }t          j                            ||||          }t          j                            ||          t          j                            ||          z
  }t          j                            ||          |z  }t          j                            ||          t          j                            ||          z
  |z  }	t           j                            ||           t           j                            ||	           d S )N)r~  rg  r  rg   )	rZ   rT  r6   r
  ro   rv   r	  r  r   )
r_   r  r.   r/   re   r  rs  r  r  ru  s
             r0   test_compare_weibull_min2z*TestTruncWeibull.test_compare_weibull_min2  s    "1aK1c""%))!Q155%))!Q155 $$Q**U->-B-B1a-H-HH $$Q**T1!%%a++e.?.C.CAq.I.II4O

""4...

""4.....r2   N)r   r   r   r	
  r  r
  r
  r
  r"
  r%
  r-
  r/
  r8   r2   r0   r
  r
  !  s        $ $ $
0 0 0$ $ $
" " "" " ") ) )6$ $ $0'" '" '"R/ / / / /r2   r
  c                   f    e Zd Zd Zd Zej                            dg d          d             ZdS )	TestRdistc                     t           j        }g d}t          |                    |                    |d          d          |d           d S )Nr  g     @r   rR  )r6   rdistr   rv   r   )r_   r	  r]  s      r0   test_rdist_cdf_gh1285zTestRdist.test_rdist_cdf_gh1285  sX    $$$FJJvzz&%'@'@%HH"A	/ 	/ 	/ 	/ 	/ 	/r2   c                 
   t          j        ddd          }d}t          dt          j        |dz  |dz                                |dz   dz            z  t          j        |                              |                     d S )NgGzr  rf   g@r   rm   r   )rZ   rT  r   r6   r  ro   r3
  )r_   re   r  s      r0   test_rdist_betazTestRdist.test_rdist_beta  s    KtR((C
1Q3! 4 4 8 8!a% C CC!KNN..q11	3 	3 	3 	3 	3r2   r'  ))r  i  g?)rc      g;|bZ?)r   i  g79)r   iU  g޻S/c                 f    t          t          j                            ||          |d           d S rP  )r   r6   r3
  r   r+  s       r0   test_rdist_sfzTestRdist.test_rdist_sf  s/     	q!,,c>>>>>>r2   N)	r   r   r   r4
  r6
  r   r   r   r9
  r8   r2   r0   r1
  r1
    st        / / /3 3 3 [	
 	
 	
 ? ? ? ? ?r2   r1
  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestTrapezoidc                 V   g d}|D ]}d|dg}t          t          j                            |||          t          j                            ||                     t          t          j                            |||          t          j                            ||                     d S )N)r   ry  r   r   r   r   )r   r6   r   ro   triangrv   )r_   modesmodere   s       r0   test_reduces_to_triangz$TestTrapezoid.test_reduces_to_triang  s        	; 	;DD!A 3 3AtT B B % 0 0D 9 9; ; ; 3 3AtT B B % 0 0D 9 9; ; ; ;		; 	;r2   c                 b   t          j        ddd          }t          t          j                            |dd          t          j                            |                     t          t          j                            |dd          t          j                            |                     d S )Nr   r   rf   )rZ   rT  r   r6   r   ro   r  rv   r  s     r0   test_reduces_to_uniformz%TestTrapezoid.test_reduces_to_uniform  s    K1b!!EO//1a88%-:K:KA:N:NOOOEO//1a88%-:K:KA:N:NOOOOOr2   c                 n   t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            d	dd          d
           t          t          j                            ddd          d           t          t          j                            ddd          d
           t          t          j                            d	dd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           d S )Nr   rm   r   r   r   r  rL  rO  rc   g      ?r  r   r	  rt  g      ?)r   r6   r   ro   rv   r^   s    r0   
test_caseszTestTrapezoid.test_cases  s   EO//1a88!<<<EO//1a88!<<<EO//Q<</	1 	1 	1EO//S#>>/	1 	1 	1 	EO//S#>>FFFEO//S#>>EEEEO//S#>>FFFEO//S#>>HHHEO//S#>>FFFEO//S#>>DDDEO//S#>>HHHEO//S#>>DDDDDr2   c                   	
 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                            ||||          |d           t          t          j                            ||||          |d           t          t          j                            ||||          |d           t          t          j                            ddd	d
          dd           t          t          j                            ddd	d
          dd           t          t          j                            ddd	d
          dd           d S )N)r  r   rm   r   rm   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 )Nrm   r   r8   )rp  r.   r/   r  drk  s    r0   r  z6TestTrapezoid.test_moments_and_entropy.<locals>.moment  sn    !ac(Q1X-!A#6!Hq1Q3x/AaC89 :qSqS" #r2   r   r   r  rR  r   r  r/  r   r   )rZ   r  r   r6   r   r   r=  rE   )r_   r  rp	  rk   rl   r  r   r=  rE   r.   r/   r  rG
  rk  s            @@@@@r0   test_moments_and_entropyz&TestTrapezoid.test_moments_and_entropy  s    "
1acac]QqSQqSM1acABU1QqM	# 	# 	# 	# 	# 	# 	# 	# 	#
 vayyfQii$'!1Qq/QqSU1W-sac!eAg0G0GGEO00ReDD "	. 	. 	. 	.EO//BUCC	- 	- 	- 	-EO33BCGG#R	1 	1 	1 	1 	EO00Ar1==r2NNNNEO00Ar1==q"MMMMEO//1b!<<aLLLLLLr2   c                    t          j        g d          }t          j        ddg          d d d f         }t          j        g d          }t          j                            |||          }t          j        |||          \  }}}t          j        |j        |j                  }t          j	        |j                  }	t          |	|                                |                                |                                          D ]+\  }
}}}t          j                            |||          ||
<   ,t          ||                    |j                  d           t          j        t          j                            ||d	                    }t          j        ||          \  }}t          j        |j        d
f          }t          j	        |j                  }	t          |	|                                |                                          D ]+\  }
}}t          j                            ||d	          ||
<   ,t          ||j                            |j                  d           d S )Nr|  r   r  )rX  rg  r   r>  r   r   r  r  r   )rZ   r   r6   r   ro   broadcast_arraysemptyr   r   r  r  ravelr   r;  r=  r   r  )r_   r  rG
  re   r  ccddr  r   indr  ro  c1d1s                 r0   test_trapezoid_vectz!TestTrapezoid.test_trapezoid_vect  s
   H___%%Hc3Z  D)H&&&''O1a(((Aq11
Bhrwbh///i   bhhjj"((**bhhjjII 	5 	5MAr2r_((R44CFF3;;qw//e<<<< Ju,,Q6,BBCC$Q**Bh|$$i  S"((**bhhjj99 	C 	CIAr2_**2r6*BBCFF35==11>>>>>>r2   c                    t           j                            d          }d}t          j        | }|                    d|          }t          j                            |          }|d d         \  }}t          j        |dd          rJ t          j        |dd          rJ t          j                            ||          }t          j                            ||          }	|	|k     sJ d S )	Nl   \"MW )ry  r  r   rm   r   r   rm   r   rc   r   )	rZ   r[   r\   r6   r   r   r   r   r   )
r_   r]   	true_args	true_distre   fitted_argsfitted_cfitted_dtrue_llf
fitted_llfs
             r0   &test_trapezoid_fit_convergence_gh23503z4TestTrapezoid.test_trapezoid_fit_convergence_gh23503)  s     i##$899#	OY/	MM$SM11 o))!,, )!_(;x555555;x555555 ?''	155_))+q99
H$$$$$$r2   N)	r   r   r   r@
  rB
  rD
  rH
  rR
  r[
  r8   r2   r0   r;
  r;
    sw        ; ; ;P P P
E E E(M M M6? ? ?4% % % % %r2   r;
  c                       e Zd Zd ZdS )
TestTriangc                    t          j        d          5  t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d	           t          t          j                            dd          d           t          t          j                            dd          d
           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           d d d            d S # 1 swxY w Y   d S )Nraiser  r   r   r   rO  r   r   rm   r   rg  )rZ   r  r   r6   r=
  ro   rv   r^   s    r0   test_edge_caseszTestTriang.test_edge_casesC  s   [W%%% 	6 	6))!Q//444))#q112666))!Q//444))!Q//333))#q112666))!Q//333))"b112666))#r22D999))#r22C888))"b112666))#r22D999))"b111555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   H)IIIN)r   r   r   r`
  r8   r2   r0   r]
  r]
  B  s#        6 6 6 6 6r2   r]
  c                       e Zd Zej                            dddg          d             Zej                            dg d          d             Zd Zd	 Z	d
S )TestMaxwellr  )r  gCR5&.)r   g7q?c                 d    t          t          j                            |          |d           d S r  )r   r6   maxwellr   r5  s      r0   r  zTestMaxwell.test_sf[  s/     	((++Su======r2   rQ  ))r  g1!@)g    ?g?)g      <gCuJ!@c                 d    t          t          j                            |          |d           d S r   )r   r6   rd
  r  rT  s      r0   r  zTestMaxwell.test_isfd  s/    
 	))!,,c>>>>>>r2   c                 l    d}t           j                            d          }t          ||d           d S )Ngi6ur  r  r   )r6   rd
  r  r   )r_   r  r  s      r0   r  zTestMaxwell.test_logcdfk  s7    %%%a((%000000r2   c                 l    d}t           j                            d          }t          ||d           d S )Ng_OԺr(  r  r   )r6   rd
  r  r   )r_   r  r  s      r0   r  zTestMaxwell.test_logsfq  s7    %##D))s//////r2   N)
r   r   r   r   r   r   r  r  r  r  r8   r2   r0   rb
  rb
  V  s        
 [X::<= => >= => [X: : :; ;? ?	; ;?1 1 10 0 0 0 0r2   rb
  c                       e Zd Zd Zd ZdS )
TestMielkec                    d\  }}t          t          j        ||                              d          t          j                   t          t          j        |d                              d          t          j                   t          t	          j        t          j        |d                              d                               d S )N)g rh@gv?r   rO  r3  )r   r6   mielker  rZ   r  r	   rC  )r_   rb   rK   s      r0   r%  zTestMielke.test_momentsy  s    1U\!Q''..q1126:::U\!S))0033RV<<<ELD1188;;<<=====r2   c                     t          j        ddd          }d\  }}t          t          j                            ||||z            t          j                            |||                     d S )Nr   rg   r8  )g@gHzG@)rZ   rT  r   r6   burrro   rk
  )r_   re   rb   rK   s       r0   test_burr_equivalencez TestMielke.test_burr_equivalence  s^    Kc2&&1
q!QqS115<3C3CAq!3L3LMMMMMr2   N)r   r   r   r%  rn
  r8   r2   r0   ri
  ri
  x  s7        > > >N N N N Nr2   ri
  c                   &    e Zd Zd Zd Zd Zd ZdS )TestBurrc           	      n   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 |D             }d |D             }t	          ||           d |D             }d |D             }t	          ||           d S )Nr   r   )r   rm   )r   r   )rm   r   r  r   rO  )r   rm   r   c                 <    g | ]\  }}} |j         |j        g|R  S r8   r  r  s       r0   r@   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>  r  r2   c                     g | ]\  }}}|	S r8   r8   r  s       r0   r@   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>  r  r2   c                 <    g | ]\  }}} |j         |j        g|R  S r8   )r   r.   r  s       r0   r@   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>  s4    @@@<2uayry&&&&@@@r2   c                 >    g | ]\  }}}t          j        |          S r8   )rZ   r  r  s       r0   r@   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>  s)    FFF)=UI26)$$FFFr2   )r6   fiskrm
  burr12r   )r_   r   r  r  s       r0   test_endpoints_7491zTestBurr.test_endpoints_7491  s     Zq!Z1%Z#Z1%\8S)\63'\63') >====>>>>>!#w///@@4@@@FFFFF!#w/////r2   c                     d\  }}t          j        ||                                           \  }}d\  }}t          ||           t          ||           d S )N)rP  r   )g4U?g&MI?)r6   rm
  r   )r_   r  rG
  r   variancemean_hcvariance_hcs          r0   test_burr_stats_9544zTestBurr.test_burr_stats_9544  s_    1Aq))//11h  Gg&&&+.....r2   c                    d\  }}t          j        ||                                           \  }}t          t          j        |                     t          t          j        |                     d\  }}t          j        ||                                           \  }}t          t          j        |                     t          t          j        |                     d\  }}t           j                            t          j        g d          ||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d\  }}t           j                            g d||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d\  }}t           j                            g d||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d\  }}t           j                            g d||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d\  }}t           j                            g d||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d S )N)r   r   )r  r   r  )r~  r   )r7  r   )r5  r   )r6   rm
  r	   rZ   rn  rC  r  r   )	r_   r  rG
  r   r{
  e1e2e3e4s	            r0   test_burr_nan_mean_var_9544z$TestBurr.test_burr_nan_mean_var_9544  sb   1Aq))//11h""###1Aq))//11hD!!"""""###1))"(<<<*@*@!QG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     r2   c                     d\  }}g d}g d}t          t          j                            |||          |d           d S )N)rP  r  )rc   r  r  r2  )g+&?gI$_@gKT@gؗVAr  r   )r   r6   rm
  r  )r_   r  rG
  rz  r  s        r0   test_burr_isfzTestBurr.test_burr_isf  sV     1&&&# # #
q!Q//5AAAAAAr2   N)r   r   r   ry
  r~
  r
  r
  r8   r2   r0   rp
  rp
    sV        0 0 0(	/ 	/ 	/(! (! (!TB B B B Br2   rp
  c                       e Zd Zej                            dddg          d             Zd Zej                            dg d          d             Zd	S )

TestBurr12zscale, expected)rO  gd~)r7  gR톇T c                 r    t           j                            dddd|          }t          ||d           d S )Ng     jAg     jAr   r  r   r   r   )r6   rx
  r
  r   )r_   rl   rT   rm  s       r0   r  zTestBurr12.test_delta_cdf  s?    ( ''S!Qe'DDxe444444r2   c                     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        ||                              d	          }t          ||d
           d S )Nry  r   r   rm   rp  r   r	  r  r  r  r   )rZ   rp   r  r6   rx
  r   )	r_   r  rG
  r   r=  r>  r  r  r   s	            r0   test_moments_edgezTestBurr12.test_moments_edge  s    
 1uQw"%(2+ouaxCH%6S$)l1a  &&v..Su------r2   zp, c, d, ref))r  r  r   ggx4/@)gҶOɃ;r  r   gI8aS@)r  rg  #   gj\/ @)g#aMR/rg  r
  g!GAc                 l    t           j                            |||          }t          ||d           d S r  )r6   rx
  r  r   )r_   rq  r  rG
  r  re   s         r0   test_isf_near_zerozTestBurr12.test_isf_near_zero   s8     LQ1%%3U++++++r2   N)	r   r   r   r   r   r   r  r
  r
  r8   r2   r0   r
  r
    s        [.<;=> >5 5> >5(. . .  [	0 	0 	0 , , , , ,r2   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j                            e          ZdZ eej                            ee                    5 Z  e!j"        e           Z#ddd           n# 1 swxY w Y   ej        $                    de#d                   d             Z%ej        $                    de#d                   d             Z&ej        j        ej        '                    d          ej        $                    de#d                   d                                     Z(ej        j        d             Z)ej        j        d             Z*ej        $                    de          d              Z+ej        j        ej        '                    d          d!                         Z,ej        j        d"             Z-d# Z.d$ Z/d% Z0dS )&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`"@rt  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/ݤ@)rA  r  r  r   r   rf   r  x   )rm   r  r*  r  )rc   r   i)#  gupm1f?)r   rf   r   g?<-=A?gv"?r   gd暕?ga-A?c                     | j         D ]>\  }}|\  }}}t          j                            |||          }t	          ||d           ?d S )Nr  r   )r   r6   studentized_rangerv   r   )r_   pvkrz  
p_expectedr  rb   res_ps          r0   test_cdf_against_tablesz,TestStudentizedRange.test_cdf_against_tables;   s_    i 	: 	:FC"J1+//1a88EE:D99999	: 	:r2   c                     | j         D ]>\  }}|\  }}}t          j                            |||          }t	          ||d           ?d S )Nr  r   )r   r6   r
  r   r   )r_   r
  
q_expectedrq  r  rb   res_qs          r0   test_ppf_against_tablesz,TestStudentizedRange.test_ppf_against_tablesB   s^    #y 	: 	:OCGAq!+//1a88EE:D99999	: 	:r2   z&data/studentized_range_mpmath_ref.jsonNcase_resultcdf_datac                     |d         }|d         }|d         |d         |d         f}t          j        j        | }t          |||d         |d                    d S 	Nsrc_case	mp_resultrz  rb   r  expected_atolexpected_rtolri  )r6   r
  rv   r   r_   r
  r
  r
  qkvr   s         r0   test_cdf_against_mpz(TestStudentizedRange.test_cdf_against_mpN   s    z*,	smXc]HSM9%)3/Y%o6%o6	8 	8 	8 	8 	8 	8r2   pdf_datac                     |d         }|d         }|d         |d         |d         f}t          j        j        | }t          |||d         |d                    d S r
  )r6   r
  ro   r   r
  s         r0   test_pdf_against_mpz(TestStudentizedRange.test_pdf_against_mpY   r
  r2   z+intermittent RuntimeWarning: invalid value.moment_datac                    |d         }|d         }|d         |d         |d         f}t          j        d          5  t          j        j        | }d d d            n# 1 swxY w Y   t          |||d         |d	         
           d S )Nr
  r
  r  rb   r  r  r  r
  r
  ri  )rZ   r  r6   r
  r  r   )r_   r
  r
  r
  mkvr   s         r0   test_moment_against_mpz+TestStudentizedRange.test_moment_against_mpd   s     z*,	smXc]HSM9 [*** 	7 	7)0#6C	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	Y%o6%o6	8 	8 	8 	8 	8 	8s   AA!$A!c                     d\  }}t          t          j        j        dt          j        ||f          }t          |d         d           d S )Nr   rf   r   rW  r   )r   r6   r
  ro   rZ   r  r   )r_   rb   r  r   s       r0   test_pdf_integrationz)TestStudentizedRange.test_pdf_integrationu   sG    15*.26AGGGA"""""r2   c                    d\  }}t          j        ddd          }t          j                            |||          dd          }t          j                            |||          }t          ||          }t          ||d           d S )	Nr
  r   rf   r   )stepr   r  r   )rZ   r  r6   r
  rv   ro   r   r   )r_   rb   r  re   y_cdf	y_pdf_rawy_pdf_cumulatives          r0   test_pdf_against_cdfz)TestStudentizedRange.test_pdf_against_cdf|   s    1
 Ia$''''++Aq!44QRR8+//1a88	/	1== 	(%d;;;;;;r2   r_case_resultc                     |\  }}}}t          j        d          5  t          j                            |||          }d d d            n# 1 swxY w Y   t          ||           d S )Nr  r  )rZ   r  r6   r
  rv   r   )r_   r
  rz  rb   r  r_resr   s          r0   test_cdf_against_rz'TestStudentizedRange.test_cdf_against_r   s     '1a[*** 	7 	7)--aA66C	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7U#####s   "AAAc                    t          j        d          5  t          j                            ddgddgddg          }d d d            n# 1 swxY w Y   t          |j        d	           t          j        t          d
          5  t          j                            dddgg d           d d d            d S # 1 swxY w Y   d S )Nr  r  r   rm   r   r   rf   r  r$	  z...could not be broadcast...r  )rf   r  rQ  )
rZ   r  r6   r
  r  r   r=  r   r   r  r  s     r0   test_moment_vectorizationz.TestStudentizedRange.test_moment_vectorization   sh    [*** 	H 	H'--q!fq!fr2hGGA	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	&&&]:-KLLL 	C 	C#))!aV\\\BBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs#   (A

AA&B88B<?B<c                    t          j                    5  t          j        d          5  t          j        dt
                     t          j                            g d          \  }}}}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t          j        
                    ||                     d S )Nr  r  r  )rr  rs  rZ   r  rt  r   r6   r
  rq  r	   	_argcheck)r_   rb   r  r   s       r0   test_fitstart_validz(TestStudentizedRange.test_fitstart_valid   sN   $&& 	G 	GH(E(E(E 	G 	G!(,>???1;;IIIFFKAr1a	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	'11!R8899999s5   BAA7+B7A;	;B>A;	?BBBc                    t           j                            ddt          j                  }t           j                            ddd          }t          ||dd           t           j                            ddt          j                  }t           j                            ddd          }t          ||dd           d S )Nr   rf   韆 r  ri  )r6   r
  ro   rZ   r  r   rv   )r_   r   
res_finites      r0   test_infinite_dfz%TestStudentizedRange.test_infinite_df   s     %))!R88,00B>>
Zd>>>>%))!R88,00B>>
Zd>>>>>>r2   c                 Z   t           j                            ddd          }t           j                            ddd          }t           j                            ddd          }t          t          t
          ||dd           t          ||dd           t           j                            ddd          }t           j                            ddd          }t           j                            ddd          }t          t          t
          ||dd           t          ||dd           d S )Nr   rf   r   r
  i rq  ri  )r6   r
  ro   r[  AssertionErrorr   rv   )r_   r   r
  
res_sanitys       r0   test_df_cutoffz#TestStudentizedRange.test_df_cutoff   s    %))!R88,00B>>
,00B>>
nosJd	, 	, 	, 	,
JTEEEE%))!R88,00B>>
,00B>>
nosJd	, 	, 	, 	,
JTEEEEEEr2   c                     d\  }}}t           j                            |||          }t          |dd           |dk    sJ d S )N)gaRA@r   iS  r   r  r   )r6   r
  r   r   )r_   rz  rb   r  rq  s        r0   test_clippingz"TestStudentizedRange.test_clipping   sO     .1a#&&q!Q//15))))Avvvvvvr2   )1r   r   r   q05q01q001rZ   rr  qspsr  vskslistr  r%   r   r_datar   r   r   r
  r   r
  ospathdirnamer  path_prefixrelative_pathopenrl  filejsonr  pregenerated_datar   r
  r
  xfail_on_32bitr
  r
  r
  r
  r
  r
  r
  r
  r
  r8   r2   r0   r
  r
     s       ' ' 'C' ' 'C( ( (D 
c4(	)	)B			B
QBRV	$B	B4GGBB'',,--D
 	*(	
Arv()	
Arv()	
B)*F [: : : [: : : '//(++K<M	bgll;66	7	7 ,4%DIdOO, , , , , , , , , , , , , , , [],=j,IJJ8 8 KJ8 [],=j,IJJ8 8 KJ8 [[ MNN[],=m,LMM8 8 NM ON 8 [# # # [< < < [_f55$ $ 65$ [[ MNNC C ON C [: : :	? 	? 	?F F F*    s   %DD	Dr
  c                       e Zd Zej                            dddd ej        dgdgdgg          g          d             Zd Z	d Z
d Zd	 Zd
S )TestTukeyLambdar  r   r  r  c                     t          j        ddd          }t          j                            ||          }t          j        |                                          sJ |dk                                    sJ d S )Nr  rP  rd   r   )rZ   rT  r6   r(   ro   rC  r   )r_   r  re   rq  s       r0   test_pdf_nonpositive_lambdaz+TestTukeyLambda.test_pdf_nonpositive_lambda   sm     Kc3''!!!S)){1~~!!#####C}}r2   c                    t          j        ddd          }t          j        dgdgdgg          }t          j                            ||          }t          j        |                                          sJ |d d         dk                                    sJ |d         dk                                    sJ |d         dk                                    sJ d S )Nr  rP  rd   r  r   r   rm   )	rZ   rT  r   r6   r(   ro   rC  r   r   )r_   re   r  rq  s       r0   test_pdf_mixed_lambdaz%TestTukeyLambda.test_pdf_mixed_lambda   s    Kc3''hu-..!!!S)){1~~!!##### "1"  """"" !s
!!!!!!  """""""r2   c                 (   t          j        g d          }t          j                            |          \  }}t          j        t           j        t           j        t           j        dddg          }t          ||           t          ||            d S )N)g      r   r   rg  r   r   r   rm   r   )rZ   r   r6   r(   supportr  r   )r_   r  r.   r/   
expected_bs        r0   r1  zTestTukeyLambda.test_support   s|    h999:: ((--1Xrvrvrvq!SABB
Q
###Q$$$$$r2   c                 n    t           j                            ddgd          }t          |ddg           d S )Nr  r   r   r   )r6   r(   ro   r   r  s     r0   test_pdf_support_boundaryz)TestTukeyLambda.test_pdf_support_boundary   s:     !!4+s33Qc
#####r2   c                 t   t           j                             dd          }dt          j        dz  dz  ddg}t	          ||d           t           j                             d	d          }g d
}t	          ||d           t           j                             dd          }g d}t	          ||d           d S )Nr   r  r  rm   r   rt  rf   rR  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r6   r(   rZ   rp   r   )r_   r  rT   s      r0   "test_tukeylambda_stats_ticket_1545z2TestTukeyLambda.test_tukeylambda_stats_ticket_1545!  s     $$Q$77ruaxz1c*B"5555$$T6$::GGGB"5555$$T6$::GGGB"555555r2   N)r   r   r   r   r   r   rZ   r   r
  r
  r1  r
  r
  r8   r2   r0   r
  r
     s        [	dD("(TFSED6#:;;<  	 # # #% % %$ $ $6 6 6 6 6r2   r
  c                   r    e Zd Zd Zd Zej                            dg d          d             Zd Z	d Z
dS )	TestLevyc                 "   t          j        g d          }t          j        g d          }t          j                            |          }t          ||d           t          j                            |          }t          ||d           d S )N)r   rO  r   rc   r   r  )g~V1?r.  gba"?g܄4ťY?r/  g$%+Ir  r   r   )rZ   r   r6   r&  rv   r   r   )r_   re   rT   r.  r  s        r0   test_levy_cdf_ppfzTestLevy.test_levy_cdf_ppf!  s    H77788 8 5 5 5 6 6 JNN18%0000 Z^^H%%AE******r2   c                     t          j        g d          }t          j        g d          }t          j                            |          }t          ||d           d S )N)r  r  gMraB3GrQ  )gep[>g}XEQ=gѭEG<g?_%~:r  r   )rZ   r   r6   r&  r   r   )r_   re   rT   r.  s       r0   test_levy_sfzTestLevy.test_levy_sf0!  sh    H---..8 4 4 4 5 5 JMM!8%000000r2   zp, expected_isf))r  gj1e2H)r(  g6C)r  gnE@)r  g!^x1?)r  gZ?)g   ?g:}!Nu?c                 h    t           j                            |          }t          ||d           d S )Nr  r   )r6   r&  r  r   )r_   rq  expected_isfre   s       r0   test_levy_isfzTestLevy.test_levy_isfF!  s2     JNN1<e444444r2   c                 p    d}d}t           j                            |          }t          ||d           d S )NrQ  g?_%~r  r   )r6   r&  r  r   rV  s       r0   test_levy_logcdfzTestLevy.test_levy_logcdfQ!  s<    $""1%%%000000r2   c                 p    d}d}t           j                            |          }t          ||d           d S )Nr*  gޢاr  r   )r6   r&  r  r   rX  s       r0   test_levy_logsfzTestLevy.test_levy_logsfW!  s<    %
  ##s//////r2   N)r   r   r   r
  r
  r   r   r   r
  r
  r
  r8   r2   r0   r
  r
  !  s        + + +.	1 	1 	1, [.J J JK K5 5K K51 1 10 0 0 0 0r2   r
  c                  ,   t          t          j                            d          ddd           t          t          j                            d          ddd           t          t          j                            dd	d
          ddd           d S )Ng2g?rf   test_540_567)rS  rf  g2gk?g;B.?gͣh?gHŎ*?rj   g.y?)r   r6   r  rv   r8   r2   r0   r
  r
  ^!  s    
}557J "N< < < <
}557K "N< < < <
}.-; ' = =+ "N< < < < < <r2   zdocstrings strippedro  c                      t          dt          j        j        v           t          dt          j        j        v            d S )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r	   r6   r  r  r8   r2   r0   test_regression_ticket_1421r
  j!  s9    (0EEFFFH--.....r2   c            	      	   t          j        d          5  t          t          j        t          j                            dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j        	                    dt           j                                       t          t          j        t          j        
                    dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j                            t           j        d                               t          t          j        t          j                            t           j        d                               t          t          j        t          j        	                    t           j        d                               t          t          j        t          j        
                    t           j        d                               t          t          j        t          j                            t           j        d                               t          t          j        t          j                            t           j        d                               t          t          j        t          j                            t           j        d                               t          t          j        t          j                            t           j        d                               d d d            d S # 1 swxY w Y   d S )Nr  r  r   r   )rZ   r  r	   rn  r6   r  r  r  rv   r  r   ro   r   r   r  r  rK  r5  r8   r2   r0    test_nan_arguments_gh_issue_1362r
  p!  s)   	X	&	&	& < <262233444Q//00111q"&1122333Arv..//000Q//00111262233444Q//00111Q//00111//<<==>>>,,RVS99::;;;..rvs;;<<===++BFC8899:::,,RVS99::;;;//<<==>>>,,RVS99::;;;,,RVS99::;;;#< < < < < < < < < < < < < < < < < <s   RR44R8;R8c                     t           j                            d          } t          j        g d          }t          j                            |d         |d         |d         d|           }t          j        d	          5  t          j        t          j                            |d
                    }d d d            n# 1 swxY w Y   t          ||d           t          j        t          j                            |dd                    }t          ||d           t          j        t          j                            |dd                    }t          ||d           t          j        t          j                            |dd                    }t          ||d           t           j                            d          } d}d}t          j
                            |dd|           }t          j        t          j
                            ||                    }t          j        |t          j        ||z
  dz                                            g          }t          ||d           d S )Ni.  )rg  r   r   r   r   rm   rg   r   r  )r!	  r   r   rR  r   )r   rk   rg  )r   rk   r  r   r   r   )rZ   r[   r\   r   r6   r(  r   r  r   r   r  r  r   )r]   truere   r  rk   r   rT   s          r0   test_frozen_fit_ticket_1536r   !  sR   
)


%
%C8OOO$$D$q'47DG#CPPA	H	%	%	% 9 9%-++AB+77889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 a0000Xem''#1'==>>Fa0000Xem''d'::;;Fa0000Xem''d';;<<Fa0000
)


%
%C
CD
sBSs;;AXejnnQTn2233Fxrw4!'9'9';';<<=>>H!444444s   4CCCc                      t           j                            d          } t          j                            d|           }t          j                            |          }d}t          ||d           d S )Ni	 rg   r   )g
ףp=
?gʡE?r   rR  )rZ   r[   r\   r6   r  r   r   r   )r]   r   r  rT   s       r0   test_regression_ticket_1530r  !  sf    
)


'
'C
,

#

6
6C\c""FH!444444r2   c                  
   t           j                            d          } |                     d          }dD ]K}t          j                            ||z             \  }}t          ||d           t          |dd           Ld S )NrT  r	  )r  g   6ArO  r   r  )rZ   r[   r  randnr6   r  r   r   )r]   re   offsetrk   rl   s        r0   test_gh_pr_4806r  !  s    
)


%
%C		"A' . .\%%a&j11
UV#....s-----. .r2   c                      t          t          j        t          j                            dd                               d S )Nr@  rN  )r	   rZ   rC  r6   r  r5  r8   r2   r0   test_poisson_logpmf_ticket_1436r  !  s2    BK,,T3778899999r2   c                      ddg} | D ]6\  }}t           j                             |d          }t          ||           7dS )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))
    )rO  )r   r  r   r  )r   )gUUUUUU?r=	  g^cQg333333r  r  N)r6   r  r   )rV  r.   
exact_mvskr  s       r0   test_powerlaw_statsr  !  s[    > ,=?E 4 4:~##Av#66!$
33334 4r2   c                  f    t           j                            dd          } t          | d           d S )Nr   r   r   )r6   r  r   r   rq  s    r0   test_powerlaw_edger  !  s/    a##ACr2   c                  x   t           j                            dd          } t          | d           t           j                            dg d          } t          | t
          j        ddg           t           j                            dg d          } t          | t
          j        dt
          j         g           d S )Nr   r   r   )rg  rO  r  rO  )r6   rE  r   r   ro   rZ   r  r  s    r0   test_exponpow_edger  !  s    a##AC 	1...//ARVS#&'''a!1!1!122ARVS26'*+++++r2   c                  h    t           j                            ddd          } t          | d           d S )Nr   r   rO  )r6   gengammaro   r   r  s    r0   test_gengamma_edger  !  s1    1a##ACr2   za, c, ref, tol))g    `6Ar   g2j!@r   )r  r   ggA@r   )r  r   r  r   )r  r   g #@r   )g    `FAr  gI~mr   )gl$W}Lr  g.I#Ur   c                 f    t          t          j                            | |          ||           d S r  )r   r6   r  rE   )r.   r  r  rS  s       r0   test_gengamma_extreme_entropyr  !  s1    " EN**1a00#C@@@@@@r2   c                      t           j                            ddd          } | dk    sJ t           j                            ddd          }|t          j         k    sJ d S )Nr   r   r   r   )r6   r  ro   r   rZ   r  )rq  r  s     r0   !test_gengamma_endpoint_with_neg_cr  
"  sV    1a$$A8888>  Ar**DBF7??????r2   c                      t           j                            ddd          } t          | d           t           j                            ddd          } t          | d           d S )Nr   rN  rO  g>rf   gqq?)r6   r  r  r   r  s    r0   test_gengamma_munpr  "  sZ    Rb))A:&&&RR((A6"""""r2   c                     t          j        g d          } t          j        d          5  t          j                    5  t          j        ddt                     t          j        ddt                     t          j	        
                    |            d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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*˿r  r  z:The maximum number of subdivisions .50. has been achieved.z-floating point number truncated to an integer)rZ   r   r  rr  rs  r  r   ru  r6   rL  r   )rG
  s    r0   test_ksone_fit_freezer  "  sS   
		/ 		/ 		/
	0 
	0A 
X	&	&	&  $&& 	 	#L"  
 #?  
 KOOA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s6   B: AB"B:"B&	&B:)B&	*B::B>B>c            	      r   t          j        t          t          ddd                               } g d}t	          t          j                                        |           |d           t	          t          j                                        | dz             j        |d           t
          j                            | dz             d	z  j	        }t          j
        t
          j                            |           t
          j                            |           z
            }t	          ||d	           d S )
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  )rZ   r   r
  r  r   r6   r  r  realimagr   r   )re   rT   derivderiv_expecteds       r0   test_norm_logcdfr!  7"  s
    
Dq#q))**	+	++A0 0 0H EJLL''**H4@@@@ EJLL''F
338(NNNN Zq6z**506EVEJ--a005:3D3DQ3G3GGHHNE>666666r2   c                      t          j        g d          } t          j        g d          }t          j                            |           }t          ||d           d S )N)gMb{Gzg{Gztg~jtX)g#]<gOul2;gޢا6g̅7=!r   r   )rZ   r   r6   r'  r   r   )re   rT   r.  s      r0   test_levy_l_sfr$  P"  sh    
11122Ax 1 1 1 2 2H 	AAxe,,,,,,r2   c                      t          j        g d          } t          j                            |           }t          j                            |          }t          || d           d S )N)g [n<rg  r  rN  r   )rZ   r   r6   r'  r  r   r   )rq  re   rz  s      r0   test_levy_l_isfr&  \"  s[    
&&&''AAAAqu%%%%%%r2   c                     t          t          j                            dddd          d           t          t          j                            dddd          d           t          t          j                            dddd          d           t          t          j                            d	d
d
d          d           t          t          j                            dd
d
d          d           d S )NrA  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@r  rg   r  r   )r   r6   r  rC  r   r8   r2   r0   test_hypergeom_interval_1802r)  d"  s    ))#vucBB! ! !))$sCC! ! ! ))#vucBB! ! ! $$T3Q77;;;$$QS!44a88888r2   c                     t           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                            |dd           t          j                            |ddd
           t          j                            dd           t          j                            ddd
           t          j                            ddd
d           t          j        	                    ddd
d|            t          j                            t          j        	                    dd|           d           t          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                            |dd
ddd           d S )Nl   ?wH rc   r  r   numrm   r   rO  r	  r   r   rj   r   )rk   rl   r   r  r   r  r   r/  r   )rZ   r[   r\   rT  r[  r  r6   r  ro   r   rv   r   rE   r   r  rK  rb  r	  r  )r]   re   s     r0   test_distribution_too_many_argsr-  s"  sj   
)



+
+C 	C!$$$A)U[_aA3????)U[_aAqcBBBB)U[_aAq!<<<)U[_aA3cJJJJ)U[_b!C"$ $ $ $)U[_aQCsKKKK)U[_aQCsKKKK)U[.A3cJJJJ)U[0"aSLLLL)U[_aQCsKKKK 
KOOAq!	KOOAq!Q	Kb!	Kb!Q	Kb!Q%%%	KOOB1acO222	KOOEKOOBQSOAA2FFF 
JNN1aQN)UZ^Q1a888)UZ^Q1!<<<< )U[_a<<<<)U_0!Q1#FFFF)U_0!Q1c3GGG)UY]Aq!QsCCCC)UY]Aq!Q3cJJJJ	IMM!Q1a%%%%%r2   c                      t           j                            t          j        ddd          dd          } t           j                            t          j        ddd          dd          }t          | |dd           d S )	Nr  r  rL  rm   gYZ@r  r   ra  )r6   ncx2rv   rZ   r  _cdfvecr   r  s     r0   test_ncx2_tails_ticket_955r1  "  sm     	
ryR--q.AAA
29RS111nEEAAqt!,,,,,,r2   c            
      *   t          j                    5  t          j        dt                     t	          t
          j                            dt          j	        dd          d          d           t
          j        
                    dt          j	        dd          d          } d d d            n# 1 swxY w Y   t          t          j        |                                                      t          j                    5  t          j        dt                     t	          t
          j                            ddd	          d           t          t
          j        
                    ddd	          d
           d d d            d S # 1 swxY w Y   d S )Nrn  r   iT  i^  rm   r   r  r   rQ  gsq6)rr  rs  rt  ru  r   r6   r/  ro   rZ   r  r   r	   r  r   r   )logvals    r0   test_ncx2_tails_pdfr4  "  s    
	 	"	" > >g~666UZ^^Aryc':':A>>BBB""1biS&9&91==> > > > > > > > > > > > > > >
 BK##%%&&& 
	 	"	" M Mg~666UZ^^E1b111555
))%B779KLLLM M M M M M M M M M M M M M M M M Ms%   BB11B58B5A9FFFzmethod, expectedrv   gu%>g	;Q=ro   g<x>gRz\R>r   gʎK$/gԆX1r   gfHu@ge:@c                 z     t          t          j        |           dddgd          }t          ||d           d S )Nrc   r   r   rf   )r	  r  r   r   )r.  r6   r/  r   )r  rT   r  s      r0   test_ncx2_zero_ncr6  "  sE      )WUZ((!QB???FFH5111111r2   c                      t           j                            ddd          } t           j                            dd          }t	          | |d           d S )Nrf   r   r   )r  r	  r   )r  r   r   r   )r6   r/  r   r  r   )r  rT   s     r0   test_ncx2_zero_nc_rvsr8  "  sO     Z^^raa^88Fz~~!~44HFH5111111r2   c                      dt          j        dd          z  } t          t          j                            dd|           d           d S )Nrf   r   r  r   r  r	  r   )rZ   r  r   r6   r/  rv   )r	  s    r0   test_ncx2_gh12731r;  "  sB    	RYq"	Bb11155555r2   c                      t          j        g d          } d\  }}t          j                            | ||          }g d}t          ||d           d S )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@r:  )rO  rO  rO  rO  rO  g?gy[qD?r   r   r   r   r   r   r  r   )rZ   r   r6   r/  r   r   )re   nur  r   sf_expecteds        r0   test_ncx2_gh8665r?  "  st    
 " " " 	# 	#A
 %GB	qRC	(	(B' ' 'K
 B%000000r2   c            	         d} d}t          j        t          j                            d| |          t          j                            d| |          d          }t          j                            || |          }t          j                            || |z   t          j        d| z  d|z  z                       }t          ||d	
           d S )Ni,  i  r  r  r  r+  rm   r   r  r   )	rZ   rT  r6   r/  r   ro   r  r  r   )r  r	  re   ncx2_pdfgauss_approxs        r0   test_ncx2_gh11777rC  "  s    
 
B	B
EJNN5"b11JNN5"b11u	> 	> 	>Az~~aR((H:>>!R"Wbga"fq2vo.F.FGGLHl666666r2   zx, c, expected))rm   r   g|1q?)rm   rm   g~?)r  r   V<3T1=) 7yQCr   u	lY<)r  g   vHGBg^b!*1=)rt  rN  gS?c                 h    t           j                            | |          }t          ||d           d S Nr  )r6   
foldcauchyr   r   re   r  rT   r   s       r0   test_foldcauchy_sfrK  #  s4     
			Q	"	"BB%(((((r2   r  ))rm   g?)r  rD  )rE  rF  )g6ްPg8R#/c                 f    t           j                            |           }t          ||d           d S rH  )r6   rI  r   r   )re   rT   r   s      r0   test_halfcauchy_sfrM  #  s2     
			Q		BB%(((((r2   zp, expected))g?g*wӄZ>)333333?gN9?)r   rO  )r   g8<,O@)r  g:B)gl ׶w/gMb}[Pc                 d    t           j                            |           }t          ||           d S rz   )r6   rI  r  r   )rq  rT   re   s      r0   test_halfcauchy_isfrP  (#  s0     	QAAx     r2   c                  x    t          j        dd          } t          |                     d          d           d S )Nr   r   r   )r6   r*  r   rv   )r  s    r0   test_foldnorm_zerorR  4#  s6    		#	#	#BAr2   ))rm   r   gwo{?)r  r   gGd-P/)rf   r:  gof?)r  r:  gOul";c                 h    t           j                            | |          }t          ||d           d S )Nr  )r6   r*  r   r   rJ  s       r0   test_foldnorm_sfrT  H#  s3     
		1a	 	 BB%(((((r2   c                     t           j                             g ddd          } t           j                             ddgdd          }t          d |D                       }t          ||            t           j                             g d          } t           j                             ddg          }t          d	 |D                       }t          ||            d S )
N)r   r   rO  r   r   rO  c              3   R   K   | ]"}t           j        t           j        |f         V  #d S rz   rZ   rI  r  rv	  s     r0   r  z-test_stats_shapes_argcheck.<locals>.<genexpr>W#  s/      88q"%	*888888r2   )rm   r9  r   rm   r9  c              3   R   K   | ]"}t           j        |t           j        f         V  #d S rz   rW  rv	  s     r0   r  z-test_stats_shapes_argcheck.<locals>.<genexpr>]#  s/      88q"%26	*888888r2   )r6   r"  tupler   r(  )mv3mv2mv2_augmenteds      r0   test_stats_shapes_argcheckr]  R#  s     .

3
7
7C
.

Sz1c
2
2C88C88888M$$$ -

lll
+
+C
-

q#h
'
'C88C88888M$$$$$r2   c                       e Zd Zd ZdS )
_distr_genc                     dS Nr	  r8   r_   re   r.   s      r0   _pdfz_distr_gen._pdfh#  s    rr2   Nr   r   r   rc  r8   r2   r0   r_  r_  g#  s#            r2   r_  c                       e Zd Zd ZdS )_distr2_genc                     d|z  |z   S ra  r8   rb  s      r0   _cdfz_distr2_gen._cdfm#      Avzr2   N)r   r   r   rh  r8   r2   r0   rf  rf  l#  s#            r2   rf  c                       e Zd Zd Zd ZdS )_distr3_genc                     ||z   S rz   r8   r_   re   r.   r/   s       r0   rc  z_distr3_gen._pdfr#  s    1ur2   c                     d|z  |z   S ra  r8   rb  s      r0   rh  z_distr3_gen._cdfu#  s     Avzr2   Nr   r   r   rc  rh  r8   r2   r0   rk  rk  q#  s2              r2   rk  c                       e Zd Zd Zd ZdS )_distr6_genc                     ||z  |z   S rz   r8   rm  s       r0   rc  z_distr6_gen._pdf}#  s    sQwr2   c                     d|z  |z   S ra  r8   rm  s       r0   rh  z_distr6_gen._cdf#  ri  r2   Nro  r8   r2   r0   rq  rq  {#  s2              r2   rq  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d Zd Zd Zd Zd ZdS )TestSubclassingExplicitShapesc                 r    t          dd          }t          |                    dd          d           d S )Ndummyr.   r  r  r   ru  r	  r_  r   ro   r_   dummy_distrs     r0   test_correct_shapesz1TestSubclassingExplicitShapes.test_correct_shapes#  s:     gc:::[__Q!_,,b11111r2   c                 v    t          dd          }t          t          |j        dfi t	          d           d S )Nrw  Arx  r   ru  )r_  r[  r  ro   r  rz  s     r0   test_wrong_shapes_1z1TestSubclassingExplicitShapes.test_wrong_shapes_1#  s>     gc:::i!AAtayyyAAAAAr2   c                 ~    t          dd          }t          ddd          }t          t          |j        dfi | d S )Nrw  za, b, crx  r   rm   r   r  )r_  r  r[  r  ro   )r_   r{  r/  s      r0   test_wrong_shapes_2z1TestSubclassingExplicitShapes.test_wrong_shapes_2#  sJ     gi@@@Q!q!!!i!;;s;;;;;r2   c                 X    t          dd          }t          t          t          fi | d S )Nrw  r	  rx  )r  r[  r  r_  r_   r/  s     r0   test_shapes_stringz0TestSubclassingExplicitShapes.test_shapes_string#  s2    +++i33s33333r2   c                 X    t          dd          }t          t          t          fi | d S )Nrw  z(!)rx  r  r[  SyntaxErrorr_  r  s     r0   test_shapes_identifiers_1z7TestSubclassingExplicitShapes.test_shapes_identifiers_1#  s2    ...k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nrw  4chanrx  r  r  s     r0   test_shapes_identifiers_2z7TestSubclassingExplicitShapes.test_shapes_identifiers_2#  2    000k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nrw  zm(fti)rx  r  r  s     r0   test_shapes_identifiers_3z7TestSubclassingExplicitShapes.test_shapes_identifiers_3#  s2    111k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nrw  za=2rx  r  r  s     r0   "test_shapes_identifiers_nodefaultsz@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaults#  s2    ...k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nrw  z*argsrx  r  r  s     r0   test_shapes_argsz.TestSubclassingExplicitShapes.test_shapes_args#  r  r2   c                 X    t          dd          }t          t          t          fi | d S )Nrw  z**kwargsrx  r  r  s     r0   test_shapes_kwargsz0TestSubclassingExplicitShapes.test_shapes_kwargs#  s2    
333k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nrw  za, b, c, lambdarx  r  r  s     r0   test_shapes_keywordsz2TestSubclassingExplicitShapes.test_shapes_keywords#  s3    (9:::k:5555555r2   c                      G d dt           j                  } |d          }t          |                    dd          t           j                            d          dz             d S )Nc                       e Zd Zd ZdS )FTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_genc                 F    t           j                            |          |z  S rz   r6   r  rc  rb  s      r0   rc  zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdf#      zq))A--r2   Nrd  r8   r2   r0   	_dist_genr  #  #        . . . . .r2   r  r.   r  r   rm   ru  r6   rC   r   ro   r  r_   r  r?   s      r0   test_shapes_signaturez3TestSubclassingExplicitShapes.test_shapes_signature#  s|    	. 	. 	. 	. 	.+ 	. 	. 	. y$$$TXXcQX'')<)<Q)>?????r2   c                      G d dt           j                  } |d          }t          t          |j        dfi t          dd           d S )	Nc                       e Zd Zd ZdS )STestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_genc                 F    t           j                            |          |z  S rz   r  rb  s      r0   rc  zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdf#  r  r2   Nrd  r8   r2   r0   r  r  #  r  r2   r  r  r  r   r   rm   r  )r6   rC   r[  r  ro   r  r  s      r0   "test_shapes_signature_inconsistentz@TestSubclassingExplicitShapes.test_shapes_signature_inconsistent#  so    	. 	. 	. 	. 	.+ 	. 	. 	. y'''i3AA$a...AAAAAr2   c                     G d dt           j                  } |d          }t          |                    dd          t           j                            d          dz             t          |                    dd          t           j                            d          dz             t          t          |j        dfi t          d           d S )	Nc                       e Zd Zd ZdS )?TestSubclassingExplicitShapes.test_star_args.<locals>._dist_genc                 V    |d         }t           j                            |          |z  S Nr   r  )r_   re   r0  extra_kwargs       r0   rc  zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdf#  s$    "1gzq))K77r2   Nrd  r8   r2   r0   r  r  #  s#        8 8 8 8 8r2   r  r  r  r   !   r  )xxx)r6   rC   r   ro   r  r[  r  r  r  s      r0   test_star_argsz,TestSubclassingExplicitShapes.test_star_args#  s    	8 	8 	8 	8 	8+ 	8 	8 	8
 y...TXXcrX22EJNN34G4G4JKKKTXXc2&&
s(;(;B(>???i3??$2,,,?????r2   c                 p    G d dt           j                  } |d          }t          |                    ddd          t           j                            d          dz  dz              t          |                    ddd          t           j                            d          dz  dz              d S )	Nc                       e Zd Zd ZdS )ATestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_genc                 \    |d         }t           j                            |          |z  |z   S r  r  )r_   re   r  r0  r  s        r0   rc  zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf#  s)    "1gzq))K7&@@r2   Nrd  r8   r2   r0   r  r  #  s(        A A A A Ar2   r  zoffset, extra_kwargr  r   o   r  )r  r  r  r  s      r0   test_star_args_2z.TestSubclassingExplicitShapes.test_star_args_2#  s    	A 	A 	A 	A 	A+ 	A 	A 	A
 y 5666TXXc#2X>>Z^^C((+c1	3 	3 	3TXXc3++Z^^C((+c1	3 	3 	3 	3 	3r2   c                      G d dt           j                  } |d          }t          |                    dd          t           j                            d                     d S )Nc                       e Zd Zd ZdS )BTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_genc                 r    |                     dd          }t          j                            |          |z  S )Nr  r   )popr6   r  rc  )r_   re   r0  kwargsr  s        r0   rc  zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf#  s0     %jj::zq))K77r2   Nrd  r8   r2   r0   r_  r  #  s#        8 8 8 8 8r2   r_  r  r  r   r   r  r  )r_   r_  r?   s      r0   test_extra_kwargz.TestSubclassingExplicitShapes.test_extra_kwarg#  sw    	8 	8 	8 	8 	8, 	8 	8 	8 z///TXXaQX//1B1BCCCCCr2   c                      G d dt           j                  } |d          }t          |                    d          t           j                            d                     d S )Nc                       e Zd Zd ZdS )ITestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_genc                 @    t           j                            |          S rz   )r6   r  ro   r  s     r0   rc  zNTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdf#  s    z~~a(((r2   Nrd  r8   r2   r0   r  r  #  s#        ) ) ) ) )r2   r   r  r   r  r  s      r0   test_shapes_empty_stringz6TestSubclassingExplicitShapes.test_shapes_empty_string#  sq    	) 	) 	) 	) 	)+ 	) 	) 	) y###TXXc]]EJNN3$7$788888r2   N)r   r   r   r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8   r2   r0   ru  ru  #  s"       2 2 2B B B< < <
4 4 4
6 6 6
6 6 66 6 66 6 66 6 66 6 66 6 6
@ @ @B B B@ @ @3 3 3D D D9 9 9 9 9r2   ru  c                       e Zd Zd Zd Zej                            ed          d             Z	ej                            ed          d             Z
d Zd Zd	 Zd
 ZdS )TestSubclassingNoShapesc                 p    t          d          }t          |                    dd          d           d S )Nrw  r  r   ru  r	  ry  rz  s     r0   test_only__pdfz&TestSubclassingNoShapes.test_only__pdf#  s8     g...[__Q!_,,b11111r2   c                 p    t          d          }t          |                    dd          d           d S )Nrw  r  r   ru  )rf  r   ro   rz  s     r0   test_only__cdfz&TestSubclassingNoShapes.test_only__cdf$  s8    !w///KOOAO33Q77777r2   docstring strippedro  c                     t          d          }t          |j        d           t          |j        d           t	          j        d|j                  }t          t          |          dk               d S )Nrw  r  r   r.   zlogpdf\(x, a, loc=0, scale=1\))	r_  r   numargsr  refindallr  r	   r  r_   r{  r   s      r0   test_signature_inspectionz1TestSubclassingNoShapes.test_signature_inspection$  sr     !g...[(!,,,['---j:$,. .CAr2   c                     t          d          }t          |j        d           t          |j        d           t	          j        d|j                  }t          t          |          dk               d S )Nrw  r  rm   r  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	rq  r   r  r  r  r  r  r	   r  r  s      r0   test_signature_inspection_2argsz7TestSubclassingNoShapes.test_signature_inspection_2args$  sr     "w///[(!,,,['000j=$,. .CAr2   c                 >    t          t          t          d           d S )Nrw  r  )r[  r  rk  r^   s    r0   0test_signature_inspection_2args_incorrect_shapeszHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapes$  s    i7;;;;;;r2   c                 x     G d dt           j                  }t          t          |fi t	          d           d S )Nc                       e Zd ZddZdS )>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genr	  c                     dS ra  r8   rb  s      r0   rc  zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdf$$      rr2   N)r	  rd  r8   r2   r0   r  r  #$  s(             r2   r  rw  r  r6   rC   r[  r  r  r_   r  s     r0   test_defaults_raisez+TestSubclassingNoShapes.test_defaults_raise!$  Z    	 	 	 	 	+ 	 	 	 	iAAd.@.@.@AAAAAr2   c                 x     G d dt           j                  }t          t          |fi t	          d           d S )Nc                       e Zd Zd ZdS )>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_genc                     dS ra  r8   )r_   re   r.   r0  s       r0   rc  zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdf+$  r  r2   Nrd  r8   r2   r0   r  r  *$  #            r2   r  rw  r  r  r  s     r0   test_starargs_raisez+TestSubclassingNoShapes.test_starargs_raise($  r  r2   c                 x     G d dt           j                  }t          t          |fi t	          d           d S )Nc                       e Zd Zd ZdS )<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_genc                     dS ra  r8   )r_   re   r.   r  s       r0   rc  zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdf2$  r  r2   Nrd  r8   r2   r0   r  r  1$  r  r2   r  rw  r  r  r  s     r0   test_kwargs_raisez)TestSubclassingNoShapes.test_kwargs_raise/$  r  r2   N)r   r   r   r  r  r   r   r  DOCSTRINGS_STRIPPEDr  r  r  r  r  r  r8   r2   r0   r  r  #  s        2 2 28 8 8
 [+4HII  JI [+4HII  JI< < <B B BB B BB B B B Br2   r  r  c                      g d} t           j        D ]l}t          t           |          }t          |t           j        t           j        z            r.| D ]+}t          t          j        ||j	                  d u            ,md S )N)z,\s*,z\(\s*,z^\s*:)
r6   rN   r.  r?  rB   rC   r	   r  searchr  )badonesdistnamer?   regexs       r0   r  r  7$  s    ---GM @ @uh''dU.1DDFF 	@  @ @	%66$>????	@ @r2   c                      t          t          j                            t          j        dd          d           t          t          j                            t          j        dd          d           d S )Nrf   r  r   r  rc   r   )r   r6   rI  r   rZ   r  r/  rh  r8   r2   r0   test_infinite_inputr  A$  sR    ((R88!<<<
377;;;;;r2   c                      t           j                            t           j                            dd          d          } t	          | d           d S r  )r6   lomaxr   rv   r   r  s    r0   test_lomax_accuracyr  F$  s=    22A66AAvr2   c                      t           j                            t           j                            dd          d          } t	          | d           d S r  )r6   rA  r   rv   r   r  s    r0   test_truncexpon_accuracyr  L$  sC    U-11&!<<a@@AAvr2   c                      t           j                            t           j                            dd          d          } t	          | dd           d S )Nr  r   r  r:  rR  )r6   r+  r  r   r   r  s    r0   test_rayleigh_accuracyr  R$  sF    5>,,Q22A66A3++++++r2   c                     t          j        d          5 } t          j        d           t          j                            dd           t          j                            dd           t          j                            dd           t          j                            t          j
         d           t          |           }t          |d           ddd           dS # 1 swxY w Y   dS )zregression test for gh-6219T)recordalwaysr   r   r   N)rr  rs  rt  r6   r-  rv   ro   r   r   rZ   r  r  r   )r  number_of_warnings_throwns     r0    test_genextreme_give_no_warningsr  X$  s    
	 	-	-	- 3h'''R###R###R###---$'FF!.2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   B?C""C&)C&c                  P   t          j        t          j                            dt           j        ddgd                    } t           j        }t           j        dz  dz  }dt          j        d          z  t          j	        d	          z  t           j        d	z  z  }d
}||||g}t           j        gdz  x}}g d}t          | d d df         |d           t          | d d df         |           t          | d d df         |d           t          | d d d	f         |           d S )Nr   r   rS  r  r  rm   r/  rQ  r   r9  r   )r   r   r   r/  r   r  r   )rZ   r   r6   r-  r  euler_gammarp   r  r   zetar   r   )	r   r   r=  r>  r?  ref_0ref_1ref_3ref_2s	            r0   test_moments_gh22400r  f$  s#   
 *U%++S"&!T,BF+SS
T
TC >D
%(Q,C

?W\!__,ruax7DD3d#EVHQJEEMMEC1Iu51111QQQTE"""C1Iu51111QQQTE"""""r2   c                     d} t           j                            d          }t          |d| z  dz   d           t           j                            d          }t          || dz   d           t           j                            d          }t	          |d           t           j                            d	d
          }t          || dz  t          j        d
          z   dz   d           t           j                            d
          }t          |d| z  dz   d           t           j                            d          }t          |d| z  dz   d           d S )Ngox?r  rm   r   r  r   r   rO  r  rf   r   r   r  rh  r  )r6   r-  rE   r   r   rZ   r  )r   rk  s     r0   test_genextreme_entropyr  |$  sD   $K  &&AAq}q(u5555  ##AA{QU3333  %%AA  R 00AA{1}rvbzz1A5EBBBB  $$AAr+~)6666  %%AAr+~)666666r2   c                  R   d} t           j                            | d          }t          |d           t           j                            |d          }t          ||            d} t           j                            | d          }t          |d           t           j                            |d          }t          ||            d} t           j                            | d          }t          |d           t           j                            |d          }t          ||            d S )	Nr   rv  g'b%4gQ@rt  gؗҜ;r   g.l6?)r6   r-  r   r   r  )re   rK   rp  s      r0   test_genextreme_sf_isfr
  $  s   2 	AAv&&AA-...				a	(	(BBAAu%%AA()))				a	'	'BBAAq!!AA-...				a	#	#BBr2   c                  l    d} t           j                            | dd          }t          |d           d S )Nr~  rm   r   gH&8>)r6   rx
  r   r   )probr  s     r0   test_burr12_ppf_small_argr  $  s9    D|a++H H455555r2   c                      dd} t          j        g d          }t          j                            |d|           \  }}}t          |dd           |dk    sJ t          |d	d           d
S )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

    r8   r   c                 ,    t          | |||dd          S )Nr  )r0  dispxtolftol)r#   )r  x0r0  r  s       r0   r  z&test_invweibull_fit.<locals>.optimizer$  s    D"4dUKKKKr2   )r   r  rm   r~  rt  r   r  r   r   r  rf   rQ  @   c   )r   r  g`?ry  r   g [@N)r8   r   )rZ   r   r6   r$  r   r   )r  re   r  rk   rl   s        r0   test_invweibull_fitr  $  s    .L L L L 	HHHIIA$((i(HHMAsEAxd++++!8888E8$//////r2   ))r   r  g7Ըh?)r   r  gz]r>)r   g     "@goBڱ9)r  r  g$=cC;c                 j    t           j                            | |          }t          ||d           d S r   )r6   r$  r   r   )re   r  rT   r@  s       r0   test_invweibull_sfr  $  s7     ""1a((HHhU333333r2   zp, c, expected)r   r~  g9?)geK<r   g@c                 j    t           j                            | |          }t          ||d           d S r   )r6   r$  r  r   )rq  r  rT   r@  s       r0   test_invweibull_isfr  $  s7     ##Aq))HHhU333333r2   z	df1,df2,x)r   rL  rO  r?  r   r  r  r}  ru  c                 ^   d}t           j                            || |          }t           j                            || ||          }t	          ||d           t           j                            || |          }t           j                            || ||          }t	          ||d           d S )Nr   r  r   rq  )r6   r  rv   r  r   ro   )df1df2re   r	  expected_cdfcalculated_cdfr   calculated_pdfs           r0   test_ncf_edge_caser!  %  s     
B7;;q#s++LY]]1c333NL.u==== 7;;q#s++LY]]1c333NL.t<<<<<<r2   c                  l    t           j                            ddd          } t          | dd           d S )Nrm   r/  r   g     `E@r  r   )r6   r  r=  r   )r  s    r0   test_ncf_variancer#  %  s6     		aAAAu5))))))r2   c                      t           j                            dddd          } d}t          |t	          j        | d                     d S )Nr  r/  r  gffffff>@g&4I,)?)decimals)r6   r  rv   r   rZ   round)	scipy_val	check_vals     r0   test_ncf_cdf_spotcheckr)  #%  sG    
 	b!R..IIIrx	A>>>?????r2   c                      t          j        ddd          } d| d<   dt          j        j        | gR  }fd| D             }t          ||           d S )Nr   r   r  r~  )rc   rm   r   r   r   c                 >    g | ]}t          j        j        |gR  S r8   )r6   r  r   )r>   xipars     r0   r@   z,test_ncf_ppf_issue_17026.<locals>.<listcomp>3%  s-    	.	.	.b%)-
!S
!
!
!	.	.	.r2   )rZ   rT  r6   r  r   r   )re   rz  q0r-  s      @r0   test_ncf_ppf_issue_17026r/  -%  sl    
Aq#AAaD
C	a#A	.	.	.	.A	.	.	.BArr2   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestHistogramc                 ^   t           j                            d          | _        t          j        g dd          }t          j        |          | _        t
          j        	                    ddd| j                  }t          j        |d	          }t          j        |          | _
        d S )
Nl   &' )r   rm   rm   r   r   r   r   r   r   r   r   r   r   r   r   r/  r/  r/  r/  r  r  r  r  r  r  r  binsrO  r~  r  r<  r8  )rZ   r[   r\   r]   	histogramr6   rD   templater  r   norm_template)r_   r5  r   norm_histograms       r0   r`   zTestHistogram.setup_method8%  s    9((44 L "@ "@ "@FGI I I	*955z~~#Su48~TTd444"/??r2   c                    t          j        g d          }t          j        g d          }t          | j                            |          |           t          | j                            d          d           t          | j                            d          d           t          | j                            d          d           t          | j                            d          d           t          j        d	d
d          }t          | j                            |          t          j
                            |dd          d           d S )Nr   r   rO  r  r   r~  r  r7  r  r5  rP        @r  r  r  r  r         !@r  r;  )r   r   rH  rH  {Gz?r=  Q?r>  {Gz?r?  rL  rL  r?  r?  r>  r>  r>  r>  r   r   r   r>  r<  r  r   r  r   rm   rf   rO  r~  rj   rc   r   )rZ   r   r   r   r6  ro   r   rT  r7  r6   r  )r_   r]  
pdf_valuesre   s       r0   rM  zTestHistogram.test_pdfH%  sX    M M M N NZ !I !I !I J J

 	))&11:>>> 	DM--c22H===DM--c22H=== 	DM--c22H===DM--d33X>>>KAr""*..q11
qc==C	I 	I 	I 	I 	I 	Ir2   c                 6   t          j        g d          }t          j        g d          }t          | j                            |          |           t          | j                            |dd                   |dd                    t          j        ddd          }t          | j                            | j                            |                    |           t          j        ddd          }t          | j                            | j                            |                    |           t          j        d	dd
          }t          | j                            |          t          j
                            |dd          d           d S )Nr:  )r   r   r   r  rH  r=  r>  
ףp=
?Q?{Gz?r  r   r  (\?RQ?=
ףp=?)\(?r(  rO  rO  rm   r   rO  r  rg   r   r   rf   r~  rj   rc   r   )rZ   r   r   r   r6  rv   r   rT  r7  r6   r  )r_   r]  
cdf_valuesre   s       r0   r  zTestHistogram.test_cdf_ppfb%  s    M M M N NZ !M !M !M N N

 	))&11:>>>))*QrT*:;;VAbD\JJJ KS#&&))$-*;*;A*>*>??CCCKS#&&))$-*;*;A*>*>??CCCKAr""*..q11
qc==C	I 	I 	I 	I 	I 	Ir2   c                 D   d}| j                             || j                  }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%k              d           d S )&Nr  r   rO  r   r   rH  rL  r   r~  r=  r  r>  rc   r7  rB  r  rC  r5  rD  rP  r  rA  r;  r   r  r  r  rE  r  rF  r  rG  r   rH  r<  r(  r  )r6  r   r]   r   rZ   rh  r   )r_   r-  r\  s      r0   rE  zTestHistogram.test_rvsx%  s   """AARVFSL))3///v}--x!|#FFFFv}--x!|#FFFFv}--x!|#FFFFv}--x!|#FFFFv}--x!|#FFFFv}--x!|#FFFFv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHRVFSL))3/////r2   c                     t          d          D ]R}t          | j                            |          t	          j        dd                              |          d           Sd S )Nr   rO  r~  rA  r   )r  r   r7  r  r6   r  r  r{  s     r0   r"
  zTestHistogram.test_munp%  sx    q 	G 	GAD.44Q77!JsC0077::G G G G G	G 	Gr2   c                     t          | j                                        t          j                            dd          d           d S )NrO  r~  rj   rA  r   )r   r7  rE   r6   r  r^   s    r0   rl  zTestHistogram.test_entropy%  sT    *2244
**s#*>>T	K 	K 	K 	K 	K 	Kr2   N)	r   r   r   r`   rM  r  rE  r"
  rl  r8   r2   r0   r1  r1  7%  s        @ @ @ I I I4I I I,0 0 0,G G G
K K K K Kr2   r1  c                     ddgg d}} t          j        | |fd          }t          j                            |                    ddg          ddg           |                                dk    sJ t          j        | |fd          }t          j                            |                    ddg          d	           |                                d
k    sJ d}t          j        t          |          5  t          j        | |f          }|                                d
k    sJ 	 d d d            n# 1 swxY w Y   t          j        | g df          }|                                dk    sJ d S )Nr   )r   r   r  F)r  r   rN  r  Tg'^P?g     H@z(Bin widths are not constant. Assuming...r  r=  )
r6   rD   rZ   r  r   ro   rD  r   rz	  ru  )countsr4  r?   rw  s       r0   test_histogram_non_uniformrO  %  s   FLLLDFvtne<<<DJtxxc
33c6]CCC;;==Avtnd;;;DJtxxc
33V<<<;;==F"""" 9G	nG	4	4	4 ' '!64.11{{}}&&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 vyyy122D;;==As   61D44D8;D8c                   f    e Zd Zd Zej                            dddg          d             Zd ZdS )TestLogUniformc                 ~   t           j                            d          }t          j        dd          }|                    d|          }t           j                            d          }t          j        dd          }|                    d|          }t          ||           t          j        t          j	        |          d          \  }}d|
                                cxk    r|                                cxk    rd	k    sn J t          j        t          j        |          d
z
            dk    sJ d S )N   0o[ r  r   r  r   rf   r3  r&  iL  r   )rZ   r[   r\   r6   
loguniformr   
reciprocalr   r5  log10r  r  r   rD  )r_   r]   r  r   rv2r   rC  r   s           r0   
test_aliaszTestLogUniform.test_alias%  s    i##K00h00ff%cf22i##K00x11wwEw44c""",rx}}2666adhhjj6666DHHJJ6666$666666vbioo,--333333r2   r  r  r  c                 D   t           j                            d          }t          j                            ddd|          }t          j                            ||          \  }}}}|dk    sJ t          j                            |d|          \  }}}}|dk    sJ d S )	NrS  rc   r   r   r   r  rm   r  )rZ   r[   r\   r6   rT  r   r   )r_   r  r]   r   r.   r/   rk   rl   s           r0   test_fit_overridez TestLogUniform.test_fit_override%  s     i##K00""33"GG +//F/CC1c5zzzz +//Af/MM1c5zzzzzzr2   c                    t           j                            d          }d\  }}t          j        ||          }|                    ddd          }t          |                    |                    |                    |           |	                    d|          }t          |                    |                    |                    |           dt          j
        d	d
          z  }|                    |          }t          |d d         |dd          z  d           ||z
  t          j        |          t          j        |          z
  z  }	t          |                                |	           d S )Nl   eVi
P )gN~hr  r   r   r   r@  r   r  i8rN  r   rf   )rZ   r[   r\   r6   rT  r  r   rv   r   r   r  ro   r  r   )
r_   r]   r.   r/   r?   rv   r   re   ro   r   s
             r0   test_overflowzTestLogUniform.test_overflow%  s>    i##$78811%% kk!QTk**#//555hhDsh33#//555 4%%%hhqkkCRCQRR("--- Aq		BF1II-.		T*****r2   N)	r   r   r   rX  r   r   r   rZ  r\  r8   r2   r0   rQ  rQ  %  sd        4 4 4" [Xt}55
 
 65
+ + + + +r2   rQ  c                      e Zd Zd Zej                            dddgddgddgg          d	             Zej                            d
ddg          d             Zej                            dg d          d             Z	ej                            dg d          d             Z
ej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d              Zej                            dg d!          d"             Zd#S )$	TestArgusc                     t           j                            ddd          }t          t          j        d                                          |                                d           d S )Nr8  r  E  r   r   rR  )r6   argusr   r   r   r  s     r0   test_argus_rvs_large_chiz"TestArgus.test_argus_rvs_large_chi%  sR    KOOBSsO;;EKOO0022AFFHHaHHHHHHr2   zchi, random_staterc   r`  r     r7     c                     t           j                            |d|          }t          j        |d|f          \  }}t	          |dk               d S )Nr  r   ra  rA  r6   ra  r   rD  r	   )r_   r  r   re   r   rq  s         r0   rE  zTestArgus.test_rvs%  sN     KOOCcOEE|Aw001Dr2   r  r  rq  c                     t           j                            |dd          }t          j        |d           \  }}t	          |dk               d S )Nr  ie r   c                     dd| dz  z
  dz  z
  S )Nr   rm   r  r8   r   s    r0   rL   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>%  s    a!Q$h#->)> r2   rA  rf  )r_   r  r  r   rq  s        r0   test_rvs_small_chizTestArgus.test_rvs_small_chi%  sN    
 KOOCcO??|A>>??1Dr2   zchi, expected_mean))r   g щi?)rf   g.憃?)rx  g\paP?)ry  g	?)r  g,6?c                 l    t           j                            |d          }t          ||d           d S )Nr   r   r   r   )r6   ra  r   r   )r_   r  expected_meanr  s       r0   r  zTestArgus.test_mean%  s9     KS**=u555555r2   zchi, expected_var, rtol))r   gLH'B?r   )rf   go$?r  )rx  g
=>r(  )ry  g2W>r(  )r  gb~P>r(  c                 l    t           j                            |d          }t          |||           d S )Nr   r   r   )r6   ra  r=  r   )r_   r  expected_varr   r  s        r0   r	  zTestArgus.test_var
&  s6     KOOCqO))<d333333r2   zchi, expected, rtol))r   gwM?r  )r   gj?r  )rc   gHEA`!?r  )r   gcف>r   )r  gF=r  )r  g߹Q#B=r  )rq  g0ޟ<r  )r  g*W%:r   c                 D    t          t          |          ||           d S r  )r   r!   )r_   r  rT   r   s       r0   test_argus_phi_small_chiz"TestArgus.test_argus_phi_small_chi&  s%     	
3======r2   zchi, expected))r   )g-\/?g+p7c?g5Ϧ\?)rL  )g
f?gi{?ٸ?gZ@7?)rc   )gB	?g]?gR{?)r   )glͅw?g,?g[Z=?)r  )gz,?g]?gѪ1?)r  )g8<?gE-?gI?)rq  )g~7?g7B.?g9?)r  )g;?g9B.?g}5?c                     t          j        g d          }t          t          j                            ||          |d           d S )Nrc   r   r   r   r   )rZ   r   r   r6   ra  ro   r_   r  rT   re   s       r0   test_pdf_small_chizTestArgus.test_pdf_small_chi"&  B     H___%%3//FFFFFFr2   ))r   )gQ߹?e?grJ,?g򺗄?)rL  )gΎd?g?gh?)rc   )g|
o?gvb?g+@?)r   )g̈́On?ge?gC|[3?)r  )g!?m?g{jiH?gu53?)r  )g~m?g0-.?g3?)rq  )g~m?g7;B.?gŗ3?)r  )g~m?g9B.?gŗ3?c                     t          j        g d          }t          t          j                            ||          |d           d S )Nrq  r  r   )rZ   r   r   r6   ra  r   rr  s       r0   test_sf_small_chizTestArgus.test_sf_small_chi1&  sB     H___%%q#..uEEEEEEr2   zx, chi, expected))P?rg  g;=)rw  r  g[$7>)rR  r~  g=~L]=)rR  r  gD,G
'=c                 j    t           j                            ||          }t          ||d           d S r  )r6   ra  r   r   )r_   re   r  rT   r   s        r0   test_sf_near_1zTestArgus.test_sf_near_1@&  s4     [^^As##H5111111r2   ))r   )g+&?gk?gμm/?)rL  )g?CL\f?g^N?g]AͭR?)rc   )ga>$?g;Lf?gaW?)r   )gx?g 43n?gwY?)r  )go7🤎?g
+-oGn?gIQ9Y?)r  )gT?gGn?g@̋Y?)rq  )gU?g{Gn?giG͋Y?)r  )gDU?g {Gn?gH͋Y?c                     t          j        g d          }t          t          j                            ||          |d           d S )Nrq  r  r   )rZ   r   r   r6   ra  rv   rr  s       r0   test_cdf_small_chizTestArgus.test_cdf_small_chiK&  rt  r2   ))r   )gQ)?g6{?r  )gB`"۹?)g?g8%?r  )rc   )g388?gV%?r   )r   )g*j?gRS%?r   )r  )g!|?gZ%?r   )r  )gy[|?gG%?r   )rq  )g"3|?gW%?r   )r  )g!3|?gW%?r   c                 l    t           j                             |d          }t          |||           d S )Nr  r  r   )r6   ra  r   )r_   r  rT   r   rD  s        r0   test_stats_small_chizTestArgus.test_stats_small_chiZ&  s9     kT22XD111111r2   N)r   r   r   rb  r   r   r   rE  ri  r  r	  ro  rs  rv  ry  r{  r}  r8   r2   r0   r^  r^  %  s       I I I
 [0#J#J#J3
  
  

 [UT4L11  21 [18 8 89 96 69 96
 [6B B BC C4 4C C4
 [2D D DE E> >E E> [	M 	M 	M	N 	NG G	N 	NG
 [	N 	N 	N	O 	OF F	O 	OF
 [	6 	6 	67 72 27 72
 [	P 	P 	P	Q 	QG G	Q 	QG
 [	C 	C 	C	D 	D2 2	D 	D2 2 2r2   r^  c                      e Zd Zd Zd Zd Zd Zd Zej	        
                    dg d          d             Zej	        
                    dg d	          d
             Zd Zej	        
                    dg d          d             Zej	                            d          ej	        
                    dg d          ej	        
                    dg d          ej	        
                    dg d          d                                                 Zej	        
                    dg d          ej	        
                    dg d          d                         ZdS )TestNakagamic                 N    t           j                            d          | _        d S )Nl   i{ rY   r^   s    r0   r`   zTestNakagami.setup_methodj&  ra   r2   c                 n    d}d}t           j                            ||          }t          |d           d S )Nr~  r  gM+)r6   nakagamir   r   )r_   r=  re   r  s       r0   r  zTestNakagami.test_logpdfm&  s<     ~$$Q++122222r2   c                     d}d}t           j                            ||          }t          |dd           t           j                            ||          }t          ||d           d S )Nr~  rP  g"S+:r   r   )r6   r  r   r   r  )r_   r=  r  r   ro  s        r0   r  zTestNakagami.test_sf_isf~&  sm     ^r2&&1>>>>^B''BU++++++r2   c                 v    d}d}d}t           j                            ||          }t          ||d           d S )Nr  r   gUiּr  r   )r6   r  r  r   )r_   re   r=  r  r  s        r0   r  zTestNakagami.test_logcdf&  sC    %&&q"--%000000r2   c                 v    d}d}d}t           j                            ||          }t          ||d           d S )NrA  rQ  gD&`Ur  r   )r6   r  r  r   )r_   re   r=  r  r  s        r0   r  zTestNakagami.test_logsf&  sC    %$$Q++s//////r2   zm, ref))r   g|Bd븿)r   r  )rf   g/ۿc                 d    t          t          j                            |          |d           d S )Ng^~z=r   r   r6   r  rE   r_   r  r  s      r0   rl  zTestNakagami.test_entropy&  s/      	..q113WEEEEEEr2   ))r  g}Ô%I)r  gq_)g    ScAgB4U)g    cAgu1U)r  gb>%)r  gWҙ\c                 `    t          t          j                            |          |           d S rz   r  r  s      r0   test_extreme_nuzTestNakagami.test_extreme_nu&  s*    
 	..q11377777r2   c                     t          j        t          j                            d                    sJ t          j        t          j                            d                    sJ d S )Nr  r  )rZ   rC  r6   r  _entropyr^   s    r0   test_entropy_overflowz"TestNakagami.test_entropy_overflow&  sT    {5>22599:::::{5>226::;;;;;;;r2   znu, ref))r  g2H?)r  g:U?)r  g>c                 d    t          t          j                            |          |d           d S r  )r   r6   r  r   )r_   r=  r  s      r0   r  zTestNakagami.test_mean&  s/     	++B//5AAAAAAr2   z+Fit of nakagami not reliable, see gh-10908.ro  r=  )r  r~  r  rk   )r   rf   r
  rl   )r  r   r  c                   
 d
t           j                            
|||| j                  t           j                                      \  }}}t          ||d           t          ||d           t          ||d           fd}
fd}
fd}	t           ||||          dd	
           t           ||||          dd	
           t           |	|||          dd	
           d S )Nrg   r   r=  rk   rl   r   rL  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   rm   rZ   rh  )r=  rk   rl   ra  s      r0   	dlogl_dnuz(TestNakagami.test_fit.<locals>.dlogl_dnu&  sR    UQY"&GcM):";";;d5!8mbfWs]&;&;;< =r2   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   rm   )rZ   r  r   rh  r=  rk   rl   r-  ra  s      r0   
dlogl_dlocz)TestNakagami.test_fit.<locals>.dlogl_dloc&  sv    RVBZZ)Ar*:*::;rvw}&=>>???@fw}59::; <r2   c                 h    dz  | z  |z  d| z  |dz  z  t          j        |z
  dz            z  z   S )Nr   rm   r   r  r  s      r0   dlogl_dscalez+TestNakagami.test_fit.<locals>.dlogl_dscale&  sG    !GbL5("fuz)BFGcMa3G,H,HHI Jr2   r   r  r   )r6   r  r   r]   r   r   )r_   r=  rk   rl   nu_estloc_est	scale_estr  r  r  r-  ra  s             @@r0   rv  zTestNakagami.test_fit&  s]    .$$!+0tx % I I%*^%7%7%@%@"----3////	5s3333	= 	= 	= 	= 	=	< 	< 	< 	< 	< 	<
	J 	J 	J 	J 	J 	J 			&'9==qtLLLL

67I>>MMMMVWi@@!$OOOOOOr2   c                    d}d}t           j                            ||||| j                  }t           j                            ||          \  }}}t          j        |          }	t          j        t          j        ||z
  dz                      }
t          ||d           t          ||	d           t          ||
d           d S )Nr   rg   r  r  rm   r(  r   )
r6   r  r   r]   r   rZ   r  r  r   r   )r_   rk   rl   r=  rp  ra  r  r  r  loc_theo
scale_theos              r0   test_fit_nuzTestNakagami.test_fit_nu&  s    
 .$$!+0tx % I I%*^%7%7B%7%G%G" 6'??WRWg&7A%=>>??
....5555	:D999999r2   N)r   r   r   r`   r  r  r  r  r   r   r   rl  r  r  r  r  rv  r  r8   r2   r0   r  r  i&  s(       5 5 53 3 3", , ,&1 1 10 0 0 [X	% 	% 	%& &F F	& &F [X	D 	D 	DE E8 8	E E8< < < [Y> > >? ?B B	? ?B [KLL[T???33[UNNN33[Wkkk22P P 32 43 43 MLP8 [UNNN33[Wkkk22: : 32 43: : :r2   r  c                   >   e Zd Zd Zd Zd Zd Zej        	                    dddg          ej        	                    dd	d
e
j        z  e
j         de
j        de
j        z  dg          ej        	                    dg d          d                                     ZdS )TestWrapCauchyc                 N    t           j                            d          | _        d S )Nl   3R" rY   r^   s    r0   r`   zTestWrapCauchy.setup_method&  ra   r2   c                 L   t          j        ddgddgg          }t          j        dgdgg          }t          j                            ||          }|j        dk    sJ d t          j        ||f          D             }t          |                                |d	
           d S )NQ?rg  r   r   rO  r  ry  c                 T    g | ]%\  }}t           j                            ||          &S r8   )r6   
wrapcauchyrv   )r>   ro  rP
  s      r0   r@   z>TestWrapCauchy.test_cdf_shape_broadcasting.<locals>.<listcomp>
'  s?     < < <%b" )--b"55 < < <r2   r   r   )	rZ   r   r6   r  rv   r=  nditerr   rL
  )r_   r  re   rq  scalar_valuess        r0   test_cdf_shape_broadcastingz*TestWrapCauchy.test_cdf_shape_broadcasting'  s     HtTlS$K011HsecU^$$  A&&w&    < <)+Aq6):):< < <		=u======r2   c                 ~    t           j                            t          j        d          }t          |dd           d S )Nr  r   r  r   )r6   r  rv   rZ   rp   r   r  s     r0   test_cdf_centerzTestWrapCauchy.test_cdf_center'  s7      --3U++++++r2   c                    d}d}d}t           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
             d S )NrO  r  r   r   r   rm   )r6   r  rv   r   rZ   arctantanrp   )r_   ro  rp  r  rq  crs         r0   rW  zTestWrapCauchy.test_cdf'  s      "b1--!ea!e_!bi26"Q$<<88>???!a")Brvbebdl/C/C,C"D"DRU"JJKKKKKr2   r  r  rc   rk   r  r   r   rm   rg   rl   )r  r   r  c                     t           j                            |||d| j                  }t	          j        |dk              sJ t	          j        |dt          j        z  k              sJ d S )Nr   )r  rk   rl   r   r   r   rm   )r6   r  r   r]   rZ   r   rp   )r_   r  rk   rl   re   s        r0   test_rvs_lie_on_circlez%TestWrapCauchy.test_rvs_lie_on_circle'  sn    
   1#U&* ! C Cva1f~~va1ru9n%%%%%%%r2   N)r   r   r   r`   r  r  rW  r   r   r   rZ   rp   r  r8   r2   r0   r  r  &  s        5 5 5
> 
> 
>, , ,L L L [S5$-00[UT2be8beVQqwPS$TUU[W&6&6&677& & 87 VU 10& & &r2   r  c                      G d dt           j                  }  | d          }t          j                            d          }t          t          d          5  |                    |           d d d            d S # 1 swxY w Y   d S )	Nc                       e Zd Zd ZdS )/test_rvs_no_size_error.<locals>.rvs_no_size_genc                     dS r   r8   r^   s    r0   _rvsz4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvs)'  s    1r2   N)r   r   r   r  r8   r2   r0   rvs_no_size_genr  ('  s#        	 	 	 	 	r2   r  rvs_no_sizer  i_Oz_rvs\(\) got (an|\d) unexpectedr  r   )r6   rC   rZ   r[   r\   r[  r  r   )r  r  r]   s      r0   test_rvs_no_size_errorr  &'  s        %-    "/}555K
)



+
+C	y(J	K	K	K * *S)))* * * * * * * * * * * * * * * * * *s   A>>BBzdistname, argsc                 n   | t           v rt          j        d|  d           t          t          |           }t          |t          j                  rt          |          dk    rA |j        | \  }}t          |t          j                   t          |t          j                   d\  }} |j        g |||R  \  }}t          |t          j                   t          |t          j                   d S  |j        | \  }	}
t          |	t          j                   t          |
t          j                   d S )Nz6skipping test for the support method for distribution .r   r  )$skip_test_support_gh13294_regressionr   r   r.  r6   r?  rC   r  r
  r   rZ   r  )r  r0  r?   a0b0r1  r2  a1b1r.   r/   s              r0   test_support_gh13294_regressionr  2'  s8   777 0$,0 0 0 	1 	1 	15(##D$+,,  t99>>!T\4(FBRV$$$RV$$$
 f2t2T26222BR   R     t|T"1QQr2   c                  \   t           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                            g g           \  }}t          j        g           t          j        g           }}t          ||           t          ||           |j        |j        k    sJ |j        |j        k    sJ t           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 d S )N)r   r   r   r   )r   r   r   r   r   r   )	r6   r  r
  rZ   r   r  r  r   r=  )r  r  ex_a0ex_b0r  r  ex_a1ex_b1r  r  ex_a2ex_b2s               r0   ,test_support_broadcasting_gh13294_regressionr  M'  s   Zmmm<<FBHrvgw899EHbfbfbfbf566EUU8u{""""8u{""""ZB''FB8B<<"5EUU8u{""""8u{""""Zrd33FBHQxZ  EHQxZ  EUU8u{""""8u{""""""r2   c                  2   ddg} dgdgdgg}t          t          j                            | |          ddgddgddgg           t	          j        d          } t	          j        d          }t          j                            | |          j        dk    sJ d S )	Nr   rO  r   r  r  r  r<   r!  )r   r6   r  r=  rZ   rK
  r=  rj   s     r0   *test_stats_broadcasting_gh14953_regressionr  f'  s    r(CTB4"EU++r2hR2r(-KLLL
(5//CHVE:>>#u%%+v555555r2   )gn!	g:I"<)gQ	@gE?c                     t          t          j                            |           |           t          t          j                            |            |           d S rz   )r   r6   cosinerv   r   )re   rT   s     r0   test_cosine_cdf_sfr  t'  sJ     EL$$Q''222ELOOQB''22222r2   ))rq  gkM6O)r  g0ӭ!	)rN  g;'u(@c                     t          t          j                            |           |           t          t          j                            |           |            d S rz   )r   r6   r  r   r  )rq  rT   s     r0   test_cosine_ppf_isfr  |'  sL    
 EL$$Q''222EL$$Q''(33333r2   c                      t           j                            t          j         t          j        g          } t          | d           d S )NgrB)r6   r  r   rZ   rp   r
   )r  s    r0   test_cosine_logpdf_endpointsr  '  s:    <//D d./////r2   c                      d t           D             } d t          D             }| |k    sJ d t          D             }d t          D             }||k    sJ d S )Nc                 B    h | ]\  }}t          |t                    |S r8   )r?  rH   r>   r  r   s      r0   	<setcomp>z*test_distr_params_lists.<locals>.<setcomp>'  s:     4 4 474'c224$ 4 4 4r2   c                     h | ]\  }}|S r8   r8   r  s      r0   r  z*test_distr_params_lists.<locals>.<setcomp>'  s    AAAgdATAAAr2   c                     h | ]\  }}|S r8   r8   r  s      r0   r  z*test_distr_params_lists.<locals>.<setcomp>'  s    333wtQd333r2   c                     h | ]\  }}|S r8   r8   r  s      r0   r  z*test_distr_params_lists.<locals>.<setcomp>'  s    999'$999r2   )r   r   r   r   )discrete_distnamesinvdiscrete_distnamescont_distnamesinvcont_distnamess       r0   test_distr_params_listsr  '  s    4 4l 4 4 4AAAAA!6666633(333N99[999.......r2   c                      t           j                            dd           t           j                            dd          dk    sJ t           j                            dd          dk    sJ d S )Nr   rb   rw  r   )r  r.   r  )r6   r  _statsr  r  r8   r2   r0   test_moment_order_4r  '  sr     
NAs+++ >  qA ..#5555 >1%%,,,,,,r2   c                      e Zd Zej        d             Zej                            dg d          d             Zej                            dg d          d             Z	ej        j
        e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dS )TestRelativisticBWc                     t          j        t          t                    j        dz            }t           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  r  ry  s     r0   ROOT_pdf_sample_dataz'TestRelativisticBW.ROOT_pdf_sample_data'  sM     wNN!;<
 
 v  /@ AAr2   zrho,gamma,rtol))qVEB@gj+@rN  )FC@Gz @r  )ND@_LU?r/  c                     ||d         |k    |d         |k    z           }|d         |d         }}t          |t          j                            |||          |           d S )Nrhor  re   ro   r   r   )r   r6   rel_breitwignerro   )r_   r  r  r  r   r   re   ro   s           r0   test_pdf_against_ROOTz(TestRelativisticBW.test_pdf_against_ROOT'  s     $!%(C/#G,57
 cDK3&**1c*??d	
 	
 	
 	
 	
 	
r2   zrho, Gamma, rtol))r  r  r/  )r  r  r/  )r  r  g&.>c                    d }t          j        ddd          }t          j                            |||          }t          j                            |||          } ||||z  |          }t          |||           d S )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  )rZ   r  rp   )Er  Gammar  rb   s        r0   ro   zFTestRelativisticBW.test_pdf_against_simple_implementation.<locals>.pdf'  s    GAqDAqD5!8O455ERWQZZ!#e+e3EBGAqD5L1113AA1q(1a4q=899r2   rA  rA  rf   r   r   )rZ   rT  r6   r  r   ro   r   )	r_   r  r  r   ro   rq  re   r   r  s	            r0   &test_pdf_against_simple_implementationz9TestRelativisticBW.test_pdf_against_simple_implementation'  s    	: 	: 	: KdB''!%%aE%::#''3e'<<c!SY&&St,,,,,,r2   z	rho,gammar  r  r  r  r  r  r  c                    d}t           j                            |          }t          j                            ||d|          }t          j                            |d          }t          |d         |d         f||fd           |d	         dk    sJ t          j                            |d|
          }t          |d         |d           |d	         |d         fd|fk    sJ dS )zpTests fit for cases where floc is set.

        `rel_breitwigner` has special handling for these cases.
        l   s;
rl# r   r  r   r   rm   rL  r   r   r=  r   N)rZ   r[   r\   r6   r  r   r   r   )r_   r  r  r   r]   r   r   s          r0   test_fit_flocz TestRelativisticBW.test_fit_floc'  s    & #i##D))$((u4c ) 
 
 #''1'55QQ(3,TBBBB1v{{{{#''1U'CCA$////AAAu:------r2   N)r   r   r   r   r  r  r   r   r  r  r   r  r   r  r8   r2   r0   r  r  '  se       ^  ^$ [ 
 
 
 
 
 
 [/ 2 2 2  - - - [[FL"F&+2B   FL!50A   FL &0A  

 . .  . . .r2   r  c                   Z    e Zd Zej                            dddg          d             ZdS )TestJohnsonSUr  )r#  r  r  r  g={?g?5mV>gn?g\}\1@)g`fo@g$ں_@r   r   gvUgN<fj?gwCg~l
@c                 v    t          j        j         |d d         ddi}t          ||dd          d           d S )Nr   r  r  r  r   )r6   rQ  r   )r_   r  r   s      r0   test_moment_gh18071z!TestJohnsonSU.test_moment_gh18071	(  sF     o#T"1"X>v>>T!""XE222222r2   N)r   r   r   r   r   r   r  r8   r2   r0   r  r  (  sZ        [VOJ&K L L
3 3L L
3 3 3r2   r  c                   8   e Zd Zd Zd Zej                            dddg          ej                            dddg          ej                            dddg          ej                            dddg          d	                                                 Zd
S )TestTruncParetoc                 H   d\  }}t          j        dd          }t          j        ||                              |          }t          j        |                              |          t          j        |                              |          z  }t          ||           d S )N)?333333@r  r  )rZ   rT  r6   truncparetoro   r  rv   r   )r_   r/   r  re   r   r  s         r0   rM  zTestTruncPareto.test_pdf(  s    1KS!!1%%))!,,l1oo!!!$$u|A':':1'='==S!!!!!r2   c           
         d\  }}}t          j        ||          }|||z  ||z  z
  z  }|||dz
  z  z  }| }||z  }|}	d}
t          j        |||
|	          }t	          |                    |          |           t	          |                    |          t          j        |                    |                               t	          |                    |dd                    t          j        |	                    |dd                                         t	          |
                    |d d                   t          j        |                    |d d                                        d S )N)r   r   r   r   r   r   )rZ   rT  r6   r   r   ro   r   r  r  rv   r  r   )r_   r.   xminxmaxre   Cr  r/   r  rl   rk   r   s               r0   test_pdf_negativez!TestTruncPareto.test_pdf_negative!(  sG     4Kd## TQY&'!A, B4KaC//a#&&&RVAEE!HH%5%5666122ae)=)=>>>#2#QssV)=)=>>>>>r2   r   TFr9  r  r  c                    t           j                            d          }d\  }}}}	t          j        ||||	          }
|
                    d|          }i }|r||d<   |r|	|d<   |r||d<   |r||d	<   |rU|rS|rQ|rOd
}t          j        t          |          5  t          j        j	        |fi | d d d            d S # 1 swxY w Y   d S t          t          j        |fi | d S )Nl   Z#Lm )r  r  r   r~  rj   r  r   r   r   r   r	  r  r  )rZ   r[   r\   r6   r   r   r   r   r  r   r   )r_   r   r9  r  r  r]   r/   r  rk   rl   r?   r   r   rw  s                 r0   rv  zTestTruncPareto.test_fit8(  s}    i##$788+1c5 A3e<<<xxSsx33 	DL 	#"DN 	DJ 	DJ 	Ky 	KU 	Ku 	KKG|7;;; 4 4!%d33d3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 *%*;TJJTJJJJJs   B>>CCN)	r   r   r   rM  r  r   r   r   rv  r8   r2   r0   r  r  (  s        " " "? ? ?. [Yu66[[4-88[WtUm44[WtUm44K K 54 54 98 76K K Kr2   r  c                       e Zd Zd ZdS )
TestKappa3c                     dt           j                            dd          z
  }t           j                            dd          }t	          ||           d S )Nr   r   g     j@)r6   kappa3rv   r   r   )r_   sf0rt  s      r0   r  zTestKappa3.test_sfV(  sK     %,""3,,,looc3''S!!!!!r2   N)r   r   r   r  r8   r2   r0   r  r  U(  s#        " " " " "r2   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dS )TestIrwinHallr   r   rf   c                 V    t          | j                            d          d           d S )Nr  )r   g?r   gQ)r   ih10r6   r^   s    r0   test_stats_ih10zTestIrwinHall.test_stats_ih10d(  s)     	TY__V446JKKKKKr2   c                      g d} fdt          t          |                    D             }t          ||            j                            d          }d}t          ||           d S )N)	r   gUUUUU9@g     0a@i  gx@gn۶mˠ@g    :PAg8)Ag   SAc                 J    g | ]}j                             |d z              S rr
  )r  r  )r>   rp  r_   s     r0   r@   z3TestIrwinHall.test_moments_ih10.<locals>.<listcomp>q(  s-    CCCQ49##AaC((CCCr2   r8  g2⍚H)r  r  r   r  r  )r_   rC  r  m50	m50_exacts   `    r0   test_moments_ih10zTestIrwinHall.test_moments_ih10j(  s~    - - - DCCC%D		2B2BCCCWd+++ir""H	S),,,,,r2   c                     t          j        ddd          }| j                            |          }| j                            |          }t          ||d           d S Nr   r   rg   rf   maxulp)rZ   rT  unifro   ih1r   )r_   ptspdf_unifpdf_ih1s       r0   test_pdf_ih1_unifzTestIrwinHall.test_pdf_ih1_unifx(  sX     k!Q$$9==%%(,,s##Whr::::::r2   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 <   |                    |          }t          ||d           d S )Nrm   rd   r   r   rf   r  )r6   r  rZ   rT  ro   r   )r_   ih2nptsr  rT   pdf_ih2s         r0   test_pdf_ih2_trianglez#TestIrwinHall.test_pdf_ih2_triangle(  s    oa  k!Q%%;q!T**%&4!8/2B2B)C%C$(q!!"''#,,Whr::::::r2   c                     t          j        ddd          }| j                            |          }| j                            |          }t          ||d           d S r  )rZ   rT  r  rv   r  r   )r_   r  cdf_unifcdf_ih1s       r0   test_cdf_ih1_unifzTestIrwinHall.test_cdf_ih1_unif(  sV    k!Q$$9==%%(,,s##Whr::::::r2   c                     t          j        dd          }t          j        |          }|                    |dz            }t          j        dt          |                    }t          ||d           d S )Nr   rf   rm   r   r  )rZ   r  r6   r  rv   r  r  r   )r_   rp  ihih_cdfexacts        r0   rW  zTestIrwinHall.test_cdf(  sg    Ia_QA	#s1vv&&VU2666666r2   c                 2   g d}t          | j                            t          j        d                    |d           t          | j                            d          dd           d}t          | j                            d          |d           d S )	N)r   g\xO~>g-P2?g8ʝi?gg{Ȇ?r   g&M?g׈Y?gB?gDl?r   r  rf   r  rc   g+|<rO  g#@)r   r  rv   rZ   r  r9  s      r0   test_cdf_ih10_exactz!TestIrwinHall.test_cdf_ih10_exact(  s    ( ( ( 	TY]]29R==994KKKKTY]]4002EbQQQQ1TY]]5113rBBBBBBr2   c                     g d}|dg|d d d         z   z  }t          | j                            t          j        d                    |d           d S )N)r   g4V>gP3NV?g*8f?gNgX?gjS?r   r  rf   r  )r   r  ro   rZ   r  r  s     r0   test_pdf_ih10_exactz!TestIrwinHall.test_pdf_ih10_exact(  s\     JII$ttt*,,TY]]29R==994KKKKKKr2   c           	      ,   t          | j                            t          j        d                    d| j                            t          j        d                    z
             d}t          | j                            d          |d           d S )Nr  r   rO  rc   rf   r  )r   r  r   rZ   r  rv   r   )r_   r  s     r0   test_sf_ih10_exactz TestIrwinHall.test_sf_ih10_exact(  st    	RYr]]33QryQS}}9U9U5UVVV 2TY\\$//R@@@@@@r2   N)r   r   r   r6   r  r  r  r  r  r  r  r  r$  r(  rW  r.  r0  r2  r8   r2   r0   r  r  _(  s        5=AD
%/!

C5?2DL L L- - -
; 
; 
;; ; ;; ; ;7 7 7C C C L L LA A A A Ar2   r  c                       e Zd Zd ZdS )TestDParetoLognormc                    d\  }}}}}t          j        ||||          }t          j                            |                    |          d           t          j                            |                    |          d           d S )N)r  r   rt  r  rm   g6Z?g@#
?)r6   dpareto_lognormrZ   r  r   ro   rv   )r_   re   r  rK   r.   r/   r?   s          r0   test_against_Rz!TestDParetoLognorm.test_against_R(  su     ,1aA$Q1a00

""488A;;0CDDD

""488A;;0CDDDDDr2   N)r   r   r   r7  r8   r2   r0   r4  r4  (  s(        E E E E Er2   r4  r  ))r
  NNNN)r  NNNN)r(  NNNN)r  NNNN)r  NNNNc                    | \  }}}}}t          j        d          }|pd}|pd}|pd}|pd}t          t          |          }t	          t
                    |         } || }	t          j        ||          }
|	                    |	                    |
                    }t          ||
||           dt          j        ||d          z
  }
|	                    |	                    |
                    }t          ||
||           d S )	Nr   iir   r  ri  r   r  )
rZ   rV  r.  r6   r  r   r  r   r  r   )r  r  lp1lp2r   r   lpmr?   r  dist_frozenr  r   s               r0   test_sf_isf_overridesr=  (  s
    &*"Hc3d
(3--C
+C
*C91D=5D5(##D(^^H%F$-K +c3

C
..--
.
.CC4d3333 bk#sB''
'C
..--
.
.CC4d333333r2   rz   )NF(  r  rr  r  r  r	  r  pathlibr   r
  r
  rh  numpy.testingr   r   r   r   r   r	   r
   r   r   r   r[  numpyrZ   r   r   numpy.lib.recfunctionsr   r5   r   scipy._lib._utilr   r6  r   r   r   r   scipy.statsr6   !scipy.stats._distn_infrastructurer   scipy.stats._constantsr   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  rk  r  r  r1   r9   rU   rW   r   r  r   r   r1  r3  rY  r  r  r  r  r  r  r0  r<  rd  r  r  r  r  r  r  r  r&  r-  rG  rL  r_  ri  r}  r  r  r(  rM  rX  r[  r  r  r  r  r  r$  r:  rH  ro  ry  r  r  r  r  r  r  r  r  r  r/  rY  r  r  r  rp   r  r  r  r   r  r  r2  r?  rC  rG  rR  r`  r  r  r  r  r  r  r  r  r  r  r  r  r	  r.	  r	  r	  r	  r	  r	  r	  r	  r	  r 
  r
  r1
  r;
  r]
  rb
  ri
  rp
  r
  r
  r
  r
  r
  r  r
  r
  r   r  r  r  r  r  r  r  r  r  r  r  r!  r$  r&  r)  r-  r1  r4  r6  r8  r;  r?  rC  rK  rM  rP  rR  rT  r]  rC   r_  rf  rk  rq  ru  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r!  r#  r)  r/  r1  rO  rQ  r^  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r4  r=  r8   r2   r0   <module>rO     s!     				 



            				  D D D D D D D D D D D D D D D D D D D D  * * * * * *     " " " " " " " " 4 4 4 4 4 4       / / / / / /3 3 3 3 3 3 3 3 3 3 3 3       8 8 8 8 8 8 ( ( ( ( ( (         0 0 0 0 0 0 0 0 0 0 ; ; ; ; ; ; ; ; > > > > > > > > C C C C C C C C = = = = = = = = = =       i(1,  |x'M.>h.>.@.@H.L )6z'B $$ $ $ $8 8 8
  J@ J@ J@ J@ J@ J@ J@ J@Z4 4 4 4D. . .. > > >? ?

6 
6? ?

69 9 9 9 9 9 9 9>G, G, G, G, G, G, G, G,T* * * * * * * *       >       O, O, O, O, O, O, O, O,d<B <B <B <B <B <B <B <B~D/ D/ D/ D/ D/ D/ D/ D/N# # # # # # # #<E; E; E; E; E; E; E; E;PE E E E E E E EP0 0 0 0 0 0 0 0@@D @D @D @D @D @D @D @DFGU GU GU GU GU GU GU GUT2 2 2 2 2 2 2 2(K (K (K (K (K (K (K (KV> > > > > > > >*7D 7D 7D 7D 7D 7D 7D 7Dt
C 
C 
C 
C 
C 
C 
C 
CA2 A2 A2 A2 A2 A2 A2 A2H4 4 4 4 4 4 4 4DI6 I6 I6 I6 I6 I6 I6 I6X* * * * * * * *. G  G  G  G  G  G  G  GFJ" J" J" J" J" J" J" J"Z=I =I =I =I =I =I =I =I@`& `& `& `& `& `& `& `&FjD jD jD jD jD jD jD jDZD D D D D D D D,D D D D D D D D,Y< Y< Y< Y< Y< Y< Y< Y<x3: 3: 3: 3: 3: 3: 3: 3:l"B "B "B "B "B "B "B "BJS# S# S# S# S# S# S# S#lt: t: t: t: t: t: t: t:nUO UO UO UO UO UO UO UOp< < < < < < < <~'* '* '* '* '* '* '* '*TM@ M@ M@ M@ M@ M@ M@ M@`/ / / / / / / /2!, !, !, !, !, !, !, !,H]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3@5 5 5 5 5 5 5 5.v0 v0 v0 v0 v0 v0 v0 v0r7F 7F 7F 7F 7F 7F 7F 7FtT6 T6 T6 T6 T6 T6 T6 T6n9J 9J 9J 9J 9J 9J 9J 9Jx0D 0D 0D 0D 0D 0D 0D 0DfDD DD DD DD DD DD DD DDN( ( ( ( ( ( ( (Vq0 q0 q0 q0 q0 q0 q0 q0haJ aJ aJ aJ aJ aJ aJ aJH*9 *9 *9 *9 *9 *9 *9 *9Z+G +G +G +G +G +G +G +Gl 7271ag;		
	gbga25k""	"	
	1RU7$$	$		AbeG%%	%		GBGAqwK((	(	* + 	7271c"%i=!!7271c"%i=)))7271c"%i=)))50gbgaRUm,,,g53ru9...	9; < "WRWQruW


r'"'!BE'"""
#

WRWQruW%%%
&

#gbgag&&&
'

D25)))
*

eGBGAbeG,,,
-

wrwqw///
0

 '!  H`V `V `V `V `V `V `V `VF6 6 6 6 6 6 6 6&5 5 5 5 5 5 5 5:
8 
8 
8 
8 
8 
8 
8 
8s5 s5 s5 s5 s5 s5 s5 s5l/, /, /, /, /, /, /, /,d	E 	E 	E 	E 	E 	E 	E 	E       /G /G /G /G /G /G /G /Gd7B 7B 7B 7B 7B 7B 7B 7BtJ" J" J" J" J" J" J" J"Zf" f" f" f" f" f" f" f"Rw> w> w> w> w> w> w> w>t	3 	3 	3P6 P6 P6 P6 P6 P6 P6 P6fB= B= B= B= B= B= B= B=J& & & & & & & &D$ $ $ $ $ $ $ $*]/ ]/ ]/ ]/ ]/ ]/ ]/ ]/@) ) ) ) ) ) ) )       , , , lG lG lG lG lG lG lG lG^b, b, b, b, b, b, b, b,Jw; w; w; w; w; w; w; w;t]H ]H ]H ]H ]H ]H ]H ]H@", ", ", ", ", ", ", ",JE& E& E& E& E& E& E& E&P6 6 6 6 6 6 6 68=" =" =" =" =" =" =" ="@u0 u0 u0 u0 u0 u0 u0 u0p. . . . . . . ..SF SF SF SF SF SF SF SFl. . . . . . . .2J/ J/ J/ J/ J/ J/ J/ J/Z ?  ?  ?  ?  ?  ?  ?  ?Fn% n% n% n% n% n% n% n%b6 6 6 6 6 6 6 6(0 0 0 0 0 0 0 0DN N N N N N N NRB RB RB RB RB RB RB RBj2, 2, 2, 2, 2, 2, 2, 2,jC C C C C C C CL>6 >6 >6 >6 >6 >6 >6 >6BD0 D0 D0 D0 D0 D0 D0 D0N	< 	< 	< '0EFF/ / GF/
< < <*5 5 585 5 5. . .: : :#4 #4 #4L  	, 	, 	,   )J J JK K
A 
AK K
A  # # #  :7 7 72	- 	- 	-& & &9 9 9%& %& %&P- - -M M M" +
HBHo7889
HBHo7889xrx|4556
HBHk;/001	.  2 2 22 2 26 6 61 1 167 7 7: ); ; ;< <) )< <) : : :; ;
) ); ;
) ; ; ;< <! !< <!
  ( ); ; ;< <
) )< <
)
% % %*    $   
    %%   
    %%       %%   u9 u9 u9 u9 u9 u9 u9 u9p8B 8B 8B 8B 8B 8B 8B 8Bv '0DEE@ @ FE@< < <
    , , ,3 3 3# # #,7 7 7.) ) )X6 6 60 0 0D )F F FG G
4 4G G
4 )<<>? ?4 4? ?4
 !!!""""#___ = = = * * *@ @ @  ^K ^K ^K ^K ^K ^K ^K ^KB  .3+ 3+ 3+ 3+ 3+ 3+ 3+ 3+lA2 A2 A2 A2 A2 A2 A2 A2HR: R: R: R: R: R: R: R:j%& %& %& %& %& %& %& %&P	* 	* 	* )?[+HII    JI 4# # #26 6 6 ;467 73 37 73
 7 7 78 84 4	8 84
0 0 0/ / /- - -(W. W. W. W. W. W. W. W.t3 3 3 3 3 3 3 3 :K :K :K :K :K :K :K :Kz" " " " " " " "]A ]A ]A ]A ]A ]A ]A ]A@E E E E E E E E*  "G "G "G H H
4 4H H
4 4 4r2   