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

9\#::;mmB'sRx()
3 0 01tDIGmmB#''*		)L"99:r2   c                     t         j                  dd }t        j                  |dk\  |dk  z  dd      }t        j                  j                  |dd      }t        ||       y )Nr   $   r   r0  {Gz?)r8  r_wherer6   r7  pmfr   )rj   rS   outr?  s       r0   test_pdfzTestRandInt.test_pdfs  sR    HHQrNkk16a"f-z1=}}  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                  j                  |dd      }t        ||d
       y )Nr   rC  rX   r0  r         ?      @r   rv      decimal)	ra   linspacer8  floorselectr6   r7  rh   r   )rj   rV   rS   rH  r?  s        r0   test_cdfzTestRandInt.test_cdfy  sv    KK2s#KKNllAGQ!V,sQsU1Wv4F.GK}}  Ar*!$R8r2   N)r   r   r   r-  rA  rI  rS  r8   r2   r0   r)  r)  b  s    ;-9r2   r)  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)	TestBinomc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestBinom.setup_method  r.  r2   c                    t         j                  j                  ddd      }t        t	        j
                  |dk\        t	        j
                  |dk        z         t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  dd      }t        t        |t                     t        j                  dd      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y NrW   r   r2  r1  r   r4  r   )r6   binomr   r	   r8  r   r9  r   r:  r   r;  intndarrayr>  s      r0   rA  zTestBinom.test_rvs  s    {{r4g6		$!)$uyy'<<=D!W,-

9\#::;kkoob$'
3$%kk"d#''*
3./		)L"99:r2   c                     t         j                  j                  ddd      }t         j                  j                  ddd      }t        |ddd       t        |ddd       y )NrX   r   r   rK  r{   r}   r   r6   rY  rG  r   )rj   vals1vals2s      r0   test_pmfzTestBinom.test_pmf  sJ    S!,3*sQ7sQ7r2   c                    t        j                  dd      }t        j                  g d      }t	        t        ||             }|j                         }t        ||       t        j                  dd      }|j                         }t        |d       t        j                  dd      }|j                         }t        |d       y )Nr^   rs   )      ?rs   rc  rx   rK  )	r6   rY  ra   r   sumr   r>   r   r   )rj   r/   
expected_p
expected_hhs        r0   test_entropyzTestBinom.test_entropy  s    KK3XX/0
%
J788
IIK:&KK3IIKQKK3IIKQr2   c                 F   t        j                         5  t        j                  dt               t	        t        j                  dd      j                         d       t	        t        j                  dd      j                         d       d d d        y # 1 sw Y   y xY w)Nerrorr^   r   np)	warningscatch_warningssimplefilterRuntimeWarningr   r6   rY  r   stdro   s    r0   test_warns_p0zTestBinom.test_warns_p0  so    $$& 	9!!'>:qA.335q9qA.224a8	9 	9 	9s   A9BB c                 V    d}t         j                  j                  d|d      |k(  sJ y )Nr   333333?rK  )qrl  rm  )r6   rY  r   rj   rl  s     r0   test_ppf_p1zTestBinom.test_ppf_p1  s(    {{S1Q666r2   c                     d}d}t        j                  d      }t        j                  j	                  |||      }t        j
                  j	                  |||z        }t        ||d       y )NglyCgq]\	T3<r   rk  缉ؗҜ<r   )ra   r  r6   rY  rG  poissonr   )rj   rl  rm  rV   r   refs         r0   test_pmf_poissonzTestBinom.test_pmf_poisson  sW    "IIaLkkooa1o*mm1q5)Su-r2   c                     d}d}d}t         j                  j                  |||      }t         j                  j                  |||      }t	        ||d       y )NgJ-DgO
;r   rz  r   )r6   rY  rG  rh   r   )rj   rl  rm  rr   r|  s         r0   test_pmf_cdfzTestBinom.test_pmf_cdf  sI    kkooaA&kkooaA&Su-r2   c                 b    t         j                  j                  ddd      }t        |dd       y )Nr   r   +?r   rz  r   r^  )rj   r   s     r0   test_pmf_gh15101zTestBinom.test_pmf_gh15101  s$    kkooau-QU+r2   N)r   r   r   r-  rA  ra  rh  rs  rx  r}  r  r  r8   r2   r0   rU  rU    s/    	;8 97
..,r2   rU  c                       e Zd Zd Zy)TestArcsinec                     t         j                  j                  ddg      }t        |t        j
                  t        j
                  g       y Nr   r   )r6   arcsiner`   r   ra   r  rj   rm  s     r0   test_endpointszTestArcsine.test_endpoints  s3     MM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y)TestBernoullic                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestBernoulli.setup_method  r.  r2   c                    t         j                  j                  dd      }t        t	        j
                  |dk\        t	        j
                  |dk        z         t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nr   r2  r1  r   r   r4  r   )r6   	bernoullir   r	   r8  r   r9  r   r:  r   r;  rZ  r[  r>  s      r0   rA  zTestBernoulli.test_rvs  s    ""4g"6		$!)$uyy';;<D!W,-

9\#::;oo!!$'
3$%ood#''*
3./		)L"99:r2   c                    t        j                  d      }dt        j                  d      z  dt        j                  d      z  z
  }|j	                         }t        ||       t        j                  d      }|j	                         }t        |d       t        j                  d      }|j	                         }t        |d       y )Nrc        пr   rx   rK  )r6   r  ra   logr>   r   r   )rj   r/   rf  rg  s       r0   rh  zTestBernoulli.test_entropy  s    OOD!266$<'$rvvd|*;;
IIK:&OOC IIKQOOC IIKQr2   N)r   r   r   r-  rA  rh  r8   r2   r0   r  r    s    	;r2   r  c                       e Zd Zd Zy)TestBradfordc                     d}t        j                  dd      }t        j                  j	                  ||      }t        j                  j                  ||      }t        ||       y )NrT   )ra   logspacer6   bradfordrh   r   r   )rj   crV   rv  xxs        r0   test_cdf_ppfzTestBradford.test_cdf_ppf  sM    KKR NNq!$^^1%2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 Zej                  j                  ddefdg      d        Z
ej                  j                  dg d	      d
        Zy)TestChignT9;g2 >h?@c                 t    t         j                  j                  dd      }t        || j                  d       y )NrW   r   r{   r|   )r6   chir   r   CHI_SF_10_4rj   rE   s     r0   test_sfzTestChi.test_sf  s(    IILLQ4++%8r2   c                 t    t         j                  j                  | j                  d      }t	        |dd       y )Nr   rW   r{   r|   )r6   r  isfr  r   rj   rV   s     r0   test_isfzTestChi.test_isf
  s(    IIMM$**A.2E*r2   df, ref     @@)g  ļBgcAc                 Z    t        t        j                  j                  |      |d       y N-q=r|   )r   r6   r  r   rj   dfr|  s      r0   	test_meanzTestChi.test_mean  s    
 			r*Ce<r2   ))-C6?gQ(݂)r   ńjɮ9?)r  gWr4'?)    _Bgr$h(?)}Ô%ITgs$h(?c                 b    t        t        j                  |      j                         |d       y rz   )r   r6   r  r>   r  s      r0   rh  zTestChi.test_entropy%  s!     			"--/5Ar2   N)r   r   r   r  CHI_MEAN_1000r  r  r   r   r   r  rh  r8   r2   r0   r  r    s{     'K $M9+ [[Y"M279=	= [[Y;<B<Br2   r  c                   $    e Zd Zd Zd Zd Zd Zy)
TestNBinomc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestNBinom.setup_method0  r.  r2   c                 n   t         j                  j                  ddd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  dd      }t        t        |t                     t        j                  dd      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y rX  )r6   nbinomr   r	   r8  r   r9  r   r:  r   r;  rZ  r[  r>  s      r0   rA  zTestNBinom.test_rvs3  s    ||Dw7		$!)$%D!W,-

9\#::;llr4(
3$%ll2t$((+
3./		)L"99:r2   c           	      ,   t        t        j                  t        j                  j                  ddd            t        j                  j                  ddd             t        j                  j                  j                  ddd      }t        |d       y )Ni  i  gp=
ף?r   r   )	r   ra   r   r6   r  logpmfrG  r5   r   )rj   r@  s     r0   ra  zTestNBinom.test_pmf>  sh    u||223TBC((c48	: kk  ''1a0S!r2   c                     t         j                  j                  g ddd      }t        j                  t         j                  j                  g ddd            }t        ||       y )N)r   r   r   r   333333@?rk  )r6   r  logcdfra   r  rh   r   )rj   r?  r|  s      r0   test_logcdf_gh16159zTestNBinom.test_logcdf_gh16159F  sK    ||""<3$"?ffU\\%%lcT%BCc"r2   N)r   r   r   r-  rA  ra  r  r8   r2   r0   r  r  /  s    	;#r2   r  c                   
   e Zd Zd Zej
                  j                  d        Zej
                  j                  d        Zej
                  j                  d        Z	ej
                  j                  d        Z
d Zd Zd Zd	 Zy
)TestGenInvGaussc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestGenInvGauss.setup_methodN  r.  r2   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )Nffffff@      ?  r   r   皙?Tr6   geninvgausskstestr   rh   r   rj   gigr   rm  s       r0   test_rvs_with_mode_shiftz(TestGenInvGauss.test_rvs_with_mode_shiftQ  I     S)||CGGDGA377K1QXt$r2   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )Nr   r   r  r   r   r  Tr  r  s       r0   test_rvs_without_mode_shiftz+TestGenInvGauss.test_rvs_without_mode_shiftX  sI     T*||CGGDGA377K1QXt$r2   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )NrT   皙?r  r   r   r  Tr  r  s       r0   test_rvs_new_methodz#TestGenInvGauss.test_rvs_new_method_  r  r2   c                 |    d }t         |dd      d       t         |dd      d       t         |dd      d       y )Nc                     t        j                  | |      }|j                  dd      }t        j                  ||j                        d   dkD  S )Nr  r   r   r   r  )r6   r  r   r  rh   )rm  r/   r  r   s       r0   my_ks_checkz4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_checkh  sE    ##Aq)C''t$'7C<<SWW-a0477r2   r   r  Tr   r  )r   )rj   r  s     r0   test_rvs_p_zerozTestGenInvGauss.test_rvs_p_zerof  s<    	8
 	[C($/[C($/[C($/r2   c                     t        t        j                  dd      j                  dd      dt        j                  dd      j                  dd      z         y )N      r^   rW   r   r   r   r  )r   r6   r  r   ro   s    r0   test_rvs_negative_pz#TestGenInvGauss.test_rvs_negative_pq  sP    !!$*..BT.JE%%c1-11r1MM	Or2   c                    t         j                  j                  dddd      }t        t        j                  |ddg      d   dkD  d	       d
t        j                  ddd      }}t         j                  j                  |dd|z  |      }t        |t        j                  |      j                  |             t         j                  j                  |dd|z  |      }t        |t        j                  |      j                  |             y )Nr  r   r   r   )r   rm  r/   r   r  r&  333333?TrX   ru   rW   )rm  r/   r]   )r6   r  r   r   r  ra   rP  r`   r   r  rh   )rj   igmurV   pdf_igcdf_igs         r0   test_invgausszTestGenInvGauss.test_invgaussw  s    """MU\\"js;A>EtLR[[q"-A""&&qDAF"&Er 2 6 6q 9:""&&qDAF"&Er 2 6 6q 9:r2   c                     t        j                  g d      }t        j                  ddd      }t        |t        j
                  j                  |dd             y )N)
g;g8y8?g\}Z?ghܲ<?g&Khdd?g7!L?g	Cf?g_诱?g>0|?gRq?ru   r   rW   rs   r   )ra   r   rP  r   r6   r  r`   )rj   vals_RrV   s      r0   
test_pdf_RzTestGenInvGauss.test_pdf_R  sJ      , - KKa$ 1 1 5 5aa @Ar2   c                     t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       y )Nr   rs   g    >Ar3  r^   )r   r6   r  r`   ro   s    r0   test_pdf_zerozTestGenInvGauss.test_pdf_zero  sB    U&&**1c37; 	U&&**3A6:r2   N)r   r   r   r-  r   r   slowr  r  r  r  r  r  r  r  r8   r2   r0   r  r  M  s     [[% % [[% % [[% % [[0 0O	;	B;r2   r  c                       e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  dg d      d        Z
d	 Zd
 Zd Zd Zd Zd Zy)TestGenHyperbolicc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestGenHyperbolic.setup_method  r.  r2   c                     t        j                  g d      }d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  ddd      }	t        |j                  |	      |dd	       y )
N)
gF^T=g{X'=gNunƢsy>g7!t?gɫzI?g̸?g?gq6.?gmPZz?g:PgN?r^   r^   r   rs   r  r[   rW   r   r   r   r}   )ra   r   r6   genhyperbolicrP  r   r`   
rj   r  lmbdar  betar  deltar&  ghrV   s
             r0   
test_pdf_rzTestGenHyperbolic.test_pdf_r  s~        %ud	EuU{DJ/  $Be<KKR$q	6>r2   c                     t        j                  g d      }d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  ddd      }	t        |j                  |	      |dd	       y )
N)
g=R0W<=gEB=g#Nb>g_PG>g! 1Or?gUM?g u./?gfy?gl5\?gkV?r  r  r[   r  rW   r   ư>r  )ra   r   r6   r  rP  r   rh   r  s
             r0   
test_cdf_rzTestGenHyperbolic.test_cdf_r  s~        %ud	EuU{DJ/  $Be<KKR$q	6=r2   zx, p, a, b, loc, scale, ref)
)r^   r   r  rs   r  g8ɹvF(;)r  rW   r  rc  r   r   g[Ϡ?)r  rW   r  g      ?r   r   g ✝`D;)r        ?r  ):?r   r   gdL;)r   r  r  r  r   r   gzK^7?)r         r  r  r   r   gj?)r   r   r     r   r   ga=vG:)   r   r   r  r   r   g?)(   r   r   r  r   r   g1bV?)<   r   r   r  r   r   g?c                 j    t         j                  j                  ||||||      }t        ||d       y Nr[   dy=r|   )r6   r  rh   r   )	rj   rV   rm  r.   r/   r\   r]   r|  rh   s	            r0   test_cdf_mpmathz!TestGenHyperbolic.test_cdf_mpmath  s3     !!%%aAqc%GSu-r2   ))r   r  rM  r   r   r   gC!,?)r   r         @      @r   r   g,Ћf?)r  r   r	  r
  r   r   rK  )   r^   r   r  rs   r  gm"چ>),  rW   r  rc  r   r   g:;)r  r   r   r  r   r   gw=)K   r   r   r  r   r   g3Z0&K<c                 j    t         j                  j                  ||||||      }t        ||d       y r  )r6   r  r   r   )	rj   rV   rm  r.   r/   r\   r]   r|  r   s	            r0   test_sf_mpmathz TestGenHyperbolic.test_sf_mpmath  s3       ##Aq!QCu#ECe,r2   c           	          g d}d\  }}}d\  }}|||z  ||z  f}t        dd      D cg c]'  }t        j                  |||dj                  |      ) }	}t	        |	|dd	       y c c}w )
N)g@쐧@g@쐧 @g܊B@gvGăi@r  r  r   r   r[   r   r   r  )ranger6   r  momentr   )
rj   r  r  r  r  r  r  r&  ivals_uss
             r0   test_moments_rz TestGenHyperbolic.test_moments_r  s    5 %ud	EuU{DJ/ 1a[ 2U;BB1E 
 	ae<s   ,A'c                     d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  |j                  dd      |j                        \  }}	t        |	dkD  d       y )	Nr  r  r[   r  r   r   r  T)r6   r  r  r   rh   r   )
rj   r  r  r  r  r  r&  r  r   rm  s
             r0   rA  zTestGenHyperbolic.test_rvs  st     %ud	EuU{DJ/  $Be<||BFF4F@"&&I1QXt$r2   c                 6   t        j                  ddd      }t        j                  |d      t        j                  t         j                        j
                  z  d}}dt        j                  |      }}| dz  ||f}t        j                  |||d}t        j                  |j                  d      |j                  d      d	      d d t         j                  f   }t        |j                  |      t        j                  j                  ||      dd
       y )Nr   r0  rW   r^   r   r[   ru   Gz?r3  r  r  )ra   rP  float_powerr   float32epssqrtr6   r  r   newaxisr   r`   t)	rj   r  r  r  r  r  r&  r  rV   s	            r0   
test_pdf_tzTestGenHyperbolic.test_pdf_t  s    [[B# nnR+BHHRZZ,@,D,DDatrwwr{EAud#  $Be<KKtbffTlB72::FFF1Iuww{{1b)	r2   c                    dt        j                  t         j                        j                  d}}}d\  }}|||f}t	        j
                  |||d}t        j                  |j                  d      |j                  d      d      d d t         j                  f   }t        |j                  |      t        j                  j                  |      dd	       y )
Nr   r   )r   r   r[   ru   r  r3  r  r  )ra   r   r  r  r6   r  rP  r   r  r   r`   cauchy)	rj   r  r  r  r  r  r&  r  rV   s	            r0   test_pdf_cauchyz!TestGenHyperbolic.test_pdf_cauchy"  s    
 "288BJJ#7#;#;Qdu	Eud#  $Be<KKtbffTlB72::FFF1Iu||''*	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        |j                  |      t
        j                  j                  ||d      d	d
       y )Nr  rW   )r   r   r   r[   r  r  r3  r   r   dy=r  )ra   rP  r   r  r  r6   r  r  r   r`   laplace)	rj   r\   r  r  r  r  r&  r  rV   s	            r0   test_pdf_laplacez"TestGenHyperbolic.test_pdf_laplace3  s    kk#r2& $(($uduU{DJ/   $Cu=KKR$Q

]3FF1Iu}}((1(=	r2   c           
      \   t        j                  ddd      t        j                  ddd      t        j                  dt        d            z  t        j                  ddd      t        j                  ddd      f\  }}}}d	}|||z  ||z  f}t	        j
                  |||d
}t        j                  |j                  d      |j                  d      d      d d t         j                  f   }t        |j                  |      t        j                  j                  |||||      dd       y )Nr   r  rW   r      r   rX   r   r[   ru   r  r3  )r.   r/   r\   r]   r   r  )ra   rP  r  r  r6   r  r   r  r   r`   norminvgauss)	rj   r  r  r  r  r  r&  r  rV   s	            r0   test_pdf_norminvgaussz'TestGenHyperbolic.test_pdf_norminvgaussH  s    Ar2&Ar2&r~~b%)'DDAq"%D#r*	"tUB uu}dUl3  $Be<KKtbffTlB72::FFF1Iu))--Ud% . 9	r2   N)r   r   r   r-  r  r  r   r   r   r  r  r  rA  r  r"  r&  r+  r8   r2   r0   r  r    s    ?,>4 [[%		<.. [[%	@	-	-=.%$"*r2   r  c                       e Zd Zej                  j                  dddg      d        Zej                  j                  dddg      d        Zy	)
TestHypSecantzx, reference)r0  gA0=)r3  g!b;c                 ^    t         j                  j                  |      }t        ||d       y N+<r|   )r6   	hypsecantr   r   )rj   rV   	referencer   s       r0   r  zTestHypSecant.test_sfd  s$     __"IE2r2   zp, reference)r  g9bT*@)r  gTW-;@c                 ^    t         j                  j                  |      }t        ||d       y r/  )r6   r1  r  r   )rj   rm  r2  rV   s       r0   r  zTestHypSecant.test_isfn  s$     OO"951r2   Nr   r   r   r   r   r   r  r  r8   r2   r0   r-  r-  _  sb    
 [[^9:<=3=3 [[^89;<2<2r2   r-  c                   ~    e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	d Z
d Zd	 Zd
 Zy)TestNormInvGaussc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestNormInvGauss.setup_methodw  r.  r2   c                     t        j                  g d      }t        j                  g d      }t        j                  j	                  |dd      }t        ||d       y )N)gp~٧>g @X>g}e?g{)߳?gwH?ir      r5  r   rs   r.   r/   &.>r   )ra   r   r6   r*  rh   r   )rj   r_cdfx_testvals_cdfs       r0   
test_cdf_RzTestNormInvGauss.test_cdf_Rz  sO      < =,-%%))&A)=%d3r2   c                     t        j                  g d      }t        j                  g d      }t        j                  j	                  |dd      }t        ||d       y )N)gp϶>g\H55$?geСt&?go NiH?g]u>r9  r   rs   r<  r=  r   )ra   r   r6   r*  r`   r   )rj   r_pdfr?  vals_pdfs       r0   r  zTestNormInvGauss.test_pdf_R  sM     < =,-%%))&A)=%d3r2   zx, a, b, sf, rtol))r   r   r   !7?r   )r  r   r   ?=r  )r   r   r  gy5`?r  )rW   r   r  gMLC9r=  c                     t         j                  j                  |||      }t        |||       t         j                  j	                  |||      }t        |||       y Nr|   r6   r*  r   r   r  )rj   rV   r.   r/   r   r}   rE   r  s           r0   test_sf_isf_mpmathz#TestNormInvGauss.test_sf_isf_mpmath  sP     !!!Q*2D)""2q!,14(r2   c                     ddg}ddg}d}ddg}t         j                  j                  |||      }t        ||dd	       t         j                  j	                  |||      }t        ||d
       y )Nr   r  r   r   rE  rF  r   rz  r]  r  r|   rI  )rj   rV   r.   r/   r   rE   r  s          r0   test_sf_isf_mpmath_vectorizedz.TestNormInvGauss.test_sf_isf_mpmath_vectorized  sr    HF "89!!!Q*2E6""2q!,14(r2   c                     t        j                  dd      }t        j                  ddd      }|j	                  |      }|j                  |      }t        ||       y )Nr   r   r  r^   )r6   r*  ra   r  r   r  r   )rj   dstrV   r   r  s        r0   test_gh8718zTestNormInvGauss.test_gh8718  sJ      A&IIaQVVAYggbk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                  j                  ||d             y )	Nr   rs   r^   r         @r   r   mvskmoments)ra   r  r   r6   r*  )rj   r.   r/   gammav_statss        r0   
test_statszTestNormInvGauss.test_stats  s    11q!t$u9adUAXosQw!bggen:L/M!a!Q$hAo-.68We0066q!V6LMr2   c                     d\  }}t        j                  g d      }t        j                  j	                  |||      }t        |t        j                  j                  |||             y )NrQ  MbP?rs   r  )ra   r   r6   r*  r   r   rh   )rj   r.   r/   r?  r?  s        r0   test_ppfzTestNormInvGauss.test_ppf  sS    1-.!!%%fa3 2 2 6 6tQ BCr2   N)r   r   r   r-  rA  r  r   r   r   rJ  rL  rO  rX  r\  r8   r2   r0   r6  r6  v  sU    
44 [[0JK
)K
)	) NDr2   r6  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestGeomc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestGeom.setup_method  r.  r2   c                 h   t         j                  j                  dd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nr   r2  r1  r   r4  r   )r6   geomr   r	   r8  r   r9  r   r:  r   r;  rZ  r[  r>  s      r0   rA  zTestGeom.test_rvs  s    zz~~d~1		$!)$%D!W,-

9\#::;jjnnT"
3$%jj""1%
3./		)L"99:r2   c                 t   t         j                  j                  d      }t        j                  j                  t        j                  d      d|      }|j                  t         j                  k(  sJ t        j                  |t        j                  t         j                        j                  kD        sJ y )Nl   A: ir   r   )ra   r   r   r6   ra  r   r   r   int64r   iinfoint32max)rj   r   r   s      r0   test_rvs_9313zTestGeom.test_rvs_9313  sx     ii##O4jjnnRVVC[qsnCyyBHH$$$vvcBHHRXX.222333r2   c                 d    t         j                  j                  g dd      }t        |g d       y )Nr  rs   )rs   rc  r  )r6   ra  rG  r   rj   r?  s     r0   ra  zTestGeom.test_pmf  s!    zz~~i-!$(:;r2   c                 (   t        j                  t        j                  j	                  g dd            }t        j                  j                  g dd      }t        ||dd       t        j                  j                  dd      }t        |d       y )Nr  rs   r{   r   r]  r   rx   )ra   r  r6   ra  rG  r  r   r   )rj   r_  r`  r@  s       r0   test_logpmfzTestGeom.test_logpmf  se    uzz~~i56

!!)S1u5q9 jj1%S#r2   c                     t         j                  j                  g dd      }t         j                  j                  g dd      }t	        g d      }t        ||       t        |d|z
         y )Nr  rs   rs   r         ?r   )r6   ra  rh   r   r   r   rj   r?  vals_sfrO   s       r0   test_cdf_sfzTestGeom.test_cdf_sf  sM    zz~~i-**--	3/+,!$1!'1X:6r2   c                 $   t         j                  j                  g dd      }t         j                  j                  g dd      }t	        g d      }t        |t        j                  |             t        |t        j                  |              y )Nr  rs   rm  )	r6   ra  r  logsfr   r   ra   r  log1pro  s       r0   test_logcdf_logsfzTestGeom.test_logcdf_logsf  sa    zz  C0**""9c2+,!$x(89!'288XI+>?r2   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )Nrm  rs   )rK  rw   rR  )r6   ra  r   r   r   rj   r?  rO   s      r0   r\  zTestGeom.test_ppf  s+    zz~~0#6)!$1r2   c                 \    t        t        j                  j                  dd      dd       y )N#B;rK  +=r   )r   r6   ra  r   ro   s    r0   test_ppf_underflowzTestGeom.test_ppf_underflow  s    

ue4cFr2   c                 f    t        j                  d      j                         }t        |dd       y )Ng<,Ԛ?g۩@r{   r|   )r6   ra  r>   r   )rj   rg  s     r0   test_entropy_gh18226zTestGeom.test_entropy_gh18226  s(     JJv&&(,59r2   N)r   r   r   r-  rA  rg  ra  rk  rq  ru  r\  r{  r}  r8   r2   r0   r^  r^    s6    	;4<7@2
G:r2   r^  c                       e Zd Zd Zd Zd Zy)
TestPlanckc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestPlanck.setup_method  r.  r2   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )Nr  rL  )g|dy?g8'\>ggrU!>)r6   planckr   r   r   rw  s      r0   r  zTestPlanck.test_sf  s1    ||y"- 2 3 	"$1r2   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )N)r       @@     p@r  )g    P.g    h>g    TF)r6   r  rs  r   r   rw  s      r0   
test_logsfzTestPlanck.test_logsf  s.    ||!!"7?:;!$1r2   N)r   r   r   r-  r  r  r8   r2   r0   r  r     s    22r2   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestGennormc                     g d}t         j                  j                  |d      }t         j                  j                  |      }t	        ||       y Nr  r   )r6   gennormr`   r%  r   rj   pointspdf1pdf2s       r0   test_laplacezTestGennorm.test_laplace  s;    }}  +}}  (D$'r2   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y Nr  r^   g;f?r]   )r6   r  r`   normr   r  s       r0   	test_normzTestGennorm.test_norm  s=    }}  +zz~~fF~3D$'r2   c                    t         j                  j                  d       t        j                  d      }|j                  d      }t        j                  ||j                        j                  dkD  sJ t        j                  d      }|j                  d      }t        j                  j                  d      }t        j                  ||      j                  dkD  sJ t        j                  d      }|j                  d      }t        j                  j                  dd	      }t        j                  ||      j                  dkD  sJ y )
Nr   rs   r   r1  rT   r   r^   g;f?r]   r   )ra   r   r   r6   r  r   r  rh   pvaluer%  ks_2sampr  )rj   rK   r   rvs_laplacervs_norms        r0   rA  zTestGennorm.test_rvs   s    
		q}}S!hhDh!||C*11C777}}QhhDh!mm''T'2~~c;/66<<<}}QhhDh!::>>t><~~c8,33c999r2   c                    t         j                  j                  d       t        j                  ddgddgg      }|j                  g d      }t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ y )
Nr   rs   rK  rw   rL  )r   r^   r^   r1  r   rT   )ra   r   r   r6   r  r   r  rh   )rj   rK   r   s      r0   test_rvs_broadcastingz!TestGennorm.test_rvs_broadcasting1  s   
		q}}sBi"b23hhLh)||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJr2   N)r   r   r   r  r  rA  r  r8   r2   r0   r  r    s    ((:"Kr2   r  c                   T    e Zd Zej                  j                  dddg      d        Zy)
TestGibratx, sfx)r  gD.?)  gJ]b<c                     t        t        j                  j                  |      |d       t        t        j                  j	                  |      |d       y N+=r|   )r   r6   r  r   r  rj   rV   sfxs      r0   test_sf_isfzTestGibrat.test_sf_isfI  s8     	*Ce<((-qu=r2   N)r   r   r   r   r   r   r  r8   r2   r0   r  r  ;  s5     [[X(A(E(G H>H>r2   r  c                       e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zy)	TestGompertzc                     t         j                  j                  t         j                  j                  dd      d      }t	        |d       y N0.++r   )r6   gompertzr   rh   r   r  s     r0   test_gompertz_accuracyz#TestGompertz.test_gompertz_accuracyR  s3    NNu~~11&!<a@6"r2   z	x, c, sfx))r   r	  g|t?)r   r	  g(fMr;)r  r   g[?)g      @r   gg[<c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y Nrz  r|   )r   r6   r  r   r  )rj   rV   r  r  s       r0   r  zTestGompertz.test_sf_isfc  s>    
 	))!Q/5A**32AEBr2   c, ref))r  geUT8?)r   gtqq?)r   gs{)r  gN*6c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   r  r>   rj   r  r|  s      r0   rh  zTestGompertz.test_entropyr  s    
 	..q13UCr2   N)	r   r   r   r  r   r   r   r  rh  r8   r2   r0   r  r  P  se    #" [[[ +M NC	NC [[X (E FD	FDr2   r  c                   T    e Zd Zej                  j                  dddg      d        Zy)TestFoldNorm	x, c, ref)r  :0yE>g:0N<?)r  r  g:?c                 \    t        t        j                  j                  ||      |d       y rz   )r   r6   foldnormrh   rj   rV   r  r|  s       r0   rS  zTestFoldNorm.test_cdf  s!     	**1a0#EBr2   N)r   r   r   r   r   r   rS  r8   r2   r0   r  r  z  s7     [[[+N+M+O PCPCr2   r  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zej                  j                  dd	d
g      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                             Zd Z	y)TestHalfNormr  )r   |N?)rW   Oul2;c                     t        t        j                  j                  |      |d       t        t        j                  j	                  |      |d       y r  )r   r6   halfnormr   r  r  s      r0   r  zTestHalfNorm.test_sf_isf  s:     	))!,c>**3/?r2   x, ref))Ww'&l7g;G<^͛7)C]r2<gE~o-<)r;  g?c                 Z    t        t        j                  j                  |      |d       y rz   )r   r6   r  rh   rj   rV   r|  s      r0   rS  zTestHalfNorm.test_cdf  s     	**1-s?r2   r   h㈵>r  	rvs_scaleru   rX   r   r   TF	fix_scalec                    t         j                  j                  d      }t        j                  j                  ||d|      }|rK|rId}t        j                  t        |      5  t        j                  j                  |||       d d d        y i }|r||d<   |r||d<   t        t        j                  |fi |d	d
i y # 1 sw Y   y xY wNr   r   r\   r]   r   r   r  r  r   r   r   r   r   T)ra   r   r   r6   r  r   r   r   r  halflogisticr   r   	rj   r   r  r   r  r   r   	error_msgr   s	            r0   r   z(TestHalfNorm.test_fit_MLE_comp_optimizer  s     ii##$78~~!!gYT/2 " 4 y%I|9= M""&&t')&LM"DL&DN 	&ennd 	<d 	<6:	<Ms   $#C  C	c                     t        j                  t              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wNr  r^   r   )r   r   r    r6   r  r   ro   s    r0   test_fit_errorzTestHalfNorm.test_fit_error  s:    ]]<( 	2NNyq1	2 	2 	2   $AAN)
r   r   r   r   r   r   r  rS  r   r  r8   r2   r0   r  r    s     [[X(?(C(E F@F@ [[X (A B@B@ [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<22r2   r  c                       e Zd Zej                  j                  dddg      ej                  j                  dddg      ej                  j                  ddd	g      ej                  j                  d
dd	g      d                             Zd Zy)TestHalfCauchyr   r  r  r  ru   r   r   TFr  c                    t         j                  j                  d      }t        j                  j                  ||d|      }|rK|rId}t        j                  t        |      5  t        j                  j                  |||       d d d        y i }|r||d<   |r||d<   t        t        j                  |fi | y # 1 sw Y   y xY w)	Nr   r   r  r  r  r  r   r   )ra   r   r   r6   r  r   r   r   r  
halfcauchyr   r   r  s	            r0   r   z*TestHalfCauchy.test_fit_MLE_comp_optimizer  s     ii##$78~~!!gYT/2 " 4 y%I|9= K  $$T	$JK"DL&DN%e&6&6EEKs   $#B<<Cc                     t        j                  t              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wr  )r   r   r    r6   r  r   ro   s    r0   r  zTestHalfCauchy.test_fit_error  s<    ]]<( 	4   3	4 	4 	4r  N)r   r   r   r   r   r   r   r  r8   r2   r0   r  r    s    [[Yt5[[[4+6[[Yu6[[[4-8F 9 7 7 6F,4r2   r  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zej                  j                  dd	d
g      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                             Zd Z	y)TestHalfLogisticr  )rX   ]6)   L-c                 Z    t        t        j                  j                  |      |d       y rz   )r   r6   r  r   r  s      r0   r  zTestHalfLogistic.test_sf  s!     	**--a0#EBr2   q, ref))r  rX   )r  r  )gv?g   .!>)g?g      <c                 Z    t        t        j                  j                  |      |d       y rz   )r   r6   r  r  rj   rv  r|  s      r0   r  zTestHalfLogistic.test_isf  s!    
 	**..q13UCr2   r   r  r  r  r  r   TFr  c                    t         j                  j                  d      }t        j                  j                  ||d|      }i }|rK|rId}t        j                  t        |      5  t        j                  j                  |||       d d d        y |r||d<   |r||d<   t        t        j                  |fi |d	d
i y # 1 sw Y   y xY wr  )ra   r   r   r6   r  r   r   r   r  r   r   )	rj   r   r  r   r  r   r   r   r  s	            r0   r   z,TestHalfLogistic.test_fit_MLE_comp_optimizer  s     ii##$78!!%%'36 & 8 y%I|9= M""&&t')&LM"DL&DN 	&e&8&8$ 	<$ 	<6:	<Ms   &#C  C	c                     d}t        t        |      5  t        j                  j	                  g dd       d d d        y # 1 sw Y   y xY w)Nz; Maximum likelihood estimation with 'halflogistic' requiresr  )r   r^   r   r   r   )assert_raisesr    r6   r  r   rj   r,   s     r0   test_fit_bad_flocz"TestHalfLogistic.test_fit_bad_floc%  s?    L<s3 	6""91"5	6 	6 	6s   $AA
N)
r   r   r   r   r   r   r  r  r   r  r8   r2   r0   r  r    s     [[X(D(D(F GCGC [[X (K LD	LD [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<26r2   r  c                       e Zd Zd Zd Zd Zy)TestHalfgennormc                     g d}t         j                  j                  |d      }t         j                  j                  |      }t	        ||       y r  )r6   halfgennormr`   exponr   r  s       r0   
test_exponzTestHalfgennorm.test_expon,  s;      $$VQ/{{v&D$'r2   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y r  )r6   r  r`   r  r   r  s       r0   test_halfnormzTestHalfgennorm.test_halfnorm3  sB      $$VQ/~~!!&!7D$'r2   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        |d|z         y )Nr  g
(?r^   )r6   r  r`   r  r   r  s       r0   test_gennormzTestHalfgennorm.test_gennorm:  sC      $$VW5}}  1D!D&)r2   N)r   r   r   r  r  r  r8   r2   r0   r  r  +  s    ((*r2   r  c                       e Zd Zd Zd Zd Zy)TestLaplaceasymmetricc                     t        j                  g d      }t        j                  j	                  |d      }t        j
                  j	                  |      }t        ||       y r  )ra   r   r6   laplace_asymmetricr`   r%  r   r  s       r0   r  z"TestLaplaceasymmetric.test_laplaceC  sF    )$''++FA6}}  (d#r2   c                     t        j                  g d      }d}d|z  }t        j                  j	                  ||      }t        j                  j	                  ||dz  z  |      }t        ||       y )Nr  r^   r   )ra   r   r6   r  r`   r   )rj   r  r~   kapinvr  r  s         r0   test_asymmetric_laplace_pdfz1TestLaplaceasymmetric.test_asymmetric_laplace_pdfJ  sa    )$5''++FE:''++FE1H,=vFd#r2   c           
         t        j                  t        j                  d       t        j                  d      g      }d}t        j                  j                  ||      }t        j                  j                  ||      }t        j                  j                  ||      }t        j                  ddg      }t        j                  ddg      }t        j                  dd	g      }t        j                  j                  ||      }	|}
t        j                  j                  ||      }|}t        t        j                  ||||	|f      t        j                  ||||
|f             y )
N   rW   r^   rT   gMbp?r  gV-?r   gMb`?)ra   r   r  r6   r  r`   rh   r   r   r  r   concatenate)rj   r  r~   r  cdf1sf1r  cdf2sf2ppf1ppf2isf1isf2s                r0   !test_asymmetric_laplace_log_10_16z7TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16S  s   BFF2J;r
34''++FE:''++FE:&&))&%8xxu&xxi()hhU|$''++D%8''++C7dCt'DEdCt'DE	Gr2   N)r   r   r   r  r  r  r8   r2   r0   r  r  B  s    $$Gr2   r  c                      e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zd Z	d Z
d	 Zd
 Zd Zd Zd Zg dg dg dg ddej"                  ddddgej"                   dddddgg dg dg dg	Z ej&                  e      Zej
                  j                  de      d        Zd Zd Zd  Zd! Zd" Zd# Zy$)%TestTruncnormc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestTruncnorm.setup_methodf  r.  r2   	a, b, ref))r   rX   r  )333333?ffffff?gܲl)r  g>g+c                 \    t        t        j                  j                  ||      |d       y N绽|=r|   r   r6   	truncnormr>   rj   r.   r/   r|  s       r0   rh  zTestTruncnorm.test_entropyi  s!    $ 	//15sGr2   ))r$  r  ghiɮ9?)r  r  r  )g0.+r  r  )}Ô%Ir  Z_2?c                 \    t        t        j                  j                  ||      |d       y r  r  r  s       r0   test_extreme_entropyz"TestTruncnorm.test_extreme_entropy}  s!      	//15sGr2   c           	          t         j                  j                  g ddddgdz  d      }t        j                  t        j
                  dd	dd
dt        j
                  g      }t        ||       y )Nr   r   r  rs   H.?r   r^         rK  r      r^   r[   r   fO?l@r   )r6   r  r   ra   r   r  r   rw  s      r0   test_ppf_ticket1131z!TestTruncnorm.test_ppf_ticket1131  \    ""#EsB()s1uA # 788RVVQ
Az1bffMN!$1r2   c           	          t         j                  j                  g ddddgdz  d      }t        j                  t        j
                  dd	dd
dt        j
                  g      }t        ||       y )Nr  r  rK  r   r  r^   r[   r   r  r  r   )r6   r  r  ra   r   r  r   rw  s      r0   test_isf_ticket1131z!TestTruncnorm.test_isf_ticket1131  r  r2   c                    d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr  |j                         cxk  xr
 |k         y c        y )N)ir  r   r   rW   r1  )rW      r6   r  r   r	   minrf  rj   lowhighrV   s       r0   test_gh_2477_small_valuesz'TestTruncnorm.test_gh_2477_small_values  s    	TOOT1ab9aeeg..$./	TOOT1ab9aeeg..$././r2   c                 Z   d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc       t        |||g      f d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr  |j                         cxk  xr
 |k         y c        y )	N)rX   rU   r   r   rW   r1  )r     )'  i'  )i)r6   r  r   r	   r#  rf  rB   r$  s       r0   test_gh_2477_large_valuesz'TestTruncnorm.test_gh_2477_large_values  sF   	TOOT1ab9quuw1!%%'1T12CdA4GG 	TOOT1ab9aeeg..$./ 	TOOT1ab9aeeg..$./"	TOOT1ab9aeeg..$././r2   c                    ddgddgfD ]  \  }}t        j                  t         j                   ||t         j                  g      }||z   dz  }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  g d      }t        j                  g d      }	t        j                  g d      }
|d	k  rt        j                  g d
      }
t        ||       t        ||	       t        ||
       t        t        j                  |
d   |
d   z        |dz          t        j                  g d      }t        j                  j                  |||      }t        j                  |t        j                  |      dz  |g      }t        ||       |d	k  rWt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       nVt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       t        j                  j                  |||      }t        t        j                  ||
d   z        |dz   dz          y )Nr   r   r  rw   r   r   r   r   rK  rK  rx   rx   )r   d._MT
@BKg?r   r   )r   r2  r1  r   r   r^   rs   r   rs   rK  gĖy	@gdv*?g,mj%V?rc  )ra   r   r  r6   r  rh   r   r`   r   r  r   r   )rj   r%  r&  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsr`   s                  r0   test_gh_9403_nontail_valuesz)TestTruncnorm.test_gh_9403_nontail_values  s<   a&2r(+  	MICHHrvvgsD"&&9:EHc>D??&&uc48D//$$UC6C??&&uc48DHH\2M88$89LHH%ABMQw ")E Fm4\2m4}Q'7a8H'H I #c	+HH]+E??&&uc48DHHc2773<	+A4%HIMm4Qw#EOO$6$6tS$$G$68#EOO$7$7c4$H$68 $EOO$7$7c4$H$68#EOO$6$6tS$$G$68//%%dC6Cs=+;'; <tDy!mLA 	Mr2   c           	      0   ddgddgfD ]
  \  }}t        j                  t         j                   ||t         j                  g      }||z   dz  }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  g d      }t        j                  g d      }	t        j                  g d      }
|d	k  rt        j                  g d
      }
t        ||       t        ||	       t        ||
       t        t        j                  |
d   |
d   z        |dz          t        j                  g d      }t        j                  j                  |||      }t        j                  |t        j                  |      dz  |g      }t        ||       t        j                  j                  |||      }t        ||       |d	k  rWt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       nVt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       t        j                  j                  |||      }t        t        j                  ||
d   z        |dz   dz         t        j                  ||d      }|d d d    }t        t        j                  j                  |||      t        j                  j                  || |       d d d          t        t        j                  j                  |||      t        j                  j                  || |       d d d          t        t        j                  j                  |||      t        j                  j                  || |       d d d           y )N'   r  irw   r/  r0  )r   pGC@Ff<r   r   )r   rD  rC  r   r   r^   rs   r3  gEC@g i?gspXio)>rc  r!  r   )ra   r   r  r6   r  rh   r   r`   r   r  r   r   rP  )rj   r%  r&  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r`   xvals2s                   r0   test_gh_9403_medium_tail_valuesz-TestTruncnorm.test_gh_9403_medium_tail_values  sF   r(S#J/ ,	PICHHrvvgsD"&&9:EHc>D??&&uc48D//$$UC6C??&&uc48DHH\2M88$89LHH%KLMQw " *= !>m4\2m4}Q'7a8H'H I #c	+HH]+E??&&uc48DHHc2773<+CT%JKMm4??&&tS$7De,Qw#EOO$6$6tS$$G$68#EOO$7$7c4$H$9; $EOO$7$7c4$H$68#EOO$6$6tS$$G$9;//%%dC6Cs=+;'; <tDy!mLKKT2.EDbDk\F 3 3E3 E % 2 26D53$ G" MO 2 25#t D % 3 3FTEC4 H2 NP 3 3E3 E % 3 3FTEC4 H2 NPW,	Pr2   c                     t        t        j                  dd      j                  d      d       t        t        j                  dt        j
                        j                  d      d       y )Ng      *@g      .@      ,@g T?r;  g @gR?)r   r6   r  rh   ra   r  ro   s    r0   test_cdf_tail_15110_14753z'TestTruncnorm.test_cdf_tail_15110_14753
  sN    
 	S155c:*	,266266s;*	,r2   )r0  rx   rK  rx   rx   )r  rW   rx   rK  rx   gLFu)r.  r   rx   gMFmz%?rx   gſ)r   r^   rx   ghI}?rx   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r   r   gU*? bn?gnA??c3TXʿ)r.  r   gU*ҿrK  gnArL  )r  g"$7"gOxr?gp7`g'>K@casec                     |\  }}}}}}t         j                  j                  ||d      \  }}	}
}t        ||	|
|g||||gd       y )NrS  rT  FFg<r   )r6   r  r   )rj   rN  r.   r/   m0v0s0k0mvrE   rS   s               r0   test_momentszTestTruncnorm.test_moments=  sT    #1b"b"__**1a*@
1aAq!r2r2&6UCr2   c                     t         j                  j                  dt        j                  d      \  }}t	        |d       t	        |d       y )Nr   mvrT  g e3E?g:&A?)r6   r  ra   r  r   )rj   rU  rV  s      r0   test_9902_momentszTestTruncnorm.test_9902_momentsC  s9    $$Q$=1Az*Az*r2   c                     d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr  |j                         cxk  xr
 |k         y c        y )N)rW   r5  r   r   rW   r1  r"  r$  s       r0   test_gh_1489_trac_962_rvsz'TestTruncnorm.test_gh_1489_trac_962_rvsH  sS    	TOOT1ab9aeeg..$././r2   c                 N   ddt         j                   dt         j                   t         j                   dddddg}dddt         j                  ddddd	t         j                  t         j                  g}t        j                  j	                  ||dt        |      f
      }t        j                  |      dt        |      fk(  sJ t        t        j                  ||j                  d      k               t        t        j                  |j                  d      |k               y )Nr  rW   r:  ir  r!  r   rB  -   r1  r   )axis)ra   r  r6   r  r   r  r9  r	   r   r#  rf  r$  s       r0   test_gh_11299_rvszTestTruncnorm.test_gh_11299_rvsN  s     BbffWrvvgsCS"MB2662sBRHOOTCH>xx{q#c(m+++saeeem+,-quu!u},-.r2   c                     t        t        j                  d      r@t        j                  j                  dddt        j                  j                                y y )Nr   r  r:  r   r   )r-   ra   r   r6   r  r   r   ro   s    r0   test_rvs_Generatorz TestTruncnorm.test_rvs_GeneratorX  sC    299m,OORa-/YY-B-B-D   F -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
                  ||      j                  |      |       t        t	        j
                  | |       j                  |       |       y )NrW   r;  )rW         @re  	   r  )gOul"gځ=!gL!g>EG	f g^K[X)ra   r   r  r   r6   r  r  rs  )rj   r.   r/   rV   rO   s        r0   test_logcdf_gh17064z!TestTruncnorm.test_logcdf_gh17064^  s    HHrvvgwRVVGR89HHbffbffaRVV45HH*++ 	1-44Q7BQB/55qb98Dr2   c                 j    t        j                  dd      j                  d      }d}t        ||       y )Nr   r   r   gl).0S?)r6   r  r  r   )rj   r   r|  s      r0   test_moments_gh18634z"TestTruncnorm.test_moments_gh18634i  s0     oob!$++A.  S!r2   N)r   r   r   r-  r   r   r   rh  r  r  r  r'  r,  r?  rF  rI  ra   r  _truncnorm_stats_datar   rW  rZ  r\  r`  rb  rg  ri  r8   r2   r0   r  r  e  sJ    [[[BCH	CH  [[[DE
HE
H2200&!MF-P^,		1	=	<	
BFF						
 &&!						
	
	
	;"F %BHH%:;[[V%:;D <D
+
0/F	E"r2   r  c                      e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zej                  j                  ddd	g      d
        Zej                  j                  dddg      d        Z	ej                  j                  dddg      d        Z
ej                  j                  dddg      d        Zy)TestGenLogisticx, expected))ig4`n)ig4	ncg)r   gX
=)rX   gh@X)r   gh<c                 d    d}t         j                  j                  ||      }t        ||d       y )Nr  r   r|   )r6   genlogisticr   r   )rj   rV   rO   r  logps        r0   test_logpdfzTestGenLogistic.test_logpdfv  s-       ''1-hU3r2   r  ))r  gTKEl@)r  gJk$@)r   gsF<?)r  7~F<?c                 Z    t        t        j                  j                  |      |d       y r/  )r   r6   ro  r>   r  s      r0   rh  zTestGenLogistic.test_entropy  s!    
 	))11!4cFr2   r  )r  rW   g8.)  r  gpT	oc                 \    t        t        j                  j                  ||      |d       y r  )r   r6   ro  r   r  s       r0   r  zTestGenLogistic.test_sf  s#     	)),,Q2CeDr2   	q, c, ref)ru   r  g^ #@)r[  r^   gGFf@c                 \    t        t        j                  j                  ||      |d       y NV瞯<r|   )r   r6   ro  r  rj   rv  r  r|  s       r0   r  zTestGenLogistic.test_isf  #     	))--a3SuEr2   )rs   r  gİ@)r  r  g1a@c                 \    t        t        j                  j                  ||      |d       y rx  )r   r6   ro  r   rz  s       r0   r\  zTestGenLogistic.test_ppf  r{  r2   )rX   {Gz?g(?)r3  r  g'Tn7c                 \    t        t        j                  j                  ||      |d       y rz   )r   r6   ro  r  r  s       r0   test_logcdfzTestGenLogistic.test_logcdf  s#     	))00A6%Hr2   N)r   r   r   r   r   r   rq  rh  r  r  r\  r  r8   r2   r0   rl  rl  s  s2    [[] -I J
4J
4 [[X (E FG	FG& [[[+L+L+N OEOE [[[+I+H+J KFKF [[[+I+H+J KFKF [[[+N+K+M NINIr2   rl  c                   N    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y)TestHypergeomc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestHypergeom.setup_method  r.  r2   c                    t         j                  j                  dddd      }t        t	        j
                  |dk\        t	        j
                  |dk        z         t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  ddd      }t        t        |t                     t        j                  ddd      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nr  rW   r   r2  r1  r   r4  )r6   	hypergeomr   r	   r8  r   r9  r   r:  r   r;  rZ  r[  r>  s      r0   rA  zTestHypergeom.test_rvs  s    ""2r17";		$!)$		$!)$% 	&D!W,-

9\#::;oo!!"a,
3$%oob!R(,,Q/
3./		)L"99:r2   c                 v    d}d}d}|}|}t         j                  j                  d|||      }t        |dd       y )Ni	  r3  rt  r^   gkㅒP?r!  )r6   r  rG  r   )rj   Mrl  Ntotgoodhgpmfs          r0   test_precisionzTestHypergeom.test_precision  sB    ##AsD!4E#8"=r2   c                 l   t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       y )Nr   r^   r   rK  r!  rx   )r   r6   r  rG  ro   s    r0   	test_argszTestHypergeom.test_args  s     	EOO//1a;S"EEOO//1a;S"EEOO//1a;S"EEOO//1a;S"Er2   c           	          t        dt        j                  j                  dddd      cxk  xr
 dk         y c        y )Nr   r0  io i  if0  rK  )r	   r6   r  rh   ro   s    r0   test_cdf_above_onez TestHypergeom.test_cdf_above_one  s/    U__((XtUCJsJKJKr2   c           	      v   d}d}t        j                  g d      dz  }d}|D cg c]'  }t        j                  j	                  |||z   ||      ) }}t        j                  g d      }t        ||dd	       g d
}t        j                  j	                  |||z   |d      }	g d}
t        |	|
dd	       y c c}w )Ng    +@g     @)r   ffffff@333333@r   gffffff@@r        @     @)r   gpR(g㘍R2gJޱ p9g?Mf=
G?r   r   gƠ>r  )g     @r  g     @g     @g     @)r   r  g)9g"1)ra   r   r6   r  r   r   )rj   orangespearsfruits_eatenquantileeatenr   rO   	quantilesres2	expected2s              r0   test_precision2zTestHypergeom.test_precision2  s     xx =>D(* !!(GeOWeL * *88 9 :XAD9 0	!!)Wu_guM>	iad;*s   ,B6c                 >   t        j                  ddd      }|j                         }t        j                  ddg      }t        j
                  t        ||             }t        ||       t        j                  ddd      }|j                         }t        |d       y )Nr   r   r   rc  rx   )	r6   r  r>   ra   r   rd  r   r   r   )rj   hgrg  re  rf  s        r0   rh  zTestHypergeom.test_entropy  sz    __Q1%JJLXXtTl+
ffU:z:;;
:&__Q1%JJLQr2   c                     d}d}d}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d
}d}t         j                  j                  ||||      }d}t        ||d       y )Nr      cA    .A     j@gor   rN  r   @  X  r  g_7	j$r5  )r6   r  rs  r   rj   rS   r  rl  r  resultrO   s          r0   r  zTestHypergeom.test_logsf  s     &&q!Q2FHa8&&q!Q2 FHb9r2   c                 &   d}d}d}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d
}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d}d}t         j                  j                  ||||      }d}t        ||d       t	        j
                  g d      }d	}d
}d}t         j                  j                  ||||      }t	        j                  dd      }t        ||d       y )Nr   r  r  r  g)\Ur   rN  r  r  r3  r  g*@Vr5  }      rt  gר)r  r  r  )r6   r  r  r   ra   r   fullr  s          r0   r  zTestHypergeom.test_logcdf  s    ''1a3FHa8 ''1a3&FHb9''1a3 FHb9
 HH\"''1a377112FHb9r2   c                 z    d}d}d}t         j                  j                  |||      }||z  |z  }t        ||       y )Nip iP i.  )r6   r  r   r   )rj   r  rl  r  hmrms         r0   test_mean_gh18511zTestHypergeom.test_mean_gh18511?  sB     __!!!Q*UQYBr2   c                    d}d}t        j                  dd      }d|z  }t        j                  j	                  |dz
  |||      }t        j
                  |dkD        sJ t        j
                  t        j                  |      dk        sJ y )NrW   r   r   r5        $@r   r   )ra   r  r6   r  r   r   diff)rj   rl  r  r  population_sizerm  s         r0   test_sf_gh18506zTestHypergeom.test_sf_gh18506J  sw     IIaq&OOq1uoq!<vva!e}}vvbggaj1n%%%r2   N)r   r   r   r-  rA  r  r  r  r  rh  r  r  r  r  r8   r2   r0   r  r    s<    
;>FL<&
:0,:\	 	&r2   r  c                   8   e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zd Zd Z	ej                  j                  d	d
dg      d        Z
ej                  j                  dg d      d        Zy)TestLoggammaz	x, c, cdf))r   r^   g;Y%?)r      gRٲa6_<)gHr[  gi|e?)r[  g6l?)i+rT   g֬CCf9)ir   g ֺlc                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r6   loggammarh   r   r   )rj   rV   r  rh   rm  ys         r0   r  zTestLoggamma.test_cdf_ppf]  sH     NNq!$3U+NNsA&15)r2   zx, c, sf))r   r  gQOu3;)   rX   g\Z{0)r  r[  geɐ?)ig{Gzd?gr0T?c                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r6   r  r   r   r  )rj   rV   r  r   rE   r  s         r0   r  zTestLoggamma.test_sf_isfo  sH     NNa#2E*NNr1%15)r2   c                 `    t         j                  j                  dd      }t        |dd       y )Nr^   g     @rz  r|   )r6   r  r   r   )rj   lps     r0   rq  zTestLoggamma.test_logpdfz  s&    
 ^^""4+G%0r2   c                     t        j                  g d      j                  dd      }|D ];  \  }}}}}t        j                  j                  |d      }t        |||||gd       = y )N)rs   g"~jg46<@g oŏ      @rK  g	h"lxgQ?gZd;333333@g      (@g{/L@g??gгYҿgh|?5?r   r   msvkrT  r   rN  )ra   r   reshaper6   r  r   )rj   tabler  r   varskewkurtcomputeds           r0   rX  zTestLoggamma.test_stats  st       
 wr1~ 	 ). 	1$AtS$~~++Av+>H%hsD$0G./1	1r2   r  rT   r[  c                    t         j                  j                  |d      }t        j                  |      j                         sJ t         j                  j                  |      }t        j                  t        j                  ||k        t        |            }|j                  d      }|j                  dcxk  r|j                  k  sJ  J y )Nr   r1  r  )confidence_levelrs   )r6   r  r   ra   isfiniter   median	binomtestcount_nonzeror  proportion_cir%  r&  )rj   r  rV   medbtestcis         r0   rA  zTestLoggamma.test_rvs  s     NNqv. {{1~!!### nn##A& 0 0S 93q6B  % 8vv%bgg%%%%%r2   r  ))r  g3H໱k3@)r   rr  )r  g8,[H^}	)r  g90$)r  gtum\c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   r  r>   r  s      r0   rh  zTestLoggamma.test_entropy  s     	..q13UCr2   N)r   r   r   r   r   r   r  r  rq  rX  rA  rh  r8   r2   r0   r  r  V  s     [[[EF*F* [[ZBC
*C
*11 [[S3,/& 0& [[X<=	D=	Dr2   r  c                   X    e Zd Zg dZej
                  j                  de      d        Zy)TestJohnsonsu))r  r   r   g?r  )r   r   r   gH';vIh%,=)r   r   r   g?x7r  rN  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y Nr  r|   )r   r6   	johnsonsur   r  rj   rN  rV   r.   r/   r   tols          r0   r  zTestJohnsonsu.test_sf_isf  P    1aS**1a3ReD++B15qsCr2   Nr   r   r   casesr   r   r   r  r8   r2   r0   r  r    s0    ;E [[VU+D ,Dr2   r  c                   X    e Zd Zg dZej
                  j                  de      d        Zy)TestJohnsonb))r  r   r   g?Hz>)r  r   r   g0jA:r  )g!?r   r   gQbF5r  rN  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y )Nr  r|   r   )r   r6   r  r   r  r  s          r0   r  zTestJohnsonb.test_sf_isf  r  r2   Nr  r8   r2   r0   r  r    s0    =E [[VU+D ,Dr2   r  c                       e Zd Zd Zd Zd Zd Zd Zej                  j                  dddg      d	        Zd
 Zej                  j                  dddg      d        Zd Zy)TestLogisticc                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y Nr  r  )ra   rP  r6   logisticrh   r   r   rj   rV   r  r  s       r0   r  zTestLogistic.test_cdf_ppf  sD    KKR NNq!^^"2r2   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y r  )ra   rP  r6   r  r   r  r   r  s       r0   r  zTestLogistic.test_sf_isf  sD    KKR NNa ^^"2r2   c                     d}d}t        t        j                  j                  d|z
        |       t        t        j                  j	                  |      |       y )Ng      <gg|EA@r   )r   r6   r  r   r  )rj   rm  desireds      r0   test_extreme_valuesz TestLogistic.test_extreme_values  sB    !#**1q517;**1-w7r2   c                 j    t         j                  j                  g d      }g d}t        ||d       y )N)r  r   rW   )gm\  .g9B.gO& $r   r|   )r6   r  r   r   )rj   rp  rO   s      r0   test_logpdf_basiczTestLogistic.test_logpdf_basic  s+    ~~$$\2) 	hU3r2   c                 b    t         j                  j                  ddg      }t        |ddg       y )Nrr   r  )r6   r  r   r   rj   rp  s     r0   test_logpdf_extreme_valuesz'TestLogistic.test_logpdf_extreme_values  s*    ~~$$c4[1 	TD$<(r2   zloc_rvs,scale_rvs)g9x&?gi '?)gB"?gs^&?c                    t         j                  j                  d||      }d }t        |t         j                  j	                  |      |f      j
                  }t         j                  j                  |      }t        ||d       y )NrX   r   r\   r]   c                    | \  }}t        |      }t        j                  t        j                  ||z
  |z        dt        j                  ||z
  |z        z   z        |dz  z
  }t        j                  ||z
  |z  t        j                  ||z
  |z        dz
  t        j                  ||z
  |z        dz   z  z        |z
  }||fS Nr   r^   )r  ra   rd  r   )inputr   r.   r/   rl  x1x2s          r0   r   z#TestLogistic.test_fit.<locals>.func  s    DAqD	AqA~.RVVTAXN335 689A>B$(a&&$(a014&&$(a01467 8:;<B r6Mr2   r  gKH9r   )r6   r  r   r"   	_fitstartrV   r   r   )rj   loc_rvs	scale_rvsr   r   expected_solution
fit_methods          r0   test_fitzTestLogistic.test_fit   sw     ~~!!sy!I	 !u~~'?'?'EM A 	^^''-
 	
$5EBr2   c                     t         j                  j                  ddd      }t        t         j                  |       t        t         j                  |d       t        t         j                  |d       y )NrX   rs   r^   r  r   r   r   )r6   r  r   r   rj   r   s     r0   test_fit_comp_optimizerz$TestLogistic.test_fit_comp_optimizer  sK    ~~!!s1!=%ennd;%enndC%ennd1Er2   
testlogcdfTFc                     t        j                  g d      }|r t        j                  j	                  |      }n t        j                  j                  |       }g d}t        ||d       y )N)r+  r     r3  rt  )     g      g%h9fg?~T}%mgCx^&ْV瞯<r|   )ra   r   r6   r  r  rs  r   )rj   r  rV   r  rO   s        r0   test_logcdfsf_tailsz TestLogistic.test_logcdfsf_tails  sT     HH01%%a(A$$aR(AF8%0r2   c                     t        j                  g ddgdz  z   dgdz  z         }t        t        j                  |       y )N)	i5%   +   r^  r^  0   6   7   :   ;   r   =   rf  )ra   r   r   r6   r  r  s     r0   test_fit_gh_18176zTestLogistic.test_fit_gh_18176,  sA     xx>$(#&(TAX. / 	&ennd;r2   N)r   r   r   r  r  r  r  r  r   r   r   r  r  r  r  r8   r2   r0   r  r    s    84) [[03J3K3M NCNC,F [[\D%=91 :1<r2   r  c                   $    e Zd Zd Zd Zd Zd Zy)
TestLogserc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestLogser.setup_method6  r.  r2   c                 h   t         j                  j                  dd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nr   r2  r1  r   r4  r   )r6   logserr   r	   r8  r   r9  r   r:  r   r;  rZ  r[  r>  s      r0   rA  zTestLogser.test_rvs9  s    ||73		$!)$%D!W,-

9\#::;llt$
3$%ll4 $$Q'
3./		)L"99:r2   c                 \    t         j                  j                  dd      }t        |d       y )Nr   ry  g&Y3)r6   r  rG  r   rj   rU  s     r0   test_pmf_small_pzTestLogser.test_pmf_small_pD  s$    LLQ& 	7#r2   c                 Z    t         j                  j                  d      }t        |d       y )Nr  gW  ?)r6   r  r   r   r  s     r0   test_mean_small_pzTestLogser.test_mean_small_pR  s"    LLd# 	;'r2   N)r   r   r   r-  rA  r  r   r8   r2   r0   r  r  5  s    	;$(r2   r  c            	          e Zd Z ej                  d      d        Zej                  j                  dej                  ej                  g      ej                  j                  dg d      ej                  j                  dg d      ej                  j                  d	d
dgdd
gf      d                             Zej                  j                  dej                  dfej                  dfg      d        Zy)TestGumbel_r_lfunctionscopec                 @    t         j                  j                  d      S r+  ra   r   r   ro   s    r0   r   zTestGumbel_r_l.rng^      yy$$T**r2   rK   r  r   r   r   r  rT   r   r   zfix_loc, fix_scaleTFc                     |j                  d|||      }t               }|r|dz  |d<   |r|dz  |d<   t        ||fi | y )NrX   r   r\   r]   r   r^   r   r   )r   r	  r   )	rj   rK   r  r  r   r  r   r   r   s	            r0   r  z&TestGumbel_r_l.test_fit_comp_optimizerb  s\     xxSgY%(  * v "Q;DL&]DN 	&dD9D9r2   z	dist, sgnr   r   c                     |t        j                  g d      z  }|j                  |      \  }}t        ||dz         t        |dd       y )N)r   r   r   r   r   r   r   gW  @g   @g3qtw>r  r|   )ra   r   r   r   )rj   rK   sgnzr\   r]   s         r0   r  zTestGumbel_r_l.test_fitw  sH     :;;XXa[
U 	S!3345DAr2   N)r   r   r   r   fixturer   r   r   r6   gumbel_rgumbel_lr  r  r8   r2   r0   r"  r"  ]  s    V^^*%+ &+ [[Vennenn%EF[[Y
3[[[*5[[1#UmeT];=:= 6 4 G
:  [[[ENNA+>,1NNB+?+A BBBBr2   r"  c                      e Zd Zd Zd Z ej                  d      d        Zej                  j                  d      ej                  j                  ddd	g      ej                  j                  d
dd	g      ej                  j                  dddg      d                             Zej                  j                  ddd	g      ej                  j                  d
dd	g      ej                  j                  dddg      ej                  j                  d eddgd      D  cg c]  }d|v r|
 c}}        ej                  d      d                                    Z ej                  d      d        Zd Zd Zyc c}} w )
TestParetoc                 J	   t        j                         5  t        j                  dt               t        j
                  j	                  dd      \  }}}}t        |t        j                         t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |t        j                         t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  d	d      \  }}}}t        |d
       t        |d       t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |d       d d d        y # 1 sw Y   y xY w)Nrj  rs   rS  rT  rK  r  rR  rw   r	  g?grq@r         @gffffff?gK~?g      2@g۶m۶m?r  UUUUUU?gqq?r        @g%I$I?gQ?gUUUUUU@grq?g88Nb@)rn  ro  rp  rq  r6   paretor   ra   r  r  r   r  rj   rU  rV  rE   rS   s        r0   rX  zTestPareto.test_stats  sJ    $$& 7	N!!'>:++C+@JAq!QBFF#BFF#BFF#BFF#++C+@JAq!QBFF#BFF#BFF#BFF#++C+@JAq!QC BFF#BFF#BFF#++C+@JAq!QC BFF#BFF#BFF#++C+@JAq!QAy)A23BFF#BFF#++C+@JAq!QAs#At$BFF#BFF#++C+@JAq!QAy)A23A	2777+;;<BFF#++C+@JAq!QAy)Az*A0277;3GGHBFF#++C+@JAq!QAy)A23A	RWWW-==>ALMo7	N 7	N 7	Ns   Q;RR"c                 ~    d}d}d}t         j                  j                  ||d|      }||z  |z  }t        ||       y )Ng    eAr^   r  r   r[   )r6   r9  r   r   )rj   rV   r/   r]   rm  rO   s         r0   r  zTestPareto.test_sf  sB    LLOOAqauO5!Ga<8$r2   r#  r$  c                 @    t         j                  j                  d      S r+  r'  ro   s    r0   r   zTestPareto.rng  r(  r2   z2ignore:invalid value encountered in double_scalarsr   r   r^   r   r   r  r   c                    t         j                  j                  d||||      }t         j                  j                  |dd      d   }t         j                  j                  |dd      d   }t         j                  j                  |dd      d   }||cxk(  r|cxk(  rdk(  sJ  J t         j                  j                  d|||dz   |      }t         j                  j                  |d	      \  }	}
}t	        |dz   |j                                |dz
  }|j                  d   }t	        |	|t        j                  t        j                  ||j                         z              z         t	        |
d       y )
NrX   r   r/   r]   r\   r   r   p=
ף?)r   r   )r   fix_b)r   fbr^   r   )
r6   r9  r   r   r   r#  r9  ra   rd  r  )rj   r   r   r  r   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r0   r  zTestPareto.test_fit  so    ||SIY$+#   ? !& 0 0A$ 0 G J % 0 0AT 0 J1 M % 0 0A$ 0 G J%)> .%.)-. 	/ . 	/ . ||SIY%,q[   E.3ll.>.>t!.>.L+Y[1_dhhj1AX
  #[RVVBFF:jnn6F+F$GHH	JY"r2   rT   fix_shape, fix_loc, fix_scaleTFr   repeatignoreinvalidc                     t         j                  j                  d||||      }i }	|r||	d<   |r||	d<   |r||	d<   t        t         j                  |fi |	 y )NrX   r>  r   r   r   )r6   r9  r   r   
rj   r   r   r  r   r   r  r   r   r   s
             r0   r   z&TestPareto.test_fit_MLE_comp_optimizer  sf     ||SIY$+#   ? "DJ"DL&DN%ellDADAr2   c           	          d\  }}}t         j                  j                  |||dt        j                  j                  d            }t        t         j                  |       y )N)r   r   r   rX   ið& r   )r6   r9  r   ra   r   r   r   )rj   r9  locationr]   r   s        r0   test_fit_known_bad_seedz"TestPareto.test_fit_known_bad_seed  sR    
 ")x||xS-/YY-B-B7-K   M%ellD9r2   c                     t        t        j                         t        t        t        j                  j
                  g dd       t        t        t        j                  j
                  g ddd       y )Nr  r^   r   )r   r^   r   r   r   r  )r  r6   r9  r  r    r   ro   s    r0   test_fit_warningszTestPareto.test_fit_warnings	  sC    ELL)lELL$4$4iaHlELL$4$4ia	 r2   c                     t         j                  j                  ddd|      }t        |d       t         j                  j	                  |      }y )Ni~r   rX   )r\   r/   r   r   r   )r6   r9  r   r   r   )rj   r   r   r   s       r0   test_negative_datazTestPareto.test_negative_data	  s?    ||DACcJ$"
 LLT"r2   N)r   r   r   rX  r  r   r0  r   r   filterwarningsr   r  r%   ra   errstater   rT  rV  rX  .0rm  s   00r0   r4  r4    s   :Nx% V^^*%+ &+ [[ !1 2[[[1a&1[[YA/[[[1a&1# 2 0 22
#. [[[2q'2[[YA/[[[1a&1[[<)0$q)I -A!&!   -. R[["B #. 2 0 3B R[[": #: #I-s   $Fr4  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
dg dfdddd ej                   d      z  ej"                  gfdddd ej                   d      z  dgfdg dfg      d        Zd Zy)TestGenparetoc                 b   dD ]c  }t        j                  |      }t        j                  j	                  |      \  }}t        |d       t        t        j                  |             e t        j                  d      }t        j                  j	                  |      \  }}t        ||gddg       y )NrK  rx   rx          rs   )	ra   r   r6   	genpareto_get_supportr   r	   isposinfr   )rj   r  r.   r/   s       r0   test_abzTestGenpareto.test_ab	  s     	$A

1A??//2DAqBBKKN#		$ JJsO++A.1AS	*r2   c                 L   t        j                  d      }t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t        j                  ddd      }t	        |j                  |      t         j                  j                  |             y )Nrx   r  r   r  r0  rK  rW   )
r6   rb  ra   rP  r   r`   r  rh   r   r   rj   rvrV   rv  s       r0   test_c0zTestGenpareto.test_c0'	  s     __r"KK3#q	5;;??1#56q	5;;??1#56a%++.."34KKB#q	5;;??1#56r2   c                    t        j                  d      }t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  d	      d       y )
Nr  rg  r   r  r0  rx   rK  rW   r   )r6   rb  ra   rP  r   r`   uniformrh   r   r   r   rh  s       r0   test_cm1zTestGenpareto.test_cm13	  s    __s#KK3#q	5==#4#4Q#78q	5==#4#4Q#78a%--"2"21"56KKB#q	5==#4#4Q#78 			!a(r2   c                    t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     y )NrT   rg  rx   rK  r  )
r6   rb  r   r`   ra   r  rh   r	   isneginfr   rj   ri  s     r0   
test_x_infzTestGenpareto.test_x_infA	  s   __s#82r(CBIIbff-./__r"82r(CBIIbff-./__s#82r(CBIIbff-./r2   c                    t        j                  ddd      }dD ]  }t        j                  j	                  ||      }dD ]3  }t        j                  j	                  |||z         }t        ||d       5 t        j                  j                  ||      }dD ]3  }t        j                  j                  |||z         }t        ||d       5  y )	Nr   rW   r0  r   r   rz  g+r  r   )rz  rz  )ra   rP  r6   rb  r`   r   rh   )rj   rV   r  pdf0dcpdfccdf0cdfcs           r0   test_c_continuityzTestGenpareto.test_c_continuityO	  s    KK2r" 		8A??&&q!,D% 8**1a"f5d78 ??&&q!,D$ 8**1a"f5d78		8r2   c           	      z   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]Z  }t        j
                  j                  ||      }dD ]3  }t        j
                  j                  |||z         }t        ||d       5 \ y Nr  ru   rT   baser   r0  FendpointrK  )rx   r  rt  r   )ra   rE  r  rP  r6   rb  r   r   )rj   rv  r  ppf0rv  ppfcs         r0   test_c_continuity_ppfz#TestGenpareto.test_c_continuity_ppf]	      EE"++eT4++dArE:r{{5$S99: ;  	8A??&&q!,D% 8**1a"f5d78	8r2   c           	      z   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]Z  }t        j
                  j                  ||      }dD ]3  }t        j
                  j                  |||z         }t        ||d       5 \ y r|  )ra   rE  r  rP  r6   rb  r  r   )rj   rv  r  isf0rv  isfcs         r0   test_c_continuity_isfz#TestGenpareto.test_c_continuity_isfg	  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 ]L  }t	        t
        j                  j                  t
        j                  j                  ||      |      |d       N y )Nr  ru   rT   r}  r   r0  Fr  rK  )r  gC]r2r{   gV瞯Ҽr{   r   )	ra   rE  r  rP  r   r6   rb  rh   r   )rj   rv  r  s      r0   test_cdf_ppf_roundtripz$TestGenpareto.test_cdf_ppf_roundtripq	  s    EE"++eT4++dArE:r{{5$S99: ; / 	+AEOO//0C0CAq0I1ME+	+r2   c                 `    t         j                  j                  dddd      }t        |d       y )Nr  ru   r   r   gpEȜ)r6   rb  rs  r   r  s     r0   r  zTestGenpareto.test_logsfz	  s'    $$T31512r2   zc, expected_statsr   )r   r   r^   r  rc  r7  gqq@rW   r^   gqq?g      ?g$I$	?rq?r  gll0@r   )rs   UUUUUU?r   333333c                 d    t         j                  j                  |d      }t        ||dd       y )NrS  rT  r   r{   r]  )r6   rb  r   )rj   r  expected_statsr  s       r0   rX  zTestGenpareto.test_stats	  s+     &&q&&9UGr2   c                 ^    t         j                  j                  d      }t        |dd       y )Nr  gvǼ
  ?r   r|   )r6   rb  r  r   )rj   rV  s     r0   test_varzTestGenpareto.test_var	  s#    OO%,59r2   N)r   r   r   re  rj  rm  rq  rz  r  r  r  r  r   r   r   ra   r  r  rX  r  r8   r2   r0   r^  r^  	  s    +
7)0888+3 [[
\	
T2gbggaj="&&1	2
]T72771:$5v>	?
"	#	%&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
y	)
TestPearson3c                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestPearson3.setup_method	  r.  r2   c                 T   t         j                  j                  dd      }t        t	        j
                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        t        t        |      dk(         y )NrT   r2  r1  AllFloatrs   r   )r6   r)   r   r	   r8  r9  r   r:  r   r;  r   r[  r  r>  s      r0   rA  zTestPearson3.test_rvs	  s    ~~!!#G!4D!W,-

9Z#889nn  %
3&'nnS!%%a(
3./		)J"778CAr2   c                    t         j                  j                  dg d      }t        |t	        j
                  g d      d       t         j                  j                  dd      }t        |t	        j
                  dg      d       t         j                  j                  g d	d      }t        |t	        j
                  g d
      d       y )Nr^   rx   rT   r  )gtT?g+q?g?r  r   r.  rT   ND}i?r.  r   r   r   r   )r  gj?gdC?gs?g'M?)r6   r)   r`   r   ra   r   ri  s     r0   rI  zTestPearson3.test_pdf	  s    ~~!!!_5bhh'KL!	#~~!!"c*bhh
|44@~~!!"4c:bhh (@ AGK	Mr2   c                 P   t         j                  j                  dg d      }t        |t	        j
                  g d      d       t         j                  j                  dd      }t        |dgd       t         j                  j                  g d	d      }t        |g d
d       y )Nr^   r  )grE?gTp]0?g~?r  r   r.  rT   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r6   r)   rh   r   ra   r   ri  s     r0   rS  zTestPearson3.test_cdf	  s    ~~!!!_5bhh'KL!	#~~!!"c*zl6~~!!"4c: ?EI	Kr2   c                     g d}d}d}t         j                  j                  ||      }|D cg c]/  }t        t        j                  |      j                  ||      d   1 }}t        ||       y c c}w )Nr.  r   r   rs   rs   rJ  r   )r6   r)   rh   r   r`   r   )rj   skewsx_evalneg_infr6  r  int_pdfss          r0   test_negative_cdf_bug_11186z(TestPearson3.test_negative_cdf_bug_11186	  sr     !~~!!&%0 %' -117FCAF ' 'h''s   4A0c                 $   t         j                  j                  dd      }t        |d       t	        |t
        j                        sJ t         j                  j                  dd      }t        |d       t	        |t
        j                        sJ y )Nr   r^   r   r  )r6   r)   r  r   r;  ra   number)rj   r  s     r0   test_return_array_bug_11746z(TestPearson3.test_return_array_bug_11746	  sl     &&q!,VQ&")),,,&&q(3VQ&")),,,r2   c                    g d}d}t         j                  j                  t         j                  j                  ||      |      }t	        ||       t        j                  dgdgg      }t        j                  dd      }t	        t         j                  j                  ||      t         j                  j                  | |              t	        t         j                  j                  ||      t         j                  j                  | |              t	        t         j                  j                  ||      t         j                  j                  ||               y )Nr  rs   r   r  r   r^   )r6   r)   r   rh   r   ra   r   rP  r`   r   r  )rj   r  r  r   r  rV   s         r0   test_ppf_bug_17050zTestPearson3.test_ppf_bug_17050	  s    !nn  !3!3FE!BEJV$ xx$#(KKA**1d3**A2u5	7**1d3))1"te4	6**1d3++Au55	7r2   c                    g d}g d}g d}t        t        j                  j                  ||      |d       t        t        j                  j                  |d      t        j                  j                  |      d       y )N)rT   rs   rK  皙)rL  r  g      I@       @)g7>g~׼=gp'+7g;r  r|   r   )r   r6   r)   r   r  )rj   r  rV   r|  s       r0   r  zTestPearson3.test_sf	  s\     %">))!T2CeD))!Q/q1ANr2   N)r   r   r   r-  rA  rI  rS  r  r  r  r  r8   r2   r0   r  r  	  s-    	MK	(	-7&	Or2   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
TestKappa4c                     g d}d}dD ]P  }t         j                  j                  |||      }t         j                  j                  ||       }t	        ||       R y )N)rx   rT   r  rs   rK  )
gffffffr  r   皙ɿr  rT   r  rs   rK  ffffff?)r6   kappa4rh   rb  r   rj   rV   rg  rS   r?  	vals_comps         r0   test_cdf_genparetozTestKappa4.test_cdf_genpareto	  sW      	-A<<##Aq!,D++Ar2ID),	-r2   c                     t        j                  ddd      }d}t        j                  ddd      }t        j                  j	                  |||      }t        j
                  j	                  ||      }t        ||       y )Nr:  r   rW   rx   r.  r   )ra   rP  r6   r  rh   
genextremer   r  s         r0   test_cdf_genextremezTestKappa4.test_cdf_genextreme	  se    KKAr"KKAr"||1a($$((A.	i(r2   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr   rW   rK  rx   )ra   rP  r6   r  rh   r  r   r  s         r0   test_cdf_exponzTestKappa4.test_cdf_expon	  sR    KK2r"||1a(KKOOA&	i(r2   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr:  r   rW   rx   )ra   rP  r6   r  rh   r1  r   r  s         r0   test_cdf_gumbel_rzTestKappa4.test_cdf_gumbel_r
  sT    KKAr"||1a(NN&&q)	i(r2   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr:  r   rW   r  rx   )ra   rP  r6   r  rh   r  r   r  s         r0   test_cdf_logisticzTestKappa4.test_cdf_logistic
  sT    KKAr"||1a(NN&&q)	i(r2   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr:  r   rW   rK  )ra   rP  r6   r  rh   rl  r   r  s         r0   test_cdf_uniformzTestKappa4.test_cdf_uniform
  sT    KKAr"||1a(MM%%a(	i(r2   c                 0    t        j                  dd       y r  )r6   r  ro   s    r0   test_integers_ctorzTestKappa4.test_integers_ctor!
  s     	Qr2   N)
r   r   r   r  r  r  r  r  r  r  r8   r2   r0   r  r  	  s%    	-)))))r2   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestPoissonc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestPoisson.setup_method(
  r.  r2   c                     t        j                  d      }t        j                  j	                  g d|      }d|dz  |dz  dz  g}t        ||       y )Nr^   r   r   r^   rs   r   )ra   r  r6   r{  rG  r   )rj   ln2r?  rO   s       r0   test_pmf_basiczTestPoisson.test_pmf_basic+
  sG    ffQi}}  C0QQq)h'r2   c                     t         j                  j                  g dd      }g d}t        ||       t         j                  j	                  dd      }t        |d       y )Nr  r   )r   r   r   ffffff?r   r   )r6   r{  rG  r   intervalr   )rj   r?  rO   r  s       r0   test_mu0zTestPoisson.test_mu02
  sG    }}  A.4*==))$2Xv&r2   c                 h   t         j                  j                  dd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nrs   r2  r1  r   r4  r   )r6   r{  r   r	   r8  r   r9  r   r:  r   r;  rZ  r[  r>  s      r0   rA  zTestPoisson.test_rvs;
  s    }}  7 3		$!)$%D!W,-

9\#::;mm$
3$%mmC $$Q'
3./		)L"99:r2   c           	         d}t         j                  j                  |d      }t        |||t        j                  d|z        d|z  g       t        j
                  g d      }t         j                  j                  |d      }||t        j                  ddt        j                  d      z  gt        j                  ddgf}t        ||       y )	Ng      0@rS  rT  rK  )rx   rK  rw   r   r^   rs   )r6   r{  r   ra   r  r   r  )rj   r  r  rO   s       r0   rX  zTestPoisson.test_statsF
  s    $$R$8RR#b& ABXXo&$$R$8RVVQ"''!*537GH)r2   N)r   r   r   r-  r  r  rA  rX  r8   r2   r0   r  r  '
  s    ('	;*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d Zd Zy)	TestKSTwoc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestKSTwo.setup_methodR
  r.  r2   c                    dD ]  }t        j                  dd|z  d|z  ddd|z  z
  dg      }d|z  |z  }t        j                  j	                  |dz         }|dk7  rt        j
                  |      nd}t        j                  dd||z  ddt        j                  j                  d|      z  z
  t        dd|z  z
  d      dg      }t        j                  j                  ||      }t        ||        y )Nr   r^   r   rW   rX   r   r   rs   r   rK  r^   rx   )ra   r   r5   r   gammalnr   r6   ksoner   rf  kstworh   r   )rj   rl  rV   v1lgelgrO   r@  s           r0   rS  zTestKSTwo.test_cdfU
  s    ) 	0A !SUAaCaAgq9:Aa%!B&&qs+B!#q266":aCxxArCx!"Qu{{~~c1'=%=!=!$Q2Xs!3!$!& 'H {{q!,HHh/#	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                  j                  |dz         }|dk7  rt        j                  |      nd}t        j                  ddd||z  z
  dt        j                  j                  d|      z  t        d|z  d      dg      }t        j                  j                  ||      }t        ||        y )Nr   r   r!  r  rs   rK  r^   )ra   rP  r   r5   r   r  r   r6   r  r   r#  r  r   )rj   rV   rl  r  r  r  rO   rp  s           r0   r  zTestKSTwo.test_sfi
  s    KK1b!) 	/A!SUAaCaAgq9:Aa%!B&&qs+B!#q266":aCxxc!"R#X!"5;;>>#q#9!9!$QrT3!4 5H kknnQ*GGX.	/r2   c                     t        j                  ddd      dd  }g d}|D ][  }|t        j                  |      z  }t        j                  j                  ||      }t        j                  |      }t        |d       ] y )Nr   r^   r!  r   )r3  rX   r  i  r   r   r  )ra   rP  r  r6   r  rh   r  r   )rj   rV   ns_xxnprobsdiffss          r0   test_cdf_sqrtnzTestKSTwo.test_cdf_sqrtnx
  sn    
 KK1b!!"%, 	+Bbggbk!BKKOOB+EGGENEeT*		+r2   c                     t        j                  ddd      }dD ]Q  }t        j                  j	                  ||      }t        j                  j                  ||      }t        |d|z
         S y Nr   r   r!  r  )ra   rP  r6   r  rh   r   r   )rj   rV   rl  r@  rp  s        r0   rq  zTestKSTwo.test_cdf_sf
  sY    KK1b!) 	=A{{q!,HkknnQ*G%hG<	=r2   c                    t        j                  ddd      }dD ]i  }|t        j                  |      z  }t        j                  j                  ||      }t        j                  j                  ||      }t        |d|z
         k y r  )ra   rP  r  r6   r  rh   r   r   )rj   rV   rl  r  r@  rp  s         r0   test_cdf_sf_sqrtnzTestKSTwo.test_cdf_sf_sqrtn
  sj    KK1b!) 	=ARWWQZB{{r1-HkknnR+G%hG<		=r2   c                    t        j                  ddd      }dD ]l  }||d|z  kD     }t        j                  j	                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||   d       n y )	Nr   r   r!  r  rs   r  r  r|   )ra   rP  r6   r  rh   r   r   rj   rV   rl  r  r@  condr?  s          r0   test_ppf_of_cdfzTestKSTwo.test_ppf_of_cdf
  s    KK1b!) 	=A1s1u9B{{r1-HLX_5D;;??8Q/DDJ4t<	=r2   c                    t        j                  ddd      }dD ]l  }||d|z  kD     }t        j                  j	                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||   d       n y )	Nr   r   r!  r  rs   rK  r  r|   )ra   rP  r6   r  r  r   r   )rj   rV   rl  r  vals_isfr  r?  s          r0   test_isf_of_sfzTestKSTwo.test_isf_of_sf
  s    KK1b!) 	=A1s1u9B{{r1-HLX^4D;;>>(A.DDJ4t<	=r2   c                 <   t        j                  ddd      }dD ]  }|t        j                  |      z  |d|z  kD     }t        j                  j                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||           y )Nr   r   r!  r  rs   rK  )ra   rP  r  r6   r  rh   r   r   r  s          r0   test_ppf_of_cdf_sqrtnzTestKSTwo.test_ppf_of_cdf_sqrtn
  s    KK1b!) 	2Abggaj.!c!e),B{{r1-HLX^4D;;??8Q/DDJ41	2r2   c                 <   t        j                  ddd      }dD ]  }|t        j                  |      z  |d|z  kD     }t        j                  j                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||           y )Nr   r   r!  r  rs   r  )ra   rP  r  r6   r  r   r  r   )rj   rV   rl  r  rp  r  r?  s          r0   test_isf_of_sf_sqrtnzTestKSTwo.test_isf_of_sf_sqrtn
  s    KK1b!) 	2Abggaj.!c!e),BkknnR+GKGdN3D;;??7A.DDJ41	2r2   c                     t        j                  ddd      dd  }dD ]N  }t        j                  j	                  ||      }t        j                  j                  ||      }t        ||       P y r  )ra   rP  r6   r  r   rh   r   )rj   r  rl  r  r@  s        r0   r\  zTestKSTwo.test_ppf
  s\    Aq"%ab)) 	-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 ]x  \  }}|t        j                  d	      z  t        j                  t         j
                  d	z  |z        z  }t        j                  j                  ||      }t        |||   d
       z y )N)rW   r3  rX   r  rt  r   )rc  gUUUUUU?rs   r   r^   r   )gRT>gr	?gK5
?gn
"5?gU
?gk?)g&6#>gb
E>gI5?g\?g;?g%1?)g6>gL>g<?g䓀^?gO|6$?g qO?)g}+: >gwQ9>gH{?g]qv(?g)~/v?gmJ?)gV27J=gGk(>gWX?gY?g{0`?gZ
H?)g_R=g4>g̪?gT_@?g<e?g2?r^   r  r|   )
ra   r   	enumerater  r  rb   r6   r  rh   r   )rj   r  ratiosrO   idxrl  rV   r@  s           r0   test_simard_lecuyer_table1z$TestKSTwo.test_simard_lecuyer_table1
  s     +8988------
   m 	@FC"RWWRUU1WQY%77A{{q!,HHhsm$?	@r2   N)r   r   r   r-  rS  r  r  rq  r  r  r  r  r  r\  r  r8   r2   r0   r  r  Q
  s?    0(/+====22-@r2   r  c                       e Zd Zd Zd Zd Zy)TestZipfc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestZipf.setup_method
  r.  r2   c                 h   t         j                  j                  dd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nr  r2  r1  r   r4  r   )r6   zipfr   r	   r8  r   r9  r   r:  r   r;  rZ  r[  r>  s      r0   rA  zTestZipf.test_rvs
  s    zz~~c~0		$!)$%D!W,-

9\#::;jjnnS!
3$%jjo!!!$
3./		)L"99:r2   c                 `   t         j                  j                  d      \  }}t        t        j                  |             t        |t        j                         t         j                  j                  dd      \  }}t        t        j                  ||g      j                                 y )Nffffff@r.   r  skr.   rU  )r6   r  r	   ra   r  r   r  r   r:  s        r0   rW  zTestZipf.test_moments
  sy    zz#&1AQzz#t41BKKA'++--.r2   N)r   r   r   r-  rA  rW  r8   r2   r0   r  r  
  s    	;/r2   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestDLaplacec                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestDLaplace.setup_method
  r.  r2   c                 z   t         j                  j                  dd      }t        t	        j
                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        t        t         j                  j                  d      d u       y )Nr  r2  r1  r4  r   r   )r6   dlaplacer   r	   r8  r9  r   r:  r   r;  rZ  r[  r>  s      r0   rA  zTestDLaplace.test_rvs   s    ~~!!#G!4D!W,-

9\#::;nn  %
3$%nnS!%%a(
3./		)L"99:""3't34r2   c                 x   d}t        j                  |      }|j                  d      \  }}}}d}t        j                  | |dz         }|j	                  |      }	t        j
                  |	|dz  z        t        j
                  |	|dz  z        }}
t        ||fd       t        ||f|
||
dz  z  dz
  fd	d
       y )NrK  rS  r  r   r^   r   r  rR  rz  r  r  )r6   r  ra   r  rG  rd  r   r   )rj   r.   dlrU  rV  rE   rS   r  r  ppm2m4s               r0   rX  zTestDLaplace.test_stats  s    ^^AXXf%
1aYYr1Q3VVBZ2q5!266"RU(#3BaVV$ARAX] 3%dKr2   c                     t        j                  d      }t        j                  |      }|j                  d      \  }}}}t	        ||fd       t        ||fd       y )Nrw   rS  )rx   rx   )r        
@)ra   r  r6   r  r   r   )rj   r.   r  rU  rV  rE   rS   s          r0   test_stats2zTestDLaplace.test_stats2  sO    FF2J^^AXXf%
1aaVX&A
+r2   N)r   r   r   r-  rA  rX  r  r8   r2   r0   r  r  
  s    	5L,r2   r  c                       e Zd Zd Zej
                  j                  dddg      d        Zej
                  j                  dddg       fd       Zd Z	d	 Z
d
 Zej
                  j                  dg d      d        Z xZS )TestInvgaussc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestInvgauss.setup_method!  r.  r2   zrvs_mu,rvs_loc,rvs_scale)r^   r   r   )g
ףp=@g r@gʡE6@c                 X   t         j                  j                  d|||      }t         j                  j                  ||      \  }}}||z
  }t	        j
                  |      }t        |      t	        j                  |dz  |dz  z
        z  }	||	z  }
t        |
|dd       t        |	|dd       t        ||       t         j                  j                  d|||      }t         j                  j                  ||dz
  |dz         \  }}}t        |dz   |       t        |dz
  |       t         j                  j                  |d	
      d   }t         j                  j                  |d	      d   }t         j                  j                  |d	      d   }||cxk(  r|cxk(  rd	k(  sJ  J y )NrX   )r   r  r\   r]   r   r   r{   r  r   r  r?  )fmur   )fix_mur   )
r6   r  r   r   ra   r   r  rd  r   r   )rj   rvs_mur   r  r   r  r\   r]   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r0   r  zTestInvgauss.test_fit$  s    ~~!!sv&-Y " @ ++Dw+?Cg~''$-Ir
Wr](B!CD	" 	U;	5u5AS'"~~!!sv&-Y " @ ++Dw{3<q= , BCY]E*Wq[#& ^^''$'7:
^^''T':1=
^^'''6q9
Z=:======r2   )gX9v>@g	@gGz@c                 *   t         j                  j                  d      }t        j                  j                  d||||      }t        t        t        j                        t        j                  "  } ||      }t        j                  j                  |      }t        ||        ||dd      }t        j                  j                  |dd      }t        ||       t        t        j                  ||       t        j                  ||dz
  z
  dkD        sJ t        t        j                  ||dz
         t        t        j                  |d       t        t        j                  ||t         j                  j                  d      d   	       y )
Nr   rX   )r   r  r\   r]   r   r   r^   )r   r  r   r   r  )ra   r   RandomStater6   r  r   r   r   r   r   r   r   rand)
rj   r  r   r  r   r   	super_fitsuper_fittedinvgauss_fit	__class__s
            r0   r   z(TestInvgauss.test_fit_MLE_comp_optimizerC  s9    ii##D)~~!!sv&-YS " R $u~~.C	 ~~))$/\<0 !A15~~))$QA)>\<0 	&enndI vvtw{+q0111%ennd1M 	&enndC 	&ennd-/YY^^A->q-A	Cr2   c                     t        t        j                         t        j                  t
              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wr  )r  r6   r  r   r   r    r   ro   s    r0   test_fit_raise_errorsz"TestInvgauss.test_fit_raise_errorsg  sF    ENN+]]<( 	2NNyq1	2 	2 	2s   $A  A)c                    g d}g d}t         j                  j                  d|      }t        ||       t         j                  j                  dd      }t	        |d       t         j                  j                  dd      }t	        |d	       t         j                  j                  d
d      }t	        |d       t         j                  j                  dd      }t	        |d       y )N)g4wT;?gjdV&}?g{i\0>gDV_h?gqacX?)r   r   r   r   r   皙?r  r[  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r6   r  rh   r   r   r   )rj   r  rO   rJ   
cdf_actual	sf_actuals         r0   rq  zTestInvgauss.test_cdf_sfm  s    ."##CB#/Xv& ^^''$'7

$9:NN%%cd%3		#78 ##GV4 34 ##Hf5 12r2   c                 h   t         j                  j                  dd      }t        |d       t         j                  j                  dd      }t        |d       t         j                  j	                  dd      }t        |d       t         j                  j	                  dd      }t        |d	       y )
Nr  r)  r(  giJ.r*  gr^ߺr[  gpgFgpQ^L)r6   r  r  r   rs  )rj   r  rs  s      r0   ru  zTestInvgauss.test_logcdf_logsf  s     &&v$&7 12&&sD1 56$$Ut$456$$S$/01r2   zmu, ref))g:0yU>g,9)r[  g%!)ru   g40)r   gK'
@)r  g`p
@c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   r  r>   )rj   r  r|  s      r0   rh  zTestInvgauss.test_entropy  s     	..r2CeDr2   )r   r   r   r-  r   r   r   r  r   r%  rq  ru  rh  __classcell__r#  s   @r0   r  r     s     [[7')>?A>A>: [[7')>?A CA CD2!3F2. [[Y )D E
EE
Er2   r  c                       e Zd Zej                  j                  dg d      ej                  j                  dg d      d               Zej                  j                  dg d       fd       Zd	 Zd
 Z	d Z
d Z xZS )TestLaplacer   )r:  r   r   r^   r  )r   r^   r   rW   c                    t         j                  j                  d      }t        j                  j                  d|||      }t        j                  |      }t        j                  t        j                  ||z
              t        |      z  }t        j                  j                  |      \  }}t        ||dd       t        ||dd       t        j                  j                  ||      \  }}t        ||dd       t        j                  j                  ||      \  }}t        ||       |dz  }t        j                  t        j                  ||z
              t        |      z  }t        j                  j                  ||      \  }}t        ||       t        j                  j                  ||      \  }}t        ||       t        t        t        j                  j                  |||	       t        t        t        j                  j                  t         j                   g       t        t        t        j                  j                  t         j"                  g       y )
Nr   rX   r,  r{   r  r   r  r^   r  )ra   r   r  r6   r%  r   r  rd  r   r  r   r   r   r  r  r  r  r  )	rj   r   r  r   r   loc_mler  r\   r]   s	            r0   r  zTestLaplace.test_fit  s   
 ii##D)}}  cwi.1 ! 3 ))D/FF266$.12SY>	 ]]&&t,
UW5u=yu5A ]]&&t'&:
Uyu5A]]&&tI&>
UW% kFF266$*-.T:	 ]]&&t#&6
UY& ]]&&tI&>
UWc" 	lEMM$5$5t'&	( 	j%--"3"3bffX>j%--"3"3bffX>r2   rvs_loc,rvs_scale))r:  rW   rW   r   )rs   r  c                    t         j                  j                  d      }t        j                  j                  d|||      }d }t        j                  j                  |      \  }}t        t        t        j                        t        j                    |      \  }}	 ||||      }
 |||	|      }|
|k  st        j                  |
|dd      sJ y y )Nr   r   r,  c           	          dt        |       t        j                  d|z        z  d|z  t        j                  t        j                  || z
              z  z
  z  S )Nr   r^   r   )r  ra   r  rd  r   )r\   r]   r   s      r0   llz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.ll  sO    CI%8E'266"&&*<#==> ? ?r2   r{   r  )
ra   r   r  r6   r%  r   r   r   r   r   )rj   r   r  r   r   r9  r\   r]   loc_opt	scale_optll_mlell_optr#  s               r0   r   z'TestLaplace.test_fit_MLE_comp_optimizer  s     ii##D)}}  dy.1 ! 3	? ]]&&t,
U"4#6#(==66:) 	C%GY-"++ff38u#F 	F F #Fr2   c                     t        j                  g d      }t        j                  j	                  |d      \  }}t        |ddd       t        j                  j	                  |d      \  }}t        |ddd       y )N)rK  rK  rR  rL  r  rH  r  r   r   r{   r  r  )ra   r   r6   r%  r   r   )rj   r   r\   r]   s       r0   test_fit_simple_non_random_dataz+TestLaplace.test_fit_simple_non_random_data  sg    xx78]]&&t!&4
Uqu59]]&&tA&6
UQU7r2   c                 <   d}t         j                  j                  |       }|dk(  sJ t         j                  j                  |      }|dk(  sJ t         j                  j                  |      }|dk(  sJ t         j                  j                  |       }|dk(  sJ y )Nr   rx   rK  )r6   r%  rh   r   )rj   rV   p0p1s       r0   test_sf_cdf_extremesz TestLaplace.test_sf_cdf_extremes   s    ]]r" Syy ]]q!Syy]]a  Syy ]]qb!Syyr2   c                     d}t         j                  j                  |      }t        |t	        j
                  |       dz  d       y )Nr  r^   r   r|   )r6   r%  r   r   ra   r   )rj   rV   rm  s      r0   r  zTestLaplace.test_sf  s5    MMQ2661":a<e4r2   c                     d}t         j                  j                  |      }t        |t	        j
                  d|z         d       y )Ng}:r^   r   r|   )r6   r%  r  r   ra   r  )rj   rm  rV   s      r0   r  zTestLaplace.test_isf  s5    MMa BFF1Q3K<e4r2   )r   r   r   r   r   r   r  r   r?  rC  r  r  r/  r0  s   @r0   r2  r2    s    [[Y6[[[-8+? 9 7+?Z [[0 3? @F@F(8*5
5r2   r2  c                   l   e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      ej                  j                  dd	g      ej                  j                  d
ddg      ej                  j                  dddg      d                             Z	y)TestLogLaplacec                     t        j                  g d      }t        j                  g d      }g d}t        t        j                  j                  ||      |d       y )N)rw   rR  rL  )r  r    4&kC)g ?gKH9gXrL0r{   r|   )ra   r   r   r6   
loglaplacer   )rj   r  rV   r|  s       r0   r  zTestLogLaplace.test_sf"  sE     HH_%HH'(+((++Aq13UCr2   c                 p    d}g d}g d}t        t        j                  j                  ||      |d       y )Nr  )r   rT   r  ry  r  )gHhlh#?gH]9@?g"fj#@g11Ags!8wBrz  r|   )r   r6   rJ  r  )rj   r  rv  r|  s       r0   r  zTestLogLaplace.test_isf*  s4     +6((,,Q2CeDr2   r  r   r^   r   r   c                 J   d|dz
     }t        j                  d|dz   d      }t        t        j                  j                  ||      t         j                         t        j                  t        j                  t        j                  j                  ||                  rJ y )NrS  r   rs   rT  )	ra   r  r   r6   rJ  r  r  r   r  )rj   r  momr  s       r0   test_moments_statsz!TestLogLaplace.test_moments_stats3  s~    QUmIIc1s7C( 	((//15rvv> 66"++e&6&6&<&<Q&<&LMNNNNr2   r  )rs   rK  rw   z
loc, scale)r  g@fix_cTFr  c                    t         j                  j                  d      }t        j                  j                  |||d|      }d|i}|r||d<   |r||d<   dt        |      z
  }	|	dk(  rMd	}
t        j                  t        t        f|

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

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

  * 	8OAq)>>((A.DD)$7	8r2   c                     t         j                  j                  g dd      }t        |t	        j
                  d      d       t         j                  j                  dd      }t        |dd       y )	N)rW   r  r0  r   r   rz  r|   r  r	  rK  )r6   r  rh   r   ra   onesr  s     r0   test_cdf_large_xzTestSkewNorm.test_cdf_large_x?  sP     NN|R02771:E2NNr3'3U+r2   c                     g dg dg dg dg dg}|D ]d  \  }}}t         j                  j                  ||      }t        ||d       t         j                  j	                  | |       }t        ||d       f y )N)rd  r   gzbLe9)r  r^   gn'/2;)r   r   g::)rM  r   g|<)r  r  r  r  r|   )r6   r  rh   r   r   )rj   cdfvalsrV   r.   cdfvalrm  s         r0   test_cdf_sf_small_valuesz%TestSkewNorm.test_cdf_sf_small_valuesH  sy     .+,./
 $ 	2LAq&""1a(AAvD1!!1"qb)AAvD1	2r2   z
a, momentsc                     t        |d      D ]3  \  }}t        j                  j                  ||      }t	        ||d       5 y )Nr   )startrz  r|   )r  r6   r  r  r   )rj   r.   rU  orderrO   rN  s         r0   test_noncentral_momentsz$TestSkewNorm.test_noncentral_momentsY  s>    (: 	7OE8..''q1CC6	7r2   c           	      X   t         j                  j                  d      }d\  }}}t        j                  |||      }|j                  d|      }t        j                  j                  |dd      \  }}}	t        j                  j                  |dd      \  }
}}||cxk(  rdk(  sJ  J ||
k7  sJ t        j                  j                  |ddd	
      \  }}}|dk(  sJ t        j                  |||      }|j                  d      }t        j                  |      t        j                  |      f}t        ||       t        j                  j                  dd|      }t        j                  j                  |      }t        j                  t        j                  |            sJ t        j                  j                  |d	      \  }}}t        j                  |      sJ t        j                  |      t        j                  |      }}t        |||t        j                  dt         j                   z        z  z          t        ||dz  ddt         j                   z  z
  z         t        j                  j                  |d      \  }}}t        j                  j                  | d      \  }}}t        |||g| | |g       t        j                  j                  |d	      \  }} }!t        j                  j                  | d	      \  }"}#}$t        |"|#|$g| |  |!g       y )Nl   #ke )r   r6  rs   rX   r   r  r   r   gmmr   methodmsrT  r   r5  r^   mle)ra   r   r   r6   r  r   r   r   r  r   r9  r   r  isinfr  r  rb   )%rj   r   r.   r\   r]   rK   r   a2loc2scale2a3loc3scale3a4loc4scale4dist4r   r|  r   a5loc5scale5rU  rV  a6ploc6pscale6pa6mloc6mscale6ma7ploc7pscale7pa7mloc7mscale7ms%                                        r0   r  zTestSkewNorm.test_fit_  s   ii##$78$3~~ae,hhCch2 !>>--c4a-@D& >>--c4a-@D&t q     Rxx !>>--c1Qt-LD&{{r40kk$k'ggclEJJsO+S! ||#> nn  &vvbkk#&''' !>>--d4-@D&xx|| wwt}bffTl14&2771RUU7+;";;<619AI67 $nn00U0CUG#nn00#e0DUGeW-ufg/FG#nn00T0BUG#nn00#d0CUGeW-ufg/FGr2   c                 X  	 t        j                  g dddgz  z   dgz         }t        j                  j	                  |      }t        j                  j                  ||      }t        j                  j	                  |d      }t        j                  j                  ||      }||dz
  k  sJ t         j                  j                  d      	d	d
dd}	fd}t        j                  t        j                  |||      }t         j                  j                  ||j                  d       y )N)r:  r   r  rM  r   r   T)superfitrs   l   y
ND )r:  r   )r  rW   )rz  rW   r.   r\   r]   c                      t        | |      S )N)r   )r$   )funr   r   s     r0   	optimizerz0TestSkewNorm.test_fit_gh19332.<locals>.optimizer  s    )#vC@@r2   )rX  r  r|   )ra   r   r6   r  r   r   r   r   testingr   params)
rj   rV   rZ  r   params_superr|  r   rX  
fit_resultr   s
            @r0   test_fit_gh19332zTestSkewNorm.test_fit_gh19332  s    
 HH*R1#X5;<##A&nn!!&!,
 ~~))!d);nn!!,2S3Y ii##$78y;G	A YYu~~q&IN



""6:+<+<4"Hr2   N)r   r   r   r-  r  rA  rW  r&  r)  r-  r   r   r   _skewnorm_noncentral_momentsr1  r  r]  r8   r2   r0   r  r    sZ    ,5%A8 ,2" [[\+GH7 I7
.H`Ir2   r  c                   $    e Zd Zd Zd Zd Zd Zy)	TestExponc                 V    t        t        j                  j                  d      d       y r  )r   r6   r  r`   ro   s    r0   	test_zerozTestExpon.test_zero  s    U[[__Q'+r2   c                     t        t        j                  j                  d      d       t        t        j                  j	                  t        j                  j                  d            d       y )Nr  r  )r   r6   r  rh   r  r   ro   s    r0   	test_tailzTestExpon.test_tail  s=    U[[__U+U3U[[__U[[^^B%78"=r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y No_?46@yX5ͻ@j+?UX@)ra   r   r  r  r  r6   r  r   r  s     r0   test_nan_raises_errorzTestExpon.test_nan_raises_error  5    HHfffffbffEFj%++//15r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y rf  )ra   r   r  r  r  r6   r  r   r  s     r0   test_inf_raises_errorzTestExpon.test_inf_raises_error  rm  r2   N)r   r   r   rb  rd  rl  ro  r8   r2   r0   r`  r`    s    ,>6
6r2   r`  c                   f    e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	y)	TestNormc                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y rf  )ra   r   r  r  r  r6   r  r   r  s     r0   rl  zTestNorm.test_nan_raises_error  5    HHfffffbffEFj%**..!4r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y rf  )ra   r   r  r  r  r6   r  r   r  s     r0   ro  zTestNorm.test_inf_raises_error  rs  r2   c                 b    g d}t        t        t        j                  j                  |d       y )Nr  shrimp)plate)r  r  r6   r  r   r  s     r0   test_bad_keyword_argzTestNorm.test_bad_keyword_arg  s    i(Cr2   r\   r   r   c                     d}t         j                  j                  d|z   d|z   |      }t        ||d       t         j                  j                  d|z    d|z    |       }t        ||d       y )Ngg	{F.:r!  rM  r\   r   r|   )r6   r  
_delta_cdfr   )rj   r\   rO   r  s       r0   test_delta_cdfzTestNorm.test_delta_cdf  sm     )

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

%%3i2c6%Exe4r2   N)
r   r   r   rl  ro  rx  r   r   r   r|  r8   r2   r0   rq  rq    s;    5
5
D [[UQF+
5 ,
5r2   rq  c                       e Zd ZdZd Zd Zy)TestUniformgh-10300c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y rf  )ra   r   r  r  r  r6   rl  r   r  s     r0   rl  z!TestUniform.test_nan_raises_error  7    HHfffffbffEFj%--"3"3Q7r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y rf  )ra   r   r  r  r  r6   rl  r   r  s     r0   ro  z!TestUniform.test_inf_raises_error  r  r2   N)r   r   r   __doc__rl  ro  r8   r2   r0   r~  r~    s    8
8r2   r~  c            
       6   e Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Z
ej                  j                  dg d	g d
g dg dg dg      d        Zej                  j                  dg dg dg dg dg dg dg      d        Zy)TestExponNormc                 2   d }d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             y )	Nc                     dd| |z  dz  z  z   }d| |z  dz  z  |dz  z  }dd| |z  dz  z   dz  z  }|d| z  z   ||z  d| | z  z  z   ||gS )NrK  r   r^   r   r        @r   r8   )lamsigr  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   rK  rS  r  )r.  r^   rT   )r   r   r   )r:  r!  r6  )r6   	exponnormr   )rj   r  r  r  r  Kstss          r0   rW  zTestExponNorm.test_moments  s.   	M C39oo##A2S&#IC#sB!78!C39oo##A2S&#IC#sB!78C39oo##A2S&#IC#sB!78"C39oo##A2S&#IC#sB!78r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |dd       y 	Nrg  rh  ri  rj  rk  r   r   r  )ra   r   r  r  r  r6   r  r   r  s     r0   rl  z#TestExponNorm.test_nan_raises_error  ;    HHfffffbffEFj%//"5"5qqKr2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |dd       y r  )ra   r   r  r  r  r6   r  r   r  s     r0   ro  z#TestExponNorm.test_inf_raises_error  r  r2   c                 T   t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       y )Ni|r   rx     ru   )r   r6   r  r`   ro   s    r0   test_extremes_xzTestExponNorm.test_extremes_x  sn    EOO//a8#>EOO//a8#>EOO//d;SAEOO//d;SAr2   zx, K, expected))r  ru   g6
N-)r   ru   g՜n+H?)r   ru   gi?)r  ru   gbJI-)rW   r   gI8?)rW   r*  gQ3|-0?c                 \    t        t        j                  j                  ||      |d       y ru  )r   r6   r  r`   )rj   rV   r  rO   s       r0   test_std_pdfzTestExponNorm.test_std_pdf  s!     	++Aq18%Hr2   zx, K, scale, expected)r   ru   r   gVAҤ?)r:  {Gzt?r   g'^>)r
  ru   rX   rx   )r
  ru   r   gbr ;)r   r[  r   gVMe?c                 ~    t         j                  j                  |||      }|dk(  r|dk(  sJ y t        ||d       y )Nr  rx   r   r|   )r6   r  rh   r   rj   rV   r  r]   rO   rm  s         r0   test_cdf_small_KzTestExponNorm.test_cdf_small_K5  s=     OO1E2s?8O8Axe4r2   )rW   ru   r   ghG}$;)r^   r  r   g]fJ?)r   r  rs   g31"g#;)rW   r  rs   gf
+-)r  r  rs   rx   )r.  r[  r   ga9S?c                 ~    t         j                  j                  |||      }|dk(  r|dk(  sJ y t        ||d       y )Nr  rx   -a=r|   )r6   r  r   r   r  s         r0   test_sf_small_KzTestExponNorm.test_sf_small_KN  s=     OOq!51s?8O8Axe4r2   N)r   r   r   rW  rl  ro  r  r   r   r   r  r  r  r8   r2   r0   r  r    s    96L
L
B$ [[-BCICI [[4>D4G?	AB5B5& [[4B@DF3@BC5C5r2   r  c                       e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	y)	TestGenExponc                     ddl m} t        j                  j	                  t        j                  ddd      ddd      }t         ||d      dd       y )	Nr   )simpsonrW   ru   rs   rw   )dxr   )scipy.integrater  r6   genexponr`   r8  r  r   )rj   r  rm  s      r0   test_pdf_unity_areaz TestGenExpon.test_pdf_unity_area^  s?    +NNu||Ar48#sCHGA$/A6r2   c                     t         j                  j                  t        j                  ddd      ddd      }t        t        j                  d|k  |dk  z               y )Nr   rW   ru   rs   rw   r   )r6   r  rh   r8  r  r	   r   )rj   rh   s     r0   test_cdf_boundszTestGenExpon.test_cdf_boundsd  sG    nn  aT!:CcJ		18q123r2   zx, p, a, b, c))r5  gM <r   r^   r  )rc  g%DYY?rs   r^   r   )rc  gS4z?      #@r^   rs   )ru   ga^5?r	  rc  rs   )r  gs%)?r	  rc  rs   )r  gdm?rc  r   rs   c                     t         j                  j                  ||||      }t        ||d       t         j                  j	                  ||||      }t        ||d       y r  )r6   r  r   r   r  )rj   rV   rm  r.   r/   r  r   r  s           r0   r  zTestGenExpon.test_sf_isft  sP     ^^q!Q*AE*nn  Aq!,QU+r2   ))rc  g;\i?rs   r^   r   )rc  gu0?r  r^   rs   )ru   g-%I?r	  rc  rs   )r  g]d?r	  rc  rs   )r  g泩'?rc  r   rs   c                     t         j                  j                  ||||      }t        ||d       t         j                  j	                  ||||      }t        ||d       y r  )r6   r  rh   r   r   )rj   rV   rm  r.   r/   r  rh   r   s           r0   r  zTestGenExpon.test_cdf_ppf  sP     nn  Aq!,QU+nn  Aq!,QU+r2   N)
r   r   r   r  r  r   r   r   r  r  r8   r2   r0   r  r  ]  sf    74  [[_IJ,J, [[_JK,K,r2   r  c                       e Zd Zd Zy)TestTruncexponc                     ddg}ddg}ddg}t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d	       y )
Nr  rX   g_93@gBX@g,M<gǃ@֫5gLa㧝=r|   r  )r   r6   
truncexponr   r  )rj   r/   rV   r|  s       r0   r  zTestTruncexpon.test_sf_isf  s`     I	"%'=>((++Aq13WE((,,S!4aeDr2   N)r   r   r   r  r8   r2   r0   r  r    s    Er2   r  c                       e Zd Zd Zy)TestExponpowc                     t        t        j                  j                  dd      d       t        t        j                  j	                  t        j                  j                  dd      d      d       y )Nr  rw   ry  r   r   )r   r6   exponpowrh   r  r   ro   s    r0   rd  zTestExponpow.test_tail  sL    ENN..ub95AENN..u~~/@/@B/GL	r2   N)r   r   r   rd  r8   r2   r0   r  r    s    r2   r  c                       e Zd Zd Zd Zd Zy)TestSkellamc                     t        j                  dd      }d\  }}t        j                  g d      }t        t        j
                  j                  |||      |d       y )Nr  r5  r6  )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~?rN  )r8  r  r   r   r6   skellamrG  )rj   rS   mu1mu2skpmfRs        r0   ra  zTestSkellam.test_pmf  sO    LLb!S-. 	EMM--ac:FBOr2   c                     t        j                  dd      }d\  }}t        j                  g d      }t        t        j
                  j                  |||      |d       y )Nr  r5  r6  )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   rN  )r8  r  r   r   r6   r  rh   )rj   rS   r  r  skcdfRs        r0   rS  zTestSkellam.test_cdf  sO    LLb!S-. 	EMM--ac:FANr2   c                     d\  }}}t        t        j                  j                  |||      dd       t        t        j                  j	                  |||      dd       y )N)r   r   gs1Cr   rz  r   r   )r   r6   r  rG  rh   )rj   rV   r  r  s       r0   test_extreme_mu2zTestSkellam.test_extreme_mu2  sK    .3))!S#6F))!S#6Fr2   N)r   r   r   ra  rS  r  r8   r2   r0   r  r    s    P*O*Gr2   r  c                      e Zd Zd Zd Z ej                  d      d        Zej                  j                  dddg      ej                  j                  d	g d
      ej                  j                  dg d      ej                  j                  d e
dd      D  cg c]  }d|v r|
 c}}        ej                  d      d                                    Zd Zyc c}} w )TestLognormc                     t        j                         5  t        j                  dt               t        j
                  j                  g dd      }t        |g d       d d d        y # 1 sw Y   y xY w)Nrj  r   rs   r   r   )rx   g~r?g e3E?)rn  ro  rp  rq  r6   r  r`   r   rj   r`   s     r0   rI  zTestLognorm.test_pdf  sZ     $$& 	J!!'>:--##K3C%c+HI	J 	J 	Js   AA))A2c           	         d\  }}}t        t        j                  j                  ||z
  |      t        j                  j                  t        j                  ||z
        |z               t        t        j                  j                  ||z
  |      t        j                  j                  t        j                  ||z
        |z               y )N)g(\5i@   gOn?rD   )r   r6   r  r   r  ra   r  rs  )rj   r  r  sigmas       r0   r  zTestLognorm.test_logcdf  s    *B((B%(8

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

((2u)<=	?r2   r#  r$  c                 @    t         j                  j                  d      S r+  r'  ro   s    r0   r   zTestLognorm.rng  r(  r2   r   rT   r^   r   )r   r   r^   r  )r  r   r   rJ  )FTr   rK  FrM  rN  c                     t         j                  j                  d||||      }i }	|r||	d<   |r||	d<   |r||	d<   t        t         j                  |fi |	ddi y )NrX   )r   rE   r]   r\   r   r   r   r   r   T)r6   r  r   r   rQ  s
             r0   r   z'TestLognorm.test_fit_MLE_comp_optimizer  su     }}  cYi%,3 ! @ "DJ"DL&DN 	&emmT 	<T 	<6:	<r2   c                 p    d}g d}g d}t        t        j                  j                  ||      |d       y )NgI+?)rT   g|=gҶOɃ;gk3;9"7)g?y+@g~K8ax@gƶ@g9]Arz  r|   )r   r6   r  r  )rj   rE   rv  r|  s       r0   r  zTestLognorm.test_isf  s2    
 &#))!Q/5Ar2   N)r   r   r   rI  r  r   r0  r   r   r   r%   ra   rZ  r   r  )r\  es   00r0   r  r    s    J? V^^*%+ &+ [[[2q'2[[Y
3[[[*5[[<)0q)I -A!&!   -. R[["< #. 6 4 3<$	B+-s   Cr  c                      e Zd Zd Zd Zd Zd Zej                  j                  e
d      d        Zej                  j                  e
d      d        Zej                  j                  e
d      d	        Zd
 Zej                  j                  d      d        Zej                  j#                  dej&                  j(                  ej&                  j*                  g      ej                  j#                  dddg      d               Zej                  j#                  dg d      d        Zej                  j#                  dg d      d        Zy)TestBetac                     t         j                  j                  ddd      }t        |d       t         j                  j                  ddd      }t        |t        j
                         y )Nr   r   rs   g;B.)r6   r  r   r   ra   r  rj   r   s     r0   rq  zTestBeta.test_logpdf  sJ    ""1a-FN3""1c1-FBFF+r2   c                 4   d\  }}t        j                  g d      }t        j                  ||      }t	        |j                  |      j                         d       t	        |j                  |      t        j                  |j                  |                   y )Ni  i  r  rs   r	  gƒ)	ra   r   r6   r  r   r   rd  r`   r   rj   r  r  rV   r/   s        r0   test_logpdf_ticket_1866z TestBeta.test_logpdf_ticket_1866  sf    tHH_%JJud#)+=>a"&&!"56r2   c                 f    g d}t        t        t        j                  j                  |ddd       y )NrT   rs   r	  r   r   rv  )r   r   rw  )r  r  r6   r  r   r  s     r0   test_fit_bad_keyword_argsz"TestBeta.test_fit_bad_keyword_args  s$    i1$	&r2   c                 d    g d}t        t        t        j                  j                  |dd       y )Nr  rs   )fafix_a)r  r  r6   r  r   r  s     r0   #test_fit_duplicated_fixed_parameterz,TestBeta.test_fit_duplicated_fixed_parameter"  s!     j%**..!3Gr2   zOverflow, see gh-14901reasonc                 f    d\  }}}t        t        j                  j                  |||      d       y )N)g?g     R@g   0xAgx)>)r   r6   r  r   )rj   rm  r.   r/   s       r0   test_issue_12635zTestBeta.test_issue_12635(  s+     71a

q!Q/1FGr2   c                 0   t        j                  g d      }t        j                  g d      }d}t        j                  j	                  ||dz   d|z
        }t        ||       t        j                  j                  ||dz   d|z
        }t        ||       y )N)g@3@?g^?gNC?)rW   rX   r   r$  r   r   )ra   r   r6   r  r  r   r   )rj   inv_R
count_listrm  invr   s         r0   test_issue_12794zTestBeta.test_issue_127944  s~      1 2 XXo.
jjnnQ
Q0CDU#jjmmCa*1DEQr2   c                     d}t        j                  dd      }d}d|z
  |dz   ||z
  }}}t        j                  j	                  |||      }t        j                  j                  |||      }t        |d|z
         y )Nh㈵>r   r  r   )ra   r  r6   r  r   rh   r   )	rj   alpha_2count_nobsrv  r.   r/   r  r   s	            r0   test_issue_12796zTestBeta.test_issue_12796F  sq     1b!g+vz4&=a1jjnnQ1%jjnnS!Q'Q[)r2   c                 h   d\  }}t        t        j                  j                  d||      t        j
                         d\  }}t        t        j                  j                  d||      t        j
                         d\  }}t        t        j                  j                  d||      d       t        t        j                  j                  d||      d       d\  }}t        t        j                  j                  d||      d       t        t        j                  j                  d	||      d       y )
NrQ  r   )r  r   r   )r   r   r   +ph  )r   r   rK  )r   r6   r  r`   ra   r  )rj   r.   r/   s      r0   r  zTestBeta.test_endpointsR  s     1UZZ^^Aq!,bff5 1UZZ^^Aq!,bff5 1UZZ^^Aq!,a0UZZ^^FAq115 1UZZ^^Aq!,a0UZZ^^Ha3Q7r2   z!Does not warn on special codepathc                     d\  }}}t        j                  t              5  t        j                  j                  |||       d d d        y # 1 sw Y   y xY w)N)gףp=
?g   vH7B  @0B)r   warnsrq  r6   r  r   )rj   rv  r.   r/   s       r0   test_boost_eval_issue_14606z$TestBeta.test_boost_eval_issue_14606i  sB    '1a\\.) 	$JJNN1a#	$ 	$ 	$s   "AAr5  a, b)r        )@)r  r  c                 <    d}	  ||||       y # t         $ r Y y w xY w)Nr   )OverflowError)rj   r5  r.   r/   rm  s        r0    test_beta_ppf_with_subnormal_a_bz)TestBeta.test_beta_ppf_with_subnormal_a_bo  s-    
 
	1aO 	 	s   
 	r  ))rs   rs   gο)r[  r   g )r   r*  g&׾k )r   r   g*)Mc                 `    t        t        j                  ||      j                         |       y rm   r   r6   r  r>   r  s       r0   rh  zTestBeta.test_entropy  s"     	

1a(002C8r2   za, b, ref, tol))r   rW   gCprz  )rW   r  g8EOr   )g    NAg    NAg(4Fr=  )g    SAg   SAg8TAUr  )r  g   _Bg[VVuD&r$  )r  r  gR#Lr{   )r^   r  g?r5r$  )r^   rm  <Frz  )r^   r  guRTc\rz  )r   r  gL4r  )r   rm  6Erz  )r   r  g.fq>\rz  )rW   r  gnQc}4r=  )rW   rm  g{C Erz  )rW   r  %\rz  )rm  r^   r  rz  )rm  r   r  rz  )r  rW   r  rz  c                 d    t        t        j                  ||      j                         ||       y rH  r  )rj   r.   r/   r|  r  s        r0   r  zTestBeta.test_extreme_entropy  s%    H 	

1a(002CcBr2   N)r   r   r   rq  r  r  r  r   r   skipifMACOS_INTELr  r  r  r  xfailr  r   r6   r  r   r  r  rh  r  r8   r2   r0   r  r    sy   ,7&
H [[,DE	H F	H [[,DE  F " [[,DE	* F	*8. [[AB$ C$
 [[X



'GH[[Vnn%EF G I@ [[[DE
9E
9 [[	
.C/.Cr2   r  c                   T   e Zd Zg dZd Zd Zej                  j                  dg d      d        Z	ej                  j                  de      d        Z
ej                  j                  d	eg d
z         d        Zej                  j                  d	ddg      d        Zd Zd Zd Zy)TestBetaPrime))rg        Y@r  D>?)r  r  r  m嗽?)r   r  rT   gPK?)r   r  r  g%p?)r  r  rT   g#|/?)r  r  r  gsM
<)r  r  r  $5Є*?)^ 9^;r  rT   gompP?)r  r  r  g7j"!9)r  r  r  z^J?)r  r  rT   gܷ"+>)r  r  r  grNs: )r  r  r  gK>c                 X   d\  }}t        j                  g d      }t        j                  ||      }t	        t        j
                  |j                  |            j                                t        |j                  |      t        j                  |j                  |                   y )Nr  r  )ra   r   r6   r  r	   r  r   r   r   r`   r   r  s        r0   rq  zTestBetaPrime.test_logpdf  sn    tHH_%OOE4(AHHQK(,,./a"&&!"56r2   c           	         t         j                  j                  ddd      }t        |d       d\  }}t	        j
                  g d      }t         j                  j                  |||      }t        t	        j                  |      j                                t         j                  j                  }|D cg c]  } |t         j                  |||       }}t        ||dd       y c c}w )	Nr   r  ru  rx   r  r  -=r  )r6   r  rh   r   ra   r   r	   r  r   r<   _cdf_singler   )rj   rV   r  r  r6  gen_cdfr@  cdfs_gs           r0   rS  zTestBetaPrime.test_cdf  s     OO3,QtHH_%""1eT2D!%%'( %%11HIJ'%//3t<JJf159 Ks   5 C'zp, a, b, expected))ru         ?r	  gV)?)r  r  r	  gWJB9*=)r  r  r	  gOG J<)rP  rc        @gΣ01)      ?rc  r  g8ǘ`?)>q?r  rT   gMDc                 b    t         j                  j                  |||      }t        ||d       y r  )r6   r  r   r   )rj   rm  r.   r/   rO   rV   s         r0   r\  zTestBetaPrime.test_ppf  s(     OO1a(8%0r2   z
x, a, b, pc                 ^    t        t        j                  j                  |||      |d       y r  )r   r6   r  r   )rj   rV   r.   r/   rm  s        r0   test_ppf_gh_17631zTestBetaPrime.test_ppf_gh_17631  s!    ++Aq!4aeDr2   zx, a, b, expected))r  r  r  rv  )r  r  rT   gV[?)rg  r  rT   r  c                 ^    t        t        j                  j                  |||      |d       y r  )r   r6   r  rh   )rj   rV   r.   r/   rO   s        r0   test_cdf_gh_17631zTestBetaPrime.test_cdf_gh_17631  s#     	++Aq!4hUKr2   )r  r  rT   g%?)r  r  r  goXr?c                 p    t         j                  j                  |||      }|dk  sJ t        ||d       y )NrK  gh㈵>r|   )r6   r  rh   r   )rj   rV   r.   r/   rO   r  s         r0   test_cdf_extreme_tailsz$TestBetaPrime.test_cdf_extreme_tails  s3     OO1a(3ww8$/r2   c                     g d}g d}g d}g d}t         j                  j                  |||      }t        ||d       y )N)r   r   r^   r  r  r  r  r  r  r  r  r  r  r  )r   r^   r   rT   rT   rT   rT   r  r  r  r  r  r  r  )r  rm  ꌠ9Y>)Frg  r  r  r  rg  r  r  r  r  r  r  )g/:g  U/7gKH9g<![a?gw 4?g)J?g5?r  r  r  r  g%?gsM
<rv  r  r|   )r6   r  r   r   )rj   r.   r/   rV   r|  	sf_valuess         r0   r  zTestBetaPrime.test_sf)  sD    0;
 OO&&q!Q/		3U3r2   c                     t         j                  j                  g ddd       t        j                  dd      j                  d       y )N)rT   rc  ru  r  皙?r   r   r  r<  rS  )r6   r  r   ro   s    r0   test_fit_stats_gh18274z$TestBetaPrime.test_fit_stats_gh18274>  s7     	6QqI!q!''/r2   c                     t         j                  dg}t        j                  dddg      j	                  d      }t        ||       y )NgooB?r^   r  gffffff@r   )ra   r  r6   r  r  r   )rj   r|  r   s      r0   test_moment_gh18634z!TestBetaPrime.test_moment_gh18634E  s<     vv()ooa#s,33A6S!r2   N)r   r   r   cdf_valsrq  rS  r   r   r   r\  r  r  r  r  r  r!  r8   r2   r0   r  r    s    H 7:> [[	B11 [[\84E 5E [[ 
 	
LL [[	.	/	120	204*0	"r2   r  c            
       F   e Zd Zd Zd Zd Zd Zej                  j                  dddg      d        Z
ej                  j                  d	g d
      d        Zej                  j                  dg d      ej                  j                  dg d      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      ej                  j                  dddg      d                                           Zy)	TestGammac                     t         j                  j                  ddd      }t        |d       t         j                  j                  ddd      }t        |d       y )	NZ   i  r  r  g
CTb?r   rW   gBΖ?)r6   rV  r`   r   r  s     r0   rI  zTestGamma.test_pdfR  sF    kkoob#To2C-kkooa4o0C+r2   c                 \    t         j                  j                  dd      }t        |d       y r  )r6   rV  r   r   r  s     r0   rq  zTestGamma.test_logpdfZ  s$     ##Aq)FA&r2   c                 d    g d}t        t        t        j                  j                  |dd       y )Nr  r   rv  )r   rw  )r  r  r6   rV  r   r  s     r0   r  z#TestGamma.test_fit_bad_keyword_args`  s    i!!8Lr2   c                     t        j                  t        j                  j	                  dd      dd      sJ t        j                  t        j                  j	                  dd      dd	      sJ y )
NrP  r   gplC@rz  r   rs  rX   g1}t@r   )ra   iscloser6   rV  r  ro   s    r0   r  zTestGamma.test_isfd  s\    " zz%++//%3+%9 	9 9zz%++//%5+%9 	9 9r2   r]   rK  rL  c                 r    t         j                  j                  |dz  |dz  d|      }t        |dd       y )N   r  r   r  g>S*r   r|   )r6   rV  r{  r   rj   r]   r  s      r0   r|  zTestGamma.test_delta_cdfz  s6     &&uSy%)Qe&L6UCr2   za, ref, rtol))r  gt.r{   )r^   rr  r{   )rX   gX>k-־@r   )r  gwM7@r{   )g NgmCg%og$6@r{   )r  oܘ#]@r{   c                 Z    t        t        j                  j                  |      ||       y rH  )r   r6   rV  r>   )rj   r.   r|  r}   s       r0   rh  zTestGamma.test_entropy  s     	++A.$?r2   r.   )ru   r   r  r\   )ru   r   r  r  TFr   r  c                 .   t         j                  j                  d      }t        j                  j                  |||d|      }i }	|r||	d<   |r||	d<   |r||	d<   dt        |	      z
  }
|
dk(  rId	}t        j                  t        |
      5  t        j                  j                  |fddi|	 d d d        y t        j                  j                  |fddi|	}t        j                  | }|
dk\  r-t        |j                         t        j                  |             |
dk\  r1t        |j                  d      t        j                  |dz               |
dk\  r2t        |j                  d      t        j                  |dz               y y # 1 sw Y   y xY w)Nr   rX   r  r  r   r   r   r   r  r  r5  r3  r   r^   )ra   r   r   r6   rV  r   r  r   r   r  r   r   r   r  )rj   r.   r\   r]   r  r   r  r   r   r   rS  r  thetarK   s                 r0   test_fit_mmzTestGamma.test_fit_mm  sW    ii##$78{{qcS,/  1 DJDL"DNCIA:MIz; ;:T:T:;:T:T:{{E"A:DIIK7A:DKKNBGGD!G,<=A:DKKNBGGD!G,<= ;s   #FFN)r   r   r   rI  rq  r  r  r   r   r   r|  rh  r3  r8   r2   r0   r$  r$  Q  s   ,'M9, [[WsCj1D 2D [[^BC@C@ [[S.1[[UN3[[Wn5[[WtUm4[[Yu6[[[4-8> 9 7 5 6 4 2>r2   r$  c                      d} t        j                  d| dz  z  d| dz  z  dd      }t        |j                  d      d       y )	Nr[  g;f?r^   r   r   r[   rK  gV{q@)r6   r*  r   r`   )jitterZs     r0   test_pdf_overflow_gh19616r7    sC     F6FAI-q619}!1MAAEE#J 12r2   c                       e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d	        Z	d
 Z
y)
TestDgammac                    t         j                  j                  d      }d}|j                  d|      }|j	                  d|      }t
        j                  j                  ||      }t
        j                  j                  t        j                  |      |      dz  }t        ||       t        j                  |      }t        |j                  |      |d       y )Nl   OP($ rW   r  )r&  r   r^   ry  r|   )ra   r   r   normalrl  r6   dgammar`   rV  r   r   )rj   r   r   rV   r.   r   r|  rK   s           r0   rI  zTestDgamma.test_pdf  s    ii##$78JJRdJ+KKRdK+llq!$kkoobffQi+a/S!||ASu5r2   zx, a, expected))r  r   ggrU>)rB  r   g$IC<)ir   g2Wj<)r  g~)A.=)r   r   gf?c                 x   t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       t         j                  j                  | |      }t        ||d       t         j                  j                  ||      }t        || d       y r/  )r6   r<  rh   r   r   r   r  )rj   rV   r.   rO   rh   r   r   r  s           r0   test_cdf_ppf_sf_isf_tailz#TestDgamma.test_cdf_ppf_sf_isf_tail  s     llq!$XE2llx+QU+\\__aR#H51llx+aRe,r2   r  ))r  gmqn @)?g?)r{  gx?c                 Z    t        t        j                  j                  |      |d       y r  r   r6   r<  r>   r  s      r0   rh  zTestDgamma.test_entropy  s      	,,Q/5Ar2   ))r  r  )r  g>_)r  g5i)r  go@)rI  g4Fa3@)r  grO]@c                 Z    t        t        j                  j                  |      |d       y r  rB  r  s      r0   test_entropy_entreme_valuesz&TestDgamma.test_entropy_entreme_values  s    " 	,,Q/5Ar2   c                     t        j                  g d      }t        j                  j	                  |      }t        t        |            D ],  }||   t        j                  j	                  ||         k(  r,J  y )N)r   r   rm  r  )ra   r   r6   r<  r>   r  r  )rj   rV   r  r  s       r0   test_entropy_array_inputz#TestDgamma.test_entropy_array_input  sa    HH'(LL  #s1v 	6AQ45<<//!5555	6r2   N)r   r   r   rI  r   r   r   r?  rh  rD  rF  r8   r2   r0   r9  r9    s    6, [[-:;-;- [[X89B	9B [[X:;
B;
B6r2   r9  c                   `    e Zd Zd Zd Zej                  j                  dg d      d        Zy)TestChi2c                     t        t        j                  j                  dd      dd       t        t        j                  j                  dd      dd       y )Nr   gޞw1D?r  rN  rX   g6:֜?r   r6   chi2r`   ro   s    r0   r  zTestChi2.test_precision  s@    EJJNN468N$&	(EJJNN346J$&	(r2   c                 |   d}t         j                  j                  d|      }t        |dd       t         j                  j                  d|      }t        |dd       d}t         j                  j                  d	|      }t        |d
d       t         j                  j                  d|      }t        |dd       y )Nr  gλm:=6g'bd5 <r  r|   rs   gQ8@r  gܐ؆0guu[9=rT   g8-*@)r6   rK  r   r   )rj   r  rV   s      r0   r\  zTestChi2.test_ppf#  s    JJNN5"%<5IJJNN3#7eDJJNN5"%:GJJNN3#8uEr2   r  ))r  gܫ>)r   gƯʉ?)rX   gn>@)   g͔v0@)rI  g9:3@c                 b    t        t        j                  |      j                         |d       y r   )r   r6   rK  r>   r  s      r0   rh  zTestChi2.test_entropy;  s!     	

2..0#EBr2   N)	r   r   r   r  r\  r   r   r   rh  r8   r2   r0   rH  rH    s9    (F0 [[Y:;C;Cr2   rH  c                   f    e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	y)	TestGumbelLc                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y Nr)  r  )ra   rP  r6   r2  rh   r   r   r  s       r0   r  zTestGumbelL.test_cdf_ppfG  sD    KKb!NNq!^^"2r2   c                    t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        j                  |      }t        j                  |       }t        ||       y rR  )
ra   rP  r6   r2  r  rs  r   r   expm1r   )rj   rV   r  r/  urV  s         r0   ru  zTestGumbelL.test_logcdf_logsfM  sb    KKb!NN!!!$NN  #FF1I]]11r2   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y )Nr  r   )ra   rP  r6   r2  r   r  r   r  s       r0   r  zTestGumbelL.test_sf_isfU  sD    KKQNNa ^^"2r2   r\   r   r   c                     t         j                  j                  d|      }t         j                  j                  ||      \  }}t	        ||       y )NrX   )r   r\   r   )r6   r2  r   r   r   )rj   r\   r   
fitted_locr   s        r0   test_fit_fixed_paramz TestGumbelL.test_fit_fixed_param[  sD     ~~!!s!4**4c*:
AZ%r2   N)
r   r   r   r  ru  r  r   r   r   rY  r8   r2   r0   rP  rP  E  s:     [[URG,& -&r2   rP  c                       e Zd Zd Zd Zy)TestGumbelRc                 Z    t        t        j                  j                  d      dd       y )Nr3  ?~T}%m;rz  r|   )r   r6   r1  r   ro   s    r0   r  zTestGumbelR.test_sff  s#     	))"-/E"	$r2   c                 Z    t        t        j                  j                  d      dd       y )NrP  r*  rz  r|   )r   r6   r1  r  ro   s    r0   r  zTestGumbelR.test_isfo  s#     	**513D"	$r2   N)r   r   r   r  r  r8   r2   r0   r[  r[  d  s    $$r2   r[  c                   p
   e Zd Z ej                  d      d        Zej                  d        Zej                  d        Zej                  d        Zej                  j                  d ej                  d       ej                  d	ej                  j                  
      g      ej                  j                  dddg      ej                  j                  dg d      ej                  j                  dddg      d                             Zej                  j                  ej                  j                  dddg      d               Zd Zej                  j!                  d      ej                  j                  dddg      ej                  j                  dddg      d                      Zd  Zd! Zd" Zej                  j                  d# ej                  g d$g d%g d&       ej                  g d'g d(g d)ej                  j                  
       ej                  g d* ej,                  d+d,d-       ej,                  d.dd/      ej                  j.                  
      g      d0        Zej                  j                  d# ej                  g d$g d%g d&       ej                  g d'g d(g d)ej                  j                  
       ej                  g d* ej,                  d+d,d-       ej,                  d.dd/      ej                  j.                  
      g      d1        Zej                  j                  d2d3dg      ej                  j                  d4d5d6g      d7               Zej                  j                  d8d9d:gd;d:gg      d<        Zej                  j                  d=d>d3ej8                  ej:                  ej:                  fgd?d@gg      dA        Zej                  j                  dBg dC      ej                  j                  dDej@                  jB                  dE ej,                  dFd3dG      dHfej@                  jD                  dE ej,                  dFd3dG      dHfej@                  jB                  dI ej,                  d3dJdG      dEfej@                  jD                  dI ej,                  d3dJdG      dHfg      dK               Z#ej                  j                  dLg dM      dN        Z$ej                  j                   ej                  j                  dLg dO      dP               Z%yQ)RTestLevyStableT)autousec                     dt         j                  _        dt         j                  _        dt         j                  _        t         j
                  j                  t         j                  _        y)z2Setup default parameters for levy_stable generatorS1	piecewiseN)r6   levy_stableparameterizationcdf_default_methodpdf_default_method_levy_stable	_QUAD_EPSquad_epsro   s    r0   reset_levy_stable_paramsz'TestLevyStable.reset_levy_stable_paramsz  sH     .2*/:,/:,%*%7%7%A%A"r2   c                     t        j                  t        t              j                  dz        }t         j
                  j                  |j                  d      }|S )a  Sample data points for pdf computed with Nolan's stablec

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

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

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

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

        Typically inputs for stablec:

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

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

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

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

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

        and the equivalent for the right tail

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

        Typically inputs for stablec:

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

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

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

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

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

        This distribution's support becomes truncated in a few special cases:
            support is [mu, infty) if alpha < 1 and beta = 1
            support is (-infty, mu] if alpha < 1 and beta = -1
        Otherwise, the support is all reals. Here, mu is zero by default.
        r   r   r  r  N)r   ra   r  r  )rj   r  r#  r  r  rO   s         r0   !test_distribution_outside_supportz0TestLevyStable.test_distribution_outside_support  s@    P 5}1}}}V5t4GGCK*	
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                  j	                  |||      |       y)a  Test pdf for x equal to zeta.

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

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

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

        Reference values taken from MATLAB
        https://www.mathworks.com/help/stats/stable-distribution.html
        Afc=r  Nr6   re  rk  r   r`   rj   rV   r  r  rO   s        r0   test_x_equal_zetaz TestLevyStable.test_x_equal_zetaJ  s9    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                  j	                  |||      |       y)a  Test pdf for x near zeta.

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

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

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

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

qR7

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

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

qR7

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

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

qRa&IBBb"b\:. {{qs+[[__Ta_?
BRr2   c                     t         j                  }|j                  dd      }t        d      }t	        t
        |j                  |fi |d|i y )Nr^   rX   )r  r   i)enikibenikir5  )r6   r  r   r	  r  r  r   )rj   r5  rK   r   r%  s        r0   test_extra_paramszTestFitMethod.test_extra_params  sC     xx!#x&t$i4F3FvFr2   N)r   r   r   r   r-  r  r   r   r   r   r  r"  r%  r*  r4  r6  r;  r>  r  rJ  rM  r8   r2   r0   r  r    s    $D 4[[[(3= 4=@$3L5(nA(D$ [[[[Xt}5$ 6 $L [[Xt}5G 6G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y
)
TestFrozenc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestFrozen.setup_method  r.  r2   c                    t         j                  }t        j                  dd      }|j                  d      }|j                  ddd      }t        ||       |j	                  d      }|j	                  ddd      }t        ||       |j                  d      }|j                  ddd      }t        ||       |j                  d      }|j                  ddd      }t        ||       |j                  d      }|j                  ddd      }t        ||       |j                         }|j                  dd      }t        ||       |j                         }|j                  dd      }t        ||       |j                         }|j                  dd      }t        ||       |j                         }|j                  dd      }t        ||       |j                         }|j                  dd      }t        ||       |j                  d      }|j                  ddd      }t        ||       t        |j                  |j                         t        |j                  |j                         y )Nr  rR  r[   r   rc  r^   )r6   r  r`   r   rh   r   r  r   r  r   r  rr  r>   r  r.   r/   )rj   rK   frozenresult_fr  s        r0   r  zTestFrozen.test_norm  s
   zzC0::d#$D4Xv&::d#$D4Xv&::d#$D4Xv&::d#$D4Xv&99T?4s3Xv&==?S1Xv&;;=t3/Xv&::<d#.Xv&::<d#.Xv&>>#$c2Xv&==#QD4Xv&VXXtvv&VXXtvv&r2   c                    d}t         j                  }t        j                  |      }|j                  d      }|j                  d|      }t        ||       |j	                  d      }|j	                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                  d      }|j                  d|      }t        ||       t        |j                  |j                  j                         t        |j                   |j                  j                          y )Nrw   r   rc  r  r^   )r6   rV  r`   r   rh   r   r  r   r  r   r  rr  r>   r  r.   rK   r/   )rj   r.   rK   rR  rS  r  s         r0   
test_gammazTestFrozen.test_gamma  s   {{Q::d#$"Xv&::d#$"Xv&::d#$"Xv&::d#$"Xv&99T?q!Xv&==?QXv&;;=1Xv&::<!Xv&::<!Xv&>>#aXv&==#Q"Xv&VXXv{{}}-VXXv{{}}-r2   c                     t        j                  d      }|j                  d      }|j                  d       |j                  d      }t        ||       y )Nr   r^   rS  rT  )r6   r  r  r   )rj   rR  m1r
  s       r0   test_regression_ticket_1293z&TestFrozen.test_regression_ticket_1293/  sH    q!]]1V$ ]]1 	Rr2   c                    d}t        j                  |      }|j                  j                  |      \  }}t	        ||gddg       d}t         j                  j                  d|       t	        |j                  j                  |      dt        j                  g       d}t        j                  |      }|j                  j                  |      \  }}t	        ||gddg       d}t         j                  j                  d|       t	        |j                  j                  |j                  j                  ft         j                  j                  |             t        j                  d      }t        |j                  |j                  u       dD ]  }t        j                  |      }t        j                  |      }|j                  |j                  }}t	        |d       t        t        j                  |             t        j                  d      }t         j                  j                  |      \  }}t        ||gdd	g        y )
Nr  rg  rx   r  rT   r   r`  ra  rs   )r6   rb  rK   rc  r   r`   ra   r  r.   r/   r	   r   rd  r   )rj   r  ri  r.   r/   rv1s         r0   re  zTestFrozen.test_ab>  s    __q!ww##A&1aVb#Y'A#RWW))!,q"&&k:__q!ww##A&1aVb#Y'Aq!bggii+U__-I-I!-LMoo$'(  
	/A

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

3A??//2DAqQFRI.
	/r2   c                 J    t        t        t        j                  d             y )N	rv_frozen)r	   r-   r6   r7   ro   s    r0   test_rv_frozen_in_namespacez&TestFrozen.test_rv_frozen_in_namespacej  s    ++[9:r2   c                 f   t        j                         }t        t        |d             d|_        t        |j                  j                         t        j                  j                  d      j                                t        j                  j                  d      }|j                  d|       y )Nr   *   r   r;  r   )r6   r  r	   r-   r   r   	get_statera   r   r  r   )rj   rR  rndms      r0   test_random_statezTestFrozen.test_random_staten  s    /0 !V((224YY**2.88:	< yy$$T*


-r2   c                 T   t        j                  dd      }t        j                  d      }t        j                  g dg df      }|||fD ]  }d|_        |j                  d	       t        j                  |      }|j                  d	      }t        j                  |      }|j                  d	      }t        ||       |j                  d
      |j                  d
      g}	t        |	d   |	d          t        |j                  |	d         |j                  |	d                 y )Ngdsz@g@e?rR  )r   r   r^   r   r  r  r   r;  r1  rs   r   r   )r6   r  r{  r;   r   r   pickledumpsloadsr   r   rh   )
rj   r  poissr  distfnrE   r0	unpickledr1medianss
             r0   test_picklingzTestFrozen.test_pickling|  s	    zz,.ABb!""<+?+A B UF+ 	4F"&FJJAJV$A#BQIA&BR  zz#	c(:;GWQZ0GAJ/"wqz24	4r2   c           
         d }t        j                  ddd      }t        j                  dd      5  |j	                  |ddd	
      }t         j                  j	                  |dddddd	      }d d d        t               t        j                  dd      }|j	                  |      }t         j                  j	                  |dd      }t        ||       y # 1 sw Y   lxY w)Nc                     | S rm   r8   r   s    r0   r   z$TestFrozen.test_expect.<locals>.func  s    Hr2   r^   r   r   rU  rM  )rO  divider   T)r   ubconditionalr^   r&  r\   r]   r   rq  rr  rz  )r   r&  r\   )r6   rV  ra   rZ  r   r   r{  )rj   r   gmgm_val	gamma_valrm  p_valpoisson_vals           r0   test_expectzTestFrozen.test_expect  s    	 [[1!1-[[(; 	IYYtaTYBF**4d./A4 + II	I 		*MM!#mm**4d*B{+	I 	Is   <CC#N)r   r   r   r-  r  rU  rX  re  r]  rb  rm  r{  r8   r2   r0   rO  rO    s2    1'f2.h*/X;.40,r2   rO  c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)
TestExpectc                    t         j                  j                  d dd      }t        |dd       t         j                  j                  d dd      }t        |dd       t         j                  j	                  d	dd      }t         j                  j	                  d
dd      }t         j                  j                  d dd||      }t        |dd       t         j                  j                  d dd||d      }t        |dd       y )Nc                     | dz
  | dz
  z  S )Nr   r8   r   s    r0   rF   z&TestExpect.test_norm.<locals>.<lambda>  s    1qs r2   r   r^   r[   r   r  rN  c                     | S rm   r8   r   s    r0   rF   z&TestExpect.test_norm.<locals>.<lambda>  s     r2   r  r  c                      yr   r8   r   s    r0   rF   z&TestExpect.test_norm.<locals>.<lambda>  r   r2   r\   r]   r   rq  r   c                      yr   r8   r   s    r0   rF   z&TestExpect.test_norm.<locals>.<lambda>  r   r2   Tr\   r]   r   rq  rr  rK  )r6   r  r   r   r   )rj   rV  rU  r   rq  prob90prob90cs          r0   r  zTestExpect.test_norm  s    JJ3!DAq"-JJm!<Aq"-ZZ^^Daq^1ZZ^^Daq^1"";AQ2""MFC4**##KQaB204 $ 6GR4r2   c           	      0   t         j                  j                  d ddd      }t        |dd       t         j                  j                  d	 dd
d      }t        |dd       t         j                  j	                  ddddd      }t         j                  j	                  ddddd      }t         j                  j                  d dd
d||d      }t        |dd       t         j                  j                  d ddd||d      }t        |dd       y )Nc                     | dz
  | dz
  z  S )NUUUUUU@r8   r   s    r0   rF   z&TestExpect.test_beta.<locals>.<lambda>  s    51U7(; r2   r6  r   r^   )r&  r\   r]   qq?r  rN  c                     | S rm   r8   r   s    r0   rF   z&TestExpect.test_beta.<locals>.<lambda>  s     r2   rL  rw   r  r  rW   r[   r  c                      y)NrK  r8   r   s    r0   rF   z&TestExpect.test_beta.<locals>.<lambda>  r   r2   )rW   rW   Frt  r   c                      yr   r8   r   s    r0   rF   z&TestExpect.test_beta.<locals>.<lambda>  r   r2   TrK  )r6   r  r   r   r   )rj   rV  rU  rq  r   r  r  s          r0   	test_betazTestExpect.test_beta  s    JJ;'"#1  .Avr2JJkRrJAub1ZZ^^D"baq^9ZZ^^D"baq^9""<hB)+ru # NFC4**##KhA*+rt $ MGR4r2   c                    t         j                  j                  dddd      \  }}t         j                  j                  d dd      }t        ||d	
       t         j                  j                  d dd      }t        ||d
       t         j                  j                  d dddd	      }t        ||d
       dt         j                  j	                  dd	gdddd      j                         z
  }t         j                  j                  d dddd      }t        ||d	
       t         j                  j                  d ddddd      }t        |dd
       t         j                  j                  d ddd      }	t        |	dd	
       y )Nr  rW   r;  rL  rz  c                     | S rm   r8   r   s    r0   rF   z+TestExpect.test_hypergeom.<locals>.<lambda>      Q r2   )r  rW   r;  ru  r  rN  c                     | dz
  dz  S Nr=  r^   r8   r   s    r0   rF   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    adQY r2   r  c                     | dz
  dz  S r  r8   r   s    r0   rF   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    QrTAI r2   r   )r&  r\   r   rq  r   c                      yr   r8   r   s    r0   rF   z+TestExpect.test_hypergeom.<locals>.<lambda>  r   r2   r  rM  c                      yr   r8   r   s    r0   rF   z+TestExpect.test_hypergeom.<locals>.<lambda>  r   r2   T)r&  r\   r   rq  rr  c                      yr   r8   r   s    r0   rF   z+TestExpect.test_hypergeom.<locals>.<lambda>  r   r2   r   )r&  r   rq  )r6   r  r   r   rG  rd  )
rj   m_truev_truerU  rV  v_bounds	prob_trueprob_boundsprob_bcprob_bs
             r0   test_hypergeomzTestExpect.test_hypergeom  sx    ..r2qb.AOO"";[b"IAvr2OO""#6[') # +Avr2 ??))*=/:.0Q2 * ? 	Hfb9 eoo))1b'2r1!)DHHJJ	oo,,[{13b - BKB? //((;B,-"$ ) HGQ3 ''++, ( 4FAr2r2   c                    t         j                  j                  d ddd      }dt         j                  j                  dd      z
  }t	        ||d	       t         j                  j                  d
 ddd      }t	        |dd	       y )Nc                      yr   r8   r   s    r0   rF   z)TestExpect.test_poisson.<locals>.<lambda>  r   r2   rs  r   F)r&  r   rr  r   r^   r  rN  c                      yr   r8   r   s    r0   rF   z)TestExpect.test_poisson.<locals>.<lambda>  r   r2   T)r6   r{  r   rh   r   )rj   r  prob_b_trueprob_lbs       r0   test_poissonzTestExpect.test_poisson  sy    mm**;Ta7< + >))!Q//KbA--&&{!37 ' 9GQ3r2   c                     t         j                  }|j                  d      }|j                  d       |j                  d      }t        ||d       y )N)r  r  )rs   r  rN  )r6   genhalflogisticr   r   )rj   halflogres1r  s       r0   test_genhalflogisticzTestExpect.test_genhalflogistic  sI     ''~~6~*F#~~6~*D$3r2   c                    t        t        j                  t        j                  j                  dd                   t        t        j                  t        j                  j                  d d                   t        t        j                  t        j                  j                  d d                   t        t        j                  t        j                  j                  d d                   y )Nr  Gz?c                      yr   r8   r   s    r0   rF   z/TestExpect.test_rice_overflow.<locals>.<lambda>  r   r2   )r  r  c                      yr  r8   r   s    r0   rF   z/TestExpect.test_rice_overflow.<locals>.<lambda>  r   r2   c                      yNr   r8   r   s    r0   rF   z/TestExpect.test_rice_overflow.<locals>.<lambda>  r   r2   )r	   ra   r  r6   ricer`   r   ro   s    r0   test_rice_overflowzTestExpect.test_rice_overflow  s     	EJJNN3567EJJ--k-HIJEJJ--k-HIJEJJ--k-HIJr2   c                    d\  }}t         j                  j                  d |f      }t        |||dz
  z  t	        j
                  d|z
        z  d       t         j                  j                  d |f|      }t        |||z   d       y )	N)ru  r   c                     | S rm   r8   rS   s    r0   rF   z(TestExpect.test_logser.<locals>.<lambda>      a r2   r  rK  r{   r   c                     | S rm   r8   r  s    r0   rF   z(TestExpect.test_logser.<locals>.<lambda>  r  r2   ru  )r6   r  r   r   ra   r  )rj   rm  r\   res_0res_ls        r0   test_logserzTestExpect.test_logser  s~    3##Kqd#;QVrvvb1f~5E	C ##Kqd#Dus{7r2   c                     d\  }}t         j                  j                  d ||f      }t         j                  j                  d ||f      }t        |||z
  d       t        ||dz  z
  ||z   d       y )N)r  r  c                     | S rm   r8   r   s    r0   rF   z)TestExpect.test_skellam.<locals>.<lambda>  s    A r2   r  c                     | dz  S r  r8   r   s    r0   rF   z)TestExpect.test_skellam.<locals>.<lambda>   r  r2   r  r   r^   )r6   r  r   r   )rj   rB  p2rW  r
  s        r0   test_skellamzTestExpect.test_skellam  so     B]]!!+RH!=]]!!.Bx!@BG%0RU
BG%8r2   c           
          d\  }}t         j                  j                  d ||f      }t        |t	        d t        ||      D              ||z
  z  d       y )N)r   q   c                     | S rm   r8   r   s    r0   rF   z)TestExpect.test_randint.<locals>.<lambda>(  r  r2   c              3       K   | ]  }|  y wrm   r8   r\  r   s     r0   r  z*TestExpect.test_randint.<locals>.<genexpr>*  s     5!A5s   r{   r   )r6   r7  r   r   rd  r  )rj   lohir   s       r0   test_randintzTestExpect.test_randint$  sQ     Bmm"";R95uR}55bA	Or2   c                 Z    t        t        t        j                  j                  d d       y )Nc                     | dz  S r  r8   r   s    r0   rF   z&TestExpect.test_zipf.<locals>.<lambda>/  s
    q!t r2   rs  )r
   rq  r6   r  r   ro   s    r0   	test_zipfzTestExpect.test_zipf,  s    ^UZZ%6%6#T	+r2   c                     t         j                  j                  d d      }t         j                  j                  d dddd      }t        ||d	
       y )Nc                      yr   r8   r   s    r0   rF   z/TestExpect.test_discrete_kwds.<locals>.<lambda>3  r   r2   rs  r  c                      yr   r8   r   s    r0   rF   z/TestExpect.test_discrete_kwds.<locals>.<lambda>4  r   r2   r)      r  )r&  maxcount	chunksize	tolerancer  rN  )r6   r{  r   r   )rj   n0n1s      r0   test_discrete_kwdszTestExpect.test_discrete_kwds1  sL    ]]!!+D!9]]!!+D+/2 " OBB/r2   c                     d }dD ]6  }t         j                  j                  d|      }t        | ||      d       8 y )Nc                 H    | dz  d| dz  z  z   d| dz  z  z   d| dz  z  z   | z   S )Nr   rW   r   r  r   r5  r^   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   )rj   r  r  m5s       r0   test_momentzTestExpect.test_moment8  s?    	?  	?B%%a,BBb 1>	?r2   c                    t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  d      d	       t        t        j
                  j                  d
      d
       y )NrC  rK  r[   r  rW   rT   )   r  r  U   rz  )r   r6   r  r   rV  r  ro   s    r0   test_challenging_cases_gh8928z(TestExpect.test_challenging_cases_gh8928B  s     	

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

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

))b)<bA***7=--"-5r:r2   c           	         t         j                  }|j                  dd      }t        |j	                  dd      |       t        |j	                  dddd      |       t        |j	                  dddd      |d	z         t        |j	                  ddddd
      |       t        |j	                  dddd      d       t        |j	                  dddd      d       t        |j	                  ddddd
      d       y )NrW   r   r[   rf  r  r  r!  r  r	  Tr  r  g433333@g433333rM  )r6   rl  r   r   r   )rj   rK   r|  s      r0   test_lb_ub_gh15855zTestExpect.test_lb_ub_gh15855K  s    }}iiBai(!4c:!bA3G!rBCGL!r04 $ 67:	< 	!rBFK!rBGL!r04 $ 679	;r2   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8   r2   r0   r}  r}    sK    
5 5& 3D	44K
89O+
0?;;r2   r}  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestNctc                     t        j                  dd      }t        |j                  d      d       t        j                  dd      }t	        |j                  d      dd       y )Nr   r   rs   r   g K?rW   rN  )r6   nctr   rh   r   rp  s     r0   test_nc_parameterzTestNct.test_nc_parameterb  sI     YYq!_RVVAY$YYq"BFF1I~rBr2   c           	          t         j                  j                  dt        j                  dd      d d d f   t        j
                  ddd            }t        g dg dg dg      }t        ||d	
       y )Nr   r   r  rT   r   )gMp^j?g6].ftv?gȳ'ς?gu?)g!Y<a?g]d1p?go|?g?)gHdY?g2Ԥg?g}o/u?g .mr?r  r|   )r6   r  r`   ra   r  rP  r   r   )rj   r   rO   s      r0   test_broadcastingzTestNct.test_broadcastingj  sc    iimmAryyAq$w7KKQ24JJJL M 	XD1r2   c                 d    t        j                  dd      }t        |j                         d       y )Nr   r   rw   )r6   r  r   r  rp  s     r0   test_variance_gh_issue_2401z#TestNct.test_variance_gh_issue_2401r  s#    
 YYq!_RVVXs#r2   c                    t         j                  j                  ddd      \  }}}}t        ||||gt        j                  t        j                  t        j                  t        j                  g       t         j                  j                  ddd      \  }}}}t        t        j                  |             t        |||gt        j                  t        j                  t        j                  g       t         j                  j                  ddd      \  }}}}t        t        j                  |||g      j                                t        |t        j                         y )Nr   ru  rS  )r  ncrU  r  r|  )r6   r  r   ra   r  r	   r  r   r:  s        r0   test_nct_inf_momentszTestNct.test_nct_inf_momentsz  s    YY__V_D
1aaAq\BFFBFFBFFBFF#CDYY__V_D
1aAaAY 89YY__V_D
1aQ1I&**,-Qr2   c                    t         j                  j                  dd      }t         j                  j                  dd      }ddg}t        ||d   d       t        ||d       t         j                  j                  dd      }t         j                  j                  dd      }d	d
g}t        ||d   d       t        ||d       y )Nr   r^   g@ @g*dn?r   r  r|   r   gqI  @gL) ?r=  )r6   r  r   r   )rj   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     !99>>$2!IIOOD!4
 #56H!I(*@*C"	$)+A"	$ 99>>&!,IIOOFA.	,.@A."3%@	>=r2   c           	      l    t        t        j                  j                  ddt	        d            d       y )Nr^   i   r   )r   r6   r  rh   r   ro   s    r0   test_cdf_large_nczTestNct.test_cdf_large_nc  s!    		aE%L91=r2   N)	r   r   r   r  r  r  r  r  r  r8   r2   r0   r  r  a  s!    C2$ >,>r2   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestRecipInvGaussc                 R    t         j                  j                  dd      }|dk(  sJ y )Nr   r	  rx   )r6   recipinvgaussr`   r  s     r0   test_pdf_endpointz#TestRecipInvGauss.test_pdf_endpoint  s%    ##As+Cxxr2   c                 p    t         j                  j                  dd      }|t        j                   k(  sJ y )Nr   r	  )r6   r  r   ra   r  r  s     r0   test_logpdf_endpointz&TestRecipInvGauss.test_logpdf_endpoint  s,    ""))!S1wr2   c                 d    t         j                  j                  dd      }d}t        ||d       y )Nr  rs   g9V9s;rz  r|   )r6   r  rh   r   rj   rm  rO   s      r0   test_cdf_small_xz"TestRecipInvGauss.test_cdf_small_x  s-      ##D#.(8%0r2   c                 b    t         j                  j                  dd      }d}t        ||d       y )NP   rs   glH<r0  )r6   r  r   r   r  s      r0   test_sf_large_xz!TestRecipInvGauss.test_sf_large_x  s+    ""2s+(8U+r2   N)r   r   r   r  r  r  r	  r8   r2   r0   r  r    s    1(,r2   r  c                       e Zd Zd Zd Zd Zy)TestRicec                 6   g d}t        t        j                  t        j                  j                  |d            j                                t        t        j                  t        j                  j                  |d            j                                t        t        j                  t        j                  j                  |d            j                                t        t        j                  t        j                  j                  |d            j                                g d}t        t        j                  t        j                  j                  |d            j                                t        j                  j                  dd      }t        t        j                  |      j                                d}t        t        j                  j                  |d      t        j                  j                  ||      |d	       y )
N)r  rK  rL  rx   r/   )rT   rT   rs   r   r   rS  rT  r  r  )r	   ra   r  r6   r  r`   r   r   rh   r  r   r   )rj   rV   rv  rS  r/   s        r0   test_rice_zero_bzTestRice.test_rice_zero_b  sR   EJJNN1N3488:;EJJ--a2-67;;=>EJJNN1N3488:;EJJ--a2-67;;=> EJJNN1N3488:;zz62D!%%'(
 

q!,ejjnnQ.BQ	(r2   c                     t         j                  j                  }t         |d      j                  d       t         |dd      j
                  d       y )NrR  r	  r   )r   r   )r/   r   )r6   r  r   r   r   r9  r  s     r0   test_rice_rvszTestRice.test_rice_rvs  s8    jjnnS2Y^^Q'S2F+116:r2   c                    t         j                  j                  t        j                  ddd      t        j                  ddd            }g d}t        ||       t        j                  ddd      }t         j                  j                  |dd      }g d	}t        ||       t        j                   j                  j                  d
t        j                  ddd            }g d}t        ||       y )NrW      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?rT   r   g     @_@r   r  )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@rs      )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   r  rh   ra   r  r   r   r5   )rj   rh   cdf_expprobabilitiesr   ppf_exps         r0   test_rice_gh9836zTestRice.test_rice_gh9836  s     jjnnRYYr33RYYr35KLO
 	W%		#q#.jjnn]En;L 	W%kk""3		"c2(>?;
 	W%r2   N)r   r   r   r	  r	  r	  r8   r2   r0   r	  r	    s    (*;
'&r2   r	  c                       e Zd Zd Zd Zd Zy)
TestErlangc                 B    t         j                  j                  d       y r+  r,  ro   s    r0   r-  zTestErlang.setup_method  r.  r2   c           	         t        j                         5  t        j                  dt               t	        t        t
        j                  j                  dddd       g d}t
        j                  j                  |d      }t
        j                  j                  |d      }t        ||d	
       d d d        y # 1 sw Y   y xY w)Nrj  r@  r   r   r   r  )rs   rK  rw   r  r  r[  r|   )rn  ro  rp  rq  r  r6   erlangr   r   rV  r   )rj   r   result_erlangresult_gammas       r0   test_erlang_runtimewarningz%TestErlang.test_erlang_runtimewarning  s     $$& 	D!!'>: .,,**CQaaI (D!LL,,Ta,8M ;;??4A?6LM<dC	D 	D 	Ds   BB::Cc                     t        t        j                  j                  dddg      t        j                  j                  dddg             y )Nrs   r   r   r  )r   r6   r	  r`   rV  ro   s    r0   test_gh_pr_10949_argcheckz$TestErlang.test_gh_pr_10949_argcheck#  s<    U\\%%caW%5[[__SQG_4	6r2   N)r   r   r   r-  r	  r	  r8   r2   r0   r	  r	    s    D&6r2   r	  c                       e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	ej                  j                  ddd	gd
dgg      d        Z
d Zd Zy)TestRayleighc                 B    t         j                  j                  d       y )Nr~  r,  ro   s    r0   r-  zTestRayleigh.setup_method)  s    
		y!r2   c                 Z    t         j                  j                  d      }t        |d       y )Nr3  g)Zx)r6   r!  r   r   rj   r  s     r0   rq  zTestRayleigh.test_logpdf-  s!    NN!!"%./r2   c                 Z    t         j                  j                  d      }t        |d       y )Nr3  i)r6   r!  rs  r   r	  s     r0   r  zTestRayleigh.test_logsf1  s     NN  $5!r2   r5  )gB)Q?got|?)gS2P?g3?c                    t         j                  j                  d||      }d } |||      }t         j                  j                  ||      \  }}t	        ||       t	        ||       t         j                  j                  |d      \  }}t	        |d       t         j                  j                  |      \  }}t	        | |||             y )Nr  r  c                 \    t        j                  | |z
  dz        dt        |       z  z  dz  S )Nr^   rs   )ra   rd  r  )r   r   s     r0   r  z(TestRayleigh.test_fit.<locals>.scale_mle:  s,    FFD4KA-.!c$i-@RGGr2   r   r	  r  )r6   r!  r   r   r   )rj   r   r  r   r  scale_expectr\   r]   s           r0   r  zTestRayleigh.test_fit5  s     ~~!!sy!I	H !w/^^''7';
US'"UL) ^^''R'8
UUB
 ^^''-
UUIdC01r2   r  ru   g̡=E?g@1d?c                 |    t         j                  j                  d||      }t        t         j                  |       y )Nr  r  )r6   r!  r   r   )rj   r   r  r   s       r0    test_fit_comparison_super_methodz-TestRayleigh.test_fit_comparison_super_methodN  s-    
 ~~!!sy!I%ennd;r2   c                 6    t        t        j                         y rm   )r  r6   r!  ro   s    r0   rV  zTestRayleigh.test_fit_warningsV  s    ENN+r2   c                    t         j                  j                  d      }d\  }}}t        j                  j                  ||||      }t        j                  j                  |      \  }}|t        j                  |      k  sJ t        j                  j                  ||      \  }}|t        j                  |      k  sJ ||k(  sJ y )Ni  )r3  r  rt  r   r  )ra   r   r   r6   r!  r   r   r#  )	rj   r   r\   r]   r   r   r   r   r   s	            r0   test_fit_gh17088zTestRayleigh.test_fit_gh17088Y  s     ii##C('UDnn  e$S I^^'',
$$$"^^//E/B$$$E!!!r2   N)r   r   r   r-  rq  r  r   r   r   r  r$	  rV  r'	  r8   r2   r0   r	  r	  (  s    "0" [[03K3K3M N2N2. [[0D$<4>
3K3M N<N<,
"r2   r	  c                       e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  dg d      d	        Z
y
)TestExponWeibc                     d}d}d}t         j                  j                  |||      }t         j                  j                  |||      }t	        ||gddg       y )NrT   rK  r  g:23W+g~`9k)r6   	exponweibr`   r   r   )rj   rV   r.   r  rm  rp  s         r0   test_pdf_logpdfzTestExponWeib.test_pdf_logpdfh  sY    OO1a(%%aA.D	/1DE	Gr2   c                 n   t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  ||      }t        ||       t        j                  j                  |||      }t        j
                  j                  ||      }t        ||       y )Nr  r   r   r   rX   )ra   r  r6   r+	  r`   weibull_minr   r   rj   rV   r.   r  rm  rO   rp  s          r0   test_a_is_1zTestExponWeib.test_a_is_1s  s     KKB"OO1a($$((A.8$%%aA.$$++Aq1h'r2   c                 j   t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       t        j                  j                  |||      }t        j
                  j                  |      }t        ||       y )Nrd  r   rW   )ra   r  r6   r+	  r`   r  r   r   r/	  s          r0   test_a_is_1_c_is_1z TestExponWeib.test_a_is_1_c_is_1  s    KKAr"OO1a(;;??1%8$%%aA.;;%%a(h'r2   zx, a, c, ref))r   r	  r   g=J ?)r3  r	  r   g$+PR>)r  r	  r   g><)r  r	  r   ggX.X:)r        ?r   gRy9)r   r3	  rR  g'vR0=)g_QPr  r}  gQ:<c                 b    t         j                  j                  |||      }t        ||d       y r  )r6   r+	  r   r   )rj   rV   r.   r  r|  r   s         r0   r  zTestExponWeib.test_sf  s(     __1a(Ce,r2   zp, a, c, ref))rc  r	  r   g;y$(@)gMg<r	  r   gdbq^@)r  r   r^   gE@)gvIh%L=r3	  r   g/7@)r  r  r}  gTWTOc                 b    t         j                  j                  |||      }t        ||d       y r  )r6   r+	  r  r   )rj   rm  r.   r  r|  r  s         r0   r  zTestExponWeib.test_isf  s(     oo!!!Q*Su-r2   N)r   r   r   r,	  r0	  r2	  r   r   r   r  r  r8   r2   r0   r)	  r)	  f  sh    	G( (> [[	5	-	-* [[	4..r2   r)	  c                       e Zd Zd Zd Zy)TestFatigueLifec                 `    t         j                  j                  dd      }t        |dd       y )Nr  r	  X9r   r|   )r6   r  r   r   r  s     r0   test_sf_tailzTestFatigueLife.test_sf_tail  s)       ,0u=r2   c                 d    d}t         j                  j                  |d      }t        |dd       y )Nr9	  r	  r  r   r|   )r6   r  r  r   )rj   rm  rv  s      r0   test_isf_tailzTestFatigueLife.test_isf_tail  s+    !!!!S)5u-r2   N)r   r   r   r:	  r<	  r8   r2   r0   r7	  r7	    s    >.r2   r7	  c                       e Zd Zd Zd Zej                  j                  dddg      d        Zd Z	ej                  j                  dd	d
g      d        Z
y)TestWeibullc                 \    t         j                  j                  dd      }t        |d       y r  )r6   r.	  r   r   r	  s     r0   rq  zTestWeibull.test_logpdf  s$    $$Q*Qr2   c                 X   d}d}d}t         j                  j                  |||      }t        |t	        j
                  d      dz         t         j                  j                  |||      }t        |dt	        j                  d      z
         t         j                  j                  |||      }t        |t        j                  d              t         j                  j                  |||      }t        |t	        j                  t        j                  d                    t         j                  j                  |||      }t        |t	        j
                  d             t         j                  j                  |||      }	t        |	d       t         j                  j                  ddd      }t        |t	        j
                  d	             t         j                  j                  ddd      }	t        |	d	       d
}t         j                  j                  |||      }t        |t	        j
                  d      dz         t         j                  j                  |||      }t        |dt	        j                  d      z
         t         j                  j                  |||      }t        |t	        j
                  d             t         j                  j                  |||      }t        |d       t         j                  j                  |||      }t        |t        j                  d              t         j                  j                  |||      }	t        |	t	        j                  t        j                  d                    t         j                  j                  ddd      }t        |t        j                  d              t         j                  j                  ddd      }	t        |	t	        j                  t        j                  d                    y )Nr  rw   rR  r  r  r   r0  r^   r)  r  g&.gCe )r6   r.	  r`   r   ra   r   r   r  rh   r   rT  r  r   rs  weibull_max)
rj   rV   r.   r/   rm  r  r  lcrE   r|  s
             r0   test_with_maxima_distribz$TestWeibull.test_with_maxima_distrib  s?   .  !!!Qa!0266%=?+%%a!%4EBFF1I-.!!!Qa!0GMM%001%%a!%4BFFGMM%$8#89:  AQ /266%=)$$Q$3E"   Qa 0266$<($$R!$4D! !!!Qa!0266%=?+%%a!%4EBFF1I-.!!!Qa!0266%=)%%a!%4E"  AQ /GMM%001$$Q$3BFFGMM%$8#89:    3GMM*@AAB$$UAQ$7BFFGMM2H$I#IJKr2   r]   rK  rT   c                 n    t         j                  j                  |dz  |dz  d|      }t        |d       y )Nre  r;  r   r  g>)r6   r.	  r{  r   r.  s      r0   r|  zTestWeibull.test_delta_cdf@  s;    " !!,,U3Ya38 - :56r2   c                    t         j                  j                  d      }d\  }}}t        j                  |||      }|j                  d|      }t        j                  j                  |dd      \  }}}	t        j                  j                  |dd      \  }
}}||cxk(  rdk(  sJ  J ||
k7  sJ t        j                  j                  |ddd	
      \  }}}|dk(  sJ t        j                  |||      }|j                  d      }t        j                  |      t        j                  |      f}t        ||       y )Nl   > )r^   r6  rs   rX   r   r  r   r   r  r3  r4  r6  rT  )
ra   r   r   r6   r.	  r   r   r   r  r   )rj   r   r  r\   r]   rK   r   c2r;  r<  c3r>  r?  c4rA  rB  rC  r   r|  s                      r0   test_fit_minzTestWeibull.test_fit_minU  s2   ii##$78#3  C/hhCch2 !,,00c0BD& ,,00c0BD&t q     Rxx !,,00a$0OD&{{!!"dF3kk$k'ggclEJJsO+S!r2   r  )r3  r   r]  )r   r   gq뮕qH)c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y r  )r   r6   r.	  r   r  r  s       r0   r  zTestWeibull.test_sf_isfs  sB     	)),,Q2CeD))--c15quEr2   N)r   r   r   rq  rC	  r   r   r   r|  rI	  r  r8   r2   r0   r>	  r>	    su    
RLh [[WsCj17 27("< [[[+J,D+E FFFFr2   r>	  c                       e Zd Zd Zd Zy)TestDweibullc                 2   t         j                  j                  d      }d|j                  dd      z  }t        j
                  j                  |      }t        j                  j                  |      t        j                  d      z
  }t        ||d       y )N   q>~). rW   rX   r  rs   r{   r|   )
ra   r   r   r;  r6   dweibullr>   r.	  r  r   )rj   r   r  r   r|  s        r0   rh  zTestDweibull.test_entropy|  ss     ii##$78

2
..nn$$Q'''*RVVC[8Su-r2   c                 6   t         j                  j                  d      }d|j                  dd      z  }d|j	                         z  }t
        j                  j                  ||      }dt
        j                  j                  ||      z  }t        ||d       y )NrN	  rW   r   r  rs   r{   r|   )
ra   r   r   r;  rl  r6   rO	  r   r.	  r   )rj   r   r  rV   r   r|  s         r0   r  zTestDweibull.test_sf  s     ii##$78


,,nn1%E%%((A..Su-r2   N)r   r   r   rh  r  r8   r2   r0   rL	  rL	  {  s    ..r2   rL	  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestTruncWeibullc                 h    t         j                  j                  ddgddd      }t        |ddg       y )NrT   rw   g)\(?gףp=
?rx   )r6   truncweibull_minr`   r   r	  s     r0   test_pdf_boundsz TestTruncWeibull.test_pdf_bounds  s0    ""&&Sz3dCQc
#r2   c                     t         j                  j                  dddt        j                        }t        |d       t         j                  j                  dddd      }t        |d       y )Nrw   rK  rx   r  g~?)r6   rT	  r   ra   r  r   r   r	  s     r0   rq  zTestTruncWeibull.test_logpdf  sU    ""))#sC@Q ""))#sC=./r2   c                 h    t         j                  j                  ddgddd      }t        |ddg       y )Nrx   rK  rw   rT   )r6   rT	  r   r   r	  s     r0   test_ppf_boundsz TestTruncWeibull.test_ppf_bounds  s0    ""&&Sz3SAQc
#r2   c                     g d}t         j                  j                  |ddd      }t         j                  j                  |ddd      }t	        ||       y N)rx   rT   rc  rs   r   r   rK  rw   rx   rR  )r6   rT	  r   rh   r   rj   rv  rV   q_outs       r0   test_cdf_to_ppfz TestTruncWeibull.test_cdf_to_ppf  sI    0""&&q"b"5&&**1b"b95!r2   c                     g d}t         j                  j                  |ddd      }t         j                  j                  |ddd      }t	        ||       y rZ	  )r6   rT	  r  r   r   r[	  s       r0   test_sf_to_isfzTestTruncWeibull.test_sf_to_isf  sI    0""&&q"b"5&&))!RR85!r2   c                    dddfdt         j                  j                  d      }t        |d       t         j                  j                  d      }t	        fd      \  }}t        ||       t         j                  j                  d      }t	        fd	      \  }}t        ||       t         j                  j                  d
      }t	        fd      \  }}t        ||       t         j                  j                  d      }	t	        fd      \  }
}t        |	|
       y )Nrw   rK  rR  c                 T    | |z  t         j                  j                  |       z  S rm   )r6   rT	  r`   )rV   rl  r.   r/   r  s     r0   xnpdfz)TestTruncWeibull.test_munp.<locals>.xnpdf  s)    a4..221aA>>>r2   r   r   c                      | d      S r   r8   rV   rb	  s    r0   rF   z,TestTruncWeibull.test_munp.<locals>.<lambda>      a r2   r^   c                      | d      S r  r8   rd	  s    r0   rF   z,TestTruncWeibull.test_munp.<locals>.<lambda>  re	  r2   r   c                      | d      S r  r8   rd	  s    r0   rF   z,TestTruncWeibull.test_munp.<locals>.<lambda>  re	  r2   r   c                      | d      S )Nr   r8   rd	  s    r0   rF   z,TestTruncWeibull.test_munp.<locals>.<lambda>  re	  r2   )r6   rT	  r  r   r   r   )rj   rQ  rW  m1_expectedr   r
  m2_expectedm3m3_expectedr  m4_expectedr.   r/   r  rb	  s              @@@@r0   	test_munpzTestTruncWeibull.test_munp  s#   	? ##**1aA6R##**1aA63Q:QK(##**1aA63Q:QK(##**1aA63Q:QK(##**1aA63Q:QK(r2   c                 8   d}d}d}t        j                  dt        j                  dt        j                  dt        j                  d      z          z         z
        }t        j
                  j                  ||||      }t        |d       t        j
                  j                  ||||      }t        |t        j                  d              t        j
                  j                  d|||      }t        ||       t        j
                  j                  ||||      }t        |d       t        j
                  j                  ||||      }	t        |	t        j                  d              t        j
                  j                  d|||      }
t        |
|       y )NrK  rR  rw   r   rs   r  )ra   r  r  r   r6   rT	  rh   r   r  r   r   rs  r  )rj   r.   r/   r  x_medrh   rB	  r   r   r|  r  s              r0   test_reference_valuesz&TestTruncWeibull.test_reference_values  sB   BFF3"rvvbz/0B)C#CDDE$$((1a8S!##**5!Q:RVVBZK($$((aA6U###&&uaA6C ##))%Aq9RVVBZK($$((aA6U#r2   c                    d}d}d}t         j                  }d}t        j                  j	                  |||      }t        j
                  j	                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }	t        ||	       t        j                  j                  |||      }
t        j
                  j                  |||||      }t        |
|       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j
                  j                  dd||d      }t        |t        j                  d	             t        j
                  j                  dd||d      }t        |d	       y )
Nr  rw   rx   rR  r  r0  r^   r   r)  )ra   r  r6   r.	  r`   rT	  r   r   rh   r  r   rs  r   )rj   rV   r  r.   r/   r]   rm  p_truncr  lp_truncrh   	cdf_truncrB	  lc_truncrE   s_truncr|  ls_truncs                     r0   test_compare_weibull_minz)TestTruncWeibull.test_compare_weibull_min  s1    FF!!!Qe!4((,,Q1au,E7#%%a%%8))00Aq!50IH%##Aq#6**..q!Q.G	Y'%%a%%8))00Aq!50IH%  AU 3((++Aq!Qe+D7#$$Q$7))//1a%/HH% ""%%b!Q%;266$<(##))"aAQ)?D!r2   c                    d\  }}}t        j                  ||d      }t        j                  j	                  ||||      }t        j                  j                  ||||      }t        j                  j                  ||      t        j                  j                  ||      z
  }t        j                  j	                  ||      |z  }t        j                  j                  ||      t        j                  j                  ||      z
  |z  }	t         j                  j                  ||       t         j                  j                  ||	       y )N)r	  rc  r  rX   )	ra   rP  r6   rT	  r`   rh   r.	  rY  r   )
rj   r  r.   r/   rV   r  r  r  r  r  s
             r0   test_compare_weibull_min2z*TestTruncWeibull.test_compare_weibull_min2  s    "1aKK1c"%%))!Q15%%))!Q15  $$Q*U->->-B-B1a-HH  $$Q*T1!!%%a+e.?.?.C.CAq.II4O


""4.


""4.r2   N)r   r   r   rU	  rq  rX	  r]	  r_	  rn	  rq	  ry	  r{	  r8   r2   r0   rR	  rR	    s0    $
0$
"")6$0'"R/r2   rR	  c                   `    e Zd Zd Zd Zej                  j                  dg d      d        Zy)	TestRdistc                     t         j                  }g d}t        |j                  |j	                  |d      d      |d       y )NrZ  g     @r   rN  )r6   rdistr   rh   r   )rj   rh  r  s      r0   test_rdist_cdf_gh1285zTestRdist.test_rdist_cdf_gh1285"  s5    $FJJvzz&%'@%H"A	/r2   c                     t        j                  ddd      }d}t        dt        j                  |dz  |dz        j                  |dz   dz        z  t        j                  |      j                  |             y )NgGzr  rW   g@rs   r^   r   )ra   rP  r   r6   r  r`   r	  )rj   rV   r  s      r0   test_rdist_betazTestRdist.test_rdist_beta)  sd    KKtR(C

1Q3! 4 8 8!a% CC!KKN..q1	3r2   r  ))r  i  g?)rT      g;|bZ?)rs   i  g79)r   iU  g޻S/c                 \    t        t        j                  j                  ||      |d       y r  )r   r6   r	  r   r  s       r0   test_rdist_sfzTestRdist.test_rdist_sf7  s     	q!,c>r2   N)	r   r   r   r	  r	  r   r   r   r	  r8   r2   r0   r}	  r}	  !  s7    /3 [[	
??r2   r}	  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestTrapezoidc                 H   g d}|D ]  }d|dg}t        t        j                  j                  |||      t        j                  j                  ||             t        t        j                  j                  |||      t        j                  j                  ||              y )N)r   ru  rs   r   r   r   )r   r6   r   r`   triangrh   )rj   modesmoderV   s       r0   test_reduces_to_triangz$TestTrapezoid.test_reduces_to_triangE  s      	;DD!A 3 3AtT B % 0 0D 9; 3 3AtT B % 0 0D 9;		;r2   c                 R   t        j                  ddd      }t        t        j                  j                  |dd      t        j                  j                  |             t        t        j                  j                  |dd      t        j                  j                  |             y Nr   r   rW   )ra   rP  r   r6   r   r`   rl  rh   r  s     r0   test_reduces_to_uniformz%TestTrapezoid.test_reduces_to_uniformN  sl    KK1b!EOO//1a8%--:K:KA:NOEOO//1a8%--:K:KA:NOr2   c                    t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  d	dd      d
       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d
       t        t        j                  j	                  d	dd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       y )Nr   r^   r   rs   r   r  r  rK  rT   g      ?r  r   r3	  r  g      ?)r   r6   r   r`   rh   ro   s    r0   
test_caseszTestTrapezoid.test_casesS  sf   EOO//1a8!<EOO//1a8!<EOO//Q</	1EOO//S#>/	1 	EOO//S#>FEOO//S#>EEOO//S#>FEOO//S#>HEOO//S#>FEOO//S#>DEOO//S#>HEOO//S#>Dr2   c                 V  	
 d\  	

	z
  	z
  z  	z
  	z
  z  		z
  f\  }}}}dz   
z
  	z
  z  	
fd} |d      } |d      |dz  z
  }dz
  
z   	z
  z  z   
z
  	z
  z  t        j                  dz   
z
  	z
  z        z   }t        t        j                  j                  ||||      |d       t        t        j                  j                  ||||      |d       t        t        j                  j                  ||||      |d       t        t        j                  j                  ddd	d
      dd       t        t        j                  j                  ddd	d
      dd       t        t        j                  j                  ddd	d
      dd       y )N)r.  r   r^   r   r^   c                     | dz   z  | dz   z  z
  z
  z  | dz   z  | dz   z  z
  z
  z  z
  z  | dz   z  | dz   z  S )Nr^   r   r8   )rl  r.   r/   r  drg  s    r0   r  z6TestTrapezoid.test_moments_and_entropy.<locals>.momentn  sn    !ac(Q1X-!A#6!Hq1Q3x/AaC89 :qSqS" #r2   r   rs   r  rN  r   r.  r  r   r   )ra   r  r   r6   r   r   r  r>   )rj   rB  r  r\   r]   r  r   r  r>   r.   r/   r  r	  rg  s            @@@@@r0   test_moments_and_entropyz&TestTrapezoid.test_moments_and_entropyg  s    "
1acac]QqSQqSM1acABU1QqM	# 	#
 ayQi$'!1Qq/QqSU1W-sac!eAg0GGEOO00ReD "	.EOO//BUC	-EOO33BCG#R	1 	EOO00Ar1=r2NEOO00Ar1=q"MEOO//1b!<aLr2   c                    t        j                  g d      }t        j                  ddg      d d d f   }t        j                  g d      }t        j                  j	                  |||      }t        j
                  |||      \  }}}t        j                  |j                  |j                        }t        j                  |j                        }	t        |	|j                         |j                         |j                               D ]+  \  }
}}}t        j                  j	                  |||      ||
<   - t        ||j                  |j                        d       t        j                  t        j                  j                  ||d	            }t        j
                  ||      \  }}t        j                  |j                  d
f      }t        j                  |j                        }	t        |	|j                         |j                               D ]+  \  }
}}t        j                  j                  ||d	      ||
<   - t        ||j                   j                  |j                        d       y )Nr  rs   r	  )r  rc  r   r  r{   r   rS  rT  r   )ra   r   r6   r   r`   broadcast_arraysemptyr   r   r  r
  ravelr   r  r9  r   rp  )rj   r  r	  rV   rV  ccddr  r   indr  r  c1d1s                 r0   test_trapezoid_vectz!TestTrapezoid.test_trapezoid_vect  s   HH_%HHc3Z D)HH&'OO1a(((Aq1
Bhhrwwbhh/ii  bhhj"((*bhhjI 	5MAr2r__((R4CF	5 	3;;qww/e< JJu,,Q6,BC$$Q*Bhh|$ii S"((*bhhj9 	CIAr2__**2r6*BCF	C 	355==1>r2   c                     t        j                  ddd      }t        t        j                  j                  |dd      t        j                  j                  |             y r	  )ra   rP  r   r6   r?   r`   rl  r  s     r0   
test_trapzzTestTrapezoid.test_trapz  s>    KK1b!EKKOOAq!4emm6G6G6JKr2   N)	r   r   r   r	  r	  r	  r	  r	  r	  r8   r2   r0   r	  r	  D  s$    ;P
E(M6?4Lr2   r	  c                       e Zd Zd Zy)
TestTriangc                 J   t        j                  d      5  t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d	       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d
       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       d d d        y # 1 sw Y   y xY w)Nraiser  r   rw   rs   rK  r   rx   r^   r   rc  )ra   rZ  r   r6   r	  r`   rh   ro   s    r0   test_edge_caseszTestTriang.test_edge_cases  sg   [[W% 	6))!Q/4))#q126))!Q/4))!Q/3))#q126))!Q/3))"b126))#r2D9))#r2C8))"b126))#r2D9))"b115	6 	6 	6s   G9HH"N)r   r   r   r	  r8   r2   r0   r	  r	    s    6r2   r	  c                       e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zy)	TestMaxwellr  )r  gCR5&.)ru   g7q?c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   maxwellr   r  s      r0   r  zTestMaxwell.test_sf  s     	((+Su=r2   r  ))r[  g1!@)g    ?g?)g      <gCuJ!@c                 Z    t        t        j                  j                  |      |d       y rz   )r   r6   r	  r  r  s      r0   r  zTestMaxwell.test_isf  s    
 	))!,c>r2   Nr4  r8   r2   r0   r	  r	    s\    
 [[X::<=>=> [[X:;?	;?r2   r	  c                       e Zd Zd Zd Zy)
TestMielkec                    d\  }}t        t        j                  ||      j                  d      t        j
                         t        t        j                  |d      j                  d      t        j
                         t        t	        j                  t        j                  |d      j                  d                   y )N)g rh@gv?r   rK  r  )r   r6   mielker  ra   r  r	   r  )rj   rS   rE   s      r0   rW  zTestMielke.test_moments  sz    1U\\!Q'..q1266:U\\!S)003RVV<ELLD188;<=r2   c                     t        j                  ddd      }d\  }}t        t        j                  j                  ||||z        t        j                  j                  |||             y )Nru   rX   r3  )g@gHzG@)ra   rP  r   r6   burrr`   r	  )rj   rV   rS   rE   s       r0   test_burr_equivalencez TestMielke.test_burr_equivalence  sO    KKc2&1

q!QqS15<<3C3CAq!3LMr2   N)r   r   r   rW  r	  r8   r2   r0   r	  r	    s    >Nr2   r	  c                   $    e Zd Zd Zd Zd Zd Zy)TestBurrc           	         t         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  d	d
gg}|D cg c]#  \  }}} |j                  |j
                  g| % }}}}|D cg c]  \  }}}|
 }}}}t        ||       |D cg c]#  \  }}} |j                  |j
                  g| % }}}}|D cg c]  \  }}}t        j                  |       }}}}t        ||       y c c}}}w c c}}}w c c}}}w c c}}}w )N)r   r   )rs   r^   )r   r   )r^   rs   rQ  rs   rK  )r   r^   rw   )
r6   fiskr	  burr12r`   r.   r   r   ra   r  )rj   r   r  r  r   r  r  r  s           r0   test_endpoints_7491zTestBurr.test_endpoints_7491  s7    ZZq!ZZ1%ZZ#ZZ1%\\8S)\\63'\\63') 9===E1vrvvbdd#U#==9=>>!5UI9>>!#w/;?@@<2uayryy&&@@AEFF)=UI266)$FF!#w/ >> AFs   (D?9E(E Ec                     d\  }}t        j                  ||      j                         \  }}d\  }}t        ||       t        ||       y )N)rL  r   )g4U?g&MI?)r6   r	  r   )rj   r  r	  r   variancemean_hcvariance_hcs          r0   test_burr_stats_9544zTestBurr.test_burr_stats_9544  sI    1Aq)//1h  Gg&+.r2   c                 <   d\  }}t        j                  ||      j                         \  }}t        t        j                  |             t        t        j                  |             d\  }}t        j                  ||      j                         \  }}t        t        j
                  |             t        t        j                  |             d\  }}t         j                  j                  t        j                  g d      ||      \  }}}}t        t        j                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             y )N)rs   r   )r  r   rL  )r	  r   )r6  r   )r8  r   )r6   r	  r	   ra   r  r  _munpr   )	rj   r  r	  r   r	  e1e2e3e4s	            r0   test_burr_nan_mean_var_9544z$TestBurr.test_burr_nan_mean_var_9544  s   1Aq)//1h"#1Aq)//1hD!""#1))"((<*@!QGBB1)),1=BBB 1)),1=BBB B 1)),1=BBB B B 1)),1=BBB B B B r2   c                 x    d\  }}g d}g d}t        t        j                  j                  |||      |d       y )N)rL  rR  )rT   r  ry  r  )g+&?gI$_@gKT@gؗVArz  r|   )r   r6   r	  r  )rj   r  r	  rv  r|  s        r0   test_burr_isfzTestBurr.test_burr_isf$  s6     1&#

q!Q/5Ar2   N)r   r   r   r	  r	  r	  r	  r8   r2   r0   r	  r	    s    0(	/(!TBr2   r	  c                   Z    e Zd Zej                  j                  dddg      d        Zd Zy)
TestBurr12zscale, expected)rK  gd~)r6  gR톇T c                 h    t         j                  j                  dddd|      }t        ||d       y )Ng     jAg     jAr   r;  r  r   r|   )r6   r	  r{  r   )rj   r]   rO   r  s       r0   r|  zTestBurr12.test_delta_cdf1  s/    ( ''S!Qe'Dxe4r2   c                 0   d\  }}t         j                  dz  }dt         j                  dz  dz  z
  }t         j                  dz  d|dz  z  z  }t         j                  }||||g}t        j                  ||      j                  d	      }t        ||d
       y )Nr  r   r   r^   r  r   r  r  rS  rz  r|   )ra   rb   r  r6   r	  r   )	rj   r  r	  r   r  r  r  r|  r   s	            r0   test_moments_edgezTestBurr12.test_moments_edgeH  s    
 1uuQw"%%(2+ouuaxCH%66S$)ll1a &&v.Su-r2   N)r   r   r   r   r   r   r|  r	  r8   r2   r0   r	  r	  /  s6    [[.<;=>5>5(.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d Zej(                  j*                  d        Zej0                  j3                  e      ZdZ eej0                  j=                  ee            5 Z e jB                  e      Z"ddd       ej(                  jG                  de"d         d        Z$ej(                  jG                  de"d         d        Z%ej(                  j*                  ej(                  jM                  d      ej(                  jG                  de"d         d                      Z'd Z(ej(                  jR                  d        Z*ej(                  jG                  de      d         Z+ej(                  j*                  ej(                  jM                  d      d!               Z,ej(                  jR                  d"        Z-d# Z.d$ Z/d% Z0y# 1 sw Y   QxY w)&TestStudentizedRange)gQ1@g33333F@g
ףp=*K@gHzM@g/$@g~j!@g33333$@g{Gz&@gh|?5	@gQ8@g&1@g|?5@g@gOn@g!rhm@gB`"@r  gʡEs@g|?5^@g/$@gV-@g/$@gF@g?5^I@)gRV@gffffffl@gp@g     r@gʡ @gHzG/@gQ82@gQ3@g!rh@g     @g+@gʡEs @gjt@gB`"[@g@gnJ@gV-@gFx@gsh|?@g+N@g/$@g @g@gGz@)gfffff"@i  i
  i  gHzG2@g(\A@gQC@gfffffE@g @gNbX9"@gHz$@g(\&@g-@gn@@gw/@g=
ףp @gJ+@g-'@gn@gHz@gV-@gnJ@g$@g/ݤ@)r  r  r  r   r   rW   r  x   )r^   r;  r  r  )rT   r   i)#  gupm1f?)r   rW   r   g?<-=A?gv"?r   gd暕?ga-A?c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )Nr  r|   )r   r6   studentized_rangerh   r   )rj   pvkrv  
p_expectedrV  rS   res_ps          r0   test_cdf_against_tablesz,TestStudentizedRange.test_cdf_against_tables  sK    ii 	:FC"J1++//1a8EE:D9	:r2   c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )NMb@?r|   )r   r6   r	  r   r   )rj   r	  
q_expectedrm  rV  rS   res_qs          r0   test_ppf_against_tablesz,TestStudentizedRange.test_ppf_against_tables  sJ    #yy 	:OCGAq!++//1a8EE:D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          y 	Nsrc_case	mp_resultrv  rS   rV  expected_atolexpected_rtolr  )r6   r	  rh   r   rj   r	  r	  r	  qkvr   s         r0   test_cdf_against_mpz(TestStudentizedRange.test_cdf_against_mp  `    z*,	smXc]HSM9%%))3/Y%o6%o6	8r2   pdf_datac                     |d   }|d   }|d   |d   |d   f}t        j                  j                  | }t        |||d   |d          y r	  )r6   r	  r`   r   r	  s         r0   test_pdf_against_mpz(TestStudentizedRange.test_pdf_against_mp  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        t        ||d   |d	   
       y # 1 sw Y   xY w)Nr	  r	  rU  rS   rV  rM  rN  r	  r	  r  )ra   rZ  r6   r	  r  r   )rj   r	  r	  r	  mkvr   s         r0   test_moment_against_mpz+TestStudentizedRange.test_moment_against_mp  s     z*,	smXc]HSM9 [[* 	7))00#6C	7 	Y%o6%o6	8	7 	7s   A**A3c                     d\  }}t        t        j                  j                  dt        j
                  ||f      }t        |d   d       y )Nr   rW   r   r  r   )r   r6   r	  r`   ra   r  r   )rj   rS   rV  r   s       r0   test_pdf_integrationz)TestStudentizedRange.test_pdf_integration  s=    15**..266AGA"r2   c                     d\  }}t        j                  ddd      }t        j                  j	                  |||      dd  }t        j                  j                  |||      }t        ||      }t        ||d       y )	Nr	  r   rW   ru   )stepr   r  r|   )ra   r  r6   r	  rh   r`   r   r   )rj   rS   rV  rV   y_cdf	y_pdf_rawy_pdf_cumulatives          r0   test_pdf_against_cdfz)TestStudentizedRange.test_pdf_against_cdf  sv    1
 IIa$'''++Aq!4QR8++//1a8	/	1= 	(%d;r2   r_case_resultc                     |\  }}}}t        j                  d      5  t        j                  j	                  |||      }d d d        t        |       y # 1 sw Y   xY w)NrM  rN  )ra   rZ  r6   r	  rh   r   )rj   r	  rv  rS   rV  r_resr   s          r0   test_cdf_against_rz'TestStudentizedRange.test_cdf_against_r  sV     '1a[[* 	7))--aA6C	7U#	7 	7s   "AAc                 ~   t        j                  d      5  t        j                  j	                  ddgddgddg      }d d d        t        j                  d	       t        j                  t        d
      5  t        j                  j	                  dddgg d       d d d        y # 1 sw Y   ixY w# 1 sw Y   y xY w)NrM  rN  r   r^   r   r   rW   r!  rs  z...could not be broadcast...r  )rW   r!  rM  )
ra   rZ  r6   r	  r	  r   r9  r   r   r  r  s     r0   test_moment_vectorizationz.TestStudentizedRange.test_moment_vectorization  s     [[* 	H''--q!fq!fr2hGA	H 	&]]:-KL 	C##))!aV\B	C 	C	H 	H
	C 	Cs   (B'8&B3'B03B<c                 `   t               5 }t        j                  d      5  |j                  t               t
        j                  j                  g d      \  }}}}d d d        d d d        t        t
        j                  j                               y # 1 sw Y   ;xY w# 1 sw Y   ?xY w)NrM  rN  r  )
r   ra   rZ  rI   r   r6   r	  r  r	   	_argcheck)rj   r  rS   r  r   s        r0   test_fitstart_validz(TestStudentizedRange.test_fitstart_valid  s      	GCX)F 	GJJ)*11;;IFKAr1a	G 	G 	''11!R89		G 	G 	G 	Gs"   B$<BB$B!	B$$B-c                    t         j                  j                  ddt        j                        }t         j                  j                  ddd      }t        ||dd       t         j                  j                  ddt        j                        }t         j                  j                  ddd      }t        ||dd       y )Nr   rW   韆 r  r  )r6   r	  r`   ra   r  r   rh   )rj   r   
res_finites      r0   test_infinite_dfz%TestStudentizedRange.test_infinite_df  s     %%))!R8,,00B>
Zd>%%))!R8,,00B>
Zd>r2   c                 0   t         j                  j                  ddd      }t         j                  j                  ddd      }t         j                  j                  ddd      }t        t        t
        ||dd       t        ||dd       t         j                  j                  ddd      }t         j                  j                  ddd      }t         j                  j                  ddd      }t        t        t
        ||dd       t        ||dd       y )Nr   rW   r   r 
  i r  r  )r6   r	  r`   r  AssertionErrorr   rh   )rj   r   r
  
res_sanitys       r0   test_df_cutoffz#TestStudentizedRange.test_df_cutoff  s     %%))!R8,,00B>
,,00B>
nosJd	,
JTE%%))!R8,,00B>
,,00B>
nosJd	,
JTEr2   c                 |    d\  }}}t         j                  j                  |||      }t        |dd       |dk\  sJ y )N)gaRA@r   iS  r   r  r   )r6   r	  r   r   )rj   rv  rS   rV  rm  s        r0   test_clippingz"TestStudentizedRange.test_clipping  s@     .1a##&&q!Q/15)Avvr2   )1r   r   r   q05q01q001ra   r  qspsr  vskslistr
  r%   r   r_datar	  r   r   r  r	  ospathdirnamer  path_prefixrelative_pathopenr  filejsonr  pregenerated_datar   r	  r	  xfail_on_32bitr	  r	  r   r	  r	  r	  r	  r
  r
  r
  r8   r2   r0   r	  r	  W  s   'C'C(D 
c4(	)B	B
QBRVV	$B	BGBB',-D
 	*(	
Arvv()	
Arvv()	
B)*F: [[: : ''//(+K<M	bggll;6	7 ,4%DIIdO, [[],=j,IJ8 K8 [[],=j,IJ8 K8 [[[[ MN[[],=m,LM8 N O 8# [[< < [[_f5$ 6$ [[[[ MNC O C [[: :	?F*A, ,s   &IIr	  c                     t        t        j                  j                  d      ddd       t        t        j                  j                  d      ddd       t        t        j                  j                  dd	d
      ddd       y )Ng2g?rW   test_540_567)rO  r  g2gk?g;B.?gͣh?gHŎ*?r[   g.y?)r   r6   r  rh   r8   r2   r0   r
  r
    sk    

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

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

}.-; ' =+ "N<r2   c                  Z    t        t        j                  j                  dd      dd       y )Nrx   r^   rs   r  rJ  r8   r2   r0   test_regression_ticket_1326r
  '  s    

sA.R8r2   c            	      j   t        j                  ddd      } t        j                  d      5  dddt        j                  dgdgdgg      fD ]k  }t        j
                  j                  | |      }t        |dk7  j                                t        t        j                  |      j                                 m t        j                  dgdgd	gg      }t        j
                  j                  | |      }d d d        t        t        j                        j                                 t        |d
   dk7  j                                t        |d   dk7  j                                t        |d   dk7  j                                t        |d   dk(  j                                y # 1 sw Y   xY w)N      rL  rU   rM  rp  rx   r  ra  rw   r   r   r^   )ra   rP  rZ  r   r6   r(   r`   r	   r   r  r   )rV   r  rm  s      r0   test_regression_tukey_lambdar#
  ,  s_    	D#s#A	H	% *tRXXvutf.E%FG 	(C!!%%a-AQ#XNN$%RXXa[__&&'	(
 hhu-.!!!S)* RXXa[__QqTS[ QqTS[ QqTS[ QqTS[ * *s   C	F))F2zdocstrings strippedr  c                      t        dt        j                  j                  v       t        dt        j                  j                  v        y )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r	   r6   r{  r  r8   r2   r0   test_regression_ticket_1421r%
  A  s1    (0E0EEFH---.r2   c            	      	   t        j                  d      5  t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j!                  t         j                  d                   t        t        j                  t        j                  j#                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   d d d        y # 1 sw Y   y xY w)NrM  rN  r   rs   )ra   rZ  r	   r  r6   r  r  r  rh   rs  r   r`   r   r   r  r  rG  r  r8   r2   r0    test_nan_arguments_gh_issue_1362r'
  G  ss   	X	& <266234Q/01q"&&123Arvv./0Q/01266234Q/01Q/01//<=>,,RVVS9:;..rvvs;<=++BFFC89:,,RVVS9:;//<=>,,RVVS9:;,,RVVS9:;#< < <s   R!SS
c                     t         j                  j                  d       t        j                  g d      } t        j
                  j                  | d   | d   | d   d      }t        j                  d	      5  t        j                  t        j
                  j                  |d
            }d d d        t        | d       t        j                  t        j
                  j                  |dd            }t        || d       t        j                  t        j
                  j                  |dd            }t        || d       t        j                  t        j
                  j                  |dd            }t        || d       t         j                  j                  d       d}d}t        j                  j                  |dd      }t        j                  t        j                  j                  ||            }t        j                  |t        j                  ||z
  dz  j                               g      }t        ||d       y # 1 sw Y   xY w)Ni.  )rc  rx   rs   r   r   r^   rX   r1  rM  r"
  rx   r   rN  rs   )r   r\   rc  )r   r\   r'  r   rw   r   )ra   r   r   r   r6   r  r   rZ  r   r   r  r  r   )truerV   rZ  r\   r   rO   s         r0   test_frozen_fit_ticket_1536r*
  \  s   IINN488O$D$q'47DG#>A	H	% 9%--++AB+789 a0XXemm''#1'=>Fa0XXemm''d':;Fa0XXemm''d';<Fa0IINN4
CD

sBS)AXXejjnnQTn23Fxxrww4!'9'9';<=>H!4)9 9s   95IIc                      t         j                  j                  d       t        j                  j                  d      } t        j                  j                  |       }d}t        ||d       y )Ni	 rX   r1  )g
ףp=
?gʡE?r   rN  )ra   r   r   r6   r!  r   r   r   )r   rZ  rO   s      r0   test_regression_ticket_1530r,
  x  sN    IINN6
,,



$C\\c"FH!4r2   c                     t         j                  j                  d       t         j                  j                  d      } dD ]C  }t        j
                  j                  | |z         \  }}t        ||d       t        |dd       E y )Nr   r_  )r  g   6ArK  r   r	  )ra   r   r   r  r6   r!  r   r   )rV   offsetr\   r]   s       r0   test_gh_pr_4806r/
    sg    IINN4
		A' .\\%%a&j1
UV#.s-.r2   c                  b   t         j                  j                  dd      } dt        j                  dz  dz  ddg}t	        | |d       t         j                  j                  d	d      } g d
}t	        | |d       t         j                  j                  dd      } g d}t	        | |d       y )Nr   rS  rT  r^   r   r  rW   rN  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r6   r(   ra   rb   r   )rY  rO   s     r0   "test_tukeylambda_stats_ticket_1545r1
    s     
			 	 F	 	3B255!8A:q#&HHb1				 	 v	 	6BCHHb1				 	 v	 	6BCHHb1r2   c                  |    t        t        j                  t        j                  j                  dd                   y )Nr  r  )r	   ra   r  r6   r{  r  r8   r2   r0   test_poisson_logpmf_ticket_1436r3
    s$    BKK,,T3789r2   c                  z    ddg} | D ]2  \  }}t         j                  j                  |d      }t        ||       4 y)a  Test the powerlaw stats function.

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

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

qAAxe, 
	!BB&r2   c                      t        j                  g d      } t        j                  g d      }t        j                  j	                  |       }t        ||d       y )N)rI  rk  gMraB3Gr  )gep[>g}XEQ=gѭEG<g?_%~:rz  r|   )ra   r   r6   r  r   r   rV   rO   r  s      r0   test_levy_sfrQ
  N  sD    
)*Axx 0 1H 	

aAAxe,r2   zp, expected_isf))ry  gj1e2H)r  g6C)r  gnE@)rn  g!^x1?)r  gZ?)g   ?g:}!Nu?c                 ^    t         j                  j                  |       }t        ||d       y )Nr0  r   )r6   r  r  r   )rm  expected_isfrV   s      r0   test_levy_isfrT
  e  s"     	

qAA|%0r2   c                      t        j                  g d      } t        j                  g d      }t        j                  j	                  |       }t        ||d       y )N)gMb{Gzg{Gztg~jtX)g#]<gOul2;gޢا6g̅7=!r   r|   )ra   r   r6   r  r   r   rP
  s      r0   test_levy_l_sfrW
  q  sD    
12Axx 1 2H 	AAxe,r2   c                      t        j                  g d      } t        j                  j	                  |       }t        j                  j                  |      }t        || d       y )N)g [n<rc  r  r  r|   )ra   r   r6   r  r  r   r   )rm  rV   rv  s      r0   test_levy_l_isfrY
  }  sC    
&'AAAAqu%r2   c                     t        t        j                  j                  dddd      d       t        t        j                  j                  dddd      d       t        t        j                  j                  dddd      d       t        t        j                  j	                  d	d
d
d      d       t        t        j                  j	                  dd
d
d      d       y )Nr  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@r}  rX   r;  r   )r   r6   r  r  r   r8   r2   r0   test_hypergeom_interval_1802r\
    s    ))#vucB!))$sC! ))#vucB! $$T3Q7;$$QS!4a8r2   c                  	   t         j                  j                  d       t        j                  ddd      } t	        t
        t        j                  j                  | ddd	       t	        t
        t        j                  j                  | ddd
d	       t	        t
        t        j                  j                  | ddd
d       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  | dddd       t        j                  j                  | dd       t        j                  j                  | ddd
       t        j                  j                  dd       t        j                  j                  ddd
       t        j                  j                  ddd
d       t        j                  j                  ddd
d       t        j                  j                  t        j                  j                  dd      d       t        j                  j                  | dd	       t	        t
        t        j                  j                  | ddd
       t	        t
        t        j                  j                  | ddd
	       t	        t
        t        j                   j                  | dd	       t	        t
        t        j"                  j                  | dd
dd	       t	        t
        t        j"                  j                  | dd
ddd       t	        t
        t        j$                  j                  | dd
ddd	       t	        t
        t        j$                  j                  | dd
dddd	       t        j$                  j                  | dd
ddd       y )Nr   rT   r
  r   numr^   r   rK  rz  r   rs   r[   rw   rY  r  r1  r  r  )ra   r   r   rP  r  r  r6   rV  r`   r   rh   r   r>   r   ra  rG  r  r+	  r  r   s    r0   test_distribution_too_many_argsr`
    s   IINN4 	C!$A)U[[__aA3?)U[[__aAqcB)U[[__aAq!<)U[[__aA3cJ)U[[__b!CH)U[[__aQCsK)U[[__aQCsK)U[[..A3cJ)U[[00"aSL)U[[__aQCsK 
KKOOAq!	KKOOAq!Q	KKb!	KKb!Q	KKb!Q%	KKOOB1a 	KKOOEKKOOBQO/4 
JJNN1aQN)UZZ^^Q1a8)UZZ^^Q1!< )U[[__a<)U__00!Q1#F)U__00!Q1c3G)UYY]]Aq!QsC)UYY]]Aq!Q3cJ	IIMM!Q1a%r2   c                      t         j                  j                  t        j                  ddd      dd      } t         j                  j                  t        j                  ddd      dd      }t        | |dd       y )	Nr  r  r  r^   gYZ@r[  r   r]  )r6   ncx2rh   ra   r  _cdfvecr   r<  s     r0   test_ncx2_tails_ticket_955rd
    sZ     	

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

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

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

s(;B(>?i3?$2,?r2   c                 J    G d dt         j                        } |d      }t        |j                  ddd      t         j                  j                  d      dz  dz          t        |j                  ddd      t         j                  j                  d      dz  dz          y )	Nc                       e Zd Zd Zy)ATestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_genc                 V    |d   }t         j                  j                  |      |z  |z   S r
  r
  )rj   rV   r.
  r&  r
  s        r0   r
  zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf   s(    "1gzzq)K7&@@r2   Nr
  r8   r2   r0   r
  r
     s    Ar2   r
  zoffset, extra_kwargr
  rs   o   r
  )r.
  r
  r
  r
  s      r0   test_star_args_2z.TestSubclassingExplicitShapes.test_star_args_2   s    	A++ 	A
  56TXXc#2X>ZZ^^C(+c1	3TXXc3+ZZ^^C(+c1	3r2   c                      G d dt         j                        } |d      }t        |j                  dd      t         j                  j                  d             y )Nc                       e Zd Zd Zy)BTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_genc                 j    |j                  dd      }t        j                  j                  |      |z  S )Nr
  r   )popr6   r  r
  )rj   rV   r&  kwargsr
  s        r0   r
  zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf	!  s,     %jj:zzq)K77r2   Nr
  r8   r2   r0   r
  r
  !  s    8r2   r
  r
  r
  r   r   r
  r
  )rj   r
  rK   s      r0   test_extra_kwargz.TestSubclassingExplicitShapes.test_extra_kwarg!  sD    	8,, 	8 /TXXaQX/1BCr2   c                      G d dt         j                        } |d      }t        |j                  d      t         j                  j                  d             y )Nc                       e Zd Zd Zy)ITestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_genc                 @    t         j                  j                  |      S rm   )r6   r  r`   r  s     r0   r
  zNTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdf!  s    zz~~a((r2   Nr
  r8   r2   r0   r
  r
  !  s    )r2   r
   r
  rs   r
  r
  s      r0   test_shapes_empty_stringz6TestSubclassingExplicitShapes.test_shapes_empty_string!  s?    	)++ 	) #TXXc]EJJNN3$7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   r
  r
     s\    2B<
4
6
666666
@B@3D9r2   r
  c                       e Zd Zd Zd Zej                  j                  ed      d        Z	ej                  j                  ed      d        Z
d Zd Zd	 Zd
 Zy)TestSubclassingNoShapesc                 V    t        d      }t        |j                  dd      d       y )Nr
  r  r   r  r_  r
  r
  s     r0   test_only__pdfz&TestSubclassingNoShapes.test_only__pdf !  s#     g.[__Q!_,b1r2   c                 V    t        d      }t        |j                  dd      d       y )Nr
  r
  r   r  )r
  r   r`   r
  s     r0   test_only__cdfz&TestSubclassingNoShapes.test_only__cdf$!  s#    !w/KOOAO3Q7r2   docstring strippedr  c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )Nr
  r
  r   r.   zlogpdf\(x, a, loc=0, scale=1\))	r
  r   numargsr  refindallr  r	   r  rj   r
  r   s      r0   test_signature_inspectionz1TestSubclassingNoShapes.test_signature_inspection)!  sX     !g.[((!,[''-jj:$,,.CAr2   c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )Nr
  r
  r^   r  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	r
  r   r  r  r  r  r  r	   r  r  s      r0   test_signature_inspection_2argsz7TestSubclassingNoShapes.test_signature_inspection_2args4!  sX     "w/[((!,[''0jj=$,,.CAr2   c                 0    t        t        t        d       y )Nr
  r
  )r  r  r
  ro   s    r0   0test_signature_inspection_2args_incorrect_shapeszHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapes>!  s    i7;r2   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd ZddZy)>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genc                      yr
  r8   r
  s      r0   r
  zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdfE!      r2   N)r_  r
  r8   r2   r0   r
  r  D!  s    r2   r
  r
  r
  r6   r<   r  r  r	  rj   r
  s     r0   test_defaults_raisez+TestSubclassingNoShapes.test_defaults_raiseB!  *    	++ 	 	iAd.@Ar2   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd Zd Zy)>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_genc                      yr
  r8   )rj   rV   r.   r&  s       r0   r
  zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdfL!  r  r2   Nr
  r8   r2   r0   r
  r  K!      r2   r
  r
  r
  r  r  s     r0   test_starargs_raisez+TestSubclassingNoShapes.test_starargs_raiseI!  r  r2   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd Zd Zy)<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_genc                      yr
  r8   )rj   rV   r.   r
  s       r0   r
  zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdfS!  r  r2   Nr
  r8   r2   r0   r
  r  R!  r  r2   r
  r
  r
  r  r  s     r0   test_kwargs_raisez)TestSubclassingNoShapes.test_kwargs_raiseP!  r  r2   N)r   r   r   r
  r
  r   r   r  DOCSTRINGS_STRIPPEDr  r  r
  r  r  r  r8   r2   r0   r
  r
  !  sy    28
 [[+4HI J [[+4HI J<BBBr2   r
  r   c                     g d} t         j                  D ]o  }t        t         |      }t        |t         j                  t         j
                  f      s>| D ]-  }t        t        j                  ||j                        d u        / q y )N)z,\s*,z\(\s*,z^\s*:)
r6   rH   r$  r;  r;   r<   r	   r  searchr  )badonesdistnamerK   regexs       r0   r  r  X!  sp    -GMM @uh'dU..0C0CDE  @		%6$>?@@r2   c                      t        t        j                  j                  t        j
                  dd      d       t        t        j                  j                  t        j
                  dd      d       y )NrW   r!  r   r;  rT   r   )r   r6   r  r   ra   r  rb
  r
  r8   r2   r0   test_infinite_inputr&  b!  sB    ((R8!<

37;r2   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | d       y r  )r6   lomaxr   rh   r   r8
  s    r0   test_lomax_accuracyr)  g!  s/    2A6AAvr2   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | d       y r  )r6   r  r   rh   r   r8
  s    r0   test_truncexpon_accuracyr+  m!  s7    U--11&!<a@AAvr2   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | dd       y )Nrf  r   r=  r5  rN  )r6   r!  r  r   r   r8
  s    r0   test_rayleigh_accuracyr-  s!  s5    5>>,,Q2A6A3+r2   c                     t        j                  d      5 } t        j                  d       t        j                  j                  dd       t        j                  j                  dd       t        j                  j                  dd       t        j                  j                  t        j                   d       t        |       }t        |d       ddd       y# 1 sw Y   yxY w)zregression test for gh-6219T)r  alwaysrs   r   rx   N)rn  ro  rp  r6   r  rh   r`   r   r   ra   r  r  r   )r  number_of_warnings_throwns     r0    test_genextreme_give_no_warningsr1  y!  s     
	 	 	- 3h'R#R#R#-$'F!.23 3 3s   B<CC%c                     d} t         j                  j                  d      }t        |d| z  dz   d       t         j                  j                  d      }t        || dz   d       t         j                  j                  d      }t	        |d       t         j                  j                  d	d
      }t        || dz  t        j                  d
      z   dz   d       t         j                  j                  d
      }t        |d| z  dz   d       t         j                  j                  d      }t        |d| z  dz   d       y )Ngox?r  r^   r   rz  r|   r   rK  ra  rW   r  r   rM  r  r!  )r6   r  r>   r   r   ra   r  )euler_gammarg  s     r0   test_genextreme_entropyr4  !  s   $K  &AAq}q(u5  #AA{QU3  %AA  R 0AA{1}rvvbz1A5EB  $AAr+~)6  %AAr+~)6r2   c                      d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        y )	Nr   r   g'b%4gQ@r  gؗҜ;r   g.l6?)r6   r  r   r   r  )rV   rE   r  s      r0   test_genextreme_sf_isfr6  !  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                  b    d} t         j                  j                  | dd      }t        |d       y )Nrz  r^   r   gH&8>)r6   r	  r   r   )probr  s     r0   test_burr12_ppf_small_argr9  !  s,    D||a+H H45r2   c                     t        j                  ddd      dd } t        j                  j	                  | dd      }t        j
                  g d	      }t        ||d
       t        j                  j	                  | dd      }t        j
                  g d      }t        ||d
       t        j                  j	                  | dddd      }t        j
                  g d      }t        ||d
       t        j                  j                  | dd      }t        j
                  g d      }t        ||d
       t        j                  j                  | dd      }t        j
                  g d      }t        ||d
       t        j                  j                  | dddd      }t        j
                  g d      }t        ||d
       y)z
    All values are calculated using the independent implementation of the
    ROOT framework (see https://root.cern.ch/).
    Corresponding ROOT code is given in the comments.
    r!
  rL  r  Nr   rK  rw   )r  rU  )gC,d	Ɣ?gH㸘?g5?gM"M#w?gɫs^?g @?gƴ?g@w?ɫs^?|?q ?g C?r<  r;  gJó?g,BV\ۤ?g;?g#ek?g%ǓE?g(Ȍx?g>J>r[  r|   rR  )g#{`?gdf?g Jq?gSS){?g'	w?uL? T)?cAJ?GTn?R1#?gA]P?rA  r@  r?  r>  gvӢ?gKq?gL?g
	N<!?gAw>rs   )r  rU  r\   r]   )g=aO}?gI8?g#T?aW)?ǓI?
J?E?d۳?GTn?8?R1#?kP?g(*T?rI  rH  rG  rF  rE  rD  rC  rB  )gD
)?g:3P?g9?g?S[?r;  gOqx?gD
)?g9?gɫs^?gK?gX?g3<֌?gM+?gyS
c?gI`s?g辜?g{i ?g^0?g?#c?)g%r?gc@v?ghtj}?g(˔^?gHK4U?r=  ğ@ _?y}D?焂Rr/?N?YjhG?a0L?4f?<@?@CH?g	ސF?g5+-#?g?g?q ?rJ  )g}'v?r=  g*V?rK  gr/0+?rL  g[8	?rM  gΥ?rN  gY?rO  g#)a?rP  g?̔?rQ  g]ؚ?rR  g|c ?rS  )ra   rP  r6   crystalballr`   r   r   rh   )r   
calculatedrO   s      r0   test_crystalball_functionrV  !  s    	D#r"3B'A ""&&qsc&:Jxx & 'H
 Hju5 ""&&qsc&:Jxx 3 4H
 Hju5 ""&&qscs#&NJxx $ %H
 Hju5 ""&&qsc&:Jxx K LH Hju5 ""&&qsc&:Jxx # $H
 Hju5 ""&&qscs#&NJxx K LH Hju5r2   c                     t        j                  g d      } t        j                  g d      }t        j                  g d      }t        j                  j	                  d| |      }t        ||d       t        j                  g d      }t        j                  dd	t         j                  d
dg      }||z  }t        j                  j	                  d| |      }t        ||d       t        j                  t         j                  t         j                  t         j                  ddg      }||z  }t        j                  j	                  d| |      }	t        ||	d       t        j                  t         j                  t         j                  t         j                  t         j                  dg      }||z  }
t        j                  j	                  d| |      }t        |
|d       t        j                  t         j                  t         j                  t         j                  t         j                  dg      }||z  }t        j                  j	                  d| |      }t        ||d       t        j                  t         j                  t         j                  t         j                  t         j                  dg      }||z  }t        j                  j	                  d| |      }t        ||d       y)zg
    All values are calculated using the pdf formula and the integrate function
    of Mathematica
    )rw   rK  rR  rw   rR  )rR  rR  rw   r  r=  )rK  rK  rK  rK  rK  r   r[  r|   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr   g
@gn(@r^   g?Җ)r   gMg'#@r   g('UHr   N)ra   r   r6   rT  r	  r   r  )r  rU  expected_0th_momentcalculated_0th_momentr  r.   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_crystalball_function_momentsrd  "  s*    88-.D
*+A ((#<=!--33AtQ?')>UK 88DED
(HbffiCDAd(!--33AtQ?')>UK
"&&"&&"&&&(;<Ad(!--33AtQ?')>UK
"&&"&&"&&"&&*=>Ad(!--33AtQ?')>UK
"&&"&&"&&"&&':;Ad(!--33AtQ?')>UK
"&&"&&"&&"&&(;<Ad(!--33AtQ?')>UKr2   c                      t        j                  dd      } | j                         }d\  }}}t        j                  |||      }t        t        | j                  |            |      }t        ||d       y )Nr^   r   )ir0  r  r  r|   )	r6   rT  r>   ra   rP  r   r   r`   r   )cbr  r  r  r  rV   r  s          r0   test_crystalball_entropyrg  M"  s`    			1a	 B::<D"IBA
BAAT"&&)_a(DD$T*r2   c                      d
d} t        j                  g d      }t        j                  j	                  |d|       \  }}}t        |dd       |dk(  sJ t        |dd       y	)a?  
    Test fitting invweibull to data.

    Here is a the same calculation in R:

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

    r   c                 $    t        | |||dd      S )Nr  )r&  dispxtolftol)r#   )r   x0r&  rj  s       r0   rX  z&test_invweibull_fit.<locals>.optimizero"  s    D"4dUKKr2   )r   r  r^   r	  r  r   r  r   r   r;  rW   rM  @   c   )r   rX  g`?r  r|   g [@N)r8   r   )ra   r   r6   r  r   r   )rX  rV   r  r\   r]   s        r0   test_invweibull_fitrp  X"  s_    .L 	HIA$$((i(HMAsEAxd+!8O8E8$/r2   ))r   r  g7Ըh?)r   r  gz]r>)r   g     "@goBڱ9)rI  r  g$=cC;c                 `    t         j                  j                  | |      }t        ||d       y rz   )r6   r  r   r   )rV   r  rO   r  s       r0   test_invweibull_sfrr  z"  s(     ""1a(HHhU3r2   zp, c, expected)rs   r	  g9?)geK<r   g@c                 `    t         j                  j                  | |      }t        ||d       y rz   )r6   r  r  r   )rm  r  rO   r  s       r0   test_invweibull_isfrt  "  s(     ##Aq)HHhU3r2   z	df1,df2,x)r   r  rK  r  r   r!  r  r	  r  c                 L   d}t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       y )Nr   rz  r|   r  )r6   r  rh   r  r   r`   )df1df2rV   r  expected_cdfcalculated_cdfr   calculated_pdfs           r0   test_ncf_edge_caser{  "  s     
B77;;q#s+LYY]]1c33NL.u= 77;;q#s+LYY]]1c33NL.t<r2   c                  b    t         j                  j                  ddd      } t        | dd       y )Nr^   r  r   g     `E@rz  r|   )r6   r  r  r   )rV  s    r0   test_ncf_variancer}  "  s&     			aAAAu5)r2   c                      t         j                  j                  dddd      } d}t        |t	        j
                  | d             y )Nr  r  r
  gffffff>@g&4I,)?)decimals)r6   r  rh   r   ra   round)	scipy_val	check_vals     r0   test_ncf_cdf_spotcheckr  "  s6    
 		b!R.IIIrxx	A>?r2   r  z(On some 32-bit the warning is not raisedc                  X   t        j                  ddd      } d| d<   d}t        j                  t              5  t        j                  j                  | g| }| D cg c]"  }t        j                  j                  |g| $ }}d d d        t               y c c}w # 1 sw Y   xY w)Nr   r   r  rz  )rT   r^   r   r   r   )	ra   rP  r   r  rq  r6   r  r   r   )rV   parrv  xiq0s        r0   test_ncf_ppf_issue_17026r  "  s     	Aq#AAaD
C	n	% 3IIMM!"c"012"eiimmB%%223 Ar 33 3s   %B 'BB B  B)c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestHistogramc                 P   t         j                  j                  d       t        j                  g dd      }t	        j
                  |      | _        t        j                  j                  dddd	      }t        j                  |d
      }t	        j
                  |      | _	        y )Nr   )r   r^   r^   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r;  r;  rf  r;  binsrK  r	  r*  {   r  r3  )
ra   r   r   	histogramr6   r=   templater  r   norm_template)rj   r  r   norm_histograms       r0   r-  zTestHistogram.setup_method"  s{    
		t LL "@FGI	**95zz~~#Su3~Od4"//?r2   c                    t        j                  g d      }t        j                  g d      }t        | j                  j                  |      |       t        | j                  j                  d      d       t        | j                  j                  d      d       t        | j                  j                  d      d       t        | j                  j                  d      d       t        j                  d	d
d      }t        | j                  j                  |      t        j                  j                  |dd      d       y )Nrx   rs   rK  r  rw   r	  rR  r6  r  r8  rL        @r  r  r  re  r        !@r=  r  )rx   rx   rD  rD  {Gz?r  Q?r  {Gz?r  r  r  r  r  r  r  r  r  rx   rx   r  r  r  r=  rx   r  r   r^   rW   rK  r	  r[   rT   r|   )ra   r   r   r   r  r`   r   rP  r  r6   r  )rj   r  
pdf_valuesrV   s       r0   rI  zTestHistogram.test_pdf"  s     M NZZ !I J

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

qc=C	Ir2   c                    t        j                  g d      }t        j                  g d      }t        | j                  j                  |      |       t        | j                  j                  |dd       |dd        t        j                  ddd      }t        | j                  j                  | j                  j                  |            |       t        j                  ddd      }t        | j                  j                  | j                  j                  |            |       t        j                  d	dd
      }t        | j                  j                  |      t        j                  j                  |dd      d       y )Nr  )rx   rx   rx   r}  rD  r  r  
ףp=
?Q?{Gz?r'  rs   r	  (\?RQ?=
ףp=?)\(?r[
  rK  rK  r^   r   rK  r=  rX   rx   r   rW   r	  r[   rT   r|   )ra   r   r   r   r  rh   r   rP  r  r6   r  )rj   r  
cdf_valuesrV   s       r0   r  zTestHistogram.test_cdf_ppf"  s)    M NZZ !M N

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

qc=C	Ir2   c                    d}| j                   j                  |d      }t        t        j                  |dk        d       t        t        j                  |dk        d|z  d	       t        t        j                  |d
k        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |d k        d!|z  d	       t        t        j                  |d"k        d#|z  d	       t        t        j                  |d$k        d%|z  d	       t        t        j                  |d&k        d|z  d	       t        t        j                  |d&k        d|z  d	       t        t        j                  |d&kD        d       y )'Nr*  r  r   rK  rx   rw   rD  r  r|   r	  r  rR  r  rT   r6  r  r  r  r8  r  rL  r'  r  r  rs   r  r	  r  r  r  r  re  r  r  r  r  r[
  r=  )r  r   r   ra   rd  r   )rj   r  r  s      r0   rA  zTestHistogram.test_rvs#  s   """<RVVFSL)3/v}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4HRVVFSL)3/r2   c                     t        d      D ]L  }t        | j                  j                  |      t	        j
                  dd      j                  |      d       N y )Nr   rK  r	  r  r|   )r  r   r  r	  r6   r  r  rw  s     r0   rn	  zTestHistogram.test_munp#  sN    q 	GAD..44Q7!JJsC077:G	Gr2   c                     t        | j                  j                         t        j                  j                  dd      d       y )NrK  r	  r[   r  r|   )r   r  r>   r6   r  ro   s    r0   rh  zTestHistogram.test_entropy!#  s5    **224

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

        See - https://root.cern/

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

        pdf calculated for Z0 Boson, W Boson, and Higgs Boson for
        x in `np.linspace(0, 200, 401)`.
        z-data/rel_breitwigner_pdf_sample_data_ROOT.npyzx,pdf,rho,gammar
  ro  r  s     r0   ROOT_pdf_sample_dataz'TestRelativisticBW.ROOT_pdf_sample_data%  sL     wwN!!;<
 vv  /@ Ar2   zrho,gamma,rtol))qVEB@gj+@r  )FC@Gz @rz  )ND@_LU?r  c                     ||d   |k(  |d   |k(  z     }|d   |d   }}t        |t        j                  j                  |||      |       y )NrhorV  rV   r`   r  r|   )r   r6   rel_breitwignerr`   )rj   r2  r:  rV  r}   r   rV   r`   s           r0   test_pdf_against_ROOTz(TestRelativisticBW.test_pdf_against_ROOT'%  sg     $!%(C/#G,57
 cDK3&&**1c*?d	
r2   zrho, Gamma, rtol))r3  r4  r  )r5  r6  r  )r7  r8  g&.>c                     d }t        j                  ddd      }t        j                  j	                  |||      }t        j                  j                  |||      } ||||z  |      }t        |||       y )Nc                     t        j                  |dz  |dz  |dz  z   z        }dt        j                  d      z  |z  |z  |z  t         j                  t        j                  |dz  |z         z  z  }|| dz  |dz  z
  dz  |dz  |dz  z  z   z  S r  )ra   r  rb   )Er  GammarV  rS   s        r0   r`   zFTestRelativisticBW.test_pdf_against_simple_implementation.<locals>.pdf@%  s    GGAqDAqD5!8O45ERWWQZ!#e+e3EEBGGAqD5L113AA1q(1a4q=899r2   r  r  rW   r  r|   )ra   rP  r6   r;  r   r`   r   )	rj   r:  r@  r}   r`   rm  rV   r   r|  s	            r0   &test_pdf_against_simple_implementationz9TestRelativisticBW.test_pdf_against_simple_implementation8%  ss    	: KKdB'!!%%aE%:##''3e'<!SY&St,r2   z	rho,gammar3  r4  rw  r5  r6  r7  r8  c                    d}t         j                  j                  |      }t        j                  j                  ||d|      }t        j                  j                  |d      }t        |d   |d   f||fd       |d	   dk(  sJ t        j                  j                  |d|
      }t        |d   |d       |d	   |d   fd|fk(  sJ y)zpTests fit for cases where floc is set.

        `rel_breitwigner` has special handling for these cases.
        l   s;
rl# r   )r]   r   r   r   r   r^   r  r|   r   r  ru   N)ra   r   r   r6   r;  r   r   r   )rj   r:  rV  r   r   r   r   s          r0   test_fit_flocz TestRelativisticBW.test_fit_flocL%  s    $ #ii##D)$$((u4c ) 
 ##''1'5QQ(3,TB1v{{##''1U'CA$/AAAu:---r2   N)r   r   r   r   r0  r2  r   r   r<  rA  r  r  r   rC  r8   r2   r0   r0  r0  %  s    ^^ $ [[ 


 [[/ 2 -- [[FLL"F&++2B2B FLL!50A0A FLL &0A0A

..r2   r0  c                   T    e Zd Zej                  j                  dddg      d        Zy)TestJohnsonSUrN  )rV
  r{  r}  r  g={?g?5mV>gn?g\}\1@)g`fo@g$ں_@r   r   gvUgN<fj?gwCg~l
@c                 j    t        j                  j                   |d d ddi}t        ||dd  d       y )Nr   rU  rS  rz  r|   )r6   r  r   )rj   rN  r   s      r0   test_moment_gh18071z!TestJohnsonSU.test_moment_gh18071m%  s5     oo##T"1X>v>T!"XE2r2   N)r   r   r   r   r   r   rG  r8   r2   r0   rE  rE  l%  s9    [[VOJ&K L
3L
3r2   rE  c                       e Zd Zd Zej
                  j                  dddg      ej
                  j                  dddg      ej
                  j                  dddg      ej
                  j                  dddg      d                             Zy	)
TestTruncParetoc                 .   d\  }}t        j                  dd      }t        j                  ||      j	                  |      }t        j
                  |      j	                  |      t        j
                  |      j                  |      z  }t        ||       y )N)?333333@rK  rL  )ra   rP  r6   truncparetor`   r9  rh   r   )rj   r/   r  rV   r   r|  s         r0   rI  zTestTruncPareto.test_pdf}%  sr    1KKS!1%))!,ll1o!!!$u||A':':1'==S!r2   r   TFr  r@  rP  c                    t         j                  j                  d      }d\  }}}}	t        j                  ||||	      }
|
j                  d|      }i }|r||d<   |r|	|d<   |r||d<   |r||d	<   |rM|rK|rI|rGd
}t        j                  t        |      5  t        j                  j                  |fi | d d d        y t        t        j                  |fi | y # 1 sw Y   y xY w)Nl   Z#Lm )rK  rL  r   r	  r[   rt  r   r   r   r   r   r  r  )ra   r   r   r6   rM  r   r   r   r  r   r   )rj   r   r  r@  rP  r   r/   r  r\   r]   rK   r   r   r  s                 r0   r  zTestTruncPareto.test_fit%  s     ii##$78+1c5  A3e<xxSsx3DL"DNDJDJyUuKG|7; 4!!%%d3d34 4 *%*;*;TJTJ4 4s   !CC%N)r   r   r   rI  r   r   r   r  r8   r2   r0   rI  rI  |%  s    " [[Yu6[[[4-8[[WtUm4[[WtUm4K 5 5 9 7Kr2   rI  c                       e Zd Zd Zy)
TestKappa3c                     dt         j                  j                  dd      z
  }t         j                  j                  dd      }t	        ||       y )Nr   rs   g     j@)r6   kappa3rh   r   r   )rj   sf0r  s      r0   r  zTestKappa3.test_sf%  s=     %,,""3,,llooc3'S!r2   N)r   r   r   r  r8   r2   r0   rP  rP  %  s    "r2   rP  rN  ))rR  NNNN)rJ  NNNN)r  NNNN)r(  NNNN)r9  NNNNc                    | \  }}}}}t        j                  d      }|xs d}|xs d}|xs d}|xs d}t        t        |      }t	        t
              |   } || }	t        j                  ||      }
|	j                  |	j                  |
            }t        ||
||       dt        j                  ||d      z
  }
|	j                  |	j                  |
            }t        ||
||       y )	Nrs   iir   r  r  r   r  )
ra   r  r$  r6   r	  r   r  r   r  r   )rN  r#  lp1lp2r   r}   lpmrK   rZ  dist_frozenr|  r   s               r0   test_sf_isf_overridesrY  %  s     &*"Hc3d
((3-C
+C
*C91D=5D5(#D(^H%F-K ++c3
C
..-
.CC4d3 bkk#sB'
'C
..-
.CC4d3r2   rm   )NF(  r  rn  r  r  rd  pathlibr   r
  r
  r  numpy.testingr   r   r   r   r   r	   r
   r   r   r   r   r  r8  ra   r   r   numpy.lib.recfunctionsr   r5   r   scipy._lib._utilr   r  r   r   r   r   scipy.statsr6   !scipy.stats._distn_infrastructurer   scipy.stats.distributionsscipy.specialr   r   r   scipy.stats._distr_paramsr   r   test_discrete_basicr   r   scipy.stats._continuous_distnsr    r!   scipy.optimizer"   r#   r$   	itertoolsr%   flagsoptimizer  r  r  r  r1   r9   rP   rR   r   r  r   r   r'  r)  rU  r  r  r  r  r  r  r  r-  r6  r^  r  r  r  r  r  r  r  r  r  r  r  rl  r  r  r  r  r  r  r"  r4  r^  r  r  r  r  r  r  r  r2  rG  rV  rf  rp  ry  r  r  r  r  r  r  rb   r^  r  r`  rq  r~  r  r  r  r  r  r  r  r  r$  r7  r9  rH  rP  r[  r`  r  r  r  r  rO  r}  r  r  r	  r	  r	  r)	  r7	  r>	  rL	  rR	  r}	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r#
  r  r%
  r'
  r*
  r,
  r/
  r1
  r3
  r6
  r9
  r;
  r>
  r@
  rB
  rD
  rF
  rL
  rN
  rQ
  rT
  rW
  rY
  r\
  r`
  rd
  rg
  ri
  rk
  rn
  rr
  rv
  r~
  r
  r
  r
  r
  r
  r<   r
  r
  r
  r
  r
  r
  r  r&  r)  r+  r-  r1  r4  r6  r9  rV  rd  rg  rp  rr  rt  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r#  r%  r+  r.  r0  rE  rI  rP  rY  r8   r2   r0   <module>ri     s[    	 
   	  A A A  *   " 4  /3 3  8   0 0 ; > C = =  ii((1,  ||x'M.>h.>.>.@H.L )6z'B $$8
F@ F@R4D.. >?

6?

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