
    ЏkhtN                    p   d Z ddlZddlZddlZddlZddlZddlmZ ddlZddl	Z	ddl
Z
ddlmZmZmZmZmZmZmZmZmZmZmZ ddlZddlmZ ddlZddlmZmZ ddlmZ ddl m!Z! dd	l"m#Z# dd
l$m%Z%m&Z&m'Z'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/Z ddl0m1Z1m2Z2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@ ddlAmBZB ej                  j                  dkD  ZEej                  dk(  xr  e
j                         dk(  ZGddgZHddZId ZJd ZK G d d      ZLddZMd ZNej                  j                  dg d       d!        ZQ G d" d#      ZR G d$ d%      ZS G d& d'      ZT G d( d)      ZU G d* d+      ZV G d, d-      ZW G d. d/      ZX G d0 d1      ZY G d2 d3      ZZ G d4 d5      Z[ G d6 d7      Z\ G d8 d9      Z] G d: d;      Z^ G d< d=      Z_ G d> d?      Z` G d@ dA      Za G dB dC      Zb G dD dE      Zc G dF dG      Zd G dH dI      Ze G dJ dK      Zf G dL dM      Zg G dN dO      Zh G dP dQ      Zi G dR dS      Zj G dT dU      Zk G dV dW      Zl G dX dY      Zm G dZ d[      Zn G d\ d]      Zo G d^ d_      Zp G d` da      Zq G db dc      Zr G dd de      Zs G df dg      Zt G dh di      Zu G dj dk      Zv G dl dm      Zw G dn do      Zx G dp dq      Zy G dr ds      Zz G dt du      Z{ G dv dw      Z| G dx dy      Z} G dz d{      Z~ G d| d}      Z G d~ d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zdd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  g	fd ej                  ddej                  z  z        dd ej                  ddej                  z  z        z  dd ej                  ddej                  z  z        z  dz  dd ej                  ddej                  z  z        z  dz  dd ej                  ddej                  z  z        z  dz  g	fdd ej                  dej                  z        z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  ddd ej                  dej                  z        z  z  dgfgZ G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d dë      Z G dĄ dū      Z G dƄ dǫ      Z G dȄ dɫ      Zdʄ Z G d˄ d̫      Z G d̈́ dΫ      Z G dτ dЫ      Z G dф dҫ      Z G dӄ dԫ      Z G dՄ d֫      Z G dׄ dث      Zdل Z G dڄ d۫      Z G d܄ dݫ      Z G dބ d߫      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d  d      Z G d d      Z G d d      Z G d d      Zd Zej                  js                  eEd	
      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 Zʐd Zːd Z̐d  Z͐d! Zej                  j                  d"d# ej:                  d$d%g      fd& ej:                  d'd(g      fd) ej:                  d*d+g      fd, ej:                  d-d.g      fg      d/        Zϐd0 ZАd1 Zѐd2 ZҐd3 Zej                  j                  d4g d5      d6        Zej                  j                  d7g d8      d9        Zej                  j                  d:g d;      d<        Z֐d= Zej                  j                  d4g d>      d?        Zؐd@ Z G dA dBe*j                        Z G dC dDe*j                        Z G dE dFe*j                        Z G dG dHe*j                        Z G dI dJ      Z G dK dL      Zej                  js                  eEdM
      dN        ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX Zej                  j                  d4g dY      dZ        Zej                  j                  d[d\d]g      d^        Zej                  j                  d_ddg d`fdadbg d`fdcddg defg      df        Zdg Zdh Zdi Z G dj dk      Zdl Z G dm dn      Z G do dp      Z G dq dr      Z G ds dt      Zdu Zej                  j                  dve9e6z         dw        Zdx Zdy Zej                  j                  d7dzd{g      d|        Zej                  j                  d:g d}      d~        Zd Zd Zd Z  G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zej                  j                  dg d      d        Zy(  z!
Test functions for stats module
    N)Path)assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_allcloseassert_assert_warnsassert_array_lesssuppress_warningsassert_array_max_ulpIS_PYPY)raises)	typecodesarray)rec_append_fields)special)check_random_state)IntegrationWarningquad	trapezoidcumulative_trapezoid)
argsreduce)_XMAX)xlogy	polygammaentr)distcontinvdistcont   )distdiscreteinvdistdiscrete)FitDataError
_argus_phi)rootfmindifferential_evolution)productdarwinx86_64tukeylambdapearson3c                 D    ||  d| }t        t        | |      |       y )Nz does not have attribute msg)r	   hasattr)abr/   s      `/var/www/teggl/fontify/venv/lib/python3.12/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattrr4   6   s(    
{,QC0GAqMs#    c                  L    t        t        j                  j                  d       y )Nf_gen)r4   scipystatsdistributions r5   r3   test_api_regressionr<   <   s    EKK--w7r5   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entropyc                 8    t        |       j                  d       S )N<)str
startswithss    r3   <lambda>z.test_distributions_submodule.<locals>.<lambda>K   s    A(9(9#(>$> r5   )setr8   r9   r:   __all__r   r!   filter)actualdist
continuousdiscreteotherexpecteds         r3   test_distributions_submodulerR   A   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            	       r   e Zd Zej                  j                  dg d      ej                  j                  dddej                  ddg      d               Zd	 Z	d
 Z
ej                  j                  dg d      d        Zej                  j                  dg d      d        Zd Zej                  j                  dg d      d        Zd Zej                  j                   ej                  j                  dddg      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                                    Zej                  j$                  d        Zej                  j                  d d!dg      d"        Zd# Zd$ Zd% Zy&)'TestVonMisesk)皙?r    e   xr   r    
   d   c                     d }d } ||dd|        ||dd|        ||dd|        ||dd|        ||dd|        ||dd|       y )Nc                     t        j                  | ||      }t        |j                  |      |j                  |dt        j
                  z  |z  z               y )Nlocscale   )r9   vonmisesr   pdfnppirU   LrG   rX   vms        r3   check_vonmises_pdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicT   s@    q2Bq	266!q255y1}2E+FGr5   c                     t        j                  | ||      }t        |j                  |      dz  |j                  |dt        j
                  z  |z  z        dz         y )Nr]   r    r`   )r9   ra   r   cdfrc   rd   re   s        r3   check_vonmises_cdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicX   sM    q2Bq	A "qAIM': ;a ?Ar5   r   r    rY   r;   )selfrU   rX   rh   rk   s        r3   test_vonmises_periodicz#TestVonMises.test_vonmises_periodicQ   sd    	H	A
 	$Aq!Q/#Aq!Q/#Aq"a0#Aq!Q/#Aq!Q/#Aq"a0r5   c                     t        t        j                  j                  t        j
                          t        t        j                  j                  t        j
                         y N)r   r9   vonmises_liner1   rc   rd   r2   rl   s    r3   test_vonmises_line_supportz'TestVonMises.test_vonmises_line_supporte   s8    U((**RUUF3U((**BEE2r5   c                 d    t        j                  d      }t        |j                  d      d       y )N   r         ?)r9   ra   r   rj   )rl   rg   s     r3   test_vonmises_numericalz$TestVonMises.test_vonmises_numericali   s"    ^^C BFF1Is+r5   zx, kappa, expected_pdf))rV   {Gz?g|65?)rV         9@g?U?)rV   rt   g"?)       @rw   gDfI?)ry   rx   g1<)ry   rt           c                 `    t         j                  j                  ||      }t        ||d       y NV瞯<rtol)r9   ra   rb   r   )rl   rX   kappaexpected_pdfrb   s        r3   test_vonmises_pdfzTestVonMises.test_vonmises_pdfw   s&     nn  E*\6r5   zkappa, expected_entropy))r    gA	?)   g,eޞ?)rZ   gBb9d22)  g
G )  gc                 ^    t         j                  j                  |      }t        ||d       y NvIh%<=r~   )r9   ra   rA   r   )rl   r   expected_entropyrA   s       r3   test_vonmises_entropyz"TestVonMises.test_vonmises_entropy   s%     ..((/!1>r5   c                 L   d}t         j                  j                  |      }t         j                  j                  |      }t         j                  j                  |      }t        j                  ddd      j                  |      }t        j                  ddt         j                  z  d      j                  |      }t        j                  dddt         j                  z  t        |      z  dz         j                  |      }t        ||d       t        ||d       y )	Ni@}r    r   r]   random_stater`   r}   atol)	rc   randomdefault_rngr9   ra   rvsrd   absr   )rl   seedrng1rng2rng3rvs1rvs2rvs3s           r3   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/r5   zx, kappa, expected_logpdf))rV   rw   gEJ?)rV   rx   goι?)rV   rt   g0,)ry   rw   gdty)ry   rx   gʹw[A)ry   rt   gc                 `    t         j                  j                  ||      }t        ||d       y r|   )r9   ra   logpdfr   )rl   rX   r   expected_logpdfr   s        r3   test_vonmises_logpdfz!TestVonMises.test_vonmises_logpdf   s&     &&q%0e<r5   c                    t         j                  j                  d      }|j                  d      dz  \  }}}t        j                  ||      j                  d       }t        |d       t        j                  |j                  t         j                        sJ ||dt         j                  z  z   f} t        j                  ||      j
                  d g| }t        |d       t        j                  |j                  t         j                        sJ ||dt         j                  z  z   f} t        j                  ||      j
                  d	 g|d
di}t        t        j                  |      |dt         j                  z  z         t        j                  |j                  t         j                        sJ y)a   
        Test that the vonmises expectation values are
        computed correctly.  This test checks that the
        numeric integration estimates the correct normalization
        (1) and mean angle (loc).  These expectations are
        independent of the chosen 2pi interval.
           kD +xNn    rY   r^   r   c                      yNr    r;   rX   s    r3   rH   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>       r5   r    r`   c                      yr   r;   r   s    r3   rH   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   r   r5   c                 2    t        j                  d| z        S )Ny              ?)rc   expr   s    r3   rH   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   s    BFF2a4L r5   complex_funcN)rc   r   r   r9   ra   expectr   
issubdtypedtypefloatingrd   anglecomplexfloating)rl   rngr^   r   lbresboundss          r3   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(:(:;;;r5   rvs_locr`   	rvs_shape)r    rZ       חAfix_locTF	fix_shapec                 F   |r|rt        j                  d       t        j                  j	                  d      }t
        j                  j                  |d||      }ddi}|r||d<   |r||d<   t        t
        j                  |t
        j                  j                  fi | y )	NzNothing to fit.r   r   )sizer^   r   fscaler    flocf0)
pytestskiprc   r   r   r9   ra   r   _assert_less_or_close_loglikennlf)rl   r   r   r   r   r   datakwdss           r3   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r5   c                 b   g d}t        j                  |      }dt         j                  z  }t        j                  j                  ||      \  }}}|t        j                  t              j                  k(  sJ t        t        j                  |t        j                  j                  d|       y )N)g!*Kg4,%OԿgZ۵?g
ge_@g-8gPghn?g<t?g.6@gjb?g0]o@g݅ZgSsgx7W?g%H?g65Jg:m2?g@g;,gM^lsF      ࿩r   r    )r   r   )rc   asarrayrd   r9   ra   fitfinfofloattinyr   r   )rl   r   r^   	kappa_fitloc_fit	scale_fits         r3   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r5   signc                 
   t         j                  j                  d      }t        j                  |dz  t         j
                  z  d      j                  d|      }|dt         j
                  z  z   }t        j                  j                  |      \  }}}t        j                  j                  |      \  }}	}
t        ||	       t        ||       |dk(  sJ t         j
                   |cxk  rt         j
                  k  sJ  J y )	Nr   ru   rY   r   順 r      r    )	rc   r   r   r9   ra   rd   r   r   r   )rl   r   r   r   shifted_datar   r   r   kappa_fit_shiftedloc_fit_shifted_s              r3    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'"%%'''''r5   c                    t        j                  d      }t        |j                  d      ddt        j
                  z  z  d       t        |j                  t        j
                  dz        dd       t        |j                  t        j
                   dz        dd       t        |j                  d      t        j
                  dz  d       t        |j                         dd	       t        |j                         dd	       t	        j                  t	        j                  |j                  d
d            t        j
                  k        sJ y )Nr   r    r`   r}   r~         ??皙?r   rY     r   r   )r9   ra   r   rb   rc   rd   rj   sfppfmeanr   allr   r   )rl   rM   s     r3   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Lr5   c                 n    t         j                  j                  dg      \  }}}|dk(  r
|dk(  r|dk(  sJ y )Nr   g 7yACr    )r9   ra   r   )rl   r   r^   r_   s       r3   test_vonmises_fit_equal_dataz)TestVonMises.test_vonmises_fit_equal_data  s:    !NN..s3sE}eqj88jr5   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?)r8   r9   ra   r   rc   rd   rq   s    r3   test_vonmises_fit_boundsz%TestVonMises.test_vonmises_fit_bounds  sT     	  !WA 6 	  "%%'9"5!6Q ?r5   N)__name__
__module____qualname__r   markparametrizerc   rd   rm   rr   rv   r   r   r   r   r   xslowr   slowr   r   r   r   r   r;   r5   r3   rT   rT   P   s   [[S-0[[S1aC"891 : 11$3, [[5/0707 [[6;<?<?0  [[8BC=C=<4 [[[[YA/[[[-8[[Yu6[[[4-8C 9 7 9 0 
C$ [[
O 
O [[Vb!W-
( .
(	M9
@r5   rT   c                 X   || j                   } | j                  |fi |}t        t        |       |   |fi |}|st	        j
                  ||k7        sJ  |||      } |||      }||k  st	        j                  ||d      sJ d|v r|d   |d   k(  sJ d|v r|d   |d   k(  sJ yy)a^  
    This utility function checks that the negative log-likelihood function
    (or `func`) of the result computed using dist.fit() is less than or equal
    to the result computed using the generic fit method.  Because of
    normal numerical imprecision, the "equality" check is made using
    `np.allclose` with a relative tolerance of 1e-15.
    Nr}   r~   r   r   r   )r   r   supertyperc   anyallclose)	rM   r   funcmaybe_identicalr   mle_analyticalnumerical_optll_mle_analyticalll_numerical_opts	            r3   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 r5   c           
         ddg}| j                   r.t        | j                   j                  d            }|g dd | z  }t        t	        |t        j                  t        |                        }g d}t        j                  t        d      5   | j                  |fi | d d d        t        j                  t        d      5  | j                  t
        j                  g       d d d        t        j                  t        d      5  | j                  t
        j                  g       d d d        t        j                  t        d	      5  | j                  |d
       d d d        t        j                  t        d      5   | j                  |gdgt        |      dz
  z    d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   vxY w# 1 sw Y   y xY w)Nr   r   ,)r   f1f2r    r`   r   3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:r`   )extra_keywordzToo many positional arguments.r    )shapeslensplitdictziprc   aranger   r   RuntimeErrorr   
ValueErrornaninf	TypeError)rM   paramnshapes	all_fixedr   s        r3   assert_fit_warningsr  <  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,rM   )alpha	betaprimefatiguelifeinvgammainvgauss
invweibull	johnsonsblevylevy_llognormgibratpowerlognormrayleighwaldc                    t        t              }||    }t        t        |       } t	         | j
                  | j                  g| d       t         | j                  | j                  g| t        j                          t	         | j
                  | j                  g| d       t         | j                  | j                  g| t        j                          y)zgh-6235r   N)r  r   getattrr9   r   rb   r1   r   r   rc   r  r2   )rM   dctargss      r3   test_supportr*  S  s     x.Ct9D5$D/$/3TVV+d+bffW5/$/3TVV+d+bffW5r5   c                   $    e Zd Zd Zd Zd Zd Zy)TestRandIntc                 B    t         j                  j                  d       y Nr   rc   r   r   rq   s    r3   setup_methodzTestRandInt.setup_methodf      
		tr5   c                 0   t         j                  j                  ddd      }t        t	        j
                  |dk        t	        j
                  |dk\        z         t        t        |      dk(         t         j                  j                  ddd      }t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  dd      }t        |dk\  |dk  z         t        t        |t        j                        t        t        |            	       t        j                  dd      j                  d
      }t        |j                  j                  t        d   v        y )Nr      rZ   r   r`   2   
AllInteger   .   r.   r   )r9   randintr   r	   rc   r   r
  shaper   charr   
isinstance
ScalarTypereprr   rl   valsvals      r3   test_rvszTestRandInt.test_rvsi  s   }}  BS 1tby!BFF419$556D	S !}}  BW 5')*

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

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

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

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

+,		)L"99:r5   c                    t        j                  d      }dt        j                  d      z  dt        j                  d      z  z
  }|j	                         }t        ||       t        j                  d      }|j	                         }t        |d       t        j                  d      }|j	                         }t        |d       y )Nre        пr   rz   rM  )r9   r  rc   logrA   r   r   )rl   r2   rh  ri  s       r3   rj  zTestBernoulli.test_entropy  s    OOD!266$<'$rvvd|*;;
IIK:&OOC IIKQOOC IIKQr5   N)r   r   r   r0  rC  rj  r;   r5   r3   r  r    s    	;r5   r  c                       e Zd Zd Zy)TestBradfordc                     d}t        j                  dd      }t        j                  j	                  ||      }t        j                  j                  ||      }t        ||       y )NrV   )rc   logspacer9   bradfordrj   r   r   )rl   crX   rx  xxs        r3   test_cdf_ppfzTestBradford.test_cdf_ppf  sM    KKR NNq!$^^1%2r5   N)r   r   r   r  r;   r5   r3   r  r    s    r5   r  c                   |   e Zd Zd Zej
                  j                  dddddddd	d
ddedfg      d        Zej
                  j                  dg d      ej
                  j                  de	j                  j                  dfe	j                  j                  dfg      d               Zej
                  j                  dg d      d        Zej
                  j                  dg d      ej
                  j                  de	j                  j                  dfe	j                  j                   dfg      d               Zy)
TestCauchyc                 P    t         j                  j                  d      }|dk(  sJ y )NZbtirz   )r9   cauchyrb   r  s     r3   test_pdf_no_overflow_warningz'TestCauchy.test_pdf_no_overflow_warning  s#     LLU#Cxxr5   x, ref)rz   罡HP)g       r  )gIL8r  )gOd@<r  ):0yU>gHP)Mb@?gP)rV   g*6y)      ?g8@(J)g NgmCg'K@$[U)r  gonьgs32c                 h    t         j                  j                  || g      }t        |||gd       y r|   )r9   r  r   r   )rl   rX   r~  logps       r3   test_logpdfzTestCauchy.test_logpdf
  s.     ||""Ar7+sCju5r5   ))g 7y1gu	lY<)g^?)r   re  )r   ru   )r    r   )r   g)nE?)g 7y1C?zmethod, sgnr    r   c                 6     |||z        }t        ||d       y r|   r   )rl   rX   r~  methodsgnro  s         r3   test_cdf_sfzTestCauchy.test_cdf_sf  s      3q5M3U+r5   ))gRyXsg!;v+͋)(,* EgjLҳ)      $@g
 )rz   9B.)g      $gCį)g:@sgg>Z)g 5g*\Bc                     t         j                  j                  |      }t        ||d       t         j                  j	                  |       }t        ||d       y N+<r~   )r9   r  logcdfr   logsfrl   rX   r~  r  r  s        r3   test_logcdf_logsfzTestCauchy.test_logcdf_logsf0  sF     $$Q'%0""A2&s/r5   zp, ref))#B;g8)&.>g/)re        )ru   rz   )r   rM  )!?gqmA)g?gqJRBc                 6    | ||      z  }t        ||d       y r|   r  )rl   ro  r~  r  r  rX   s         r3   test_ppf_isfzTestCauchy.test_ppf_isf?  s     q	M3U+r5   N)r   r   r   r  r   r   r   r   r  r9   r  rj   r   r  r  r   isfr  r;   r5   r3   r  r     sa    [[	#	&	%	'	$	#	#	#	#	$
$	%
	'(6(6
 [[	%	 [[
,,

A	
,,//2		 
,	,
 [[X;<0<0 [[	/	 [[
,,

A	
,,

B		!",	"	,r5   r  c                       e Zd ZdZdZd Zd Zd Zd Ze	j                  j                  ddefd	g      d
        Ze	j                  j                  dg d      d        Zy)TestChignT9;g2 >h?@c                 t    t         j                  j                  dd      }t        || j                  d       y )NrY   r   r}   r~   )r9   chir   r   CHI_SF_10_4rl   rG   s     r3   test_sfzTestChi.test_sf[  s(    IILLQ4++%8r5   c                 t    t         j                  j                  | j                  d      }t	        |dd       y )Nr   rY   r}   r~   )r9   r  r  r  r   rl   rX   s     r3   test_isfzTestChi.test_isf_  s(    IIMM$**A.2E*r5   c                 h    d}d}t         j                  j                  ||      }t        |dd       y )Nr  r8  gar  r~   )r9   r  r  r   )rl   rX   dfr  s       r3   test_logcdfzTestChi.test_logcdfc  s/    !!!R( 6UCr5   c                 h    d}d}t         j                  j                  ||      }t        |dd       y )Nrw   r8  @y`r  r~   )r9   r  r  r   )rl   rX   r  r  s       r3   
test_logsfzTestChi.test_logsfj  s-    		2&5EBr5   df, ref     @@)g  ļBgcAc                 Z    t        t        j                  j                  |      |d       y N-q=r~   )r   r9   r  r   rl   r  r~  s      r3   	test_meanzTestChi.test_meanw  s     			r*Ce<r5   ))-C6?gQ(݂)r    ńjɮ9?)r  gWr4'?)    _Bgr$h(?)}Ô%ITgs$h(?c                 b    t        t        j                  |      j                         |d       y r|   )r   r9   r  rA   r  s      r3   rj  zTestChi.test_entropy  s!     			"--/5Ar5   N)r   r   r   r  CHI_MEAN_1000r  r  r  r  r   r   r   r  rj  r;   r5   r3   r  r  R  s     'K $M9+DC [[Y"M279:=:= [[Y;<B<Br5   r  c                   l    e Zd Zd Zd Zej                  j                  dg d      d        Zd Z	d Z
y)	TestCrystalBallc                    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
       y)
        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.
              rN     Nr   rM  ry   betam)gF6Ɣ?g9nZ丘?g9b?g"i"w?g|^?g>?gG6ƴ?g9b?|^?߈܁r ?gTC?r  r  gm?gFZۤ?g
HB?gTXek?g?bȓE?gLZ;x?gJ>+=r~         @)g2c}`?g>t\f?g˂q?gg'T){?gmw?g>t\?h'T)?7-h	J?u8n?A#?g:Q?r  r  r  r  gZrԢ?g߄q?g)aL?gr'O<!?g99{-w>ru   r  r  r^   r_   )g3c}?g>t\?g˂?f'T)?#n?5-h	J??u8n?vL1??#?||P?g:Q?r  r  r  r  r  r  r  r  )rc   rR  r9   crystalballrb   r   r   rl   X
calculatedrQ   s       r3   rK  zTestCrystalBall.test_pdf  s     KKc2&s+ &&**13#*>
88 	K 	L 	*59 &&**13#*>
88 	J 	K 	*59 &&**13#3c*R
88 	G 	H 	*59r5   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
       y)r  r  rN  r  Nr   rM  ry   r  )ghQ|
)?gj,,?gd}9?gH6?g|^?gEv?glQ|
)?gd}9?g|^?go[?gsX?g&Ռ?g~M+?gZRc?gtE_s?gi?gB?gEg?gvP
?gx훟?r   r~   r  )g pr?g t\v?ge}?gݠn^?gCȘU?at\?ݠn^?~[n|D?gS4s/?2s?`qfhG?IgL?荩s?rA?IH?guk?ghi"?gP ?g.q?gs?ru   r  )go?r  ge?r  gPU,?r  gjݗ	?r  g?r  g_!Y?r  ga?r  gR?r  g(?r	  g܉x?r
  )rc   rR  r9   r  rj   r   r   r  s       r3   rU  zTestCrystalBall.test_cdf  s     KKc2&s+ &&**13#*>
88 	E 	F 	*59 &&**13#*>
88 	E 	F 	*59 &&**13#3c*R
88 	E 	F 	*59r5   zx, beta, m, rootref))      (@rM  ry   gI9)      "@      @      ?gy
 <)   rV   gjt?g+,)g      ry   r  gGA*?)g      >ru   rN  g^v'?)gd~Qr  皙?g眭?c                 d    t         j                  j                  |||      }t        ||d       y )Nr  r   r~   )r9   r  r   r   )rl   rX   r  r  rootrefr   s         r3   r  zTestCrystalBall.test_sf  s-     !!!$!!4G%0r5   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)zs
        All values are calculated using the pdf formula and the integrate function
        of Mathematica
        )ry   rM  r  ry   r  )r  r  ry   r  r  )rM  rM  rM  rM  rM  r   MbP?r~   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr    g
@gn(@r`   g?Җ)r   gMg'#@r   g('UHr   N)rc   r   r9   r  _munpr   r  )rl   r  r  expected_0th_momentcalculated_0th_momentnormr1   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                    r3   test_momentszTestCrystalBall.test_moments   s*    xx12HH./ !hh'@A % 1 1 7 74 C+-BO xxHIHHh"&&)YGH$h % 1 1 7 74 C+-BOHHbffbffbfffh?@$h % 1 1 7 74 C+-BOHHbffbffbffbffjAB$h % 1 1 7 74 C+-BOHHbffbffbffbffg>?$h % 1 1 7 74 C+-BOHHbffbffbffbffh?@$h % 1 1 7 74 C+-BOr5   c                     t        j                  dd      }|j                         }d\  }}}t        j                  |||      }t        t        |j                  |            |      }t        ||d       y )Nr`   r   )ir3  @ Hz>r~   )	r9   r  rA   rc   rR  r   r   rb   r   )rl   cbres1lohiNrX   res2s           r3   rj  zTestCrystalBall.test_entropyM  s`    q!$zz|&	BKKB"bffQi!,d.r5   N)r   r   r   rK  rU  r   r   r   r  r#  rj  r;   r5   r3   r  r    sE    <:|<:D [[	011+PZ/r5   r  c                   $    e Zd Zd Zd Zd Zd Zy)
TestNBinomc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestNBinom.setup_methodY  r1  r5   c                 n   t         j                  j                  ddd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  dd      }t        t        |t                     t        j                  dd      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y rZ  )r9   nbinomr   r	   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r3   rC  zTestNBinom.test_rvs\  s    ||Dw7tqy!"')*

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

+,		)L"99:r5   c           	      ,   t        t        j                  t        j                  j                  ddd            t        j                  j                  ddd             t        j                  j                  j                  ddd      }t        |d       y )Ni  i  gp=
ף?r   r    )	r   rc   r   r9   r1  logpmfrI  r8   r   )rl   rB  s     r3   rc  zTestNBinom.test_pmfg  sh    u||223TBC((c48	: kk  ''1a0S!r5   c                     t         j                  j                  g ddd      }t        j                  t         j                  j                  g ddd            }t        ||       y )N)r   r   r   r   333333@?rm  )r9   r1  r  rc   r  rj   r   rl   rA  r~  s      r3   test_logcdf_gh16159zTestNBinom.test_logcdf_gh16159o  sK    ||""<3$"?ffU\\%%lcT%BCc"r5   N)r   r   r   r0  rC  rc  r8  r;   r5   r3   r.  r.  X  s    	;#r5   r.  c                   
   e Zd Zd Zej
                  j                  d        Zej
                  j                  d        Zej
                  j                  d        Z	ej
                  j                  d        Z
d Zd Zd Zd	 Zy
)TestGenInvGaussc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestGenInvGauss.setup_methodw  r1  r5   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )Nffffff@r    r   r   皙?Tr9   geninvgausskstestr   rj   r   rl   gigr   ro  s       r3   test_rvs_with_mode_shiftz(TestGenInvGauss.test_rvs_with_mode_shiftz  I     S)||CGGDGA377K1QXt$r5   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )Nr   r   r>  r   r   r?  Tr@  rC  s       r3   test_rvs_without_mode_shiftz+TestGenInvGauss.test_rvs_without_mode_shift  sI     T*||CGGDGA377K1QXt$r5   c                     t        j                  dd      }t        j                  |j                  dd      |j                        \  }}t        |dkD  d       y )NrV   皙?r>  r   r   r?  Tr@  rC  s       r3   test_rvs_new_methodz#TestGenInvGauss.test_rvs_new_method  rF  r5   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?  )r9   rA  r   rB  rj   )ro  r2   rD  r   s       r3   my_ks_checkz4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_check  sE    ##Aq)C''t$'7C<<SWW-a0477r5   r   rJ  Tr   r  )r   )rl   rN  s     r3   test_rvs_p_zerozTestGenInvGauss.test_rvs_p_zero  s<    	8
 	[C($/[C($/[C($/r5   c                     t        t        j                  dd      j                  dd      dt        j                  dd      j                  dd      z         y )N      r`   rY   r   r   r    r  )r   r9   rA  r   rq   s    r3   test_rvs_negative_pz#TestGenInvGauss.test_rvs_negative_p  sP    !!$*..BT.JE%%c1-11r1MM	Or5   c                    t         j                  j                  dddd      }t        t        j                  |ddg      d   dkD  d	       d
t        j                  ddd      }}t         j                  j                  |dd|z  |      }t        |t        j                  |      j                  |             t         j                  j                  |dd|z  |      }t        |t        j                  |      j                  |             y )Nr>  r   r    r   )r   ro  r2   r   r  r)  333333?TrZ   rw   rY   )ro  r2   r_   )r9   rA  r   r   rB  rc   rR  rb   r   r  rj   )rl   igmurX   pdf_igcdf_igs         r3   test_invgausszTestGenInvGauss.test_invgauss  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:r5   c                     t        j                  g d      }t        j                  ddd      }t        |t        j
                  j                  |dd             y )N)
g;g8y8?g\}Z?ghܲ<?g&Khdd?g7!L?g	Cf?g_诱?g>0|?gRq?rw   r   rY   ru   r    )rc   r   rR  r   r9   rA  rb   )rl   vals_RrX   s      r3   
test_pdf_RzTestGenInvGauss.test_pdf_R  sJ      , - KKa$ 1 1 5 5aa @Ar5   c                     t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       y )Nr   ru   g    >Ar6  r`   )r   r9   rA  rb   rq   s    r3   test_pdf_zerozTestGenInvGauss.test_pdf_zero  sB    U&&**1c37; 	U&&**3A6:r5   N)r   r   r   r0  r   r   r   rE  rH  rK  rO  rR  rZ  r]  r_  r;   r5   r3   r:  r:  v  s     [[% % [[% % [[% % [[0 0O	;	B;r5   r:  c                       e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  dg d      d        Z
d	 Zd
 Zd Zd Zd Zd Zy)TestGenHyperbolicc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestGenHyperbolic.setup_method  r1  r5   c                     t        j                  g d      }d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  ddd      }	t        |j                  |	      |dd	       y )
N)
gF^T=g{X'=gNunƢsy>g7!t?gɫzI?g̸?g?gq6.?gmPZz?g:PgN?r`   r`   r    ru   r  r]   rY   r   r   r   r   )rc   r   r9   genhyperbolicrR  r   rb   
rl   r\  lmbdar  r  rW  deltar)  ghrX   s
             r3   
test_pdf_rzTestGenHyperbolic.test_pdf_r  s~        %ud	EuU{DJ/  $Be<KKR$q	6>r5   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?rd  re  r]   rf  rY   r   ư>rg  )rc   r   r9   rh  rR  r   rj   ri  s
             r3   
test_cdf_rzTestGenHyperbolic.test_cdf_r  s~        %ud	EuU{DJ/  $Be<KKR$q	6=r5   zx, p, a, b, loc, scale, ref)
)r`   r   r  ru   r  g8ɹvF(;)rq  rY   r  re  r    r   g[Ϡ?)rq  rY   r  g      ?r   r    g ✝`D;)rq        ?r  ):?r   r    gdL;)r   rr  r  rs  r   r    gzK^7?)r         r  rs  r   r    gj?)r   rt  r     r   r    ga=vG:)r  rt  r   ru  r   r    g?)(   rt  r   ru  r   r    g1bV?)<   rt  r   ru  r   r    g?c                 j    t         j                  j                  ||||||      }t        ||d       y Nr]   dy=r~   )r9   rh  rj   r   )	rl   rX   ro  r1   r2   r^   r_   r~  rj   s	            r3   test_cdf_mpmathz!TestGenHyperbolic.test_cdf_mpmath  s3     !!%%aAqc%GSu-r5   ))r   ro  rO  r   r   r    gC!,?)r   r         @      @r    r   g,Ћf?)r  r   r|  r}  r    r   rM  )   r`   r   r  ru   r  gm"چ>),  rY   r  re  r    r   g:;)rw  rt  r   ru  r   r    gw=)K   rt  r   ru  r   r    g3Z0&K<c                 j    t         j                  j                  ||||||      }t        ||d       y ry  )r9   rh  r   r   )	rl   rX   ro  r1   r2   r^   r_   r~  r   s	            r3   test_sf_mpmathz TestGenHyperbolic.test_sf_mpmath  s3       ##Aq!QCu#ECe,r5   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@rd  re  r    r   r]   r   r   rg  )ranger9   rh  momentr   )
rl   r\  rj  r  r  rW  rk  r)  ivals_uss
             r3   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 )	Nrd  re  r]   r>  r   r   r?  T)r9   rh  rB  r   rj   r   )
rl   rj  r  r  rW  rk  r)  rl  r   ro  s
             r3   rC  zTestGenHyperbolic.test_rvs,  st     %ud	EuU{DJ/  $Be<||BFF4F@"&&I1QXt$r5   c                 6   t        j                  ddd      }t        j                  |d      t        j                  t         j                        j
                  z  d}}dt        j                  |      }}| dz  ||f}t        j                  |||d}t        j                  |j                  d      |j                  d      d	      d d t         j                  f   }t        |j                  |      t        j                  j                  ||      dd
       y )Nr    r3  rY   r`   r   r]   rw   Gz?r6  ro  rg  )rc   rR  float_powerr   float32epssqrtr9   rh  r   newaxisr   rb   t)	rl   r  r  r  rW  rk  r)  rl  rX   s	            r3   
test_pdf_tzTestGenHyperbolic.test_pdf_t9  s    [[B# nnR+BHHRZZ,@,D,DDatrwwr{EAud#  $Be<KKtbffTlB72::FFF1Iuww{{1b)	r5   c                    dt        j                  t         j                        j                  d}}}d\  }}|||f}t	        j
                  |||d}t        j                  |j                  d      |j                  d      d      d d t         j                  f   }t        |j                  |      t        j                  j                  |      dd	       y )
Nr   r   )r   r    r]   rw   r  r6  ro  rg  )rc   r   r  r  r9   rh  rR  r   r  r   rb   r  )	rl   rj  r  r  rW  rk  r)  rl  rX   s	            r3   test_pdf_cauchyz!TestGenHyperbolic.test_pdf_cauchyK  s    
 "288BJJ#7#;#;Qdu	Eud#  $Be<KKtbffTlB72::FFF1Iu||''*	r5   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 )Nrf  rY   )r    r    r   r]   r  r  r6  r    r   dy=rg  )rc   rR  r   r  r  r9   rh  r  r   rb   laplace)	rl   r^   rk  rj  r  r  r)  rl  rX   s	            r3   test_pdf_laplacez"TestGenHyperbolic.test_pdf_laplace\  s    kk#r2& $(($uduU{DJ/   $Cu=KKR$Q

]3FF1Iu}}((1(=	r5   c           
      \   t        j                  ddd      t        j                  ddd      t        j                  dt        d            z  t        j                  ddd      t        j                  ddd      f\  }}}}d	}|||z  ||z  f}t	        j
                  |||d
}t        j                  |j                  d      |j                  d      d      d d t         j                  f   }t        |j                  |      t        j                  j                  |||||      dd       y )Nr    r  rY   r      r   rZ   r   r]   rw   r  r6  )r1   r2   r^   r_   r   rg  )rc   rR  r  r  r9   rh  r   r  r   rb   norminvgauss)	rl   r  r  rk  rW  rj  r)  rl  rX   s	            r3   test_pdf_norminvgaussz'TestGenHyperbolic.test_pdf_norminvgaussq  s    Ar2&Ar2&r~~b%)'DDAq"%D#r*	"tUB uu}dUl3  $Be<KKtbffTlB72::FFF1Iu))--Ud% . 9	r5   N)r   r   r   r0  rm  rp  r   r   r   r{  r  r  rC  r  r  r  r  r;   r5   r3   ra  ra    s    ?,>4 [[%		<.. [[%	@	-	-=.%$"*r5   ra  c                       e Zd Zej                  j                  dddg      d        Zej                  j                  dddg      d        Zd	 Zy
)TestHypSecantzx, reference)r3  gA0=)r6  g!b;c                 ^    t         j                  j                  |      }t        ||d       y r  )r9   	hypsecantr   r   )rl   rX   	referencer   s       r3   r  zTestHypSecant.test_sf  s$     __"IE2r5   zp, reference)ro  g9bT*@)r  gTW-;@c                 ^    t         j                  j                  |      }t        ||d       y r  )r9   r  r  r   )rl   ro  r  rX   s       r3   r  zTestHypSecant.test_isf  s$     OO"951r5   c                     d}d}t         j                  j                  |      }t        ||d       t         j                  j	                  |       }t        ||d       y )N      I@g!br  r~   )r9   r  r  r   r  r  s        r3   r  zTestHypSecant.test_logcdf_logsf  sN    %''*%0%%qb)s/r5   N)	r   r   r   r   r   r   r  r  r  r;   r5   r3   r  r    sg    
 [[^9:<=3=3 [[^89;<2<20r5   r  c                   ~    e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	d Z
d Zd	 Zd
 Zy)TestNormInvGaussc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestNormInvGauss.setup_method  r1  r5   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  r      r8  r    ru   r1   r2   r  r   )rc   r   r9   r  rj   r   )rl   r_cdfx_testvals_cdfs       r3   
test_cdf_RzTestNormInvGauss.test_cdf_R  sO      < =,-%%))&A)=%d3r5   c                     t        j                  g d      }t        j                  g d      }t        j                  j	                  |dd      }t        ||d       y )N)gp϶>g\H55$?geСt&?go NiH?g]u>r  r    ru   r  r  r   )rc   r   r9   r  rb   r   )rl   r_pdfr  vals_pdfs       r3   r]  zTestNormInvGauss.test_pdf_R  sM     < =,-%%))&A)=%d3r5   zx, a, b, sf, rtol))r   r    r   !7?r   )r~  r    r   ?=r  )r    r   rQ  gy5`?r  )rY   r   rQ  gMLC9r  c                     t         j                  j                  |||      }t        |||       t         j                  j	                  |||      }t        |||       y Nr~   r9   r  r   r   r  )rl   rX   r1   r2   r   r   rG   r  s           r3   test_sf_isf_mpmathz#TestNormInvGauss.test_sf_isf_mpmath  sP     !!!Q*2D)""2q!,14(r5   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   r  r  r   r|  r_  ro  r~   r  )rl   rX   r1   r2   r   rG   r  s          r3   test_sf_isf_mpmath_vectorizedz.TestNormInvGauss.test_sf_isf_mpmath_vectorized  sr    HF "89!!!Q*2E6""2q!,14(r5   c                     t        j                  dd      }t        j                  ddd      }|j	                  |      }|j                  |      }t        ||       y )Nr    r   r  r`   )r9   r  rc   r  r   r  r   )rl   dstrX   r   r  s        r3   test_gh8718zTestNormInvGauss.test_gh8718  sJ      A&IIaQVVAYggbkQr5   c                 (   d\  }}t        j                  |dz  |dz  z
        }||z  |dz  |dz  z  d|z  |t        j                  |      z  z  ddd|dz  z  |dz  z  z   z  |z  f}t        |t        j                  j                  ||d             y )	Nr    ru   r`   r   r  r    r   mvskmoments)rc   r  r   r9   r  )rl   r1   r2   gammav_statss        r3   
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Mr5   c                     d\  }}t        j                  g d      }t        j                  j	                  |||      }t        |t        j                  j                  |||             y )Nr  r  ru   r  )rc   r   r9   r  r   r   rj   )rl   r1   r2   r  rA  s        r3   test_ppfzTestNormInvGauss.test_ppf  sS    1-.!!%%fa3 2 2 6 6tQ BCr5   N)r   r   r   r0  r  r]  r   r   r   r  r  r  r  r  r;   r5   r3   r  r    sU    
44 [[0JK
)K
)	) NDr5   r  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)TestGeomc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestGeom.setup_method  r1  r5   c                 h   t         j                  j                  dd      }t        t	        j
                  |dk\               t        t	        j                  |      dk(         t        |j                  j                  t        d   v        t         j                  j                  d      }t        t        |t                     t        j                  d      j                  d      }t        t        |t        j                               t        |j                  j                  t        d   v        y )Nr   r5  r4  r   r7  r   )r9   geomr   r	   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r3   rC  zTestGeom.test_rvs  s    zz~~d~1tqy!"')*

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

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

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

ue4cFr5   c                 f    t        j                  d      j                         }t        |dd       y )Ng<,Ԛ?g۩@r}   r~   )r9   r  rA   r   )rl   ri  s     r3   test_entropy_gh18226zTestGeom.test_entropy_gh18226+  s(     JJv&&(,59r5   c                     t         j                  j                  d      }t        j                  j                  dd|      dkD  j                         sJ y )NiKH9rY   r   r   )rc   r   RandomStater9   r  r   r   )rl   r   s     r3   test_rvs_gh18372zTestGeom.test_rvs_gh183721  sB     yy,,Y7

u2LIAMRRTTTr5   N)r   r   r   r0  rC  r  rc  r  r  r  r  r  r  r  r;   r5   r3   r  r    s<    	;4<7@2
G:Ur5   r  c                       e Zd Zd Zd Zd Zy)
TestPlanckc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestPlanck.setup_method9  r1  r5   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )Nr  rN  )g|dy?g8'\>ggrU!>)r9   planckr   r   r   r  s      r3   r  zTestPlanck.test_sf<  s1    ||y"- 2 3 	"$1r5   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )N)r       @@     p@r  )g    P.g    h>g    TF)r9   r  r  r   r   r  s      r3   r  zTestPlanck.test_logsfC  s.    ||!!"7?:;!$1r5   N)r   r   r   r0  r  r  r;   r5   r3   r  r  8  s    22r5   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    )r9   gennormrb   r  r   rl   pointspdf1pdf2s       r3   test_laplacezTestGennorm.test_laplaceJ  s;    }}  +}}  (D$'r5   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y Nr  r`   g;f?r_   )r9   r  rb   r  r   r  s       r3   	test_normzTestGennorm.test_normQ  s=    }}  +zz~~fF~3D$'r5   c                    t         j                  j                  d      }t        j                  d      }|j                  d|      }t        j                  ||j                        j                  dkD  sJ t        j                  d      }|j                  d|      }t        j                  j                  d|      }t        j                  ||      j                  dkD  sJ t        j                  d      }||_        |j                  d|      }t        j                  j                  dd|	      }t        j                  ||      j                  dkD  sJ y )
Nr   ru   r   r   rV   r    r`   g;f?r_   r   r   )rc   r   r  r9   r  r   rB  rj   pvaluer  ks_2sampr   r  )rl   r   rM   r   rvs_laplacervs_norms         r3   rC  zTestGennorm.test_rvsX  s   ii##A&}}S!hhDsh3||C*11C777}}QhhDsh3mm''T'D~~c;/66<<<}}QhhDsh3::>>t#>N~~c8,33c999r5   c                    t         j                  j                  d      }t        j                  ddgddgg      }||_        |j                  g d      }t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ t        j                  |d d ddf   t        j                  d      j                        d   d	kD  sJ y )
Nr   ru   rM  ry   rN  )r   r`   r`   r4  r    rV   )	rc   r   r   r9   r  r   r   rB  rj   )rl   r   rM   r   s       r3   test_rvs_broadcastingz!TestGennorm.test_rvs_broadcastingj  s%   ii##A&}}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Jr5   N)r   r   r   r  r  rC  r  r;   r5   r3   r  r  I  s    ((:$Kr5   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   r9   r"  r   r  rl   rX   sfxs      r3   test_sf_isfzTestGibrat.test_sf_isf  s8     	*Ce<((-qu=r5   N)r   r   r   r   r   r   r  r;   r5   r3   r	  r	  u  s5     [[X(A(E(G H>H>r5   r	  c                       e Zd Zd Zej
                  j                  dg d      d        Zd Z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    )r9   gompertzr   rj   r   r  s     r3   test_gompertz_accuracyz#TestGompertz.test_gompertz_accuracy  s3    NNu~~11&!<a@6"r5   z	x, c, sfx))r    r|  g|t?)r   r|  g(fMr;)r?  r   g[?)      @r   gg[<c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y Nr  r~   )r   r9   r  r   r  )rl   rX   r  r  s       r3   r  zTestGompertz.test_sf_isf  s>    
 	))!Q/5A**32AEBr5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )N       @rV   g_r  r~   )r9   r  r  r   )rl   rX   r  r~  r  s        r3   r  zTestGompertz.test_logcdf  s3    %&&q!,%0r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Ng"ul/rO  gH7Wr  r~   )r9   r  r  r   )rl   rX   r  r~  r  s        r3   r  zTestGompertz.test_logsf  s3    $$Q*s/r5   c, ref))r  geUT8?)r    gtqq?)r   gs{)r  gN*6c                 Z    t        t        j                  j                  |      |d       y r  )r   r9   r  rA   rl   r  r~  s      r3   rj  zTestGompertz.test_entropy  s    
 	..q13UCr5   N)r   r   r   r  r   r   r   r  r  r  rj  r;   r5   r3   r  r    so    #" [[[ +M NC	NC10 [[X (E FD	FDr5   r  c                   T    e Zd Zej                  j                  dddg      d        Zy)TestFoldNorm	x, c, ref)r  :0yE>g:0N<?)r  r  g:?c                 \    t        t        j                  j                  ||      |d       y r|   )r   r9   foldnormrj   rl   rX   r  r~  s       r3   rU  zTestFoldNorm.test_cdf  s!     	**1a0#EBr5   N)r   r   r   r   r   r   rU  r;   r5   r3   r#  r#    s7     [[[+N+M+O PCPCr5   r#  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zej                  j                  dd	d
g      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                             Zd Z	y)TestHalfNormr
  )r    |N?)rY   Oul2;c                     t        t        j                  j                  |      |d       t        t        j                  j	                  |      |d       y r  )r   r9   halfnormr   r  r  s      r3   r  zTestHalfNorm.test_sf_isf  s:     	))!,c>**3/?r5   r  ))Ww'&l7g;G<^͛7)C]r2<gE~o-<)r  g?c                 Z    t        t        j                  j                  |      |d       y r|   )r   r9   r.  rj   rl   rX   r~  s      r3   rU  zTestHalfNorm.test_cdf  s     	**1-s?r5   r   h㈵>r  	rvs_scalerw   rZ   r   r   TF	fix_scalec                    t         j                  j                  d      }t        j                  j                  ||d|      }|rK|rId}t        j                  t        |      5  t        j                  j                  |||       d d d        y i }|r||d<   |r||d<   t        t        j                  |fi |d	d
i y # 1 sw Y   y xY wNr   r   r^   r_   r   r   r  r  r   r   r   r   r   T)rc   r   r   r9   r.  r   r   r   r  halflogisticr   r   	rl   r   r4  r   r6  r   r   	error_msgr   s	            r3   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#   r9   r.  r   rq   s    r3   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  rU  r   r@  r;   r5   r3   r*  r*    s     [[X(?(C(E F@F@ [[X (A B@B@ [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<22r5   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   r3  r  r4  rw   r   r   TFr6  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   r9  r  r  r:  r   r   )rc   r   r   r9   r.  r   r   r   r  
halfcauchyr   r   r<  s	            r3   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#   r9   rE  r   rq   s    r3   r@  zTestHalfCauchy.test_fit_error1  s<    ]]<( 	4   3	4 	4 	4rA  N)r   r   r   r   r   r   r   r@  r;   r5   r3   rC  rC    s    [[Yt5[[[4+6[[Yu6[[[4-8F 9 7 7 6F,4r5   rC  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zd Zd	 Z	ej                  j                  d
ddg      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                             Z
d Zy)TestHalfLogisticr  )rZ   ]6)   L-c                 Z    t        t        j                  j                  |      |d       y r|   )r   r9   r;  r   r2  s      r3   r  zTestHalfLogistic.test_sf?  s!     	**--a0#EBr5   q, ref))rI  rZ   )rK  rJ  )硏v?g   .!>)g?g      <c                 Z    t        t        j                  j                  |      |d       y r|   )r   r9   r;  r  rl   rx  r~  s      r3   r  zTestHalfLogistic.test_isfK  s!    
 	**..q13UCr5   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Ng      >@guVJr  r~   )r9   r;  r  r   rl   rX   r~  r  s       r3   r  zTestHalfLogistic.test_logcdfR  s.    $##**1-%0r5   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Nr  g+r  r~   )r9   r;  r  r   rl   rX   r~  r  s       r3   r  zTestHalfLogistic.test_logsfY  s.    $""((+s/r5   r   r3  r  r4  r5  r   TFr6  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r8  )rc   r   r   r9   r;  r   r   r   r  r   r   )	rl   r   r4  r   r6  r   r   r   r=  s	            r3   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#   r9   r;  r   rl   r/   s     r3   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  r   rY  r;   r5   r3   rH  rH  7  s     [[X(D(D(F GCGC [[X (K LD	LD10 [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<26r5   rH  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  )r9   halfgennormrb   exponr   r  s       r3   
test_exponzTestHalfgennorm.test_expon  s;      $$VQ/{{v&D$'r5   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y r  )r9   r]  rb   r.  r   r  s       r3   test_halfnormzTestHalfgennorm.test_halfnorm  sB      $$VQ/~~!!&!7D$'r5   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        |d|z         y )Nr  g
(?r`   )r9   r]  rb   r  r   r  s       r3   test_gennormzTestHalfgennorm.test_gennorm  sC      $$VW5}}  1D!D&)r5   N)r   r   r   r_  ra  rc  r;   r5   r3   r[  r[    s    ((*r5   r[  c                       e Zd Zd Zd Zd Zy)TestLaplaceasymmetricc                     t        j                  g d      }t        j                  j	                  |d      }t        j
                  j	                  |      }t        ||       y r  )rc   r   r9   laplace_asymmetricrb   r  r   r  s       r3   r  z"TestLaplaceasymmetric.test_laplace  sF    )$''++FA6}}  (d#r5   c                     t        j                  g d      }d}d|z  }t        j                  j	                  ||      }t        j                  j	                  ||dz  z  |      }t        ||       y )Nr  r`   r    )rc   r   r9   rg  rb   r   )rl   r  r   kapinvr  r  s         r3   test_asymmetric_laplace_pdfz1TestLaplaceasymmetric.test_asymmetric_laplace_pdf  sa    )$5''++FE:''++FE1H,=vFd#r5   c           
         t        j                  t        j                  d       t        j                  d      g      }d}t        j                  j                  ||      }t        j                  j                  ||      }t        j                  j                  ||      }t        j                  ddg      }t        j                  ddg      }t        j                  dd	g      }t        j                  j                  ||      }	|}
t        j                  j                  ||      }|}t        t        j                  ||||	|f      t        j                  ||||
|f             y )
N   rY   r`   rV   gMbp?rJ  V-?r   gMb`?)rc   r   r  r9   rg  rb   rj   r   r   r  r   concatenate)rl   r  r   r  cdf1sf1r  cdf2sf2ppf1ppf2isf1isf2s                r3   !test_asymmetric_laplace_log_10_16z7TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16  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r5   N)r   r   r   r  rj  rw  r;   r5   r3   re  re    s    $$Gr5   re  c                      e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zd Z	d Z
d	 Zd
 Zd Zd Zd Zg dg dg dg ddej"                  ddddgej"                   dddddgg dg dg dg	Z ej&                  e      Zej
                  j                  de      d        Zd Zd Zd  Zd! Zd" Zd# Zy$)%TestTruncnormc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestTruncnorm.setup_method  r1  r5   	a, b, ref))r   rZ   r  )333333?ffffff?gܲl)ro  g>g+c                 \    t        t        j                  j                  ||      |d       y N绽|=r~   r   r9   	truncnormrA   rl   r1   r2   r~  s       r3   rj  zTestTruncnorm.test_entropy  s!    $ 	//15sGr5   ))r  r  ghiɮ9?)r  r  r  )g0.+r  r  )}Ô%Ir  Z_2?c                 \    t        t        j                  j                  ||      |d       y r  r  r  s       r3   test_extreme_entropyz"TestTruncnorm.test_extreme_entropy  s!      	//15sGr5   c           	          t         j                  j                  g ddddgdz  d      }t        j                  t        j
                  dd	dd
dt        j
                  g      }t        ||       y )Nr   r   r  ru   H.?r    r`   r  rM  r      r`   r]   r    fO?l@r   )r9   r  r   rc   r   r  r   r  s      r3   test_ppf_ticket1131z!TestTruncnorm.test_ppf_ticket1131  \    ""#EsB()s1uA # 788RVVQ
Az1bffMN!$1r5   c           	          t         j                  j                  g ddddgdz  d      }t        j                  t        j
                  dd	dd
dt        j
                  g      }t        ||       y )Nr  r  rM  r   r  r`   r]   r   r  r  r    )r9   r  r  rc   r   r  r   r  s      r3   test_isf_ticket1131z!TestTruncnorm.test_isf_ticket1131  r  r5   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)irf  r   r    rY   r4  )rY      r9   r  r   r	   minr  rl   lowhighrX   s       r3   test_gh_2477_small_valuesz'TestTruncnorm.test_gh_2477_small_values  s    	TOOT1ab9aeeg..$./	TOOT1ab9aeeg..$././r5   c                 Z   d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc       t        |||g      f d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr  |j                         cxk  xr
 |k         y c        y )	N)rZ   rW   r   r    rY   r4  )r     )'  i'  )i)r9   r  r   r	   r  r  rD   r  s       r3   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..$././r5   c                    ddgddgfD ]  \  }}t        j                  t         j                   ||t         j                  g      }||z   dz  }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  g d      }t        j                  g d      }	t        j                  g d      }
|d	k  rt        j                  g d
      }
t        ||       t        ||	       t        ||
       t        t        j                  |
d   |
d   z        |dz          t        j                  g d      }t        j                  j                  |||      }t        j                  |t        j                  |      dz  |g      }t        ||       |d	k  rWt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       nVt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       t        j                  j                  |||      }t        t        j                  ||
d   z        |dz   dz          y )Nr   r   r  ry   r   r   r    r    rM  rM  rz   rz   )r   d._MT
@BKg?r   r   )r   r  r  r   r    r`   ru   r   ru   rM  gĖy	@gdv*?g,mj%V?re  )rc   r   r  r9   r  rj   r   rb   r   r  r   r   )rl   r  r  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsrb   s                  r3   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r5   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'   rv  iry   r  r  )r   pGC@Ff<r   r   )r   r  r  r   r    r`   ru   r  gEC@g i?gspXio)>re  r  r   )rc   r   r  r9   r  rj   r   rb   r   r  r   r   rR  )rl   r  r  r  r  r  r  r  r  r  r  r  r  r  rb   xvals2s                   r3   test_gh_9403_medium_tail_valuesz-TestTruncnorm.test_gh_9403_medium_tail_values3  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r5   c                     t        t        j                  dd      j                  d      d       t        t        j                  dt        j
                        j                  d      d       y )Ng      *@      .@      ,@g T?r  g @gR?)r   r9   r  rj   rc   r  rq   s    r3   test_cdf_tail_15110_14753z'TestTruncnorm.test_cdf_tail_15110_14753b  sN    
 	S155c:*	,266266s;*	,r5   )r3  rz   rM  rz   rz   )rf  rY   rz   rM  rz   gLFu)r  r   rz   gMFmz%?rz   gſ)r   r`   rz   ghI}?rz   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r   r   gU*? bn?gnA??c3TXʿ)r  r    gU*ҿr  gnAr  )rf  g"$7"gOxr?gp7`g'>K@casec                     |\  }}}}}}t         j                  j                  ||d      \  }}	}
}t        ||	|
|g||||gd       y )Nr  r  FFg<r   )r9   r  r   )rl   r  r1   r2   m0v0s0k0r  vrG   rU   s               r3   r#  zTestTruncnorm.test_moments  sT    #1b"b"__**1a*@
1aAq!r2r2&6UCr5   c                     t         j                  j                  dt        j                  d      \  }}t	        |d       t	        |d       y )Nr   mvr  g e3E?g:&A?)r9   r  rc   r  r   )rl   r  r  s      r3   test_9902_momentszTestTruncnorm.test_9902_moments  s9    $$Q$=1Az*Az*r5   c                     d\  }}t         j                  j                  ||ddd      }t        ||j	                         cxk  xr  |j                         cxk  xr
 |k         y c        y )N)rY   r8  r   r    rY   r4  r  r  s       r3   test_gh_1489_trac_962_rvsz'TestTruncnorm.test_gh_1489_trac_962_rvs  sS    	TOOT1ab9aeeg..$././r5   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 )Nrf  rY   r  irv  r  r   r  -   r4  r   )axis)rc   r  r9   r  r   r
  r;  r	   r   r  r  r  s       r3   test_gh_11299_rvszTestTruncnorm.test_gh_11299_rvs  s     BbffWrvvgsCS"MB2662sBRHOOTCH>xx{q#c(m+++saeeem+,-quu!u},-.r5   c                     t        t        j                  d      r@t        j                  j                  dddt        j                  j                                y y )Nr   rf  r  r   r   )r0   rc   r   r9   r  r   r   rq   s    r3   test_rvs_Generatorz TestTruncnorm.test_rvs_Generator  sC    299m,OORa-/YY-B-B-D   F -r5   c                    t        j                  t         j                   t         j                   dt         j                   dg      }t        j                  t         j                  t         j                  ddt         j                  g      }t        j                  g d      }g d}t        t	        j
                  ||      j                  |      |       t        t	        j
                  | |       j                  |       |       y )NrY   r  )rY         @r  	   r  )gOul"gځ=!gL!g>EG	f g^K[X)rc   r   r  r   r9   r  r  r  )rl   r1   r2   rX   rQ   s        r3   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Dr5   c                 j    t        j                  dd      j                  d      }d}t        ||       y )Nr   r   r   gl).0S?)r9   r  r  r   )rl   r   r~  s      r3   test_moments_gh18634z"TestTruncnorm.test_moments_gh18634  s0     oob!$++A.  S!r5   N)r   r   r   r0  r   r   r   rj  r  r  r  r  r  r  r  r  rc   r  _truncnorm_stats_datar   r#  r  r  r  r  r  r  r;   r5   r3   ry  ry    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"r5   ry  c                      e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zej                  j                  ddd	g      d
        Zej                  j                  dddg      d        Z	ej                  j                  dddg      d        Z
ej                  j                  dddg      d        Zy)TestGenLogisticx, expected))ig4`n)ig4	ncg)r   gX
=)rZ   gh@X)r   gh<c                 d    d}t         j                  j                  ||      }t        ||d       y )Nr  r   r~   )r9   genlogisticr   r   )rl   rX   rQ   r  r  s        r3   r  zTestGenLogistic.test_logpdf  s-       ''1-hU3r5   r  ))r  gTKEl@)r  gJk$@)r   gsF<?)r  7~F<?c                 Z    t        t        j                  j                  |      |d       y r  )r   r9   r  rA   r!  s      r3   rj  zTestGenLogistic.test_entropy  s!    
 	))11!4cFr5   r$  )rJ  rY   g8.)  r  gpT	oc                 \    t        t        j                  j                  ||      |d       y r  )r   r9   r  r   r(  s       r3   r  zTestGenLogistic.test_sf  s#     	)),,Q2CeDr5   	q, c, ref)rw   rJ  g^ #@)r  r`   gGFf@c                 \    t        t        j                  j                  ||      |d       y NV瞯<r~   )r   r9   r  r  rl   rx  r  r~  s       r3   r  zTestGenLogistic.test_isf  #     	))--a3SuEr5   )ru   rJ  gİ@)r  r  g1a@c                 \    t        t        j                  j                  ||      |d       y r  )r   r9   r  r   r  s       r3   r  zTestGenLogistic.test_ppf   r  r5   )rZ   {Gz?g(?)r6  r  g'Tn7c                 \    t        t        j                  j                  ||      |d       y r|   )r   r9   r  r  r(  s       r3   r  zTestGenLogistic.test_logcdf  s#     	))00A6%Hr5   N)r   r   r   r   r   r   r  rj  r  r  r  r  r;   r5   r3   r  r    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r5   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  j                  d        Zy)TestHypergeomc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestHypergeom.setup_method  r1  r5   c                 R   t         j                  j                  dddd      }t        j                  |dk\        t        j                  |dk        z  sJ t        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  ddd      }t        |t              sJ t        j                  ddd      j                  d      }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nr  rY   r   r5  r4  r   r7  )r9   	hypergeomr   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r3   rC  zTestHypergeom.test_rvs  s    ""2r17";vvdai 266$!)#4444xx~(((zz)L"9999oo!!"a,#s###oob!R(,,Q/#rzz***yy~~<!8888r5   c                 v    d}d}d}|}|}t         j                  j                  d|||      }t        |dd       y )Ni	  r6  r  r`   gkㅒP?r  )r9   r  rI  r   )rl   Mrn  r+  totgoodhgpmfs          r3   test_precisionzTestHypergeom.test_precision  sB    ##AsD!4E#8"=r5   c                 l   t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       y )Nr   r`   r    rM  r  rz   )r   r9   r  rI  rq   s    r3   	test_argszTestHypergeom.test_args$  s     	EOO//1a;S"EEOO//1a;S"EEOO//1a;S"EEOO//1a;S"Er5   c           	          t        dt        j                  j                  dddd      cxk  xr
 dk         y c        y )Nr   r3  io i  if0  rM  )r	   r9   r  rj   rq   s    r3   test_cdf_above_onez TestHypergeom.test_cdf_above_one-  s/    U__((XtUCJsJKJKr5   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Ơ>rg  )g     @r  g     @g     @g     @)r    r  g)9g"1)rc   r   r9   r  r   r   )rl   orangespearsfruits_eatenquantileeatenr   rQ   	quantilesr,  	expected2s              r3   test_precision2zTestHypergeom.test_precision21  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   re  rz   )	r9   r  rA   rc   r   rf  r   r   r   )rl   hgri  rg  rh  s        r3   rj  zTestHypergeom.test_entropyD  sz    __Q1%JJLXXtTl+
ffU:z:;;
:&__Q1%JJLQr5   c                     d}d}d}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d
}d}t         j                  j                  ||||      }d}t        ||d       y )Nr      cA    .A     j@gor   rP  r    @  X  r  g_7	j$r8  )r9   r  r  r   rl   rU   r  rn  r+  resultrQ   s          r3   r  zTestHypergeom.test_logsfP  s     &&q!Q2FHa8&&q!Q2 FHb9r5   c                 &   d}d}d}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d
}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d}d}t         j                  j                  ||||      }d}t        ||d       t	        j
                  g d      }d	}d
}d}t         j                  j                  ||||      }t	        j                  dd      }t        ||d       y )Nr    r  r  r  g)\Ur   rP  rv  r  r6  r  g*@Vr8  }      r  gר)rv  rv  rv  )r9   r  r  r   rc   r   fullr  s          r3   r  zTestHypergeom.test_logcdfh  s    ''1a3FHa8 ''1a3&FHb9''1a3 FHb9
 HH\"''1a377112FHb9r5   c                 z    d}d}d}t         j                  j                  |||      }||z  |z  }t        ||       y )Nip iP i.  )r9   r  r   r   )rl   r  rn  r+  hmrms         r3   test_mean_gh18511zTestHypergeom.test_mean_gh18511  sB     __!!!Q*UQYBr5   c                    d}d}t        j                  dd      }d|z  }t        j                  j	                  |dz
  |||      }t        j
                  |dkD        sJ t        j
                  t        j                  |      dk        sJ y )NrY   r   r   r8  r  r    r   )rc   r  r9   r  r   r   diff)rl   rn  r+  r  population_sizero  s         r3   test_sf_gh18506zTestHypergeom.test_sf_gh18506  sw     IIaq&OOq1uoq!<vva!e}}vvbggaj1n%%%r5   N)r   r   r   r0  rC  r  r  r  r  rj  r  r  r  r   r   r   r!  r;   r5   r3   r  r    sU    	9>FL<&
:0,:\	  [[	& 	&r5   r  c                   D   e 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ej                  j                  dddg      d        Zej                  j                  dg d      d        Zy)TestLoggammaz	x, c, cdf))r    r`   g;Y%?)r      gRٲa6_<)gHr  gi|e?)r  g6l?)i+rV   g֬CCf9)ir   g ֺlc                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r9   loggammarj   r   r   )rl   rX   r  rj   ro  ys         r3   r  zTestLoggamma.test_cdf_ppf  sH     NNq!$3U+NNsA&15)r5   zx, c, sf))r   r  gQOu3;)   rZ   g\Z{0)r%  r  geɐ?)ig{Gzd?gr0T?c                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r9   r'  r   r   r  )rl   rX   r  r   rG   r(  s         r3   r  zTestLoggamma.test_sf_isf  sH     NNa#2E*NNr1%15)r5   c                 `    t         j                  j                  dd      }t        |dd       y )Nr`   g     @r  r~   )r9   r'  r   r   )rl   lps     r3   r  zTestLoggamma.test_logpdf  s&    
 ^^""4+G%0r5   c                 l    d}d}t         j                  j                  ||      }d}t        ||d       y )Nr        @gI.r  r~   )r9   r'  r  r   )rl   rX   r  r  r~  s        r3   r  zTestLoggamma.test_logcdf  s3    &&q!,%%0r5   c                 l    d}d}t         j                  j                  ||      }d}t        ||d       y )Ng      9      @g!{1+ҷr  r~   )r9   r'  r  r   )rl   rX   r  r  r~  s        r3   r  zTestLoggamma.test_logsf  s3    $$Q*#s/r5   c                     t        j                  g d      j                  dd      }|D ];  \  }}}}}t        j                  j                  |d      }t        |||||gd       = y )N)ru   g"~jg46<@g oŏr  rM  g	h"lxgQ?gZd;333333@r  g{/L@g??gгYҿgh|?5?r   r   msvkr  r   rP  )rc   r   reshaper9   r'  r   )rl   tabler  r   varskewkurtcomputeds           r3   r  zTestLoggamma.test_stats  st       
 wr1~ 	 ). 	1$AtS$~~++Av+>H%hsD$0G./1	1r5   r  rV   r  c                    t         j                  j                  |d      }t        j                  |      j                         sJ t         j                  j                  |      }t        j                  t        j                  ||k        t        |            }|j                  d      }|j                  dcxk  r|j                  k  sJ  J y )Nr   r4  r  )confidence_levelru   )r9   r'  r   rc   isfiniter   median	binomtestcount_nonzeror
  proportion_cir  r  )rl   r  rX   medbtestcis         r3   rC  zTestLoggamma.test_rvs  s     NNqv. {{1~!!### nn##A& 0 0S 93q6B  % 8vv%bgg%%%%%r5   r  ))r%  g3H໱k3@)r    r  )r  g8,[H^}	)r  g90$)r  gtum\c                 Z    t        t        j                  j                  |      |d       y r  )r   r9   r'  rA   r!  s      r3   rj  zTestLoggamma.test_entropy	  s     	..q13UCr5   N)r   r   r   r   r   r   r  r  r  r  r  r  rC  rj  r;   r5   r3   r#  r#    s     [[[EF*F* [[ZBC
*C
*1101 [[S3,/& 0& [[X<=	D=	Dr5   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?x7rH  r  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y NrH  r~   )r   r9   	johnsonsur   r  rl   r  rX   r1   r2   r   tols          r3   r  zTestJohnsonsu.test_sf_isf(	  P    1aS**1a3ReD++B15qsCr5   Nr   r   r   casesr   r   r   r  r;   r5   r3   rG  rG  	  s0    ;E [[VU+D ,Dr5   rG  c                   X    e Zd Zg dZej
                  j                  de      d        Zy)TestJohnsonb))r  r    r    r  r&  )r  r    r    g0jA:rH  )r  r    r    gQbF5rH  r  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y )NrH  r~   r   )r   r9   r  r   r  rL  s          r3   r  zTestJohnsonb.test_sf_isf>	  rN  r5   NrO  r;   r5   r3   rR  rR  /	  s0    =E [[VU+D ,Dr5   rR  c                       e Zd Zd Zd Zd Zd Zd Zej                  j                  dddg      d	        Zd
 Zej                  j                  dddg      d        Zd Zy)TestLogisticc                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y Nr  r  )rc   rR  r9   logisticrj   r   r   rl   rX   r(  r  s       r3   r  zTestLogistic.test_cdf_ppfG	  sD    KKR NNq!^^"2r5   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y rW  )rc   rR  r9   rX  r   r  r   rY  s       r3   r  zTestLogistic.test_sf_isfM	  sD    KKR NNa ^^"2r5   c                     d}d}t        t        j                  j                  d|z
        |       t        t        j                  j	                  |      |       y )Ng      <gg|EA@r    )r   r9   rX  r   r  )rl   ro  desireds      r3   test_extreme_valuesz TestLogistic.test_extreme_valuesS	  sB    !#**1q517;**1-w7r5   c                 j    t         j                  j                  g d      }g d}t        ||d       y )N)rq  r   rY   )gm\  .g9B.gO& $r   r~   )r9   rX  r   r   )rl   r  rQ   s      r3   test_logpdf_basiczTestLogistic.test_logpdf_basicZ	  s+    ~~$$\2) 	hU3r5   c                 b    t         j                  j                  ddg      }t        |ddg       y )Nrt   r%  )r9   rX  r   r   rl   r  s     r3   test_logpdf_extreme_valuesz'TestLogistic.test_logpdf_extreme_valuesb	  s*    ~~$$c4[1 	TD$<(r5   zloc_rvs,scale_rvs)g9x&?gi '?)gB"?gs^&?c                    t         j                  j                  d||      }d }t        |t         j                  j	                  |      |f      j
                  }t         j                  j                  |      }t        ||d       y )NrZ   r   r^   r_   c                    | \  }}t        |      }t        j                  t        j                  ||z
  |z        dt        j                  ||z
  |z        z   z        |dz  z
  }t        j                  ||z
  |z  t        j                  ||z
  |z        dz
  t        j                  ||z
  |z        dz   z  z        |z
  }||fS Nr    r`   )r
  rc   rf  r   )inputr   r1   r2   rn  x1x2s          r3   r   z#TestLogistic.test_fit.<locals>.funcn	  s    DAqD	AqA~.RVVTAXN335 689A>B$(a&&$(a014&&$(a01467 8:;<B r6Mr5   rT  r  r   )r9   rX  r   r%   	_fitstartrX   r   r   )rl   loc_rvs	scale_rvsr   r   expected_solution
fit_methods          r3   test_fitzTestLogistic.test_fith	  sw     ~~!!sy!I	 !u~~'?'?'EM A 	^^''-
 	
$5EBr5   c                     t         j                  j                  ddd      }t        t         j                  |       t        t         j                  |d       t        t         j                  |d       y )NrZ   ru   r`   rd  r    r   r   )r9   rX  r   r   rl   r   s     r3   test_fit_comp_optimizerz$TestLogistic.test_fit_comp_optimizer	  sK    ~~!!s1!=%ennd;%enndC%ennd1Er5   
testlogcdfTFc                     t        j                  g d      }|r t        j                  j	                  |      }n t        j                  j                  |       }g d}t        ||d       y )N)r  r%     r6  r  )     g      g%h9fg?~T}%mgCx^&ْV瞯<r~   )rc   r   r9   rX  r  r  r   )rl   rt  rX   r(  rQ   s        r3   test_logcdfsf_tailsz TestLogistic.test_logcdfsf_tails	  sT     HH01%%a(A$$aR(AF8%0r5   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   =   r  )rc   r   r   r9   rX  rr  s     r3   test_fit_gh_18176zTestLogistic.test_fit_gh_18176	  sA     xx>$(#&(TAX. / 	&ennd;r5   N)r   r   r   r  r  r]  r_  rb  r   r   r   ro  rs  ry  r  r;   r5   r3   rU  rU  E	  s    84) [[03J3K3M NCNC,F [[\D%=91 :1<r5   rU  c                   $    e Zd Zd Zd Zd Zd Zy)
TestLogserc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestLogser.setup_method	  r1  r5   c                    t         j                  j                  dd      }t        j                  |dk\        sJ t        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nr   r5  r4  r    r7  r   )r9   logserr   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r3   rC  zTestLogser.test_rvs	  s    ||73vvdai   xx~(((zz)L"9999llt$#s###ll4 $$Q'#rzz***yy~~<!8888r5   c                 \    t         j                  j                  dd      }t        |d       y )Nr   r  g&Y3)r9   r  rI  r   rl   r  s     r3   test_pmf_small_pzTestLogser.test_pmf_small_p	  s$    LLQ& 	7#r5   c                 Z    t         j                  j                  d      }t        |d       y )Nr%  gW  ?)r9   r  r   r   r  s     r3   test_mean_small_pzTestLogser.test_mean_small_p	  s"    LLd# 	;'r5   N)r   r   r   r0  rC  r  r  r;   r5   r3   r  r  	  s    	9$(r5   r  c            	          e Zd Z ej                  d      d        Zej                  j                  dej                  ej                  g      ej                  j                  dg d      ej                  j                  dg d      ej                  j                  d	d
dgdd
gf      d                             Zej                  j                  dej                  dfej                  dfg      d        Zy)TestGumbel_r_lfunctionscopec                 @    t         j                  j                  d      S r.  rc   r   r   rq   s    r3   r   zTestGumbel_r_l.rng	      yy$$T**r5   rM   rk  r   r   r    rl  rV   r    r   zfix_loc, fix_scaleTFc                     |j                  d|||      }t               }|r|dz  |d<   |r|dz  |d<   t        ||fi | y )NrZ   r   r^   r_   r   r`   r   r   )r   r  r   )	rl   rM   rk  rl  r   r6  r   r   r   s	            r3   rs  z&TestGumbel_r_l.test_fit_comp_optimizer	  s\     xxSgY%(  * v "Q;DL&]DN 	&dD9D9r5   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>ro  r~   )rc   r   r   r   )rl   rM   r  zr^   r_   s         r3   ro  zTestGumbel_r_l.test_fit	  sH     :;;XXa[
U 	S!3345DAr5   N)r   r   r   r   fixturer   r   r   r9   gumbel_rgumbel_lrs  ro  r;   r5   r3   r  r  	  s    V^^*%+ &+ [[Vennenn%EF[[Y
3[[[*5[[1#UmeT];=:= 6 4 G
:  [[[ENNA+>,1NNB+?+A BBBBr5   r  c                      e Zd Zd Zd Zej                  j                  d      ej                  j                  dddg      ej                  j                  dddg      ej                  j                  d	dd
g      d                             Z	ej                  j                  dddg      ej                  j                  dddg      ej                  j                  d	dd
g      ej                  j                  d e
ddgd      D  cg c]  }d|v r|
 c}}        ej                  d      d                                    Z ej                  d      d        Zd Zd Zyc c}} w )
TestParetoc                 J	   t        j                         5  t        j                  dt               t        j
                  j	                  dd      \  }}}}t        |t        j                         t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |t        j                         t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  d	d      \  }}}}t        |d
       t        |d       t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |d       d d d        y # 1 sw Y   y xY w)Nrl  ru   r  r  rM  r  r  ry   r|  g?grq@r   r1  gffffff?gK~?g      2@g۶m۶m?r  UUUUUU?gqq?r  r/  g%I$I?gQ?gUUUUUU@grq?g88Nb@)rp  rq  rr  rs  r9   paretor   rc   r  r  r   r  rl   r  r  rG   rU   s        r3   r  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]   )r9   r  r   r   )rl   rX   r2   r_   ro  rQ   s         r3   r  zTestPareto.test_sf'
  sB    LLOOAqauO5!Ga<8$r5   z2ignore:invalid value encountered in double_scalarsr   r    r`   r   r   r4  r   c                 2   t         j                  j                  d      }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 )Nr   rZ   r   r2   r_   r^   r   r   p=
ף?)r   r   )r   fix_b)r   fbr`   r   )rc   r   r   r9   r  r   r   r   r  r;  rf  r  )rl   r   r   r4  r   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r3   ro  zTestPareto.test_fit/
  s    ii##D)||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"r5   rV   fix_shape, fix_loc, fix_scaleTFr   repeatignoreinvalidc                     t         j                  j                  d      }t        j                  j                  d||||      }i }	|r||	d<   |r||	d<   |r||	d<   t        t        j                  |fi |	 y )Nr   rZ   r  r   r   r   )rc   r   r   r9   r  r   r   
rl   r   r   r4  r   r   r6  r   r   r   s
             r3   r   z&TestPareto.test_fit_MLE_comp_optimizerL
  sz     ii##D)||SIY$+#   ? "DJ"DL&DN%ellDADAr5   c           	          d\  }}}t         j                  j                  |||dt        j                  j                  d            }t        t         j                  |       y )N)r    r   r    rZ   ið& r   )r9   r  r   rc   r   r   r   )rl   r;  locationr_   r   s        r3   test_fit_known_bad_seedz"TestPareto.test_fit_known_bad_seedc
  sR    
 ")x||xS-/YY-B-B7-K   M%ellD9r5   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  r9   r  rW  r#   r   rq   s    r3   test_fit_warningszTestPareto.test_fit_warningsm
  sC    ELL)lELL$4$4iaHlELL$4$4ia	 r5   c                     t         j                  j                  d      }t        j                  j                  ddd|      }t        |d       t        j                  j                  |      }y )Nr   i~r    rZ   )r^   r2   r   r   r   )rc   r   r   r9   r  r   r   r   )rl   r   r   r   s       r3   test_negative_datazTestPareto.test_negative_datau
  sS    ii##D)||DACcJ$"
 LLT"r5   N)r   r   r   r  r  r   r   filterwarningsr   ro  r(   rc   errstater   r  r  r  .0ro  s   00r3   r  r  	  sw   :Nx% [[ !1 2[[[1a&1[[YA/[[[1a&1# 2 0 22
#0 [[[2q'2[[YA/[[[1a&1[[<)0$q)I -A!&!   -. R[["B #. 2 0 3B  R[[": #: #K-s   E(r  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
dg dfdddd ej                   d      z  ej"                  gfdddd ej                   d      z  dgfdg dfg      d        Zd Zy)TestGenparetoc                 b   dD ]c  }t        j                  |      }t        j                  j	                  |      \  }}t        |d       t        t        j                  |             e t        j                  d      }t        j                  j	                  |      \  }}t        ||gddg       y )NrM  rz   rz          ru   )	rc   r   r9   	genpareto_get_supportr   r	   isposinfr   )rl   r  r1   r2   s       r3   test_abzTestGenpareto.test_ab
  s     	$A

1A??//2DAqBBKKN#		$ JJsO++A.1AS	*r5   c                 L   t        j                  d      }t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t        j                  ddd      }t	        |j                  |      t         j                  j                  |             y )Nrz   r  r   r  r3  rM  rY   )
r9   r  rc   rR  r   rb   r^  rj   r   r   rl   rvrX   rx  s       r3   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6r5   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  r  r   r  r3  rz   rM  rY   r    )r9   r  rc   rR  r   rb   uniformrj   r   r   r   r  s       r3   test_cm1zTestGenpareto.test_cm1
  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(r5   c                    t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     y )NrV   r  rz   rM  r  )
r9   r  r   rb   rc   r  rj   r	   isneginfr   rl   r  s     r3   
test_x_infzTestGenpareto.test_x_inf
  s   __s#82r(CBIIbff-./__r"82r(CBIIbff-./__s#82r(CBIIbff-./r5   c                    t        j                  ddd      }dD ]  }t        j                  j	                  ||      }dD ]3  }t        j                  j	                  |||z         }t        ||d       5 t        j                  j                  ||      }dD ]3  }t        j                  j                  |||z         }t        ||d       5  y )	Nr   rY   r3  r   r   r  g+r  r   )r  r  )rc   rR  r9   r  rb   r   rj   )rl   rX   r  pdf0dcpdfccdf0cdfcs           r3   test_c_continuityzTestGenpareto.test_c_continuity
  s    KK2r" 		8A??&&q!,D% 8**1a"f5d78 ??&&q!,D$ 8**1a"f5d78		8r5   c           	      z   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]Z  }t        j
                  j                  ||      }dD ]3  }t        j
                  j                  |||z         }t        ||d       5 \ y Nr  rw   rV   baser    r3  FendpointrM  )rz   r  r  r   )rc   rG  r  rR  r9   r  r   r   )rl   rx  r  ppf0r  ppfcs         r3   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	8r5   c           	      z   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]Z  }t        j
                  j                  ||      }dD ]3  }t        j
                  j                  |||z         }t        ||d       5 \ y r  )rc   rG  r  rR  r9   r  r  r   )rl   rx  r  isf0r  isfcs         r3   test_c_continuity_isfz#TestGenpareto.test_c_continuity_isf
  r  r5   c           	      ^   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]L  }t	        t
        j                  j                  t
        j                  j                  ||      |      |d       N y )Nr  rw   rV   r  r    r3  Fr  rM  )r%  gC]r2r}   gV瞯Ҽr}   r   )	rc   rG  r  rR  r   r9   r  rj   r   )rl   rx  r  s      r3   test_cdf_ppf_roundtripz$TestGenpareto.test_cdf_ppf_roundtrip
  s    EE"++eT4++dArE:r{{5$S99: ; / 	+AEOO//0C0CAq0I1ME+	+r5   c                 `    t         j                  j                  dddd      }t        |d       y )Nr  rw   r   r    gpEȜ)r9   r  r  r   ra  s     r3   r  zTestGenpareto.test_logsf
  s'    $$T31512r5   zc, expected_statsr   )r    r    r`   r)  re  r  gqq@rY   r`   gqq?g      ?g$I$	?rq?r  gll0@r   )ru   UUUUUU?r   333333c                 d    t         j                  j                  |d      }t        ||dd       y )Nr  r  r   r}   r_  )r9   r  r   )rl   r  expected_statsr  s       r3   r  zTestGenpareto.test_stats
  s+     &&q&&9UGr5   c                 ^    t         j                  j                  d      }t        |dd       y )Nr%  gvǼ
  ?r   r~   )r9   r  r7  r   )rl   r  s     r3   test_varzTestGenpareto.test_var
  s#    OO%,59r5   N)r   r   r   r  r  r  r  r  r  r  r  r  r   r   r   rc   r  r  r  r  r;   r5   r3   r  r  
  s    +
7)0888+3 [[
\	
T2gbggaj="&&1	2
]T72771:$5v>	?
"	#	%&H&H:r5   r  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestPearson3c                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestPearson3.setup_method
  r1  r5   c                     t         j                  j                  dd      }t        j                  |      dk(  sJ |j
                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j
                  j                  t        d   v sJ t        |      dk(  sJ y )NrV   r5  r4  AllFloatru   r   )r9   r,   r   rc   r;  r   r<  r   r=  r   r]  r
  r@  s      r3   rC  zTestPearson3.test_rvs
  s    ~~!!#G!4xx~(((zz)J"7777nn  %#u%%%nnS!%%a(#rzz***yy~~:!66663x1}}r5   c                    t         j                  j                  dg d      }t        |t	        j
                  g d      d       t         j                  j                  dd      }t        |t	        j
                  dg      d       t         j                  j                  g d	d      }t        |t	        j
                  g d
      d       y )Nr`   rz   rV   rJ  )gtT?g+q?g?ro  r   r  rV   ND}i?r  r   r   r   r    )r  gj?gdC?gs?g'M?)r9   r,   rb   r   rc   r   r  s     r3   rK  zTestPearson3.test_pdf  s    ~~!!!_5bhh'KL!	#~~!!"c*bhh
|44@~~!!"4c:bhh (@ AGK	Mr5   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~?ro  r   r  rV   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r9   r,   rj   r   rc   r   r  s     r3   rU  zTestPearson3.test_cdf  s    ~~!!!_5bhh'KL!	#~~!!"c*zl6~~!!"4c: ?EI	Kr5   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   ru   ru   r  r   )r9   r,   rj   r   rb   r   )rl   skewsx_evalneg_infr  r8  int_pdfss          r3   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   ro  )r9   r,   r  r   r=  rc   number)rl   r  s     r3   test_return_array_bug_11746z(TestPearson3.test_return_array_bug_11746%  sl     &&q!,VQ&")),,,&&q(3VQ&")),,,r5   c                    g d}d}t         j                  j                  t         j                  j                  ||      |      }t	        ||       t        j                  dgdgg      }t        j                  dd      }t	        t         j                  j                  ||      t         j                  j                  | |              t	        t         j                  j                  ||      t         j                  j                  | |              t	        t         j                  j                  ||      t         j                  j                  ||               y )Nr  ru   r   r  r   r`   )r9   r,   r   rj   r   rc   r   rR  rb   r   r  )rl   r  r	  r   r8  rX   s         r3   test_ppf_bug_17050zTestPearson3.test_ppf_bug_170500  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	7r5   c                    g d}g d}g d}t        t        j                  j                  ||      |d       t        t        j                  j                  |d      t        j                  j                  |      d       y )N)rV   ru   rM  皙)rN  r  r  r  )g7>g~׼=gp'+7g;r  r~   r   )r   r9   r,   r   r  )rl   r8  rX   r~  s       r3   r  zTestPearson3.test_sfC  s\     %">))!T2CeD))!Q/q1ANr5   N)r   r   r   r0  rC  rK  rU  r  r  r  r  r;   r5   r3   r  r  
  s-    	MK	(	-7&	Or5   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
TestKappa4c                     g d}d}dD ]P  }t         j                  j                  |||      }t         j                  j                  ||       }t	        ||       R y )N)rz   rV   rJ  ru   rM  )
gffffffr  r   皙ɿr  rV   rJ  ru   rM  ffffff?)r9   kappa4rj   r  r   rl   rX   ri  rU   rA  	vals_comps         r3   test_cdf_genparetozTestKappa4.test_cdf_genparetoP  sW      	-A<<##Aq!,D++Ar2ID),	-r5   c                     t        j                  ddd      }d}t        j                  ddd      }t        j                  j	                  |||      }t        j
                  j	                  ||      }t        ||       y )Nr  r   rY   rz   r  r   )rc   rR  r9   r  rj   
genextremer   r  s         r3   test_cdf_genextremezTestKappa4.test_cdf_genextreme[  se    KKAr"KKAr"||1a($$((A.	i(r5   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr   rY   rM  rz   )rc   rR  r9   r  rj   r^  r   r  s         r3   test_cdf_exponzTestKappa4.test_cdf_expond  sR    KK2r"||1a(KKOOA&	i(r5   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr  r   rY   rz   )rc   rR  r9   r  rj   r  r   r  s         r3   test_cdf_gumbel_rzTestKappa4.test_cdf_gumbel_rm  sT    KKAr"||1a(NN&&q)	i(r5   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr  r   rY   r  rz   )rc   rR  r9   r  rj   rX  r   r  s         r3   test_cdf_logisticzTestKappa4.test_cdf_logisticv  sT    KKAr"||1a(NN&&q)	i(r5   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr  r   rY   rM  )rc   rR  r9   r  rj   r  r   r  s         r3   test_cdf_uniformzTestKappa4.test_cdf_uniform  sT    KKAr"||1a(MM%%a(	i(r5   c                 0    t        j                  dd       y rf  )r9   r  rq   s    r3   test_integers_ctorzTestKappa4.test_integers_ctor  s     	Qr5   N)
r   r   r   r  r  r!  r#  r%  r'  r)  r;   r5   r3   r  r  O  s%    	-)))))r5   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestPoissonc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestPoisson.setup_method  r1  r5   c                     t        j                  d      }t        j                  j	                  g d|      }d|dz  |dz  dz  g}t        ||       y )Nr`   r   r    r`   ru   r   )rc   r  r9   r}  rI  r   )rl   ln2rA  rQ   s       r3   test_pmf_basiczTestPoisson.test_pmf_basic  sG    ffQi}}  C0QQq)h'r5   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   )r9   r}  rI  r   intervalr   )rl   rA  rQ   r4  s       r3   test_mu0zTestPoisson.test_mu0  sG    }}  A.4*==))$2Xv&r5   c                    t         j                  j                  dd      }t        j                  |dk\        sJ t        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nru   r5  r4  r   r7  r   )r9   r}  r   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r3   rC  zTestPoisson.test_rvs  s    }}  7 3vvdai   xx~(((zz)L"9999mm$#s###mmC $$Q'#rzz***yy~~<!8888r5   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@r  r  rM  )rz   rM  ry   r    r`   ru   )r9   r}  r   rc   r  r   r  )rl   rW  r  rQ   s       r3   r  zTestPoisson.test_stats  s    $$R$8RR#b& ABXXo&$$R$8RVVQ"''!*537GH)r5   N)r   r   r   r0  r0  r5  rC  r  r;   r5   r3   r+  r+    s    ('	9*r5   r+  c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)	TestKSTwoc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestKSTwo.setup_method  r1  r5   c                    dD ]  }t        j                  dd|z  d|z  ddd|z  z
  dg      }d|z  |z  }t        j                  j	                  |dz         }|dk7  rt        j
                  |      nd}t        j                  dd||z  ddt        j                  j                  d|      z  z
  t        dd|z  z
  d      dg      }t        j                  j                  ||      }t        ||        y )Nr    r`   r   rY   rZ   r   r   ru   r    rM  r`   rz   )rc   r   r8   r   gammalnr   r9   ksoner   r  kstworj   r   )rl   rn  rX   v1lgelgrQ   r  s           r3   rU  zTestKSTwo.test_cdf  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/#	0r5   c                    t        j                  ddd      }dD ]  }t        j                  dd|z  d|z  ddd|z  z
  dg      }d|z  |z  }t        j                  j                  |dz         }|dk7  rt        j                  |      nd}t        j                  ddd||z  z
  dt        j                  j                  d|      z  t        d|z  d      dg      }t        j                  j                  ||      }t        ||        y )Nr   r    r  r<  ru   rM  r`   )rc   rR  r   r8   r   r=  r   r9   r>  r   r  r?  r   )rl   rX   rn  r@  rA  rB  rQ   r  s           r3   r  zTestKSTwo.test_sf  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.	/r5   c                     t        j                  ddd      dd  }g d}|D ][  }|t        j                  |      z  }t        j                  j                  ||      }t        j                  |      }t        |d       ] y )Nr   r`   r  r    )r6  rZ   rJ  i  r   r   r%  )rc   rR  r  r9   r?  rj   r  r   )rl   rX   ns_xxnprobsdiffss          r3   test_cdf_sqrtnzTestKSTwo.test_cdf_sqrtn  sn    
 KK1b!!"%, 	+Bbggbk!BKKOOB+EGGENEeT*		+r5   c                     t        j                  ddd      }dD ]Q  }t        j                  j	                  ||      }t        j                  j                  ||      }t        |d|z
         S y Nr   r    r  r<  )rc   rR  r9   r?  rj   r   r   )rl   rX   rn  r  r  s        r3   r  zTestKSTwo.test_cdf_sf  sY    KK1b!) 	=A{{q!,HkknnQ*G%hG<	=r5   c                    t        j                  ddd      }dD ]i  }|t        j                  |      z  }t        j                  j                  ||      }t        j                  j                  ||      }t        |d|z
         k y rL  )rc   rR  r  r9   r?  rj   r   r   )rl   rX   rn  rG  r  r  s         r3   test_cdf_sf_sqrtnzTestKSTwo.test_cdf_sf_sqrtn  sj    KK1b!) 	=ARWWQZB{{r1-HkknnR+G%hG<		=r5   c                    t        j                  ddd      }dD ]l  }||d|z  kD     }t        j                  j	                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||   d       n y )	Nr   r    r  r<  ru   r  r  r~   )rc   rR  r9   r?  rj   r   r   rl   rX   rn  rG  r  condrA  s          r3   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<	=r5   c                    t        j                  ddd      }dD ]l  }||d|z  kD     }t        j                  j	                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||   d       n y )	Nr   r    r  r<  ru   rM  r  r~   )rc   rR  r9   r?  r  r   r   )rl   rX   rn  rG  vals_isfrQ  rA  s          r3   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<	=r5   c                 <   t        j                  ddd      }dD ]  }|t        j                  |      z  |d|z  kD     }t        j                  j                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||           y )Nr   r    r  r<  ru   rM  )rc   rR  r  r9   r?  rj   r   r   rP  s          r3   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	2r5   c                 <   t        j                  ddd      }dD ]  }|t        j                  |      z  |d|z  kD     }t        j                  j                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||           y )Nr   r    r  r<  ru   r2  )rc   rR  r  r9   r?  r   r  r   )rl   rX   rn  rG  r  rQ  rA  s          r3   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	2r5   c                     t        j                  ddd      dd  }dD ]N  }t        j                  j	                  ||      }t        j                  j                  ||      }t        ||       P y rL  )rc   rR  r9   r?  r   rj   r   )rl   rH  rn  rG  r  s        r3   r  zTestKSTwo.test_ppf!  s\    Aq"%ab)) 	-A*B{{r1-HHe,	-r5   c           	         g d}t        j                  g d      }t        j                  g dg dg dg dg dg dg      }t        |      D ]x  \  }}|t        j                  d	      z  t        j                  t         j
                  d	z  |z        z  }t        j                  j                  ||      }t        |||   d
       z y )N)rY   r6  rZ   rJ  r  r   )re  gUUUUUU?ru   r    r`   r   )gRT>gr	?gK5
?gn
"5?gU
?gk?)g&6#>gb
E>gI5?g\?g;?g%1?)g6>gL>g<?g䓀^?gO|6$?g qO?)g}+: >gwQ9>gH{?g]qv(?g)~/v?gmJ?)gV27J=gGk(>gWX?gY?g{0`?gZ
H?)g_R=g4>g̪?gT_@?g<e?g2?r`   r3  r~   )
rc   r   	enumerater  r  rd   r9   r?  rj   r   )rl   rE  ratiosrQ   idxrn  rX   r  s           r3   test_simard_lecuyer_table1z$TestKSTwo.test_simard_lecuyer_table1(  s     +8988------
   m 	@FC"RWWRUU1WQY%77A{{q!,HHhsm$?	@r5   N)r   r   r   r0  rU  r  rJ  r  rN  rR  rU  rW  rY  r  r_  r;   r5   r3   r9  r9    s?    0(/+====22-@r5   r9  c                       e Zd Zd Zd Zd Zy)TestZipfc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestZipf.setup_methodK  r1  r5   c                    t         j                  j                  dd      }t        j                  |dk\        sJ t        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nr  r5  r4  r    r7  r   )r9   zipfr   rc   r   r;  r   r<  r   r=  r\  r]  r@  s      r3   rC  zTestZipf.test_rvsN  s    zz~~c~0vvdai   xx~(((zz)L"9999jjnnS!#s###jjo!!!$#rzz***yy~~<!8888r5   c                 `   t         j                  j                  d      \  }}t        t        j                  |             t        |t        j                         t         j                  j                  dd      \  }}t        t        j                  ||g      j                                 y )Nffffff@r1   r5  skr1   r  )r9   rd  r	   rc   r=  r   r  r   r  s        r3   r#  zTestZipf.test_momentsY  sy    zz#&1AQzz#t41BKKA'++--.r5   N)r   r   r   r0  rC  r#  r;   r5   r3   ra  ra  J  s    	9/r5   ra  c                   $    e Zd Zd Zd Zd Zd Zy)TestDLaplacec                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestDLaplace.setup_methodd  r1  r5   c                 "   t         j                  j                  dd      }t        j                  |      dk(  sJ |j
                  j                  t        d   v sJ t         j                  j                  d      }t        |t              sJ t        j                  d      j                  d      }t        |t        j                        sJ |j
                  j                  t        d   v sJ t         j                  j                  d      J y )Nr  r5  r4  r7  r   r   )r9   dlaplacer   rc   r;  r   r<  r   r=  r\  r]  r@  s      r3   rC  zTestDLaplace.test_rvsg  s    ~~!!#G!4xx~(((zz)L"9999nn  %#s###nnS!%%a(#rzz***yy~~<!8888~~!!#&222r5   c                 x   d}t        j                  |      }|j                  d      \  }}}}d}t        j                  | |dz         }|j	                  |      }	t        j
                  |	|dz  z        t        j
                  |	|dz  z        }}
t        ||fd       t        ||f|
||
dz  z  dz
  fd	d
       y )NrM  r  r{  r    r`   r   r3  r  r  r%  rg  )r9   rn  rc   r  rI  rf  r   r   )rl   r1   dlr  r  rG   rU   r+  r  ppm2m4s               r3   r  zTestDLaplace.test_statsr  s    ^^AXXf%
1aYYr1Q3VVBZ2q5!266"RU(#3BaVV$ARAX] 3%dKr5   c                     t        j                  d      }t        j                  |      }|j                  d      \  }}}}t	        ||fd       t        ||fd       y )Nry   r  )rz   rz   )r        
@)rc   r  r9   rn  r   r   )rl   r1   rp  r  r  rG   rU   s          r3   test_stats2zTestDLaplace.test_stats2  sO    FF2J^^AXXf%
1aaVX&A
+r5   N)r   r   r   r0  rC  r  rv  r;   r5   r3   rk  rk  c  s    	3L,r5   rk  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d Z xZS )TestInvgaussc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestInvgauss.setup_method  r1  r5   zrvs_mu,rvs_loc,rvs_scale)r`   r   r    )g
ףp=@g r@gʡE6@c                 X   t         j                  j                  d|||      }t         j                  j                  ||      \  }}}||z
  }t	        j
                  |      }t        |      t	        j                  |dz  |dz  z
        z  }	||	z  }
t        |
|dd       t        |	|dd       t        ||       t         j                  j                  d|||      }t         j                  j                  ||dz
  |dz         \  }}}t        |dz   |       t        |dz
  |       t         j                  j                  |d	
      d   }t         j                  j                  |d	      d   }t         j                  j                  |d	      d   }||cxk(  r|cxk(  rd	k(  sJ  J y )NrZ   )r   rW  r^   r_   r   r   r}   rg  r    r:  r  )fmur   )fix_mur   )
r9   r  r   r   rc   r   r
  rf  r   r   )rl   rvs_mur   r4  r   rW  r^   r_   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r3   ro  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=:======r5   )gX9v>@g	@gGz@c                 *   t         j                  j                  d      }t        j                  j                  d||||      }t        t        t        j                        t        j                  "  } ||      }t        j                  j                  |      }t        ||        ||dd      }t        j                  j                  |dd      }t        ||       t        t        j                  ||       t        j                  ||dz
  z
  dkD        sJ t        t        j                  ||dz
         t        t        j                  |d       t        t        j                  ||t         j                  j                  d      d   	       y )
Nr   rZ   )r   rW  r^   r_   r   r   r`   )r   r{  r   r    r:  )rc   r   r  r9   r  r   r   r   r   r   r   r   rand)
rl   r~  r   r4  r   r   	super_fitsuper_fittedinvgauss_fit	__class__s
            r3   r   z(TestInvgauss.test_fit_MLE_comp_optimizer  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r5   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  r9   r  r   r   r#   r   rq   s    r3   test_fit_raise_errorsz"TestInvgauss.test_fit_raise_errors  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    皙?rW  r  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r9   r  rj   r   r   r   )rl   rW  rQ   rL   
cdf_actual	sf_actuals         r3   r  zTestInvgauss.test_cdf_sf  s    ."##CB#/Xv& ^^''$'7

$9:NN%%cd%3		#78 ##GV4 34 ##Hf5 12r5   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)r9   r  r  r   r  )rl   r  r  s      r3   r  zTestInvgauss.test_logcdf_logsf  s     &&v$&7 12&&sD1 56$$Ut$456$$S$/01r5   zmu, ref))r  g,9)r  g%!)rw   g40)r   gK'
@)r  g`p
@c                 Z    t        t        j                  j                  |      |d       y rJ  )r   r9   r  rA   )rl   rW  r~  s      r3   rj  zTestInvgauss.test_entropy  s     	..r2CeDr5   c                 $   t        j                  t        j                        }t        j                  dd      }d\  }}t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             y )Nr  ru   r  )rM  ru   )r9   r  rc   r  r  r   r   rb   r  rj   r  r   r   r  )rl   rM   dist0rX   ro  s        r3   test_mu_inf_gh13666z TestInvgauss.test_mu_inf_gh13666  s     ~~(s#.1AQ8UYYq\2AQ8UYYq\2

1u{{1~6
EHHQK0UYYq\2UYYq\2r5   )r   r   r   r0  r   r   r   ro  r   r  r  r  rj  r  __classcell__r  s   @r3   rx  rx    s     [[7')>?A>A>: [[7')>?A CA CD2!3F2. [[Y )D E
EE
E3r5   rx  c                   Z    e Zd Zej                  j                  dg d      d        Zd Zy)
TestLandauname)rb   rj   r   r   r  c                    |dv rt        j                  ddd      f}nt        j                  ddd      f}t        t        j                  |      }t        t        j
                  |      } || } |g |dd }t        ||d	       y )
N>   r  r   rV   r   r   r   rY   r    r  r~   )rc   rR  r'  r9   landaulevy_stabler   )rl   r  rX   landau_methodlevy_methodr   r~  s          r3   test_landau_levy_agreementz%TestLandau.test_landau_levy_agreement(  s    
 >!Ca()AB2&'Ad3e//6Q#1#a##Su-r5   c                     t        t        j                  j                  d      t        j                  fdz         t        t        j                  j                  d      t        j                         y )Nr  r  r   r   )r   r9   r  rc   r  r  rq   s    r3   r#  zTestLandau.test_moments8  sE    U\\'''7"&&1EU\\((+RVV4r5   N)r   r   r   r   r   r   r  r#  r;   r5   r3   r  r  '  s,    [[V%GH. I.5r5   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d Z xZS )TestLaplacer   )r  r   r    r`   r4  )r    r`   r   rY   c                    t         j                  j                  d      }t        j                  j                  d|||      }t        j                  |      }t        j                  t        j                  ||z
              t        |      z  }t        j                  j                  |      \  }}t        ||dd       t        ||dd       t        j                  j                  ||      \  }}t        ||dd       t        j                  j                  ||      \  }}t        ||       |dz  }t        j                  t        j                  ||z
              t        |      z  }t        j                  j                  ||      \  }}t        ||       t        j                  j                  ||      \  }}t        ||       t        t        t        j                  j                  |||	       t        t        t        j                  j                  t         j                   g       t        t        t        j                  j                  t         j"                  g       y )
Nr   rZ   r  r}   rg  r   rq  r`   r:  )rc   r   r  r9   r  r   r>  rf  r   r
  r   r   r   rW  r  r  r  r  )	rl   r   r4  r   r   loc_mler  r^   r_   s	            r3   ro  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>r5   rvs_loc,rvs_scale))r  rY   rY   r   )ru   rJ  c                    t         j                  j                  d      }t        j                  j                  d|||      }d }t        j                  j                  |      \  }}t        t        t        j                        t        j                    |      \  }}	 ||||      }
 |||	|      }|
|k  st        j                  |
|dd      sJ y y )Nr   r   r  c           	          dt        |       t        j                  d|z        z  d|z  t        j                  t        j                  || z
              z  z
  z  S )Nr   r`   r    )r
  rc   r  rf  r   )r^   r_   r   s      r3   llz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.llw  sO    CI%8E'266"&&*<#==> ? ?r5   r}   rg  )
rc   r   r  r9   r  r   r   r   r   r   )rl   r   r4  r   r   r  r^   r_   loc_opt	scale_optll_mlell_optr  s               r3   r   z'TestLaplace.test_fit_MLE_comp_optimizern  s     ii##D)}}  dy.1 ! 3	? ]]&&t,
U"4#6#(==66:) 	C%GY-"++ff38u#F 	F F #Fr5   c                     t        j                  g d      }t        j                  j	                  |d      \  }}t        |ddd       t        j                  j	                  |d      \  }}t        |ddd       y )N)rM  rM  r  rN  r  r  r)  r   r   r}   rg  rq  )rc   r   r9   r  r   r   )rl   r   r^   r_   s       r3   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7r5   c                 <   d}t         j                  j                  |       }|dk(  sJ t         j                  j                  |      }|dk(  sJ t         j                  j                  |      }|dk(  sJ t         j                  j                  |       }|dk(  sJ y )Nr   rz   rM  )r9   r  rj   r   )rl   rX   p0p1s       r3   test_sf_cdf_extremesz TestLaplace.test_sf_cdf_extremes  s    ]]r" Syy ]]q!Syy]]a  Syy ]]qb!Syyr5   c                     d}t         j                  j                  |      }t        |t	        j
                  |       dz  d       y )NrJ  r`   r   r~   )r9   r  r   r   rc   r   )rl   rX   ro  s      r3   r  zTestLaplace.test_sf  s5    MMQ2661":a<e4r5   c                     d}t         j                  j                  |      }t        |t	        j
                  d|z         d       y )Ng}:r`   r   r~   )r9   r  r  r   rc   r  )rl   ro  rX   s      r3   r  zTestLaplace.test_isf  s5    MMa BFF1Q3K<e4r5   c                     d}d}t         j                  j                  |      }t        ||       t         j                  j	                  |       }t        ||d       y )Nrv  g$ICr  r~   )r9   r  r  r   r  r  s        r3   r  zTestLaplace.test_logcdf_logsf  sL    %%%a($##QB's/r5   )r   r   r   r   r   r   ro  r   r  r  r  r  r  r  r  s   @r3   r  r  >  s    [[Y6[[[-8+? 9 7+?Z [[0 3? @F@F(8*5
5
0r5   r  c                   l   e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      ej                  j                  dd	g      ej                  j                  d
ddg      ej                  j                  dddg      d                             Z	y)TestLogLaplacec                     t        j                  g d      }t        j                  g d      }g d}t        t        j                  j                  ||      |d       y )N)ry   r  rN  )r3  r    4&kC)g ?gKH9gXrL0r}   r~   )rc   r   r   r9   
loglaplacer   )rl   r  rX   r~  s       r3   r  zTestLogLaplace.test_sf  sE     HH_%HH'(+((++Aq13UCr5   c                 p    d}g d}g d}t        t        j                  j                  ||      |d       y )Nru  )r   rV   r  r  r/  )gHhlh#?gH]9@?g"fj#@g11Ags!8wBr  r~   )r   r9   r  r  )rl   r  rx  r~  s       r3   r  zTestLogLaplace.test_isf  s4     +6((,,Q2CeDr5   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 )Nr  r    ru   r  )	rc   r  r   r9   r  r  r  r   r=  )rl   r  momr  s       r3   test_moments_statsz!TestLogLaplace.test_moments_stats  s~    QUmIIc1s7C( 	((//15rvv> 66"++e&6&6&<&<Q&<&LMNNNNr5   r  )ru   rM  ry   z
loc, scale)r  g@fix_cTFr6  c                    t         j                  j                  d      }t        j                  j                  |||d|      }d|i}|r||d<   |r||d<   dt        |      z
  }	|	dk(  rMd	}
t        j                  t        t        f|

      5  t        j                  j                  |fi | d d d        y t        t        j                  |fi | y # 1 sw Y   y xY w)Nr   rZ   r9  r   fcr   r   r   r  r  )rc   r   r   r9   r  r   r
  r   r   r  r  r   r   )rl   r  r^   r_   r  r6  r   r   r   nfreer=  s              r3   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   r  r  r;   r5   r3   r  r    s    DE [[S,/O 0O [[S/2[[\L>:[[WtUm4[[[4-8F 9 5 ; 3Fr5   r  c                      e Zd Zej                  j                  dddg      d        Z ej                  d      d        Zej                  j                  dg d	      ej                  j                  d
g d      ej                  j                  dg d      ej                  j                  d e	ddgd      D  cg c]  }d|v r|
 c}}       d                             Z
d Zd Zd Zyc c}} w )TestPowerlawzx, a, sf)re  ry   g      ?)g     ?g      p?gSQ>c                 \    t        t        j                  j                  ||      |d       y r|   )r   r9   powerlawr   )rl   rX   r1   r   s       r3   r  zTestPowerlaw.test_sf  s!     	))!Q/%@r5   r  r  c                 @    t         j                  j                  d      S r.  r  rq   s    r3   r   zTestPowerlaw.rng  r  r5   r   )rV   ru   r   r    r`   r   r  r4  r  r  TFr   r  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   r1   r^   r_   r   r   r   r   r   T)	r9   r  r   r  rc   	nextafterr  r  r   r  s
             r3   r   z(TestPowerlaw.test_fit_MLE_comp_optimizer  s     ~~!!siW(1 " E v"DJ<<
RVVG<DL&DN 	&ennd 	<d 	<6:	<r5   c           	          d}d}d}t         j                  j                  |||dt        j                  j                  d            }dt        j                  |      dz  i}t        t         j                  |fi | y )	Ng`- @rz   grߟA@rZ   r   )r1   r^   r_   r   r   r   r`   )r9   r  r   rc   r   r   ptpr   )rl   r1   r  r_   r   r   s         r3   test_problem_casezTestPowerlaw.test_problem_case  ss     #"~~!!A85s/1yy/D/DQ/G " I "&&,*+%enndCdCr5   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  rq  z0`fscale` must be greater than the range of data.)r  r9   r  rW  r#   r   r  rX  s     r3   r  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)  r  over)r9   r  rc   r  r   )rl   r   rM   s      r3   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  r  r   r(   r   r  r  r  r  s   00r3   r  r    s    [[Z1HJKAKA V^^*%+ &+ [[[*=>[[Y
3[[[*5[[<)0$q)I -A!&!   -.<. 6 4 ?<$D466{-s   >C/r  c                   ,   e Zd Zej                  j                  dg d      d        Zej                  j                  dddg      d        Zej                  j                  dg d      d	        Zej                  j                  dg d
      d        Z	y)TestPowerLogNormzx, c, s, ref))rZ   r  r    ga!R()r  r  r    g;?)r  r  r    gE?)MDr  r    g=c                 ^    t        t        j                  j                  |||      |d       y r   )r   r9   r#  r   rl   rX   r  rG   r~  s        r3   r  zTestPowerLogNorm.test_sfY  s%     	**--aA6%Hr5   zq, c, s, ref)g?r  r    rw   )gR4-r  r    r   c                 ^    t        t        j                  j                  |||      |d       y )Ng|=r~   )r   r9   r#  r  )rl   rx  r  rG   r~  s        r3   r  zTestPowerLogNorm.test_isfc  s%     	**..q!Q75Ir5   ))r  r  r    g?)ro  r  r    gv6)ro  rJ  r    g+	94|7)rw  rJ  r    g?c                 ^    t        t        j                  j                  |||      |d       y )Ngt =r~   )r   r9   r#  rj   r  s        r3   rU  zTestPowerLogNorm.test_cdfi  s%     	**..q!Q75Ir5   ))r  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   r9   r#  rb   r  s        r3   rK  zTestPowerLogNorm.test_pdf|  s%    
 	**..q!Q75Ir5   N)
r   r   r   r   r   r   r  r  rU  rK  r;   r5   r3   r  r  H  s    " [[^EF
IF
I
 [[^ACEFJFJ [[^AB
JB
J [[^GHJ	HJr5   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g d      d        Zy	)
TestPowerNormr$  ))r  r    g| <)r  r`   ge()rZ   r  g%!@6)rJ  rw   gT;-c                 \    t        t        j                  j                  ||      |d       y r   )r   r9   	powernormr   r(  s       r3   r  zTestPowerNorm.test_sf  s!     	**1a0#EBr5   r  ))r3  r  gĿ)gwJ?rZ   g!X)r  r  g缂U)r?  r  gͫ1@)r0  r`   gD@)Jz5r   gU!zYr@c                 \    t        t        j                  j                  ||      |d       y Nrz  r~   )r   r9   r  r  r  s       r3   r  zTestPowerNorm.test_isf  s!     	++Aq13UCr5   ))ir  g.u	T9)r`   r  ?)r  r  gsK-)r  r  gk8>)r  r  g^u1-c                 \    t        t        j                  j                  ||      |d       y rJ  )r   r9   r  rj   r(  s       r3   rU  zTestPowerNorm.test_cdf  s!     	++Aq13UCr5   N)	r   r   r   r   r   r   r  r  rU  r;   r5   r3   r  r    s     [[[CD
CD
C [[[=>D>D [[[BCDCDr5   r  c                   r    e Zd Zd Zd Zd Zd Zd Zej                  j                  dddg      d	        Zy
)TestInvGammac                 
   t        j                         5  t        j                  dt               t        j
                  j	                  dd      }g d}t        ||       g d}t        j
                  j	                  |d      }g dt        j                  dd	gt        j                  d
dgt        j                  t        j                  dgf}t        ||      D ]  \  }}t        ||        	 d d d        y # 1 sw Y   y xY w)Nrl  g(\O3@r  ri  )g~?gCX&?g*7gS?gBqFq @)r  @gffffff@)r  gEy?gў3oz?g^Yb?g,r?gOD@g2*Z@gFN8@)rp  rq  rr  rs  r9   r  r   rc   r  r  r  r   )rl   r  rQ   r1   rX   r(  s         r3   test_invgamma_inf_gh_1866z&TestInvGamma.test_invgamma_inf_gh_1866  s     $$& 	*!!'>:>>''%'@D%HD(+A>>''!V'<D8}=k:57H D(+ *1#Aq)*	* 	* 	*s   CC99Dc                     t        j                  dd      }t        j                  j	                  |d      }t        j                  j                  |d      }t        ||       y )Ngr   r    )rc   r  r9   r  rj   r   r   rY  s       r3   r  zTestInvGamma.test_cdf_ppf  sH    KKa NNq!$^^1%2r5   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 )Nl        r`   rZ      r    rM  r~   )	sysmaxsizerc   r  r9   r  r   r  r   rY  s       r3   r  zTestInvGamma.test_sf_isf  sh    ;;As#A Ar"ANNa#^^1%2C(r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr  r  gM$r  r~   )r9   r  r  r   rl   rX   r1   r~  r  s        r3   r  zTestInvGamma.test_logcdf  s3    #&&q!,%0r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nrw   r1  grطr  r~   )r9   r  r  r   rl   rX   r1   r~  r  s        r3   r  zTestInvGamma.test_logsf  s3    $$$Q*s/r5   a, ref)r   g70K6:)r  gVMOuc                 Z    t        t        j                  j                  |      |d       y r|   )r   r9   r  rA   rl   r1   r~  s      r3   test_large_entropyzTestInvGamma.test_large_entropy  s     	..q13UCr5   N)r   r   r   r  r  r  r  r  r   r   r   r  r;   r5   r3   r  r    sM    *&)10 [[X?:<=	D=	Dr5   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestFc           	      B   t         j                  ddgg}|D ]#  \  }}} |j                  |j                  g| }% |D cg c]#  \  }}} |j                  |j                  g| % }}}}|D cg c]  \  }}}|
 }}}}t	        ||       y c c}}}w c c}}}w )N)r`   r    rM  )r9   frb   r1   r   )	rl   r   _f_args_correctansr   	_correct_corrects	            r3   r  zTestF.test_endpoints  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        @r  r  )r9   r  r	   rc   r=  r  s        r3   test_f_momentszTestF.test_f_moments	  se    WW]]2sF];
1aAAABKKN"#r5   c                     t        j                         5  t        j                  dt               t        j
                  j	                  dgdz  g dd       d d d        y # 1 sw Y   y xY w)Nrl  r  r   )r`   r   r)  r  r  dfndfdr  )rp  rq  rr  rs  r9   r  rq   s    r3   test_moments_warningszTestF.test_moments_warnings  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  rO  r  r  r`   r   r  r)  r      )rc   r   r9   r  r   r  )rl   r  r  r  r  rG   rU   rr  v2s2k2numk2denk2s                r3   test_stats_broadcastzTestF.test_stats_broadcast  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r5   N)r   r   r   r  r
  r  r  r;   r5   r3   r  r    s    0$Hr5   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ej                  j                  dg d      d        Zy)TestStudentTc                 ^    t        t        j                  j                  ddg      ddg       y )Nr   r)  g?g?)r   r9   r  rt  rq   s    r3   test_rvgeneric_stdzTestStudentT.test_rvgeneric_std*  s"    !%''++q!f"5
J7OPr5   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    r  )r  r  )\(?rz   r`   gGz @g     i@r   rh  gGz@r   g
ףp=
@)rz   gq    @)r   r9   r  rc   r  r  rq   s    r3   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Sr5   c                 j    g d}g d}t        t        j                  j                  |      |d       y )N)r    r`   r~  rZ   )g?@gTM]?ggY?U?r   r~   r   r9   r  rA   )rl   r  rQ   s      r3   test_t_entropyzTestStudentT.test_t_entropy=  s'    ;+XEBr5   zv, ref)rZ   r   )r  r  c                 Z    t        t        j                  j                  |      |d       y r  r!  )rl   r  r~  s      r3   test_t_extreme_entropyz#TestStudentT.test_t_extreme_entropyD  s     	*Ce<r5   methname)rb   r   rj   r   r   r  
df_infmaskr   r    )r   r    r   )r    r    r    c                    t         j                  j                  d       t        j                  |t              }t         j                  j                  dd|j                        }t        j                  j                  |j                   }t         j                  ||<   t        j                  |dd      }t        j                  ||    dd      }t        j                  dd      }t        ||      }t        ||      }	t        ||      }
 ||      }t        ||    |
||                t        ||     |	||                 y )	Nr   r   rY   r4  r   r    r  r^   r_   r]   )rc   r   r   r   boolr  r;  randnr  r9   r  r  r'  r   )rl   r%  r&  r  rX   t_dist
t_dist_ref	norm_distt_meth
t_meth_ref	norm_methr   s               r3   test_t_inf_dfzTestStudentT.test_t_inf_dfU  s    			qZZ
$7
YYq":+;+;<IIOOZ--.:BAQ/WWJ;Qa@
JJ1A.	*Z2
Ix0	QiS_i*&>?S*%z!ZK.'ABr5   c                 T   t         j                  j                  d       t        j                  |t              }t         j                  j                  dd|j                        }t         j                  ||<   t        j                  j                  |ddd      }t        j                  j                  ddd	      }t        j                  j                  ||    ddd      }t        d
      D ]-  }t        ||   |   ||          t        ||   |    ||          / t        j                  j                  |dd      }t        j                  j                  dd      }t        j                  j                  ||    dd      }t        ||   |       t        ||    |       y )Nr   r(  rY   r4  r   r    r  )r  r^   r_   r  r^   r_   r  r   r)  r]   )rc   r   r   r   r*  r  r;  r  r9   r  r  r  r   rA   )rl   r&  r  r   
res_ex_infres_ex_noinfr  s          r3   test_t_inf_df_stats_entropyz(TestStudentT.test_t_inf_df_stats_entropyk  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*%|4r5   c                     g d}g d}g d}g d}t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y )N)r    r  rY   r    )r  d~QJr  r    )gZ_2g9g!ǟuIgdg)g73?r   gմFhAW;gm0_?r  r~   )r   r9   r  r   rb   )rl   rX   r  
logpdf_refpdf_refs        r3   test_logpdf_pdfzTestStudentT.test_logpdf_pdf  sS     #@
>q"-zFAr*G%@r5   
x, df, ref))g     Rr8  guSaG)r   r8  r  )     R@r8  gGn`?c                     t         j                  j                  ||      }t        ||d       t         j                  j	                  | |      }t        ||d       y r  )r9   r  r  r   r  )rl   rX   r  r~  r  r  s         r3   r  zTestStudentT.test_logcdf_logsf  sF    
 2&%0qb"%s/r5   N)r   r   r   r  r  r"  r   r   r   r$  r2  r7  r<  r  r;   r5   r3   r  r  )  sU   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 [[\CD0	D0r5   r  c                   T    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zy)TestRvDiscretec                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestRvDiscrete.setup_method  r1  r5   c                    g d}g d}d}t        j                  d||f      }|j                  |      }t        |t        j
                        sJ t        ||      D ]0  \  }}t        t        ||k(        t        |      z  |z
        dk  r0J  |j                         }t	        j                  t        |      t        j                        sJ y )N)r   r   r    r`   r   r   )rz   rw  r  rz   rw  rz   r   sample)r  valuesr4  r?  )r9   r>   r   r=  rc   r]  r  r   rf  r   r   r   integer)rl   statesprobabilitysamplesr  rX   rG   ro  s           r3   rC  zTestRvDiscrete.test_rvs  s    $48V[4IJEEwE!RZZ(((, 	>DAqs16{5>1A56===	> EEG}}T!Wbjj111r5   c                 :   t        j                  g d      }t        j                  g d|f      }t	        t        ||             }|j                         }t        ||       t        j                  g dg df      }|j                         }t        |d       y )N)re  r6  rw  r.  rE  )rM  r   r   rz   )	rc   r   r9   r>   rf  r   rA   r   r   )rl   r  ro  rh  ri  s        r3   rj  zTestRvDiscrete.test_entropy  sy    *+i%78%u-..
IIK:&i%=>IIKQr5   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  ru   rw  rJ  rK  rM  r  r  r`   ru   rJ  rz   rw  r  r   )r9   r>   r   rI  )rl   xkpkr  rX   s        r3   rc  zTestRvDiscrete.test_pmf  s]    r2h/"X!Wq	sc$*/	1r5   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  rM  rK  )r   rM  r  r  ry   r  r   r   )r   ru   ru   ru   r   r   r    r    r  r   )r9   r>   r   rj   )rl   rN  rO  r  x_valuesrQ   r  s          r3   rU  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  rM  rK  )rV   ru   r|  r   r   rM  )r    r    r`   r`   r   r   r  r   )r9   r>   r   r   )rl   rN  rO  r  q_valuesrQ   rx  s          r3   r  zTestRvDiscrete.test_ppf  sf    r2h/0%x((? 	H5q5 u	.5rR  c           	          g dg df}t        j                  |      }t        |j                  |j	                  |j
                  d d       dz         |j
                  dd         y )N)r    r`   r   r  r  )rV   rJ  rw  rw  rV   rK  r   r%  r    )r9   r>   r   r   rj   rN  )rl   rA  r  s      r3   test_cdf_ppf_nextz TestRvDiscrete.test_cdf_ppf_next  sU    !:;d+266"&&s"4t";<559	&r5   c                 D   t        j                  d      j                  d      }t        j                  g dg dg dg      }t	        j
                  ||f      }t        |j                         t        j                  |j                  |j                  z        d       y )NrO  )r   r   )rV   rV   rU  r?  )rV   rV   r?  r?  rK  r  r   )rc   r  r5  r   r9   r>   r   r   rf  rN  rO  rl   rN  rO  r  s       r3   test_multidimensionz"TestRvDiscrete.test_multidimension  ss    YYr]""6*XX---/ 0 r2h/		RVVBEEBEEM%:Gr5   c                    g d}ddg}t        t        t        j                  fi t	        ||f       g d}t        t        t        j                  fi t	        ||f       g d}g d}t        t        t        j                  fi t	        ||f       g d}g d}t        t        t        j                  fi t	        ||f       ddg}ddg}t        t        t        j                  fi t	        ||f       y )Nr  ru   rK  )ru   333333?gffffff濩r    r`   r   r   r   )rw  rw  rw  rw  r  r    )rW  r  r9   r>   r  rl   rN  rO  s      r3   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Mr5   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?rK  r)  r   r`   r   )rc   r  r5  r  rW  r  r9   r>   r  r   rI  r]  s      r3   test_shape_rv_samplez#TestRvDiscrete.test_shape_rv_sample  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>Dr5   c                     g d}g d}t        j                  ||f      }t        |j                         t	        j
                  |j                  |j                  z        d       y )N)r    r`   r   r)  r  r  )rV   rJ  rJ  rJ  rJ  rV   rK  r  r   )r9   r>   r   r   rc   rf  rN  rO  rX  s       r3   test_expect1zTestRvDiscrete.test_expect1  sG     +r2h/		RVVBEEBEEM%:Gr5   c           
      t   g d}g d}t        j                  ||f      }t        |j                         |j	                         d       t        |j                         t        d t        ||      D              d       t        |j                  d       t        d t        ||      D              d       y )	N)/g      i@g     r@g      y@g     @@g     @g     @      @g      @r  g     0@g     @g     P@g     @g     p@g      @g     @g      @g     @r  g     h@g     0@g     @g     @g     @g     P@g     @g     @g     @r  g     8@g      @g     ȩ@g     @g     X@g      @g     @g     @g     x@g     @@g     @g     h@g     ̰@g     0@g     @g     @g     \@g     @)/g-C6:?rz   gF%uk?g:vz?rz   rz   g.nr?g|гY?rz   rz   rz   g @6*? 4U0*C?g@+?gC6z?g nr?g ?gOjM?g n?g1w-!?g:pΈ?gףp=
?g _Le?rz   g^)p?g~jtx?gJ4q?gGzt?g J4q?g Mb@?g@Psׂ?g@^)ˀ?rz   rz   g N@s?g 1w-!_?rh  gൄ|г?rz   gH}}?rz   g
F%u?rz   rz   g ^)ˀ?g v?rz   rK  r  r   c              3   ,   K   | ]  \  }}||z    y wro   r;   r  r  ws      r3   	<genexpr>z.TestRvDiscrete.test_expect2.<locals>.<genexpr>9  s     9daAE9s   c                     | dz  S Nr`   r;   r   s    r3   rH   z-TestRvDiscrete.test_expect2.<locals>.<lambda><  
    AqD r5   c              3   2   K   | ]  \  }}|d z  |z    yw)r`   Nr;   rj  s      r3   rl  z.TestRvDiscrete.test_expect2.<locals>.<genexpr>=  s     <AAqD1H<s   )r9   r>   r   r   r   rf  r  )rl   r(  pyr  s       r3   test_expect2zTestRvDiscrete.test_expect2  s    =?  q"g. 			RWWYU;		9c!Rj99	G 			.1<Q<<5	Jr5   N)r   r   r   r0  rC  rj  rc  rU  r  rV  rY  r^  rc  re  rr  r;   r5   r3   rA  rA    sC    2
	1..&HN(EH#Jr5   rA  c                       e Zd Zd Zd Zy)TestSkewCauchyc                    t        j                  ddd      }t        t        j                  j                  |d      t        j                  j                  |             t        t        j                  j                  |d      t        j                  j                  |             t        t        j                  j                  |d      t        j                  j                  |             y Nr  r   rZ   r   rg  )	rc   rR  r   r9   
skewcauchyrb   r  rj   r   r  s     r3   test_cauchyzTestSkewCauchy.test_cauchyA  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	7r5   c                    t         j                  j                  d      }|j                  d      dz  dz
  }|j                  d      dz  dz
  }g d}g d}t	        t
        j                  j                  ||      |       t	        t
        j                  j                  ||      |       t	        t
        j                  j                  ||      |       y )Nr   rY   r`   r    r   )
g& 45?gQʶ?g-4<??gJ?gw@v?gJ%?g>[u?g
a2?g	Rn?gѦ}cي?)
gN@Q?gPPz@	?g?g;
7?glg?g!?%?gQҙ?gC"?go?g@Sg?)
rc   r   r  r  r   r9   rw  rb   rj   r   )rl   r   r1   rX   rb   rj   s         r3   test_skewcauchy_Rz TestSkewCauchy.test_skewcauchy_RJ  s    & ii##A&HHRL1q HHRL2!%$ 	((,,Q2C8((,,Q2C8((,,S!4a8r5   N)r   r   r   rx  rz  r;   r5   r3   rt  rt  @  s    7 9r5   rt  c                   ~    e Zd Zd Zej
                  d        Zej                  j                  dg d      d        Z	y)TestJFSkewTc                    dx}}|dz  }g d}g d}t        j                  ||      }t        j                  |      }t        |j	                  |      |j	                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  d      |j                  d             y )Nr   r`   )r  rz   rM  ry   )rz   rV   re  r   r   rM  r  )r9   	jf_skew_tr  r   rb   rj   r   )rl   r1   r2   r  rX   rx  jfr  s           r3   test_compare_tzTestJFSkewT.test_compare_tn  s     	AU!-__Q"GGBKq	1558,q	1558,q	1558,(!''&/:r5   c                     t        j                  t        t              j                  dz        }t         j
                  j                  |d      S )a  Sample data points computed using the `ST5` distribution from the
        GAMLSS package in R. The pdf has been calculated for (a,b)=(2,3),
        (a,b)=(8,4), and (a,b)=(12,13) for x in `np.linspace(-10, 10, 41)`.

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

  * 	8OAq)>>((A.DD)$7	8r5   c                     t         j                  j                  g dd      }t        |t	        j
                  d      d       t         j                  j                  dd      }t        |dd       y )	N)rY   r  r3  r   r   r  r~   r~  r|  rM  )r9   r  rj   r   rc   onesr  s     r3   test_cdf_large_xzTestSkewNorm.test_cdf_large_x  sP     NN|R02771:E2NNr3'3U+r5   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)r  r    gzbLe9)r  r`   gn'/2;)r   r   g::)r  r   g|<)rf  r  r,  r%  r~   )r9   r  rj   r   r   )rl   cdfvalsrX   r1   cdfvalro  s         r3   test_cdf_sf_small_valuesz%TestSkewNorm.test_cdf_sf_small_values   sy     .+,./
 $ 	2LAq&""1a(AAvD1!!1"qb)AAvD1	2r5   z
a, momentsc                     t        |d      D ]3  \  }}t        j                  j                  ||      }t	        ||d       5 y )Nr    )startr  r~   )r\  r9   r  r  r   )rl   r1   r  orderrQ   r  s         r3   test_noncentral_momentsz$TestSkewNorm.test_noncentral_moments  s>    (: 	7OE8..''q1CC6	7r5   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   r1  ru   rZ   r   rQ  r   r   gmmr   r  msr  r    r  r`   mle)rc   r   r   r9   r  r   r   r   r8  r   r  r   r=  isinfr7  r  rd   )%rl   r   r1   r^   r_   rM   r   a2loc2scale2a3loc3scale3a4loc4scale4dist4r   r~  r   a5loc5scale5r  r  a6ploc6pscale6pa6mloc6mscale6ma7ploc7pscale7pa7mloc7mscale7ms%                                        r3   ro  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Gr5   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   r3  rO  r    r   T)superfitru   l   y
ND )r  r   )rf  rY   )r|  rY   r1   r^   r_   c                      t        | |      S )N)r   )r'   )funr   r   s     r3   	optimizerz0TestSkewNorm.test_fit_gh19332.<locals>.optimizer\  s    )#v3??r5   )r  r  r~   )rc   r   r9   r  r   r   r   r   testingr   params)
rl   rX   r  r   params_superr~  r   r  
fit_resultr   s
            @r3   test_fit_gh19332zTestSkewNorm.test_fit_gh19332G  s    
 HH*R1#X5;<##A&nn!!&!,
 ~~))!d);nn!!,2S3Y ii##$78y;G	@ YYu~~q&IN



""6:+<+<4"Hr5   c                 \    t        t        j                  j                  dd      dd       y )Nrw   r  gi}#%?r   r~   )r   r9   r  r   rq   s    r3   r  zTestSkewNorm.test_ppfb  s"     	**457HuUr5   N)r   r   r   r0  r  rC  r#  r  r  r  r   r   r   _skewnorm_noncentral_momentsr  ro  r  r  r;   r5   r3   r  r    s`    ,5%A8 ,2" [[\+GH7 I7
.H`I6Vr5   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   r9   r^  rb   rq   s    r3   	test_zerozTestExpon.test_zeroj  s    U[[__Q'+r5   c                     t        t        j                  j                  d      d       t        t        j                  j	                  t        j                  j                  d            d       y )Nr0  rv  )r   r9   r^  rj   r  r   rq   s    r3   	test_tailzTestExpon.test_tailm  s=    U[[__U+U3U[[__U[[^^B%78"=r5   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y No_?46@yX5ͻ@j+?UX@)rc   r   r  rW  r  r9   r^  r   r  s     r3   test_nan_raises_errorzTestExpon.test_nan_raises_errorq  5    HHfffffbffEFj%++//15r5   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y r  )rc   r   r  rW  r  r9   r^  r   r  s     r3   test_inf_raises_errorzTestExpon.test_inf_raises_errorv  r  r5   N)r   r   r   r  r  r  r  r;   r5   r3   r  r  i  s    ,>6
6r5   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 r  )rc   r   r  rW  r  r9   r  r   r  s     r3   r  zTestNorm.test_nan_raises_error}  5    HHfffffbffEFj%**..!4r5   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y r  )rc   r   r  rW  r  r9   r  r   r  s     r3   r  zTestNorm.test_inf_raises_error  r  r5   c                 b    g d}t        t        t        j                  j                  |d       y )Nr  shrimp)plate)rW  r  r9   r  r   r  s     r3   test_bad_keyword_argzTestNorm.test_bad_keyword_arg  s    i(Cr5   r^   r   r    c                     d}t         j                  j                  d|z   d|z   |      }t        ||d       t         j                  j                  d|z    d|z    |       }t        ||d       y )Ngg	{F.:r  rO  r^   r   r~   )r9   r  
_delta_cdfr   )rl   r^   rQ   rk  s       r3   test_delta_cdfzTestNorm.test_delta_cdf  sm     )

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

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

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

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

q!Q/1FGr5   c                 0   t        j                  g d      }t        j                  g d      }d}t        j                  j	                  ||dz   d|z
        }t        ||       t        j                  j                  ||dz   d|z
        }t        ||       y )N)g@3@?g^?gNC?)rY   rZ   r   r  r    r   )rc   r   r9   r  r  r   r   )rl   inv_R
count_listro  invr   s         r3   test_issue_12794zTestBeta.test_issue_12794  s~      1 2 XXo.
jjnnQ
Q0CDU#jjmmCa*1DEQr5   c                     d}t        j                  dd      }d}d|z
  |dz   ||z
  }}}t        j                  j	                  |||      }t        j                  j                  |||      }t        |d|z
         y )Nh㈵>r    r  r   )rc   r  r9   r  r   rj   r   )	rl   alpha_2count_nobsrx  r1   r2   r\  r   s	            r3   test_issue_12796zTestBeta.test_issue_12796  sq     1b!g+vz4&=a1jjnnQ1%jjnnS!Q'Q[)r5   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 )
Nr  r    )rJ  r   r   )r    r   r   +ph  )r   r    rM  )r   r9   r  rb   rc   r  )rl   r1   r2   s      r3   r  zTestBeta.test_endpoints  s     1UZZ^^Aq!,bff5 1UZZ^^Aq!,bff5 1UZZ^^Aq!,a0UZZ^^FAq115 1UZZ^^Aq!,a0UZZ^^Ha3Q7r5   zDoes not convert boost warningc                     d\  }}}t        j                  t              5  t        j                  j                  |||       d d d        y # 1 sw Y   y xY w)N)gףp=
?g   vH7B  @0B)r   warnsrs  r9   r  r   )rl   rx  r1   r2   s       r3   test_boost_eval_issue_14606z$TestBeta.test_boost_eval_issue_14606(  sB    '1a\\.) 	$JJNN1a#	$ 	$ 	$s   "AAr  a, b)re        )@)rk  re  c                 <    d}	  ||||       y # t         $ r Y y w xY w)Nr   )OverflowError)rl   r  r1   r2   ro  s        r3    test_beta_ppf_with_subnormal_a_bz)TestBeta.test_beta_ppf_with_subnormal_a_b.  s-    
 
	1aO 	 	s   
 	zx, a, b, ref)r  r  r|  g>׵NlIq)&.!>ru  r|  g'rOc                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r  r  r   rl   rX   r1   r2   r~  r  s         r3   r  zTestBeta.test_logcdfG  s(     ""1a+%0r5   )ro  r  r|  gp}^U)rm  ru  r|  g
1*c                 `    t         j                  j                  |||      }t        ||d       y )Nr  )r9   r  r  r   rl   rX   r1   r2   r~  r  s         r3   r  zTestBeta.test_logsfO  s(     

  Aq)sE*r5   r{  ))ru   ru   gο)r  r    g )r    r  g&׾k )r   r   g*)Mc                 `    t        t        j                  ||      j                         |       y ro   r   r9   r  rA   r  s       r3   rj  zTestBeta.test_entropy`  s"     	

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

1a(002CcBr5   N)r   r   r   r  rM  rP  rT  r   r   skipifMACOS_INTELrX  r]  rc  r  xfailr   ri  r   r9   r  r   r  rn  r  r  rj  r  r;   r5   r3   rF  rF    s   ,7&
H [[,DE	H F	H [[,DE  F " [[,DE	* F	*8. [[w'GH$ I$
 [[X



'GH[[Vnn%EF G I. [[^GCEF1F1
 [[^GEGH+H+ [[[DE
9E
9 [[	
.C/.Cr5   rF  c                   f   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
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d Zd Zy)TestBetaPrime))r        Y@r?  D>?)r  r  r?  m嗽?)r   r?  rV   gPK?)r   r  r?  g%p?)r  r?  rV   g#|/?)r  r  r  gsM
<)r  r?  r  $5Є*?)^ 9^;r?  rV   gompP?)r  r  r  g7j"!9)r  r?  r  z^J?)r  r?  rV   gܷ"+>)r  r  r  grNs: )r  r?  r  gK>c                 X   d\  }}t        j                  g d      }t        j                  ||      }t	        t        j
                  |j                  |            j                                t        |j                  |      t        j                  |j                  |                   y )NrJ  rK  )rc   r   r9   r  r	   r=  r   r   r   rb   r   rL  s        r3   r  zTestBetaPrime.test_logpdf  sn    tHH_%OOE4(AHHQK(,,./a"&&!"56r5   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   rJ  rw  rz   rJ  rK  -=rg  )r9   r  rj   r   rc   r   r	   r=  r   r?   _cdf_singler   )rl   rX   r  r  r  gen_cdfrB  cdfs_gs           r3   rU  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))rw   r  r|  gV)?)r  r  r|  gWJB9*=)r0  r  r|  gOG J<)r  re        @gΣ01)      ?re  r  g8ǘ`?)>q?r?  rV   gMDc                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r  r   r   )rl   ro  r1   r2   rQ   rX   s         r3   r  zTestBetaPrime.test_ppf  s(     OO1a(8%0r5   z
x, a, b, pc                 ^    t        t        j                  j                  |||      |d       y r  )r   r9   r  r   )rl   rX   r1   r2   ro  s        r3   test_ppf_gh_17631zTestBetaPrime.test_ppf_gh_17631  s!    ++Aq!4aeDr5   c                     t        j                  d      }t        j                  d      }t        j                  d      }t        t        j                  j                  |||      dd       y )NrM  ru   r  r~   )rc   r   r   r9   r  _ppf)rl   r1   r2   ro  s       r3   	test__ppfzTestBetaPrime.test__ppf  sH    HHSMHHSMHHSM,,Q15sGr5   zx, a, b, expected))r  r  r  r  )r  r?  rV   gV[?)r  r?  rV   r  c                 ^    t        t        j                  j                  |||      |d       y r  )r   r9   r  rj   )rl   rX   r1   r2   rQ   s        r3   test_cdf_gh_17631zTestBetaPrime.test_cdf_gh_17631  s#     	++Aq!4hUKr5   )r9  r?  rV   g%?)r9  r  r?  goXr?c                 p    t         j                  j                  |||      }|dk  sJ t        ||d       y )NrM  gh㈵>r~   )r9   r  rj   r   )rl   rX   r1   r2   rQ   r(  s         r3   test_cdf_extreme_tailsz$TestBetaPrime.test_cdf_extreme_tails  s3     OO1a(3ww8$/r5   c                     g d}g d}g d}g d}t         j                  j                  |||      }t        ||d       y )N)r   r   r`   r?  r?  r?  r?  r  r  r?  r?  r?  r  r  )r   r`   r    rV   rV   rV   rV   r?  r?  r  r  r  r  r  )r  r  ꌠ9Y>)Fr  r  r  r  r  r  r  r  r  r  r  )g/:g  U/7gKH9g<![a?gw 4?g)J?g5?r  r  r  r  g%?gsM
<r  r  r~   )r9   r  r   r   )rl   r1   r2   rX   r~  	sf_valuess         r3   r  zTestBetaPrime.test_sf  sD    0;
 OO&&q!Q/		3U3r5   c                 r    d}d}d}d}t         j                  j                  |||      }t        ||d       y )Nrt   ru   rN  gg%`ʼr  r~   )r9   r  r  r   rq  s         r3   r  zTestBetaPrime.test_logcdf  s:    $''1a0%0r5   c                 r    d}d}d}d}t         j                  j                  |||      }t        ||d       y )Nr%  r/  ru   g9;ЋVr  r~   )r9   r  r  r   rs  s         r3   r  zTestBetaPrime.test_logsf  s:    %%%aA.s/r5   c                     t         j                  j                  g ddd       t        j                  dd      j                  d       y )N)rV   re  rw  r[  皙?r   r    r:  r  r  )r9   r  r   rq   s    r3   test_fit_stats_gh18274z$TestBetaPrime.test_fit_stats_gh18274%  s7     	6QqI!q!''/r5   c                     t         j                  dg}t        j                  dddg      j	                  d      }t        ||       y )NgooB?r`   r   gffffff@r   )rc   r  r9   r  r  r   )rl   r~  r   s      r3   test_moment_gh18634z!TestBetaPrime.test_moment_gh18634,  s<     vv()ooa#s,33A6S!r5   N)r   r   r   cdf_valsr  rU  r   r   r   r  r  r  r  r  r  r  r  r  r  r;   r5   r3   r~  r~    s    H 7:> [[	B11 [[\84E 5EH [[ 
 	
LL [[	.	/	120	204*100	"r5   r~  c            
       R   e Zd Zd 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  rJ  r  g
CTb?r   rY   gBΖ?)r9   r  rb   r   r<  s     r3   rK  zTestGamma.test_pdf9  sF    kkoob#To2C-kkooa4o0C+r5   c                 \    t         j                  j                  dd      }t        |d       y r  )r9   r  r   r   rH  s     r3   r  zTestGamma.test_logpdfA  s$     ##Aq)FA&r5   c                 d    g d}t        t        t        j                  j                  |dd       y )NrO  r   r  )r   r  )rW  r  r9   r  r   r  s     r3   rP  z#TestGamma.test_fit_bad_keyword_argsG  s    i!!8Lr5   c                     t        j                  t        j                  j	                  dd      dd      sJ t        j                  t        j                  j	                  dd      dd	      sJ y )
Nr  r    gplC@r  r   r  rZ   g1}t@r   )rc   iscloser9   r  r  rq   s    r3   r  zTestGamma.test_isfK  s\    " zz%++//%3+%9 	9 9zz%++//%5+%9 	9 9r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )NP   r  gޟ򑁺r  r~   )r9   r  r  r   r  s        r3   r  zTestGamma.test_logcdfa  s3    $##Aq)%0r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr  r  gDmr  r~   )r9   r  r  r   r  s        r3   r  zTestGamma.test_logsfh  s3    %!!!Q's/r5   r_   rM  rN  c                 r    t         j                  j                  |dz  |dz  d|      }t        |dd       y )N   r  r   r  g>S*r   r~   )r9   r  r  r   rl   r_   rk  s      r3   r  zTestGamma.test_delta_cdfo  s6     &&uSy%)Qe&L6UCr5   za, ref, rtol))r  gt.r}   )r`   r  r}   )rZ   gX>k-־@r   )r  gwM7@r}   )g NgmCg%og$6@r}   )r  oܘ#]@r}   c                 Z    t        t        j                  j                  |      ||       y r  )r   r9   r  rA   )rl   r1   r~  r   s       r3   rj  zTestGamma.test_entropy}  s     	++A.$?r5   r1   )rw   r    r  r^   )rw   r   r  rS  TFr   r6  c                 .   t         j                  j                  d      }t        j                  j                  |||d|      }i }	|r||	d<   |r||	d<   |r||	d<   dt        |	      z
  }
|
dk(  rId	}t        j                  t        |
      5  t        j                  j                  |fddi|	 d d d        y t        j                  j                  |fddi|	}t        j                  | }|
dk\  r-t        |j                         t        j                  |             |
dk\  r1t        |j                  d      t        j                  |dz               |
dk\  r2t        |j                  d      t        j                  |dz               y y # 1 sw Y   y xY w)Nr   rZ   r9  rR  r   r   r   r   r  r  r  r  r    r`   )rc   r   r   r9   r  r   r
  r   r   r  r   r   r   r  )rl   r1   r^   r_   rS  r   r6  r   r   r   r  r=  thetarM   s                 r3   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   rK  r  rP  r  r  r  r   r   r   r  rj  r  r;   r5   r3   r  r  8  s)   ,'M9,10 [[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>r5   r  c                      d} t        j                  d| dz  z  d| dz  z  dd      }t        |j                  d      d       y )	Nr  g;f?r`   r    r   r]   rM  gV{q@)r9   r  r   rb   )jitterZs     r3   test_pdf_overflow_gh19616r    sC     F6FAI-q619}!1MAAEE#J 12r5   c                       e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d	        Z	d
 Z
y)
TestDgammac                    t         j                  j                  d      }d}|j                  d|      }|j	                  d|      }t
        j                  j                  ||      }t
        j                  j                  t        j                  |      |      dz  }t        ||       t        j                  |      }t        |j                  |      |d       y )Nl   OP($ rY   r_   r   )r  r   r`   r  r~   )rc   r   r   normalr  r9   dgammarb   r  r   r   )rl   r   r   rX   r1   r   r~  rM   s           r3   rK  zTestDgamma.test_pdf  s    ii##$78JJRdJ+KKRdK+llq!$kkoobffQi+a/S!||ASu5r5   zx, a, expected))r  r    ggrU>)r  r    g$IC<)ir   g2Wj<)rr  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  )r9   r  rj   r   r   r   r  )rl   rX   r1   rQ   rj   r   r   r  s           r3   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,r5   r  ))r  gmqn @)?g?)r  gx?c                 Z    t        t        j                  j                  |      |d       y r  r   r9   r  rA   r  s      r3   rj  zTestDgamma.test_entropy  s      	,,Q/5Ar5   ))r  r  )r  g>_)r3  g5i)r  go@)r  g4Fa3@)r  grO]@c                 Z    t        t        j                  j                  |      |d       y r  r  r  s      r3   test_entropy_entreme_valuesz&TestDgamma.test_entropy_entreme_values  s    " 	,,Q/5Ar5   c                     t        j                  g d      }t        j                  j	                  |      }t        t        |            D ],  }||   t        j                  j	                  ||         k(  r,J  y )N)r    r   r  r3  )rc   r   r9   r  rA   r  r
  )rl   rX   r(  r  s       r3   test_entropy_array_inputz#TestDgamma.test_entropy_array_input
  sa    HH'(LL  #s1v 	6AQ45<<//!5555	6r5   N)r   r   r   rK  r   r   r   r  rj  r  r  r;   r5   r3   r  r    s    6, [[-:;-;- [[X89B	9B [[X:;
B;
B6r5   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	ej
                  j                  dg d	      d
        Z
d Zy)TestChi2c                     t        t        j                  j                  dd      dd       t        t        j                  j                  dd      dd       y )Nr   gޞw1D?r$  rP  rZ   g6:֜?r   r9   chi2rb   rq   s    r3   r  zTestChi2.test_precision  s@    EJJNN468N$&	(EJJNN346J$&	(r5   r=  ))g     p@r   g~#e)g      ^@r8  gtA)r  r  gzĀ׿c                 `    t         j                  j                  ||      }t        ||d       y r  )r9   r  r  r   )rl   rX   r  r~  r  s        r3   r  zTestChi2.test_logcdf  s&     ""1b)%0r5   ))r  r8  r  )r  rv  gc)r  rY   g]3c                 `    t         j                  j                  ||      }t        ||d       y r  )r9   r  r  r   )rl   rX   r  r~  r  s        r3   r  zTestChi2.test_logsf&  s&     

  B's/r5   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 )Nr5  gλm:=6g'bd5 <r  r~   ru   gQ8@r  gܐ؆0guu[9=rV   g8-*@)r9   r  r   r   )rl   r  rX   s      r3   r  zTestChi2.test_ppf0  s    JJNN5"%<5IJJNN3#7eDJJNN5"%:GJJNN3#8uEr5   r  ))r  gܫ>)r    gƯʉ?)rZ   gn>@)   g͔v0@)r  g9:3@c                 b    t        t        j                  |      j                         |d       y r   )r   r9   r  rA   r  s      r3   rj  zTestChi2.test_entropyH  s!     	

2..0#EBr5   c                 Z    t        t        j                  j                  dd      dd       y )Nrz   r`   ru   r$  r  rq   s    r3   test_regression_ticket_1326z$TestChi2.test_regression_ticket_1326Q  s    EJJNN32C<r5   N)r   r   r   r  r   r   r   r  r  r  rj  r  r;   r5   r3   r  r    s    ( [[	+11
 [[	+00F0 [[Y:;C;C=r5   r  c                   f    e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	y)	TestGumbelLc                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y Nr  r  )rc   rR  r9   r  rj   r   r   rY  s       r3   r  zTestGumbelL.test_cdf_ppfX  sD    KKb!NNq!^^"2r5   c                    t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        j                  |      }t        j                  |       }t        ||       y r  )
rc   rR  r9   r  r  r  r   r   expm1r   )rl   rX   r(  r  ur  s         r3   r  zTestGumbelL.test_logcdf_logsf^  sb    KKb!NN!!!$NN  #FF1I]]11r5   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y )Nr  r   )rc   rR  r9   r  r   r  r   rY  s       r3   r  zTestGumbelL.test_sf_isff  sD    KKQNNa ^^"2r5   r^   r   r    c                     t         j                  j                  d|      }t         j                  j                  ||      \  }}t	        ||       y )NrZ   )r   r^   r   )r9   r  r   r   r   )rl   r^   r   
fitted_locr   s        r3   test_fit_fixed_paramz TestGumbelL.test_fit_fixed_paraml  sD     ~~!!s!4**4c*:
AZ%r5   N)
r   r   r   r  r  r  r   r   r   r  r;   r5   r3   r  r  V  s:     [[URG,& -&r5   r  c                       e Zd Zd Zd Zy)TestGumbelRc                 Z    t        t        j                  j                  d      dd       y )Nr6  ?~T}%m;r  r~   )r   r9   r  r   rq   s    r3   r  zTestGumbelR.test_sfw  s#     	))"-/E"	$r5   c                 Z    t        t        j                  j                  d      dd       y )Nr  r  r  r~   )r   r9   r  r  rq   s    r3   r  zTestGumbelR.test_isf  s#     	**513D"	$r5   N)r   r   r   r  r  r;   r5   r3   r  r  u  s    $$r5   r  c                   h   e Zd Z ej                  d      d        Zej                  d        Zej                  d        Zej                  d        Zej                  j                  ej                  j                  d ej                  d       ej                  d	ej                  j                  
      g      ej                  j                  dddg      ej                  j                  dg d      ej                  j                  dddg      d                                    Zej                  j                  ej                  j                  dddg      d               Zd Zej                  j#                  d      ej                  j                  dddg      ej                  j                  dddg      d                      Zd  Zd! Zd" Zej                  j                  ej                  j                  d# ej                  g d$g d%g d&       ej                  g d'g d(g d)ej                  j                  
       ej                  g d* ej.                  d+d,d-       ej.                  d.dd/      ej                  j                  
      g      ej                  j0                  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      ej                  j0                  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j:                  ej<                  ej<                  fgd?d@gg      dA        Zej                  j                  dBg dC      ej                  j                  dDe jB                  jD                  dE ej.                  dFd3dG      dHfe jB                  jF                  dE ej.                  dFd3dG      dHfe jB                  jD                  dI ej.                  d3dJdG      dEfe jB                  jF                  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&ej                  dQ        Z'dR Z(dS Z)yT)U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)r9   r  parameterizationcdf_default_methodpdf_default_method_levy_stable	_QUAD_EPSquad_epsrq   s    r3   reset_levy_stable_paramsz'TestLevyStable.reset_levy_stable_params  sH     .2*/:,/:,%*%7%7%A%A"r5   c                     t        j                  t        t              j                  dz        }t         j
                  j                  |j                  d      }|S )a  Sample data points for pdf computed with Nolan's stablec

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

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

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

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

        Typically inputs for stablec:

            stablec.exe <<
            1 # pdf
            1 # Nolan S equivalent to S0 in scipy
            .25,2,.25 # alpha
            -1,-1,0 # beta
            -10,10,1 # x
            1,0 # gamma, delta
            2 # output file
        z.data/levy_stable/stable-Z1-pdf-sample-data.npyx,p,alpha,beta,pctr  rc   r  r   r  r  r  r  Trr  s     r3   nolan_pdf_sample_dataz$TestLevyStable.nolan_pdf_sample_data  sL    6 wwN!!<=
 vv  /C Dr5   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.npyr  r  r  rr  s     r3   nolan_cdf_sample_dataz$TestLevyStable.nolan_cdf_sample_data  sM    J wwN!!<=
 vv  /C Dr5   c                 d    t        j                  t        t              j                  dz        }|S )a&  Sample data where loc, scale are different from 0, 1

        Data extracted in similar way to pdf/cdf above using
        Nolan's stablec but set to an arbitrary location scale of
        (2, 3) for various important parameters alpha, beta and for
        parameterisations S0 and S1.
        z1data/levy_stable/stable-loc-scale-sample-data.npy)rc   r  r   r  r  rr  s     r3   nolan_loc_scale_sample_dataz*TestLevyStable.nolan_loc_scale_sample_data  s/     wwN!!?@
 r5   sample_sizer6  r>  marksr  S0r  z
alpha,beta))rM  r   )rM  r   )r  r   )r  ru   zgamma,deltar    r   rb  c                     |t         j                  _        t        j                  ||||      }t        j                  |j	                  |d      |j
                        \  }}	|	dkD  sJ y )N)r  r  r_   r^   r   r   r?  )r9   r  r  rB  r   rj   )
rl   r  r  r  r  rk  r  lsr   ro  s
             r3   rC  zTestLevyStable.test_rvs  sb    ( .>*d%U
 ||FF$F7
1 4xxr5   r  ru   r    c                     t         j                  j                  d       d}d}d}t        j                  j                  ||||d      }t        j                  |d||||f      \  }}|d	kD  sJ y
)z3Additional test cases for rvs for alpha equal to 1.h:rM  ru   r  r  r^   r_   r   r  rT  rw   N)rc   r   r   r9   r  r   rB  )rl   r  r  r^   r_   rX   statro  s           r3   test_rvs_alpha1zTestLevyStable.test_rvs_alpha1  sv     			y!!!%3e'+ " -,,q-%*D#u$=?a4xxr5   c                 z   g d}t         j                  j                  |      \  }}}}t        |ddd       t	        |dd       t	        |dd	       t	        |d
d       |g dz   }t         j                  j                  |      \  }}}	}
t        |d       t        |d       t	        |
dd	       t	        |	dd	       y )N)wgr
  rz   rz   rz   rz   羼 u?r  r  r  r  67',?r  r  r  r  tA}˜.?r  r  r  r  Gz?r   rw   r_  )\(̿r`   gۧ1?r   g9]c?)r  r  r  r  r  r   gv?r  )r9   r  rj  r   r   r   rl   rX   alpha1beta1loc1scale1ri  alpha2beta2r  r  s              r3   ro  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&!,r5   zUnknown problem with fitstart.rU  zalpha,beta,delta,gamma)r  r  r`   r   )rM  r  r`   r   parametrizationc                     |t         j                  _        t         j                  j                  ||||dd      }t         j                  j	                  |      }|\  }}	}
}t        ||||g||	|
|gd       y)z7Test that fit agrees with rvs for each parametrization.r  r   r9  rw   r~   N)r9   r  r  r   rj  r   )rl   r  r  rk  r  r  r   r   	alpha_obsbeta_obs	delta_obs	gamma_obss               r3   test_fit_rvszTestLevyStable.test_fit_rvs3  s     -<)  $$4U%e$ % 
 ))$/471	8Y	D%')Y7	
r5   c                 N   t        j                  g d      }t        j                  j	                  |      \  }}}}t        j                  j	                  |       \  }}}}	t        |d       |dk7  sJ t        ||       t        ||        t        ||        t        |	|       y )Nr    r    r   r   rY   rY   rY   r3  r3  rZ   rZ   r    r   )rc   r   r9   r  rj  r   r   )
rl   rX   r  r  r  r  r  r  r  r  s
             r3   test_fit_beta_flipz!TestLevyStable.test_fit_beta_flipL  s    HH?@&+&7&7&A&A!&D#tV&+&7&7&A&A1"&E#tVUAqyyFF+EE6*D4%(FF+r5   c                 6   d}t        j                  g d      }t        j                  j	                  |       \  }}}}t        j                  j	                  | |z         \  }}}	}
t        ||       t        ||       t        |	||z          t        |
|       y )Nr    r  )rc   r   r9   r  rj  r   )rl   SHIFTrX   r  r  r  r  r  r  r  r  s              r3   test_fit_delta_shiftz#TestLevyStable.test_fit_delta_shiftX  s    HH?@&+&7&7&A&A1"&E#tV&+&7&7&A&A1"u*&M#tVFF+E5)D$,/FF+r5   c                 p   g d}t         j                  j                  |      \  }}}}|dk  s
J d|        |t        |      k  sJ dt        |       d|        g d}t         j                  j                  |      \  }}}	}
|dkD  s
J d|        |	t	        |      kD  sJ dt	        |       d|	        y )	N)r    r    r   r   rY   rY   rY   r3  r3     r%  r    zExpected alpha < 1, got zExpected loc < z, got )r    r    r   r   rY   rY   rY   r3  r3     r&  zExpected alpha > 1, got zExpected loc > )r9   r  rj  r  r  r  s              r3   test_fit_loc_extrapz"TestLevyStable.test_fit_loc_extrapc  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~r5   z pct_range,alpha_range,beta_range)rw   ru   r  )rV   r    r`   )r   r   r   )rw   r?  ru   r2  r  )rV   ru   r    r  r`   )gr   r   rw  r|  r    )rw   r?  rV   re  ffffff?ru   ?r   r   r2  r  rV   r`   r  r   r  c                 P   |}t        j                         }|j                  dk(  xr |j                  dk(  dj	                  |j                  |j                  |j
                  g      }ddfdgddfd	gddfd
gddfdgddfdgddfdgg}t        |      D ]Y  \  }	\  }
}}|
t        j                  _	        || ||         n|}t               5 }|j                  t        d       t        j                  j                  |d   |d   |d   dd      }t        j                  d      5  t!        |g d|t        j"                  ||d   z
        t        j"                  ||d   z
        t        j"                  |d         z  g      }ddd       |d   |k\  t        j$                  |      z     }d|	 d |
 d!| d"|j&                  j(                   d#| 
}t+        ||d   ||d$%       ddd       \ y# 1 sw Y   nxY w# 1 sw Y   txY w)&z2Test pdf values against Nolan's stablec.exe outputLinuxi686/dnir&  c           	      v   t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dk(  | d   dk(  z  | d   dk\  | d   dk\  z  | d   dk(  z  z  | d   dk  t        j                  | d   d	d
g      z  z  | d   dk  t        j                  | d   ddg      z  z  | d   dk  t        j                  | d   ddg      z  z  | d   dk(  t        j                  | d   ddg      z  t        j                  t        j                  | d         g d      z  z  | d   dk(  t        j                  | d   dg      z  t        j                  t        j                  | d         dg      z  z  | d   dk(  t        j                  | d   ddg      z  t        j                  t        j                  | d         g d      z  z  | d   dk(  | d   dk(  z  | d   dk(  z  z  | d   dk(  | d   dk(  z  | d   dk(  z  z  | d   dk(  | d   dk(  z  | d   dk(  z  z  | d   dk(  t        j                  | d   dg      z  t        j                  t        j                  | d         g d      z  z  | d   dk(  t        j                  | d   ddg      z  t        j                  t        j                  | d         g d      z  z  | d   dk(  t        j                  | d   d	d
g      z  t        j                  t        j                  | d         ddg      z  z  | d   dk\  z   z  S )Npctr  r  r   ru   r   r  r  rw   r  rw  r?  r2  rJ  rV   re  r   )ru   r|  r}  r(  r)  )gٿ333333ӿrw  r  ru   r1  rM  rV   rJ  rw  r  )r   r   rM  r  r  )rc   isinr   r  alpha_range
beta_range	pct_ranges    r3   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s   GGAeHi0GGAgJ45GGAfIz23
 vY!^uX_. vY#-wZ3.0uX_. wZ3.GGAeHsCj9: wZ3.GGAeHsCj9:$ wZ3.GGAeHr2h78%, wZ3.GGAeHsCj9:GGBFF1V9$5|DE-6 wZ3.GGAeHrd34GGBFF1V9$5t<=7@ wZ3.GGAeHsCj9:GGBFF1V9$57MNOA#J wZ3.vY#-/uX-/K(T wZ3.vY$.0uX-/U-^ wZ3.vY#-/uX-/_2h wZ2-GGAeHrd34GGBFF1V9$57GHIi7r wZ2-GGAeHsCj9:GGBFF1V9$5|DEs<| wZ2-GGAeHsCj9:GGBFF1V9$5RyAB}AF 7s*GC,EH r5   r  r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk7  z  S )Nr0  r  r  rJ  rM  rc   r3  r4  s    r3   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  sn    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ2%	' r5   c                     | d   dk(   z  t        j                  | d         z  dv z  t        j                  | d         z  S )Nr  rM  r0  r  r9  )r  r5  r6  is_linux_32r7  s    r3   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s]    wZ2%$_&GGAeHi01 ;&( GGAfIz2	3 r5   g&.=c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dk  z  S )Nr0  r  r  rJ  r9  r4  s    r3   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s[    GGAeHi0GGAgJ45GGAfIz23 wZ3&( r5   fft-simpsonr3  c                     | d   dk\  t        j                  | d         z  t        j                  | d         z  t        j                  | d         z  S )Nr  r  r0  r  r9  r4  s    r3   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s[    wZ3&GGAeHi01GGAgJ45 GGAfIz23 r5   ro  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr0  r  r  r    r  r9  r4  s    r3   rH   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  sm    GGAeHi0GGAgJ45GGAfIz23 wZ!^% wZ#%	' r5   Nz2Density calculations experimental for FFT method.*rX   r  r  r    r   r_   r^   r  r  calcabserrrelerrro  rD  z	pdf test  failed with method 'z' [platform: z]

Ferr_msgverbose)platformunamesystemmachinejoin	processorr\  r9   r  r  r   recordrs  rb   rc   r  r   r   isnanr   r  r   )rl   r  r7  r5  r6  r   rK  platform_desctestsixdefault_methodr   filter_funcsubdatasupro  subdata2failuresmessager;  s     ```              @r3   test_pdf_nolan_samplesz%TestLevyStable.test_pdf_nolan_sampleso  s   6 %  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.r  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 	Nr0  r  r  rM  )r1  r  r  rw   rV   rJ  rw  r  r9  r4  s    r3   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>f  s    GGAeHi0GGAgJ45GGAfIz23
 wZ2-GGAfI/ABCuX-/
 wZ2-GGAfI?@uX-/	 r5   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_  r9  r4  s    r3   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>{  s    GGAeHi0GGAgJ45GGAfIz23 7r)&	+=>?5T)+	 7r)&	?;<5T)+ r5   r=  r3  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  S )Nr0  r  r  333333?r9  r4  s    r3   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  s[    GGAeHi0GGAgJ45GGAfIz23 wZ#%' r5   r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr0  r  r  r  rc  r9  r4  s    r3   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  n    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ3&	( r5   r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr0  r  r  r  r  r9  r4  s    r3   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  re  r5   rw   c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr0  r  r  rM  r  r9  r4  s    r3   rH   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  re  r5   Nz[Cumulative density calculations experimental for FFT method. Use piecewise method instead.*rX   r  r  r    r   r@  r  r  rA  ro  rD  z	cdf test rE  z'
rF  FrG  )r\  r9   r  r  r   rP  rs  rj   rc   r  r   r   rQ  r   r  r   )rl   r  r7  r5  r6  r   rS  rT  rU  r   rV  rW  rX  ro  rY  rZ  r[  s     ```            r3   test_cdf_nolan_samplesz%TestLevyStable.test_cdf_nolan_samplesH  s*   4 % 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   r  rb   rj   c                     t        j                         }|j                  dk(  xr dt        j                         d   v }|r|dk(  rt	        j
                  d       |}dt        j                  _        dt        j                  _	        ||d   |k(     }d| t        j                  _
        |d	v sJ |dk(  rt        j                  j                  nt        j                  j                  } ||d
   |d   |d   dd      }	t        |	||   d       y)zGTests for pdf and cdf where loc, scale are different from 0, 1
        r+  32bitr   rb   z4Test unstable on some platforms; see gh-17839, 17859r  r  S)rb   rj   rX   r  r  r`   r   r@  r3  N)rJ  rK  rL  architecturer   r   r9   r  r  r  r  rb   rj   r   )
rl   r  r  r  rK  r;  r   rW  r  r@  s
             r3   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0r5   zmethod,decimal_placesr.  r   r  c           	         t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  d      5  t               5 }|j	                  t
        d       |t        j                  _        t        j                  j                  |d|dd	
      }t        ||||       ddd       ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)z sample points extracted from Tables and Graphs of Stable
        Probability Density Functions - Donald R Holt - 1973 - p 187.
        )r   r   r   r   r    r    r    r    r`   r`   r`   r`   r   r   r   r   r   r   r   r   )gtF_?gܵ|?gQ?g@?gec]?gHP?gPkw?g!rh?gTN?g?gDioɴ?g r?gH?g+?gHPs?gX ?g&?g0*?gv/?ga2U0*?)r   re  ru   r    r   re  ru   r    r   re  ru   r    r   re  ru   r    r   re  ru   r    r  r   zDensity calculation unstable.*)categoryr[  r    r   r@  N)rc   r   r  r   rK   rs  r9   r  r  rb   r   )rl   r  decimal_placesxsdensitybetasrX  rb   s           r3   'test_pdf_alpha_equals_one_beta_non_zeroz6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zero  s     XXH
 ((
 
 [[X& 
	(9(; 
	sJJ'8   4:E0##''AuA1'ECWnf
	 
	 
	 
	 
	 
	s%   C#'ACC#C 	C##C,zparams,expected)r  r  r   r    )r`   r   rY   r  )rY   r/  r   r   c                 |    t         j                  j                  |d   |d   |d   |d   d      }t        ||       y )Nr   r    r`   r   r  r4  )r9   r  r   )rl   r  rQ   observeds       r3   r  zTestLevyStable.test_stats#  sG     $$**1IvayfQivay + 
 	Hh/r5   r  )re  ru   r   zfunction,beta,points,expectedrM  r  rY   rz   r  r~  c                     d|cxk  rdk  sJ  J t         ||||      t        j                  t        |      |             y)a\  Ensure the pdf/cdf routines do not return nan outside support.

        This distribution's support becomes truncated in a few special cases:
            support is [mu, infty) if alpha < 1 and beta = 1
            support is (-infty, mu] if alpha < 1 and beta = -1
        Otherwise, the support is all reals. Here, mu is zero by default.
        r   r    r  r  N)r   rc   r  r
  )rl   r  r  r  r  rQ   s         r3   !test_distribution_outside_supportz0TestLevyStable.test_distribution_outside_support1  s@    P 5}1}}}V5t4GGCK*	
r5   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=ry  Nr9   r  r  r   rb   rl   rX   r  r  rQ   s        r3   test_x_equal_zetaz TestLevyStable.test_x_equal_zeta_  s9    Z &-"!!!5t!<	
r5   )
)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  ry  Nr  r  s        r3   test_x_near_zetazTestLevyStable.test_x_near_zeta  s9    D &-"!!!5t!<	
r5   c                 *    t        j                         S ro   )	threadingLockrq   s    r3   levy_stable_lockzTestLevyStable.levy_stable_lock  s    ~~r5   c           	      B   t         j                  j                  }t        dddd      }t        j
                  }t	        j
                  di |}|5  d|_        d|_         |j                  di |d |d	      d
}|j                  d |d	      
      }t        j                  ||k(        rJ d|_        d|_         |j                  di |d |d	      d
}|j                  d |d	      
      }	t        |	|       t        ||       d d d        y # 1 sw Y   y xY w)Nr  rV   rz   rM  r  r  r^   r_   r   r  rY   
r   r;   )
rc   r   r   r  r9   r  r  r   r   r   
rl   r  r   r	  unfrozenfrozen
unfrozen_afrozen_a
unfrozen_bfrozen_bs
             r3   $test_frozen_parameterization_gh20821z3TestLevyStable.test_frozen_parameterization_gh20821  s    ii##Ccs#>$$"",V, 	/(,H%&*F#%UURc)nUJzzrIzGHvvh*4555(,H%&*F#%UURc)nUJzzrIzGH:.X.	/ 	/ 	/s   B;DDc           	         t         j                  j                  }t        dddd      }t        j
                  }|5  d|_        t	        j
                  di |} |j                  di |d |d      d	}|j                  d |d      	      }t        ||       d
|_        t	        j
                  di |} |j                  di |d |d      d	}|j                  d |d      	      }	t        |	|       d d d        y # 1 sw Y   y xY w)Nr  rV   rz   rM  r  r   rY   r  r   r  r;   )	rc   r   r   r  r9   r  r  r   r   r  s
             r3   %test_frozen_parameterization_gh20821bz4TestLevyStable.test_frozen_parameterization_gh20821b  s     ii##Ccs#>$$ 	/(,H%&&00F%UURc)nUJzzrIzGH:.(,H%&&00F%UURc)nUJzzrIzGH:.	/ 	/ 	/s   B=DDN)*r   r   r   r   r  r  r  r  r  r   r   r   r  rC  r   r  ro  r|  r  r   r#  r'  rc   rR  thread_unsafer\  rh  rm  ru  r  r  r  r9   r  rj   rb   rz  r  r  r  r  r  r;   r5   r3   r  r    s   V^^D!B "B ^^ B ^^) )V ^^  [[[[FLLlfll4v{{7G7GH

 [[/$>[[C [[]VV,<= > ? $ [[[[Vc1X.
 / 
-0 [[>?[[ 	
 [[D$<
 @

,	,
G [[[[*FLL
 FLL(#(kk&&	 FLLDCB'B2&kk''	-
* [[@ + .@D [[*FLL
 FLL(#(kk&&	 FLLDCB'B2&kk''	-
* [[z +,zx [[Wq!f-[[VeU^41 5 .1@ [[AJ!	
@ [[!RVVRVVRVV!<=/	
00 [[W&78[[' !!%%CB'	 !!%%CB'	 !!%%Ar2&	 !!%%Ar2&	'	
:
; 9<
  [[&	
)8
98
0 [[[[	
 
! "
0 ^^   /./r5   r  c                       e Zd Zd Zd Zy)TestArrayArgumentc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestArrayArgument.setup_method  r1  r5   c                     t         j                  j                  t        j                  d      t        j
                  d      d      }t        |j                  d       y )Nr   r  r  )r9   r  r   rc   r  r  r   r;  rl   r   s     r3   test_noexceptionz"TestArrayArgument.test_noexception  s>    jjnn"))A,rwwqz")  +SYY(r5   N)r   r   r   r0  r  r;   r5   r3   r  r    s    )r5   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  )r9   r$  r  r	   lowerr  rq   s    r3   test_docstringszTestDocstring.test_docstrings  sg    >>!!-J%.."8"8">">"@@A??"".K5??#:#:#@#@#BBC /r5   c                 T    t        j                          t        j                          y ro   )r9   r?   r>   rq   s    r3   test_no_name_argzTestDocstring.test_no_name_arg  s    r5   N)r   r   r   r  r  r;   r5   r3   r  r    s    Dr5   r  c                     t        g d      } t        | dkD  | d      \  }}t        |g d       t        |dg       t        ddkD  | d      \  }}t        ||        t        |dgt        j                  |       z         t        | dkD  | d      \  }}t        ||        t        |dgt        j                  |       z         y )N)r    r   r`   r    r`   r   r   r    r`   )r   r`   r`   r   r   r   )r   r   r   rc   r   r1   r2   r  s      r3   test_args_reducer    s    #$Aa!eQ"DAqq/*q1#a!eQ"DAqq!q1#
*+a!eQ"DAqq!q1#
*+r5   c                   R   e Zd Zg dZd Zg dZej                  j                  de	      d        Z
d Zd Zd Zd	 Zd
 Zd Zd Zej                  j$                  ej                  j                  dddg      d               Zej                  j                  dddg      d        Zy)TestFitMethod)ncfr>  r?  	irwinhallc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestFitMethod.setup_method  r1  r5   )r^  r  r  r  z	dist,argsc                    || j                   v rt        j                  | d       t        j                  dddddt        j
                  g      }t        j                  dddddt        j                  g      }t        t        |      }t        t        |j                  |d       t        t        |j                  |d       y	)
r  z  fit known to fail or deprecatedr  r  r  r  r  r    rq  N)fitSkipNonFiniter   r   rc   r   r  r  r'  r9   rW  r  r   )rl   rM   r)  rX   r(  distfuncs         r3   !test_fit_w_non_finite_data_valuesz/TestFitMethod.test_fit_w_non_finite_data_values  s     4(((KK4& @ABHHfffffbffEFHHfffffbffEF5$'j(,,!<j(,,!<r5   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  r  ro  re  rz         4@r  r4  r`   r   r:  r%  r   )rc   r   r   r  r9   r!  r   r  r  r   r   r   r   )rl   rX   expected_shapes      r3   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   rq  )rc   r  r9   r  r   r   r  r   rl   rX   r^   r_   s       r3   test_fix_fit_normzTestFitMethod.test_fix_fit_norm2  s    IIaOZZ^^A&
UC#E2771:.ZZ^^AA^.
US!UBGGAJ'ZZ^^Aa^0
UC#UAr5   c                 J   t        j                  dd      }t        j                  |      j                         }d}t        j
                  j                  ||      \  }}}t        j                  |j                               |z
  }t        t        j                  |      t        j                  |      z
  |d       t        ||       t        ||j                         |z  d       d}d}t        j
                  j                  |||      \  }}}t        ||       t        ||       t        ||j                         |z  d       d	}d}t        j
                  j                  |||      \  }}}t        ||       t        ||       t        ||j                         |z  d       d}d	}	t        j
                  j                  |||	
      \  }}}t        ||       t        ||	       |t        j                  |	      z
  }
t        t        j                  |      |
       y )Nr    r)  r   r   r   rP  r  r   r   r`   r:  )rc   r  r  r   r9   r  r   r   r   digammar   )rl   rX   meanlogr   r1   r^   r_   rG   r   r   r  s              r3   test_fix_fit_gammaz TestFitMethod.test_fix_fit_gammaA  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.2r5   c           	         d }t        j                  g d      }t        j                  j	                  |dd      \  }}}}t        |d       t        |d       t         ||||      ddgd       t        j                  g d      }t        j                  j	                  |ddd	      \  }}}}t        |d       t        |d       t        |d        ||||      \  }}t        |dd
       d|z
  }	t        j                  j	                  |	ddd      \  }
}}}t        |d       t        |d       t        |d        ||
||	      \  }}t        |dd
       t        |
|       t        t        t        j                  j                  |dd       t        j                  g d      }t        t        t        j                  j                  |dd       t        t        t        j                  j                  |ddd       t        t        t        j                  j                  |ddd       t        t        t        j                  j                  |dddd       y )Nc                 Z   t        |      }t        j                  |      j                         }t        j                  d|z
        j                         }t	        j
                  | |z         }||| t	        j
                  |       z   z  z
  ||| t	        j
                  |      z   z  z
  g}|S r   )r
  rc   r  rf  r   psi)r1   r2   rX   rn  s1r  psiabr   s           r3   mlefuncz0TestFitMethod.test_fix_fit_beta.<locals>.mlefuncj  s     AAB!"BKKA&Eufw{{1~566ufw{{1~5668DKr5   )rr  re  ru   r   r    r:  ro  r   r`   )r   r   r   r3  )r  r   r   ru   r;  )r   r   r   )r   r   r  r   )r   r  r   r   )
rc   r   r9   r  r   r   r   r   rW  r  )rl   r  rX   r1   r2   r^   r_   dadbri  r  b2r  r  r(  s                  r3   test_fix_fit_betazTestFitMethod.test_fix_fit_betag  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	(r5   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   rq  r   r   r   )rc   r   r9   r^  r   r   r  s       r3   test_expon_fitzTestFitMethod.test_expon_fit  s    HH-.[[__Q'
US!UA[[__Qq_1
US!UA[[__QQ_/
US!UAr5   c           	      @   t        j                  g d      }t        j                  |dz
        }t        j                  j                  |d      \  }}}t        ||j                         d       t        |d       t        |t        j                  |j                               d       t        j                  j                  |dd      \  }}}t        |t        j                  |t        j                  d      z
  dz  j                               d       t        |d       t        |d       t        j                  j                  |dd	
      \  }}}t        |d	       t        |d       t        |t        j                  |j                               d       y )N)r  r   rY   r8     r  r    r   r  r~   r)  r:  r`   r   )r   fix_s)rc   r   r  r9   r!  r   r   rt  r   r   r   r  )rl   rX   lnxm1r;  r^   r_   s         r3   test_lognorm_fitzTestFitMethod.test_lognorm_fit  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%@r5   c                    t        j                  g d      }t        j                  j	                  |      \  }}t        ||j                                t        |t        j                  |             t        j                  j	                  |d      \  }}t        |d       t        ||j                                t        j                  j	                  |d      \  }}t        |d       t        |d       t        t        t        j                  j                  |d       t        t        t        j                  j                  |d       y )N)rM  r  r[  r  r   r   rY   rq  ry   rN  )rc   r   r9   r  r   r   r  r  r  rW  r  r  s       r3   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Cr5   r  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)r  r  rZ   r   r   r  )r   r  )rR  r  r  rg  )rS  r  r  )r  r  )r  r  )r  r  r    r`   )rR  r   r  r   r   )rR  r  r   r   r  )rR  r   r   r  )r  r   r    r4  )	r9   r  r   r   r   rW  r  r   r  )rl   r  r1   r2   rX   res_1res_2res_3res_4res_5aabbr  ssr   s                  r3   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r5   c                     t         j                  }|j                  dd      }t        d      }t	        t
        |j                  |fi |d|i y )Nr`   rZ   )r  r   i)enikibenikir  )r9   r  r   r  rW  r  r   )rl   r  rM   r   r(  s        r3   test_extra_paramszTestFitMethod.test_extra_params  sC     xx!#x&t$i4F3FvFr5   N)r   r   r   r   r0  r  r   r   r   r   r  r  r  r  r  r  r  r  r   r  r  r;   r5   r3   r  r    s    1D A[[[(3= 4=@$3L5(nA(D$ [[[[Xt}5$ 6 $L [[Xt}5G 6Gr5   r  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)
TestFrozenc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestFrozen.setup_method  r1  r5   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  r  r]   r  re  r`   )r9   r  rb   r   rj   r   r  r   r>  r   r7  rt  rA   r  r1   r2   )rl   rM   r  result_fr  s        r3   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&r5   c                    d}t         j                  }t        j                  |      }|j                  d      }|j                  d|      }t        ||       |j	                  d      }|j	                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                  d      }|j                  d|      }t        ||       t        |j                  |j                  j                         t        |j                   |j                  j                          y )Nry   r  re  r  r`   )r9   r  rb   r   rj   r   r  r   r>  r   r7  rt  rA   r  r1   rM   r2   )rl   r1   rM   r  r  r  s         r3   
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{{}}-r5   c                     t        j                  d      }|j                  d      }|j                  d       |j                  d      }t        ||       y )Nr    r`   r  r  )r9   r!  r  r   )rl   r  m1rr  s       r3   test_regression_ticket_1293z&TestFrozen.test_regression_ticket_1293t  sH    q!]]1V$ ]]1 	Rr5   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  r  rz   r  rV   r   r  r  ru   )r9   r  rM   r  r   rb   rc   r  r1   r2   r	   r   r  r   )rl   r  r  r1   r2   rv1s         r3   r  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.
	/r5   c                 J    t        t        t        j                  d             y )N	rv_frozen)r	   r0   r9   r:   rq   s    r3   test_rv_frozen_in_namespacez&TestFrozen.test_rv_frozen_in_namespace  s    ++[9:r5   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   )r9   r  r	   r0   r   r   	get_staterc   r   r  r   )rl   r  rndms      r3   test_random_statezTestFrozen.test_random_state  s    /0 !V((224YY**2.88:	< yy$$T*


-r5   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?r  )r   r    r`   r   r2  rK  r   r  r4  ru   r   r    )r9   r  r}  r>   r   r   pickledumpsloadsr   r   rj   )
rl   r  poissrD  distfnrG   r0	unpickledr1medianss
             r3   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	4r5   c           
         d }t        j                  ddd      }t        j                  dd      5  |j	                  |ddd	
      }t         j                  j	                  |dddddd	      }d d d        t               t        j                  dd      }|j	                  |      }t         j                  j	                  |dd      }t        ||       y # 1 sw Y   lxY w)Nc                     | S ro   r;   r   s    r3   r   z$TestFrozen.test_expect.<locals>.func  s    Hr5   r`   r   r   r  r  )r  divider    T)r   ubconditionalr`   r)  r^   r_   r   r	  r		  r  )r   r)  r^   )r9   r  rc   r  r   r   r}  )rl   r   gmgm_val	gamma_valro  p_valpoisson_vals           r3   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   r0  r  r  r  r  r  r  r	  r	  r;   r5   r3   r  r    s2    1'f2.h*/X;.40,r5   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
        Zd Zd Zd Zd Zy)
TestExpectc                    t         j                  j                  d dd      }t        |dd       t         j                  j                  d dd      }t        |dd       t         j                  j	                  d	dd      }t         j                  j	                  d
dd      }t         j                  j                  d dd||      }t        |dd       t         j                  j                  d dd||d      }t        |dd       y )Nc                     | dz
  | dz
  z  S )Nr   r;   r   s    r3   rH   z&TestExpect.test_norm.<locals>.<lambda>  s    1qs r5   r   r`   r]   r   r$  rP  c                     | S ro   r;   r   s    r3   rH   z&TestExpect.test_norm.<locals>.<lambda>  s     r5   r?  r2  c                      yr   r;   r   s    r3   rH   z&TestExpect.test_norm.<locals>.<lambda>  r   r5   r^   r_   r   r	  r   c                      yr   r;   r   s    r3   rH   z&TestExpect.test_norm.<locals>.<lambda>  r   r5   Tr^   r_   r   r	  r		  rM  )r9   r  r   r   r   )rl   r  r  r   r	  prob90prob90cs          r3   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4r5   c           	      0   t         j                  j                  d ddd      }t        |dd       t         j                  j                  d	 dd
d      }t        |dd       t         j                  j	                  ddddd      }t         j                  j	                  ddddd      }t         j                  j                  d dd
d||d      }t        |dd       t         j                  j                  d ddd||d      }t        |dd       y )Nc                     | dz
  | dz
  z  S )NUUUUUU@r;   r   s    r3   rH   z&TestExpect.test_beta.<locals>.<lambda>  s    51U7(; r5   r  r   r`   )r)  r^   r_   qq?r  rP  c                     | S ro   r;   r   s    r3   rH   z&TestExpect.test_beta.<locals>.<lambda>  s     r5   rN  ry   r 	  r2  rY   r]   r?  c                      y)NrM  r;   r   s    r3   rH   z&TestExpect.test_beta.<locals>.<lambda>  r   r5   )rY   rY   Fr	  r   c                      yr   r;   r   s    r3   rH   z&TestExpect.test_beta.<locals>.<lambda>  r   r5   TrM  )r9   r  r   r   r   )rl   r  r  r	  r   r	  r	  s          r3   	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4r5   c                    t         j                  j                  dddd      \  }}t         j                  j                  d dd      }t        ||d	
       t         j                  j                  d dd      }t        ||d
       t         j                  j                  d dddd	      }t        ||d
       dt         j                  j	                  dd	gdddd      j                         z
  }t         j                  j                  d dddd      }t        ||d	
       t         j                  j                  d ddddd      }t        |dd
       t         j                  j                  d ddd      }	t        |	dd	
       y )Nr  rY   r  rN  r  c                     | S ro   r;   r   s    r3   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>      Q r5   )r  rY   r  r	  r  rP  c                     | dz
  dz  S Nr  r`   r;   r   s    r3   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    adQY r5   r$  c                     | dz
  dz  S r*	  r;   r   s    r3   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>!  s    QrTAI r5   r   )r)  r^   r   r	  r    c                      yr   r;   r   s    r3   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>(  r   r5   r)  rO  c                      yr   r;   r   s    r3   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>-  r   r5   T)r)  r^   r   r	  r		  c                      yr   r;   r   s    r3   rH   z+TestExpect.test_hypergeom.<locals>.<lambda>2  r   r5   r   )r)  r   r	  )r9   r  r   r   rI  rf  )
rl   m_truev_truer  r  v_bounds	prob_trueprob_boundsprob_bcprob_bs
             r3   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2r5   c                    t         j                  j                  d ddd      }dt         j                  j                  dd      z
  }t	        ||d	       t         j                  j                  d
 ddd      }t	        |dd	       y )Nc                      yr   r;   r   s    r3   rH   z)TestExpect.test_poisson.<locals>.<lambda>8  r   r5   r
	  r   F)r)  r   r		  r    r`   r$  rP  c                      yr   r;   r   s    r3   rH   z)TestExpect.test_poisson.<locals>.<lambda>=  r   r5   T)r9   r}  r   rj   r   )rl   r3	  prob_b_trueprob_lbs       r3   test_poissonzTestExpect.test_poisson6  sy    mm**;Ta7< + >))!Q//KbA--&&{!37 ' 9GQ3r5   c                     t         j                  }|j                  d      }|j                  d       |j                  d      }t        ||d       y )N)r  rT  )ru   r$  rP  )r9   genhalflogisticr   r   )rl   halflogr(  r,  s       r3   test_genhalflogisticzTestExpect.test_genhalflogisticA  sI     ''~~6~*F#~~6~*D$3r5   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 )Nru  Gz?c                      yr   r;   r   s    r3   rH   z/TestExpect.test_rice_overflow.<locals>.<lambda>P  r   r5   )rB	  rT  c                      yrn  r;   r   s    r3   rH   z/TestExpect.test_rice_overflow.<locals>.<lambda>Q  r   r5   c                      yNr   r;   r   s    r3   rH   z/TestExpect.test_rice_overflow.<locals>.<lambda>R  r   r5   )r	   rc   r=  r9   ricerb   r   rq   s    r3   test_rice_overflowzTestExpect.test_rice_overflowK  s     	EJJNN3567EJJ--k-HIJEJJ--k-HIJEJJ--k-HIJr5   c                    d\  }}t         j                  j                  d |f      }t        |||dz
  z  t	        j
                  d|z
        z  d       t         j                  j                  d |f|      }t        |||z   d       y )	N)rw  r   c                     | S ro   r;   rU   s    r3   rH   z(TestExpect.test_logser.<locals>.<lambda>W      a r5   rT  rM  r}   r   c                     | S ro   r;   rK	  s    r3   rH   z(TestExpect.test_logser.<locals>.<lambda>]  rL	  r5   r	  )r9   r  r   r   rc   r  )rl   ro  r^   res_0res_ls        r3   test_logserzTestExpect.test_logserT  s~    3##Kqd#;QVrvvb1f~5E	C ##Kqd#Dus{7r5   c                     d\  }}t         j                  j                  d ||f      }t         j                  j                  d ||f      }t        |||z
  d       t        ||dz  z
  ||z   d       y )N)r  r  c                     | S ro   r;   r   s    r3   rH   z)TestExpect.test_skellam.<locals>.<lambda>d  s    A r5   rT  c                     | dz  S rn  r;   r   s    r3   rH   z)TestExpect.test_skellam.<locals>.<lambda>e  ro  r5   r  r   r`   )r9   r0  r   r   )rl   r  p2r  rr  s        r3   test_skellamzTestExpect.test_skellam`  so     B]]!!+RH!=]]!!.Bx!@BG%0RU
BG%8r5   c           
          d\  }}t         j                  j                  d ||f      }t        |t	        d t        ||      D              ||z
  z  d       y )N)r   q   c                     | S ro   r;   r   s    r3   rH   z)TestExpect.test_randint.<locals>.<lambda>m  r(	  r5   c              3       K   | ]  }|  y wro   r;   r  r   s     r3   rl  z*TestExpect.test_randint.<locals>.<genexpr>o  s     5!A5s   r}   r   )r9   r:  r   r   rf  r  )rl   r)  r*  r   s       r3   test_randintzTestExpect.test_randinti  sQ     Bmm"";R95uR}55bA	Or5   c                 Z    t        t        t        j                  j                  d d       y )Nc                     | dz  S rn  r;   r   s    r3   rH   z&TestExpect.test_zipf.<locals>.<lambda>u  s
    q!t r5   r
	  )r
   rs  r9   rd  r   rq   s    r3   	test_zipfzTestExpect.test_zipfq  s     	^UZZ%6%6#T	+r5   c                     t         j                  j                  d d      }t         j                  j                  d dddd      }t        ||d	
       y )Nc                      yr   r;   r   s    r3   rH   z/TestExpect.test_discrete_kwds.<locals>.<lambda>y  r   r5   r
	  rT  c                      yr   r;   r   s    r3   rH   z/TestExpect.test_discrete_kwds.<locals>.<lambda>z  r   r5   r      r%  )r)  maxcount	chunksize	tolerancer$  rP  )r9   r}  r   r   )rl   n0n1s      r3   test_discrete_kwdszTestExpect.test_discrete_kwdsw  sL    ]]!!+D!9]]!!+D+/2 " OBB/r5   c                     d }dD ]6  }t         j                  j                  d|      }t        | ||      d       8 y )Nc                 H    | dz  d| dz  z  z   d| dz  z  z   d| dz  z  z   | z   S )Nr   rY   r   r~  r   r8  r`   r;   r  s    r3   poiss_moment5z-TestExpect.test_moment.<locals>.poiss_moment5  s8    q52b!e8#bQh.BE9B>>r5   )r   r  r   r  r~   )r9   r}  r  r   )rl   rk	  rW  m5s       r3   test_momentzTestExpect.test_moment~  s?    	?  	?B%%a,BBb 1>	?r5   c                    t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  d      d	       t        t        j
                  j                  d
      d
       y )NrE  rM  r]   rv  rY   rV   )   rT  ro	  U   r  )r   r9   r  r   r  rX  rq   s    r3   test_challenging_cases_gh8928z(TestExpect.test_challenging_cases_gh8928  s     	

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

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

))b)<bA***7=--"-5r:r5   c           	         t         j                  }|j                  dd      }t        |j	                  dd      |       t        |j	                  dddd      |       t        |j	                  dddd      |d	z         t        |j	                  ddddd
      |       t        |j	                  dddd      d       t        |j	                  dddd      d       t        |j	                  ddddd
      d       y )NrY   r   r]   r  rl  r	  r  r$  r|  Tr	  r  g433333@g433333rO  )r9   r  r   r   r   )rl   rM   r~  s      r3   test_lb_ub_gh15855zTestExpect.test_lb_ub_gh15855  s    }}iiBai(!4c:!bA3G!rBCGL!r04 $ 67:	< 	!rBFK!rBGL!r04 $ 679	;r5   N)r   r   r   r  r%	  r6	  r<	  r@	  rH	  rP	  rU	  r[	  r   r   r  r^	  rh	  rm	  rq	  rs	  r;   r5   r3   r	  r	    sd    
5 5& 3D	44K
89O [[+ +
0?;;r5   r	  c                   x    e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  ddd	g      d
        Zy)TestNctc                     t        j                  dd      }t        |j                  d      d       t        j                  dd      }t	        |j                  d      dd       y )Nr   r   ru   r   g K?rY   rP  )r9   nctr   rj   r   r  s     r3   test_nc_parameterzTestNct.test_nc_parameter  sI     YYq!_RVVAY$YYq"BFF1I~rBr5   c           	          t         j                  j                  dt        j                  dd      d d d f   t        j
                  ddd            }t        g dg dg dg      }t        ||d	
       y )Nr   r   r  rV   r    )gMp^j?g6].ftv?gȳ'ς?gu?)g!Y<a?g]d1p?go|?g?)gHdY?g2Ԥg?g}o/u?g .mr?r3  r~   )r9   rw	  rb   rc   r  rR  r   r   )rl   r   rQ   s      r3   test_broadcastingzTestNct.test_broadcasting  sc    iimmAryyAq$w7KKQ24JJJL M 	XD1r5   c                 d    t        j                  dd      }t        |j                         d       y )Nr   r   ry   )r9   rw	  r   r7  r  s     r3   test_variance_gh_issue_2401z#TestNct.test_variance_gh_issue_2401  s#    
 YYq!_RVVXs#r5   c                    t         j                  j                  ddd      \  }}}}t        ||||gt        j                  t        j                  t        j                  t        j                  g       t         j                  j                  ddd      \  }}}}t        t        j                  |             t        |||gt        j                  t        j                  t        j                  g       t         j                  j                  ddd      \  }}}}t        t        j                  |||g      j                                t        |t        j                         y )Nr   rw  r  )r  ncr  r  r  )r9   rw	  r   rc   r  r	   r=  r   r  s        r3   test_nct_inf_momentszTestNct.test_nct_inf_moments  s    YY__V_D
1aaAq\BFFBFFBFFBFF#CDYY__V_D
1aAaAY 89YY__V_D
1aQ1I&**,-Qr5   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  )r9   rw	  r   r   )rl   nct_mean_df_1000nct_stats_df_1000expected_stats_df_1000nct_mean	nct_statsr  s          r3   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%@	>=r5   c           	      l    t        t        j                  j                  ddt	        d            d       y )Nr`   i   r   )r   r9   rw	  rj   r   rq   s    r3   test_cdf_large_nczTestNct.test_cdf_large_nc  s!    		aE%L91=r5   zx, df, nc, expected)r  rY   rl  gAs69)rf  r  rl  gV1c                 ^    t        t        j                  j                  |||      |d       y r  )r   r9   rw	  rb   )rl   rX   r  r~	  rQ   s        r3   test_pdf_large_nczTestNct.test_pdf_large_nc  s!     			aR0(Gr5   N)r   r   r   rx	  rz	  r|	  r	  r	  r	  r   r   r   r	  r;   r5   r3   ru	  ru	    sT    C2$ >,>6 [[2.+5
 H	Hr5   ru	  c                   $    e Zd Zd Zd Zd Zd Zy)TestRecipInvGaussc                 R    t         j                  j                  dd      }|dk(  sJ y )Nr   r|  rz   )r9   recipinvgaussrb   r  s     r3   test_pdf_endpointz#TestRecipInvGauss.test_pdf_endpoint	  s%    ##As+Cxxr5   c                 p    t         j                  j                  dd      }|t        j                   k(  sJ y )Nr   r|  )r9   r	  r   rc   r  ra  s     r3   test_logpdf_endpointz&TestRecipInvGauss.test_logpdf_endpoint  s,    ""))!S1wr5   c                 d    t         j                  j                  dd      }d}t        ||d       y )Nr?  ru   g9V9s;r  r~   )r9   r	  rj   r   rl   ro  rQ   s      r3   test_cdf_small_xz"TestRecipInvGauss.test_cdf_small_x  s-      ##D#.(8%0r5   c                 b    t         j                  j                  dd      }d}t        ||d       y )Nr  ru   glH<r  )r9   r	  r   r   r	  s      r3   test_sf_large_xz!TestRecipInvGauss.test_sf_large_x%  s+    ""2s+(8U+r5   N)r   r   r   r	  r	  r	  r	  r;   r5   r3   r	  r	    s    1(,r5   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)rJ  rM  rN  rz   r2   )rV   rV   ru   r   r   r  r  r%  rg  )r	   rc   r=  r9   rG	  rb   r   r   rj   r  r   r   )rl   rX   rx  r  r2   s        r3   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	(r5   c                     t         j                  j                  }t         |d      j                  d       t         |dd      j
                  d       y )Nr  r	  r    )r   r   )r2   r   )r9   rG	  r   r   r   r;  r  s     r3   test_rice_rvszTestRice.test_rice_rvsB  s8    jjnnS2Y^^Q'S2F+116:r5   c                    t         j                  j                  t        j                  ddd      t        j                  ddd            }g d}t        ||       t        j                  ddd      }t         j                  j                  |dd      }g d	}t        ||       t        j                   j                  j                  d
t        j                  ddd            }g d}t        ||       y )NrY      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?rV   r    g     @_@r   r  )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@ru      )gJ-$@g+f4@gce*D>@g$D@gnHGI@grN@g<
uQ@giff T@g9r[V@g3bXQ Y@gqxJ[@g`*DD ^@g@`@gdAa@)r9   rG	  rj   rc   r  r   r   r8   )rl   rj   cdf_expprobabilitiesr   ppf_exps         r3   test_rice_gh9836zTestRice.test_rice_gh9836G  s     jjnnRYYr33RYYr35KLO
 	W%		#q#.jjnn]En;L 	W%kk""3		"c2(>?;
 	W%r5   N)r   r   r   r	  r	  r	  r;   r5   r3   r	  r	  ,  s    (*;
'&r5   r	  c                       e Zd Zd Zd Zd Zy)
TestErlangc                 B    t         j                  j                  d       y r.  r/  rq   s    r3   r0  zTestErlang.setup_methodr  r1  r5   c           	         t        j                         5  t        j                  dt               t	        t        t
        j                  j                  dddd       g d}t
        j                  j                  |d      }t
        j                  j                  |d      }t        ||d	
       d d d        y # 1 sw Y   y xY w)Nrl  r  r   r    r   r  )ru   rM  ry   r  r}  r  r~   )rp  rq  rr  rs  rW  r9   erlangr   r   r  r   )rl   r   result_erlangresult_gammas       r3   test_erlang_runtimewarningz%TestErlang.test_erlang_runtimewarningu  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 )Nru   r    r   rg  )r   r9   r	  rb   r  rq   s    r3   test_gh_pr_10949_argcheckz$TestErlang.test_gh_pr_10949_argcheck  s<    U\\%%caW%5[[__SQG_4	6r5   N)r   r   r   r0  r	  r	  r;   r5   r3   r	  r	  q  s    D&6r5   r	  c                       e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	ej                  j                  ddd	gd
dgg      d        Z
d Zd Zy)TestRayleighc                 B    t         j                  j                  d       y )Nr  r/  rq   s    r3   r0  zTestRayleigh.setup_method  s    
		y!r5   c                 Z    t         j                  j                  d      }t        |d       y )Nr6  g)Zx)r9   r$  r   r   rl   r(  s     r3   r  zTestRayleigh.test_logpdf  s!    NN!!"%./r5   c                 Z    t         j                  j                  d      }t        |d       y )Nr6  i)r9   r$  r  r   r	  s     r3   r  zTestRayleigh.test_logsf  s     NN  $5!r5   r  )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  rd  c                 \    t        j                  | |z
  dz        dt        |       z  z  dz  S )Nr`   ru   )rc   rf  r
  )r   r   s     r3   r  z(TestRayleigh.test_fit.<locals>.scale_mle  s,    FFD4KA-.!c$i-@RGGr5   r   r|  rq  )r9   r$  r   r   r   )rl   r   r4  r   r  scale_expectr^   r_   s           r3   ro  zTestRayleigh.test_fit  s     ~~!!sy!I	H !w/^^''7';
US'"UL) ^^''R'8
UUB
 ^^''-
UUIdC01r5   rB	  rw   g̡=E?g@1d?c                 |    t         j                  j                  d||      }t        t         j                  |       y )Nr  rd  )r9   r$  r   r   )rl   r   r4  r   s       r3    test_fit_comparison_super_methodz-TestRayleigh.test_fit_comparison_super_method  s-    
 ~~!!sy!I%ennd;r5   c                 6    t        t        j                         y ro   )r  r9   r$  rq   s    r3   r  zTestRayleigh.test_fit_warnings  s    ENN+r5   c                    t         j                  j                  d      }d\  }}}t        j                  j                  ||||      }t        j                  j                  |      \  }}|t        j                  |      k  sJ t        j                  j                  ||      \  }}|t        j                  |      k  sJ ||k(  sJ y )Ni  )r6  r  r  r   rq  )rc   r   r   r9   r$  r   r   r  )	rl   r   r^   r_   r   r   r   r   r   s	            r3   test_fit_gh17088zTestRayleigh.test_fit_gh17088  s     ii##C('UDnn  e$S I^^'',
$$$"^^//E/B$$$E!!!r5   N)r   r   r   r0  r  r  r   r   r   ro  r	  r  r	  r;   r5   r3   r	  r	    s    "0" [[03K3K3M N2N2. [[0D$<4>
3K3M N<N<,
"r5   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
ej                  j                  dd
dg      d        Zej                  j                  dddg      d        Zy)TestExponWeibc                     d}d}d}t         j                  j                  |||      }t         j                  j                  |||      }t	        ||gddg       y )NrV   rM  r  g:23W+g~`9k)r9   	exponweibrb   r   r   )rl   rX   r1   r  ro  r  s         r3   test_pdf_logpdfzTestExponWeib.test_pdf_logpdf  sY    OO1a(%%aA.D	/1DE	Gr5   c                 n   t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  ||      }t        ||       t        j                  j                  |||      }t        j
                  j                  ||      }t        ||       y )Nr  r   r   r    rZ   )rc   r  r9   r	  rb   weibull_minr   r   rl   rX   r1   r  ro  rQ   r  s          r3   test_a_is_1zTestExponWeib.test_a_is_1  s     KKB"OO1a($$((A.8$%%aA.$$++Aq1h'r5   c                 j   t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       t        j                  j                  |||      }t        j
                  j                  |      }t        ||       y )Nr  r    rY   )rc   r  r9   r	  rb   r^  r   r   r	  s          r3   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'r5   zx, a, c, ref))r    r|  r   g=J ?)r6  r|  r   g$+PR>)r  r|  r   g><)r  r|  r   ggX.X:)r        ?r   gRy9)r   r	  r  g'vR0=)g_QPr  r  gQ:<c                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r	  r   r   )rl   rX   r1   r  r~  r   s         r3   r  zTestExponWeib.test_sf  s(     __1a(Ce,r5   zp, a, c, ref))re  r|  r   g;y$(@)gMg<r|  r   gdbq^@)r  r    r`   gE@)gvIh%L=r	  r   g/7@)rH  r  r  gTWTOc                 b    t         j                  j                  |||      }t        ||d       y rJ  )r9   r	  r  r   )rl   ro  r1   r  r~  r  s         r3   r  zTestExponWeib.test_isf&  s(     oo!!!Q*Su-r5   )r`   r   r  g)r   ru   r   gl̇կc                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r	  r  r   )rl   rX   r1   r  r~  r  s         r3   r  zTestExponWeib.test_logcdf3  s(     ''1a0%0r5   )gR]jp2r  r  gr)rC  r`   rY   gN~c                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r	  r  r   )rl   rX   r1   r  r~  r  s         r3   r  zTestExponWeib.test_logsf;  s(     %%aA.s/r5   N)r   r   r   r	  r	  r	  r   r   r   r  r  r  r  r;   r5   r3   r	  r	    s    	G( (> [[	5	-	-* [[	4..
 [[^AGIJ1J1
 [[^IFHI0I0r5   r	  c                       e Zd Zd Zd Zy)TestFatigueLifec                 `    t         j                  j                  dd      }t        |dd       y )Nrg  r|  X9r   r~   )r9   r  r   r   r  s     r3   test_sf_tailzTestFatigueLife.test_sf_tailE  s)       ,0u=r5   c                 d    d}t         j                  j                  |d      }t        |dd       y )Nr	  r|  rg  r   r~   )r9   r  r  r   )rl   ro  rx  s      r3   test_isf_tailzTestFatigueLife.test_isf_tailS  s+    !!!!S)5u-r5   N)r   r   r   r	  r	  r;   r5   r3   r	  r	  C  s    >.r5   r	  c                       e Zd Zd Zd Zej                  j                  dddg      d        Zd Z	ej                  j                  dd	d
g      d        Z
y)TestWeibullc                 \    t         j                  j                  dd      }t        |d       y r  )r9   r	  r   r   r	  s     r3   r  zTestWeibull.test_logpdf\  s$    $$Q*Qr5   c                 X   d}d}d}t         j                  j                  |||      }t        |t	        j
                  d      dz         t         j                  j                  |||      }t        |dt	        j                  d      z
         t         j                  j                  |||      }t        |t        j                  d              t         j                  j                  |||      }t        |t	        j                  t        j                  d                    t         j                  j                  |||      }t        |t	        j
                  d             t         j                  j                  |||      }	t        |	d       t         j                  j                  ddd      }t        |t	        j
                  d	             t         j                  j                  ddd      }	t        |	d	       d
}t         j                  j                  |||      }t        |t	        j
                  d      dz         t         j                  j                  |||      }t        |dt	        j                  d      z
         t         j                  j                  |||      }t        |t	        j
                  d             t         j                  j                  |||      }t        |d       t         j                  j                  |||      }t        |t        j                  d              t         j                  j                  |||      }	t        |	t	        j                  t        j                  d                    t         j                  j                  ddd      }t        |t        j                  d              t         j                  j                  ddd      }	t        |	t	        j                  t        j                  d                    y )Nr  ry   r  r  r  r   r3  r`   r  rQ  g&.gCe )r9   r	  rb   r   rc   r   r   r  rj   r   r  r  r   r  weibull_max)
rl   rX   r1   r2   ro  r-  r  lcrG   r  s
             r3   test_with_maxima_distribz$TestWeibull.test_with_maxima_distriba  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Kr5   r_   rM  rV   c                 n    t         j                  j                  |dz  |dz  d|      }t        |d       y )Nr  r  r   r  g>)r9   r	  r  r   r  s      r3   r  zTestWeibull.test_delta_cdf  s;    " !!,,U3Ya38 - :56r5   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`   r1  ru   rZ   r   r  r   r   r  r  r  r  r  )
rc   r   r   r9   r	  r   r   r   r8  r   )rl   r   r  r^   r_   rM   r   c2r  r  c3r  r  c4r  r  r  r   r~  s                      r3   test_fit_minzTestWeibull.test_fit_min  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!r5   r$  )r6  r    r  )r   r   gq뮕qH)c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y rJ  )r   r9   r	  r   r  r(  s       r3   r  zTestWeibull.test_sf_isf  sB     	)),,Q2CeD))--c15quEr5   N)r   r   r   r  r	  r   r   r   r  r	  r  r;   r5   r3   r	  r	  Z  su    
RLh [[WsCj17 27("< [[[+J,D+E FFFFr5   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>~). rY   rZ   r  ru   r}   r~   )
rc   r   r   r  r9   dweibullrA   r	  r  r   )rl   r   r  r   r~  s        r3   rj  zTestDweibull.test_entropy  ss     ii##$78

2
..nn$$Q'''*RVVC[8Su-r5   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 )Nr	  rY   r    r  ru   r}   r~   )
rc   r   r   r  r  r9   r	  r   r	  r   )rl   r   r  rX   r   r~  s         r3   r  zTestDweibull.test_sf  s     ii##$78


,,nn1%E%%((A..Su-r5   N)r   r   r   rj  r  r;   r5   r3   r	  r	    s    ..r5   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
)TestTruncWeibullc                 h    t         j                  j                  ddgddd      }t        |ddg       y )NrV   ry   g)\(?gףp=
?rz   )r9   truncweibull_minrb   r   r	  s     r3   test_pdf_boundsz TestTruncWeibull.test_pdf_bounds  s0    ""&&Sz3dCQc
#r5   c                     t         j                  j                  dddt        j                        }t        |d       t         j                  j                  dddd      }t        |d       y )Nry   rM  rz   r  g~?)r9   r	  r   rc   r  r   r   r	  s     r3   r  zTestTruncWeibull.test_logpdf  sU    ""))#sC@Q ""))#sC=./r5   c                 h    t         j                  j                  ddgddd      }t        |ddg       y )Nrz   rM  ry   rV   )r9   r	  r   r   r	  s     r3   test_ppf_boundsz TestTruncWeibull.test_ppf_bounds  s0    ""&&Sz3SAQc
#r5   c                     g d}t         j                  j                  |ddd      }t         j                  j                  |ddd      }t	        ||       y N)rz   rV   re  ru   r   r   rM  ry   rz   r  )r9   r	  r   rj   r   rl   rx  rX   q_outs       r3   test_cdf_to_ppfz TestTruncWeibull.test_cdf_to_ppf  sI    0""&&q"b"5&&**1b"b95!r5   c                     g d}t         j                  j                  |ddd      }t         j                  j                  |ddd      }t	        ||       y r	  )r9   r	  r  r   r   r	  s       r3   test_sf_to_isfzTestTruncWeibull.test_sf_to_isf#  sI    0""&&q"b"5&&))!RR85!r5   c                    dddfdt         j                  j                  d      }t        |d       t         j                  j                  d      }t	        fd      \  }}t        ||       t         j                  j                  d      }t	        fd	      \  }}t        ||       t         j                  j                  d
      }t	        fd      \  }}t        ||       t         j                  j                  d      }	t	        fd      \  }
}t        |	|
       y )Nry   rM  r  c                 T    | |z  t         j                  j                  |       z  S ro   )r9   r	  rb   )rX   rn  r1   r2   r  s     r3   xnpdfz)TestTruncWeibull.test_munp.<locals>.xnpdf.  s)    a4..221aA>>>r5   r   r    c                      | d      S r   r;   rX   r	  s    r3   rH   z,TestTruncWeibull.test_munp.<locals>.<lambda>5      a r5   r`   c                      | d      S rn  r;   r	  s    r3   rH   z,TestTruncWeibull.test_munp.<locals>.<lambda>9  r	  r5   r   c                      | d      S rF	  r;   r	  s    r3   rH   z,TestTruncWeibull.test_munp.<locals>.<lambda>=  r	  r5   r   c                      | d      S )Nr   r;   r	  s    r3   rH   z,TestTruncWeibull.test_munp.<locals>.<lambda>A  r	  r5   )r9   r	  r  r   r   r   )rl   r  r  m1_expectedr   rr  m2_expectedm3m3_expectedrs  m4_expectedr1   r2   r  r	  s              @@@@r3   	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(r5   c                 8   d}d}d}t        j                  dt        j                  dt        j                  dt        j                  d      z          z         z
        }t        j
                  j                  ||||      }t        |d       t        j
                  j                  ||||      }t        |t        j                  d              t        j
                  j                  d|||      }t        ||       t        j
                  j                  ||||      }t        |d       t        j
                  j                  ||||      }	t        |	t        j                  d              t        j
                  j                  d|||      }
t        |
|       y )NrM  r  ry   r    ru   r  )rc   r  r  r   r9   r	  rj   r   r  r   r   r  r  )rl   r1   r2   r  x_medrj   r	  r   r   r  r  s              r3   test_reference_valuesz&TestTruncWeibull.test_reference_valuesD  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#r5   c                    d}d}d}t         j                  }d}t        j                  j	                  |||      }t        j
                  j	                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }	t        ||	       t        j                  j                  |||      }
t        j
                  j                  |||||      }t        |
|       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j
                  j                  dd||d      }t        |t        j                  d	             t        j
                  j                  dd||d      }t        |d	       y )
Nr  ry   rz   r  r  r3  r`   r   r  )rc   r  r9   r	  rb   r	  r   r   rj   r  r   r  r   )rl   rX   r  r1   r2   r_   ro  p_truncr-  lp_truncrj   	cdf_truncr	  lc_truncrG   s_truncr  ls_truncs                     r3   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!r5   c                    d\  }}}t        j                  ||d      }t        j                  j	                  ||||      }t        j                  j                  ||||      }t        j                  j                  ||      t        j                  j                  ||      z
  }t        j                  j	                  ||      |z  }t        j                  j                  ||      t        j                  j                  ||      z
  |z  }	t         j                  j                  ||       t         j                  j                  ||	       y )N)r|  re  r  rZ   )	rc   rR  r9   r	  rb   rj   r	  r  r   )
rl   r  r1   r2   rX   r  ro  r  r  rq  s
             r3   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.r5   N)r   r   r   r	  r  r	  r	  r	  r
  r
  r
  r
  r;   r5   r3   r	  r	  	  s0    $
0$
"")6$0'"R/r5   r	  c                   `    e Zd Zd Zd Zej                  j                  dg d      d        Zy)	TestRdistc                     t         j                  }g d}t        |j                  |j	                  |d      d      |d       y )Nr  g     @r   rP  )r9   rdistr   rj   r   )rl   r  rE  s      r3   test_rdist_cdf_gh1285zTestRdist.test_rdist_cdf_gh1285  s5    $FJJvzz&%'@%H"A	/r5   c                     t        j                  ddd      }d}t        dt        j                  |dz  |dz        j                  |dz   dz        z  t        j                  |      j                  |             y )NgGzr  rY   g@ru   r`   r    )rc   rR  r   r9   r  rb   r
  )rl   rX   r  s      r3   test_rdist_betazTestRdist.test_rdist_beta  sd    KKtR(C

1Q3! 4 8 8!a% CC!KKN..q1	3r5   r$  ))r  i  g?)rV      g;|bZ?)ru   i  g79)r   iU  g޻S/c                 \    t        t        j                  j                  ||      |d       y rJ  )r   r9   r
  r   r(  s       r3   test_rdist_sfzTestRdist.test_rdist_sf  s     	q!,c>r5   N)	r   r   r   r
  r
  r   r   r   r
  r;   r5   r3   r
  r
    s7    /3 [[	
??r5   r
  c                   *    e 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   rw  ru   r    r   r    )r   r9   r   rb   triangrj   )rl   modesmoderX   s       r3   test_reduces_to_triangz$TestTrapezoid.test_reduces_to_triang  s      	;DD!A 3 3AtT B % 0 0D 9; 3 3AtT B % 0 0D 9;		;r5   c                 R   t        j                  ddd      }t        t        j                  j                  |dd      t        j                  j                  |             t        t        j                  j                  |dd      t        j                  j                  |             y )Nr   r    rY   )rc   rR  r   r9   r   rb   r  rj   r  s     r3   test_reduces_to_uniformz%TestTrapezoid.test_reduces_to_uniform  sl    KK1b!EOO//1a8%--:K:KA:NOEOO//1a8%--:K:KA:NOr5   c                    t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  d	dd      d
       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d
       t        t        j                  j	                  d	dd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       y )Nr   r`   r    ru   r   r  rJ  rM  rV   g      ?r  r   r	  rr  g      ?)r   r9   r   rb   rj   rq   s    r3   
test_caseszTestTrapezoid.test_cases  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#>Dr5   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    r;   )rn  r1   r2   r  dri  s    r3   r  z6TestTrapezoid.test_moments_and_entropy.<locals>.moment  sn    !ac(Q1X-!A#6!Hq1Q3x/AaC89 :qSqS" #r5   r    ru   r  rP  r   r  r)  r   r   )rc   r  r   r9   r   r   r7  rA   )rl   r  rT	  r^   r_   r  r   r7  rA   r1   r2   r  r*
  ri  s            @@@@@r3   test_moments_and_entropyz&TestTrapezoid.test_moments_and_entropy  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Lr5   c                    t        j                  g d      }t        j                  ddg      d d d f   }t        j                  g d      }t        j                  j	                  |||      }t        j
                  |||      \  }}}t        j                  |j                  |j                        }t        j                  |j                        }	t        |	|j                         |j                         |j                               D ]+  \  }
}}}t        j                  j	                  |||      ||
<   - t        ||j                  |j                        d       t        j                  t        j                  j                  ||d	            }t        j
                  ||      \  }}t        j                  |j                  d
f      }t        j                  |j                        }	t        |	|j                         |j                               D ]+  \  }
}}t        j                  j                  ||d	      ||
<   - t        ||j                   j                  |j                        d       y )Nr`  ru   r|  )rU  re  r   r(  r}   r   r  r  r   )rc   r   r9   r   rb   broadcast_arraysemptyr   r   r  r  ravelr   r5  r;  r   r  )rl   r  r*
  rX   r  ccddr  r   indr  rh  c1d1s                 r3   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>r5   N)r   r   r   r#
  r%
  r'
  r+
  r5
  r;   r5   r3   r
  r
    s    ;P
E(M6?r5   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raisero  r   ry   ru   rM  r    rz   r`   r   re  )rc   r  r   r9   r 
  rb   rj   rq   s    r3   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:
  r;   r5   r3   r7
  r7
    s    6r5   r7
  c                       e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zd Zd	 Z	y
)TestMaxwellr  )r  gCR5&.)rw   g7q?c                 Z    t        t        j                  j                  |      |d       y r  )r   r9   maxwellr   r2  s      r3   r  zTestMaxwell.test_sf+  s     	((+Su=r5   rM  ))r  g1!@)g    ?g?)g      <gCuJ!@c                 Z    t        t        j                  j                  |      |d       y r|   )r   r9   r>
  r  rP  s      r3   r  zTestMaxwell.test_isf4  s    
 	))!,c>r5   c                 b    d}t         j                  j                  d      }t        ||d       y )Ngi6ur  r  r~   )r9   r>
  r  r   )rl   r~  r  s      r3   r  zTestMaxwell.test_logcdf;  s'    %%%a(%0r5   c                 b    d}t         j                  j                  d      }t        ||d       y )Ng_OԺr%  r  r~   )r9   r>
  r  r   )rl   r~  r  s      r3   r  zTestMaxwell.test_logsfA  s'    %##D)s/r5   N)
r   r   r   r   r   r   r  r  r  r  r;   r5   r3   r<
  r<
  &  sf    
 [[X::<=>=> [[X:;?	;?10r5   r<
  c                       e Zd Zd Zd Zy)
TestMielkec                    d\  }}t        t        j                  ||      j                  d      t        j
                         t        t        j                  |d      j                  d      t        j
                         t        t	        j                  t        j                  |d      j                  d                   y )N)g rh@gv?r    rM  r  )r   r9   mielker  rc   r  r	   r=  )rl   rU   rG   s      r3   r#  zTestMielke.test_momentsI  sz    1U\\!Q'..q1266:U\\!S)003RVV<ELLD188;<=r5   c                     t        j                  ddd      }d\  }}t        t        j                  j                  ||||z        t        j                  j                  |||             y )Nrw   rZ   r6  )g@gHzG@)rc   rR  r   r9   burrrb   rE
  )rl   rX   rU   rG   s       r3   test_burr_equivalencez TestMielke.test_burr_equivalenceP  sO    KKc2&1

q!QqS15<<3C3CAq!3LMr5   N)r   r   r   r#  rH
  r;   r5   r3   rC
  rC
  H  s    >Nr5   rC
  c                   $    e Zd Zd Zd Zd Zd Zy)TestBurrc           	         t         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  ddgt         j                  d	d
gg}|D cg c]#  \  }}} |j                  |j
                  g| % }}}}|D cg c]  \  }}}|
 }}}}t        ||       |D cg c]#  \  }}} |j                  |j
                  g| % }}}}|D cg c]  \  }}}t        j                  |       }}}}t        ||       y c c}}}w c c}}}w c c}}}w c c}}}w )N)r    r    )ru   r`   )r    r    )r`   ru   r  ru   rM  )r    r`   ry   )
r9   fiskrG
  burr12rb   r1   r   r   rc   r  )rl   r   r  r  r   r  r  r  s           r3   test_endpoints_7491zTestBurr.test_endpoints_7491W  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)rN  r   )g4U?g&MI?)r9   rG
  r   )rl   r  r*
  r   variancemean_hcvariance_hcs          r3   test_burr_stats_9544zTestBurr.test_burr_stats_9544k  sI    1Aq)//1h  Gg&+.r5   c                 <   d\  }}t        j                  ||      j                         \  }}t        t        j                  |             t        t        j                  |             d\  }}t        j                  ||      j                         \  }}t        t        j
                  |             t        t        j                  |             d\  }}t         j                  j                  t        j                  g d      ||      \  }}}}t        t        j                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             y )N)ru   r   )r  r   r  )r|  r   )r1  r   )r/  r   )r9   rG
  r	   rc   rQ  r=  r  r   )	rl   r  r*
  r   rP
  e1e2e3e4s	            r3   test_burr_nan_mean_var_9544z$TestBurr.test_burr_nan_mean_var_9544v  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 r5   c                 x    d\  }}g d}g d}t        t        j                  j                  |||      |d       y )N)rN  r  )rV   r  r  r/  )g+&?gI$_@gKT@gؗVAr  r~   )r   r9   rG
  r  )rl   r  r*
  rx  r~  s        r3   test_burr_isfzTestBurr.test_burr_isf  s6     1&#

q!Q/5Ar5   N)r   r   r   rN
  rS
  rY
  r[
  r;   r5   r3   rJ
  rJ
  V  s    0(	/(!TBr5   rJ
  c                       e Zd Zej                  j                  dddg      d        Zd Zej                  j                  dg d      d        Zy	)

TestBurr12zscale, expected)rM  gd~)r1  gR톇T c                 h    t         j                  j                  dddd|      }t        ||d       y )Ng     jAg     jAr   r  r  r   r~   )r9   rM
  r  r   )rl   r_   rQ   rk  s       r3   r  zTestBurr12.test_delta_cdf  s/    ( ''S!Qe'Dxe4r5   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`   rl  r   rb	  r  r  r  r~   )rc   rd   r  r9   rM
  r   )	rl   r  r*
  r   r7  r8  r  r~  r   s	            r3   test_moments_edgezTestBurr12.test_moments_edge  s    
 1uuQw"%%(2+ouuaxCH%66S$)ll1a &&v.Su-r5   zp, c, d, ref))r  r  ru   ggx4/@)gҶOɃ;r  ru   gI8aS@)r  re  #   gj\/ @)g#aMR/re  ra
  g!GAc                 b    t         j                  j                  |||      }t        ||d       y r  )r9   rM
  r  r   )rl   ro  r  r*
  r~  rX   s         r3   test_isf_near_zerozTestBurr12.test_isf_near_zero  s(     LLQ1%3U+r5   N)	r   r   r   r   r   r   r  r`
  rc
  r;   r5   r3   r]
  r]
    sa    [[.<;=>5>5(.  [[	0,,r5   r]
  c            	          e Zd Zg dZg dZg dZ ej                  eeef      Zg dZ	ddddd	ej                  gZg d
Z e e ee	ee      e            Zddddej                  dfddej                  dfddej                  dfgZej&                  j(                  d        Zej&                  j,                  d        Zej2                  j5                  e      ZdZ eej2                  j?                  ee            5 Z  e!jD                  e       Z#ddd       ej&                  jI                  de#d         d        Z%ej&                  jI                  de#d         d        Z&ej&                  j,                  ej&                  jO                  d      ej&                  jI                  de#d         d                      Z(ej&                  j(                  d        Z)ej&                  j,                  d        Z*ej&                  jI                  de      d         Z+ej&                  j,                  ej&                  jO                  d      d!               Z,ej&                  j,                  d"        Z-d# Z.d$ Z/d% Z0y# 1 sw Y   jxY w)&TestStudentizedRange)gQ1@g33333F@g
ףp=*K@gHzM@g/$@g~j!@g33333$@g{Gz&@gh|?5	@gQ8@g&1@g|?5@g@gOn@g!rhm@gB`"@rf  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/ݤ@)r2  r  r  r    r   rY   r  x   )r`   r  r$  r  )rV   r   i)#  gupm1f?)r    rY   r   g?<-=A?gv"?r   gd暕?ga-A?c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )Nr  r~   )r   r9   studentized_rangerj   r   )rl   pvkrx  
p_expectedr  rU   res_ps          r3   test_cdf_against_tablesz,TestStudentizedRange.test_cdf_against_tables   sK    ii 	:FC"J1++//1a8EE:D9	:r5   c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )Nr  r~   )r   r9   rh
  r   r   )rl   ri
  
q_expectedro  r  rU   res_qs          r3   test_ppf_against_tablesz,TestStudentizedRange.test_ppf_against_tables   sJ    #yy 	:OCGAq!++//1a8EE:D9	:r5   z&data/studentized_range_mpmath_ref.jsonNcase_resultcdf_datac                     |d   }|d   }|d   |d   |d   f}t        j                  j                  | }t        |||d   |d          y 	Nsrc_case	mp_resultrx  rU   r  expected_atolexpected_rtolrg  )r9   rh
  rj   r   rl   rq
  ru
  rv
  qkvr   s         r3   test_cdf_against_mpz(TestStudentizedRange.test_cdf_against_mp   `    z*,	smXc]HSM9%%))3/Y%o6%o6	8r5   pdf_datac                     |d   }|d   }|d   |d   |d   f}t        j                  j                  | }t        |||d   |d          y rt
  )r9   rh
  rb   r   ry
  s         r3   test_pdf_against_mpz(TestStudentizedRange.test_pdf_against_mp)   r|
  r5   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)Nru
  rv
  r  rU   r  r  r  rw
  rx
  rg  )rc   r  r9   rh
  r  r   )rl   rq
  ru
  rv
  mkvr   s         r3   test_moment_against_mpz+TestStudentizedRange.test_moment_against_mp4   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   rY   r   rT  r    )r   r9   rh
  rb   rc   r  r   )rl   rU   r  r   s       r3   test_pdf_integrationz)TestStudentizedRange.test_pdf_integrationE   s=    15**..266AGA"r5   c                     d\  }}t        j                  ddd      }t        j                  j	                  |||      dd  }t        j                  j                  |||      }t        ||      }t        ||d       y )	Nr
  r   rY   rw   )stepr    r  r~   )rc   r  r9   rh
  rj   rb   r   r   )rl   rU   r  rX   y_cdf	y_pdf_rawy_pdf_cumulatives          r3   test_pdf_against_cdfz)TestStudentizedRange.test_pdf_against_cdfL   sv    1
 IIa$'''++Aq!4QR8++//1a8	/	1= 	(%d;r5   r_case_resultc                     |\  }}}}t        j                  d      5  t        j                  j	                  |||      }d d d        t        |       y # 1 sw Y   xY w)Nr  r  )rc   r  r9   rh
  rj   r   )rl   r
  rx  rU   r  r_resr   s          r3   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)Nr  r  r    r`   r   r   rY   r  r
	  z...could not be broadcast...r  )rY   r  rO  )
rc   r  r9   rh
  r  r   r;  r   r   r  r  s     r3   test_moment_vectorizationz.TestStudentizedRange.test_moment_vectorizationd   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)Nr  r  r  )
r   rc   r  rK   r   r9   rh
  rj  r	   	_argcheck)rl   rX  rU   r  r   s        r3   test_fitstart_validz(TestStudentizedRange.test_fitstart_validt   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   rY   韆 r  rg  )r9   rh
  rb   rc   r  r   rj   )rl   r   
res_finites      r3   test_infinite_dfz%TestStudentizedRange.test_infinite_df|   s     %%))!R8,,00B>
Zd>%%))!R8,,00B>
Zd>r5   c                 0   t         j                  j                  ddd      }t         j                  j                  ddd      }t         j                  j                  ddd      }t        t        t
        ||dd       t        ||dd       t         j                  j                  ddd      }t         j                  j                  ddd      }t         j                  j                  ddd      }t        t        t
        ||dd       t        ||dd       y )Nr   rY   r   r
  i ro  rg  )r9   rh
  rb   rW  AssertionErrorr   rj   )rl   r   r
  
res_sanitys       r3   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Er5   c                 |    d\  }}}t         j                  j                  |||      }t        |dd       |dk\  sJ y )N)gaRA@r   iS  r   r  r   )r9   rh
  r   r   )rl   rx  rU   r  ro  s        r3   test_clippingz"TestStudentizedRange.test_clipping   s@     .1a##&&q!Q/15)Avvr5   )1r   r   r   q05q01q001rc   rn  qspsr  vskslistr  r(   r   r_datar   r   r   rl
  r   rp
  ospathdirnamer  path_prefixrelative_pathopenrN  filejsonr  pregenerated_datar   r{
  r
  xfail_on_32bitr
  r
  r
  r
  r
  r
  r
  r
  r
  r;   r5   r3   re
  re
    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*C, ,s   ?I::Jre
  c                       e Zd Zej                  j                  dddd ej                  dgdgdgg      g      d        Zd Z	d Z
d Zd	 Zy
)TestTukeyLambdar  rz   r  r  c                     t        j                  ddd      }t        j                  j	                  ||      }t        j
                  |      j                         sJ |dkD  j                         sJ y )Nr  rN  rW   rz   )rc   rR  r9   r+   rb   r=  r   )rl   r  rX   ro  s       r3   test_pdf_nonpositive_lambdaz+TestTukeyLambda.test_pdf_nonpositive_lambda   sZ     KKc3'!!!S){{1~!!###C}}r5   c                    t        j                  ddd      }t        j                  dgdgdgg      }t        j                  j                  ||      }t        j                  |      j                         sJ |d d dkD  j                         sJ |d   dkD  j                         sJ |d   dk(  j                         sJ y )Nr  rN  rW   r  rz   ry   r`   )	rc   rR  r   r9   r+   rb   r=  r   r   )rl   rX   r  ro  s       r3   test_pdf_mixed_lambdaz%TestTukeyLambda.test_pdf_mixed_lambda   s    KKc3'hhu-.!!!S){{1~!!### "1  """ !s
!!!!  """r5   c                 2   t        j                  g d      }t        j                  j	                  |      \  }}t        j                  t         j
                  t         j
                  t         j
                  dddg      }t        ||       t        ||        y )N)g      r   rz   re  ru   ry   r   r`   ru   )rc   r   r9   r+   supportr  r   )rl   r  r1   r2   
expected_bs        r3   r*  zTestTukeyLambda.test_support   sh    hh9:  ((-1XXrvvrvvrvvq!SAB
Q
#Q$r5   c                 d    t         j                  j                  ddgd      }t        |ddg       y )Nr  ry   ru   rz   )r9   r+   rb   r   r  s     r3   test_pdf_support_boundaryz)TestTukeyLambda.test_pdf_support_boundary   s.     !!4+s3Qc
#r5   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   r  r  r`   r   r[  rY   rP  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r9   r+   rc   rd   r   )rl   r  rQ   s      r3   "test_tukeylambda_stats_ticket_1545z2TestTukeyLambda.test_tukeylambda_stats_ticket_1545   s     $$Q$7ruuaxz1c*B"5$$T6$:GB"5$$T6$:GB"5r5   N)r   r   r   r   r   r   rc   r   r
  r
  r*  r
  r
  r;   r5   r3   r
  r
     s^    [[	dD("((TFSED6#:;<	#%$6r5   r
  c                   l    e Zd Zd Zd Zej                  j                  dg d      d        Zd Z	d Z
y)	TestLevyc                    t        j                  g d      }t        j                  g d      }t        j                  j	                  |      }t        ||d       t        j                  j                  |      }t        ||d       y )N)r   rM  ru   rV   rw   r  )g~V1?r+  gba"?g܄4ťY?r,  g$%+Ir  r~   r   )rc   r   r9   r  rj   r   r   )rl   rX   rQ   r(  r  s        r3   test_levy_cdf_ppfzTestLevy.test_levy_cdf_ppf   sf    HH78 88 5 6 JJNN18%0 ZZ^^H%AE*r5   c                     t        j                  g d      }t        j                  g d      }t        j                  j	                  |      }t        ||d       y )N)r  r  gMraB3Gr9  )gep[>g}XEQ=gѭEG<g?_%~:r  r~   )rc   r   r9   r  r   r   )rl   rX   rQ   r(  s       r3   test_levy_sfzTestLevy.test_levy_sf !  sD    HH-.88 4 5 JJMM!8%0r5   zp, expected_isf))r  gj1e2H)r%  g6C)r  gnE@)r  g!^x1?)r  gZ?)g   ?g:}!Nu?c                 ^    t         j                  j                  |      }t        ||d       y )Nr  r   )r9   r  r  r   )rl   ro  expected_isfrX   s       r3   test_levy_isfzTestLevy.test_levy_isf!  s"     JJNN1<e4r5   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Nr9  g?_%~r  r~   )r9   r  r  r   rR  s       r3   test_levy_logcdfzTestLevy.test_levy_logcdf!!  s,    $""1%%0r5   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Nr  gޢاr  r~   )r9   r  r  r   rT  s       r3   test_levy_logsfzTestLevy.test_levy_logsf'!  s,    %

  #s/r5   N)r   r   r   r
  r
  r   r   r   r
  r
  r
  r;   r5   r3   r
  r
     sD    +.	1, [[.JK5K510r5   r
  c                     t        t        j                  j                  d      ddd       t        t        j                  j                  d      ddd       t        t        j                  j                  dd	d
      ddd       y )Ng2g?rY   test_540_567)rQ  rH  g2gk?g;B.?gͣh?gHŎ*?r]   g.y?)r   r9   r  rj   r;   r5   r3   r
  r
  .!  sk    

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

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

}.-; ' =+ "N<r5   zdocstrings strippedrU  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	   r9   r}  r  r;   r5   r3   test_regression_ticket_1421r
  :!  s1    (0E0EEFH---.r5   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)Nr  r  r    ru   )rc   r  r	   rQ  r9   r  r  r  rj   r  r   rb   r   r   r  r  rI  r3  r;   r5   r3    test_nan_arguments_gh_issue_1362r
  @!  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.  )re  rz   ru   r   r    r`   rZ   r   r  )r	  rz   r   rP  ru   )r   r^   re  )r   r^   r  r   ry   r   )rc   r   r   r   r9   r!  r   r  r   r   r  r  r   )r   truerX   r  r^   r   rQ   s          r3   test_frozen_fit_ticket_1536r
  U!  s   
))


%C88O$D$q'47DG#CPA	H	% 9%--++AB+789 a0XXemm''#1'=>Fa0XXemm''d':;Fa0XXemm''d';<Fa0
))


%C
CD

sBSs;AXXejjnnQTn23Fxxrww4!'9'9';<=>H!4)9 9s   :5IIc                      t         j                  j                  d      } t        j                  j                  d|       }t        j                  j                  |      }d}t        ||d       y )Ni	 rZ   r   )g
ףp=
?gʡE?r    rP  )rc   r   r   r9   r  r   r   r   )r   r   r  rQ   s       r3   test_regression_ticket_1530r
  q!  sT    
))


'C
,,

#

6C\\c"FH!4r5   c                      t         j                  j                  d      } | j                  d      }dD ]C  }t        j
                  j                  ||z         \  }}t        ||d       t        |dd       E y )Nr   r  )r  g   6ArM  r   r|  )rc   r   r  r+  r9   r  r   r   )r   rX   offsetr^   r_   s        r3   test_gh_pr_4806r
  z!  sf    
))


%C		"A' .\\%%a&j1
UV#.s-.r5   c                  |    t        t        j                  t        j                  j                  dd                   y )Nr>  rJ  )r	   rc   r=  r9   r}  r3  r;   r5   r3   test_poisson_logpmf_ticket_1436r
  !  s$    BKK,,T3789r5   c                  z    ddg} | D ]2  \  }}t         j                  j                  |d      }t        ||       4 y)a  Test the powerlaw stats function.

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

    The exact values are:
    mean:
        mu = a / (a + 1)
    variance:
        sigma**2 = a / ((a + 2) * (a + 1) ** 2)
    skewness:
        One formula (see https://en.wikipedia.org/wiki/Skewness) is
            gamma_1 = (E[X**3] - 3*mu*E[X**2] + 2*mu**3) / sigma**3
        A short calculation shows that E[X**k] is a / (a + k), so gamma_1
        can be implemented as
            n = a/(a+3) - 3*(a/(a+1))*a/(a+2) + 2*(a/(a+1))**3
            d = sqrt(a/((a+2)*(a+1)**2)) ** 3
            gamma_1 = n/d
        Either by simplifying, or by a direct calculation of mu_3 / sigma**3,
        one gets the more concise formula:
            gamma_1 = -2.0 * ((a - 1) / (a + 3)) * sqrt((a + 2) / a)
    kurtosis: (See https://en.wikipedia.org/wiki/Kurtosis)
        The excess kurtosis is
            gamma_2 = mu_4 / sigma**4 - 3
        A bit of calculus and algebra (sympy helps) shows that
            mu_4 = 3*a*(3*a**2 - a + 2) / ((a+1)**4 * (a+2) * (a+3) * (a+4))
        so
            gamma_2 = 3*(3*a**2 - a + 2) * (a+2) / (a*(a+3)*(a+4)) - 3
        which can be rearranged to
            gamma_2 = 6 * (a**3 - a**2 - 6*a + 2) / (a*(a+3)*(a+4))
    )rM  )ru   r  rz   r  )ry   )gUUUUUU?r!	  g^cQg333333r  r  N)r9   r  r   )rP  r1   
exact_mvskr  s       r3   test_powerlaw_statsr
  !  sG    > ,=?E 4:~~##Av#6!$
34r5   c                  \    t         j                  j                  dd      } t        | d       y )Nr   r    rz   )r9   r  r   r   ro  s    r3   test_powerlaw_edger
  !  s"    a#ACr5   c                  v   t         j                  j                  dd      } t        | d       t         j                  j	                  dg d      } t        | t
        j                  ddg       t         j                  j                  dg d      } t        | t
        j                  dt
        j                   g       y )Nr   r    rz   )re  rM  r  rM  )r9   r,  r   r   rb   rc   r  r
  s    r3   test_exponpow_edger
  !  s    a#AC 	1./ARVVS#&'a!12ARVVS266'*+r5   c                  ^    t         j                  j                  ddd      } t        | d       y )Nr   r    rM  )r9   gengammarb   r   r
  s    r3   test_gengamma_edger
  !  s$    1a#ACr5   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 r  )r   r9   r
  rA   )r1   r  r~  rM  s       r3   test_gengamma_extreme_entropyr
  !  s!    " ENN**1a0#C@r5   c                      t         j                  j                  ddd      } | dk(  sJ t         j                  j                  ddd      }|t        j
                   k(  sJ y )Nr   r    r   rz   )r9   r
  rb   r   rc   r  )ro  r  s     r3   !test_gengamma_endpoint_with_neg_cr
  !  sO    1a$A8O8>>  Ar*DBFF7??r5   c                      t         j                  j                  ddd      } t        | d       t         j                  j                  ddd      } t        | d       y )Nr   rJ  rM  g>rY   gqq?)r9   r
  r  r   r
  s    r3   test_gengamma_munpr
  !  sF    Rb)A:&RR(A6"r5   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*˿r  r  z:The maximum number of subdivisions .50. has been achieved.z-floating point number truncated to an integer)
rc   r   r  r   rK   r   rs  r9   r>  r   )r*
  rX  s     r3   test_ksone_fit_freezer
  !  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   rf
  r   )gDB.g8_$g%`OAgjhwHRgWMB@v`g7VY}igۦx\Arg	xg#g/dg3$gegd)gNq{3gيGǓgr4g37'
gfFg?dJgضg2,
gm%gӅJgz;pgɿ{gk2gij<%giVSͶgBR4g
Q/Mr%  r   y        +=y        |=r  )rc   r   r
  r  r   r9   r  r  realimagr   r   )rX   rQ   derivderiv_expecteds       r3   test_norm_logcdfr
  "  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>6r5   c                      t        j                  g d      } t        j                  g d      }t        j                  j	                  |       }t        ||d       y )N)gMb{Gzg{Gztg~jtX)g#]<gOul2;gޢا6g̅7=!r   r~   )rc   r   r9   r   r   r   )rX   rQ   r(  s      r3   test_levy_l_sfr
  "  sD    
12Axx 1 2H 	AAxe,r5   c                      t        j                  g d      } t        j                  j	                  |       }t        j                  j                  |      }t        || d       y )N)g [n<re  r  rH  r~   )rc   r   r9   r   r  r   r   )ro  rX   rx  s      r3   test_levy_l_isfr
  '"  sC    
&'AAAAqu%r5   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 )Nr2  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@r  rZ   r  r    )r   r9   r  r4  r   r;   r5   r3   test_hypergeom_interval_1802r
  /"  s    ))#vucB!))$sC! ))#vucB! $$T3Q7;$$QS!4a8r5   c                  	   t         j                  j                  d       t        j                  ddd      } t	        t
        t        j                  j                  | ddd	       t	        t
        t        j                  j                  | ddd
d	       t	        t
        t        j                  j                  | ddd
d       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  | dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  | dddd       t        j                  j                  | dd       t        j                  j                  | ddd
       t        j                  j                  dd       t        j                  j                  ddd
       t        j                  j                  ddd
d       t        j                  j                  ddd
d       t        j                  j                  t        j                  j                  dd      d       t        j                  j                  | dd	       t	        t
        t        j                  j                  | ddd
       t	        t
        t        j                  j                  | ddd
	       t	        t
        t        j                   j                  | dd	       t	        t
        t        j"                  j                  | dd
dd	       t	        t
        t        j"                  j                  | dd
ddd       t	        t
        t        j$                  j                  | dd
ddd	       t	        t
        t        j$                  j                  | dd
dddd	       t        j$                  j                  | dd
ddd       y )Nr   rV   r}  r   numr`   r   rM  r  r   ru   r]   ry   r  r  r4  r)  r  )rc   r   r   rR  rW  r  r9   r  rb   r   rj   r   rA   r   r  rI  r^  r	  r  r   s    r3   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%r5   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~  rJ  r`   gYZ@r  r   r_  )r9   ncx2rj   rc   r  _cdfvecr   r  s     r3   test_ncx2_tails_ticket_955r  f"  sZ     	

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

299RS11nEAAqt!,r5   c            
         t        j                         5  t        j                  dt               t	        t
        j                  j                  dt        j                  dd      d      d       t
        j                  j                  dt        j                  dd      d      } d d d        t        t        j                         j                                t        j                         5  t        j                  dt               t	        t
        j                  j                  ddd	      d       t        t
        j                  j                  ddd	      d
       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nrl  r    iT  i^  r`   r   r  r   rO  gsq6)rp  rq  rr  rs  r   r9   r  rb   rc   r  r   r	   r  r   r   )logvals    r3   test_ncx2_tails_pdfr  n"  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, expectedrj   gu%>g	;Q=rb   g<x>gRz\R>r   gʎK$/gԆX1r   gfHu@ge:@c                 j     t        t        j                  |       dddgd      }t        ||d       y )NrV   r   r   rY   )r~	  r  r}   r   )r'  r9   r  r   )r  rQ   r  s      r3   test_ncx2_zero_ncr
  "  s/      )WUZZ(!QB?FFH51r5   c                      t         j                  j                  ddd      } t         j                  j                  dd      }t	        | |d       y )NrY   r   r    )r  r~	  r   )r  r   r}   r   )r9   r  r   r  r   )r  rQ   s     r3   test_ncx2_zero_nc_rvsr  "  s>     ZZ^^raa^8Fzz~~!~4HFH51r5   c                      dt        j                  dd      z  } t        t        j                  j                  dd|       d       y )NrY   r   r  r    r  r~	  r   )rc   r  r   r9   r  rj   )r~	  s    r3   test_ncx2_gh12731r  "  s4    	RYYq"	Bb115r5   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@r  )rM  rM  rM  rM  rM  g?gy[qD?rz   rz   rz   rz   rz   rz   r  r   )rc   r   r9   r  r   r   )rX   nur  r   sf_expecteds        r3   test_ncx2_gh8665r  "  sM    
 " 	#A
 %GB	qRC	(B'K
 B%0r5   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   )	rc   rR  r9   r  r   rb   r  r  r   )r  r~	  rX   ncx2_pdfgauss_approxs        r3   test_ncx2_gh11777r  "  s    
 
B	B
EJJNN5"b1JJNN5"b1u	>Azz~~aR(H::>>!R"Wbgga"fq2vo.FGLHl6r5   zx, c, expected))r`   r    g|1q?)r`   r`   g~?)rg  r    V<3T1=) 7yQCr    u	lY<)rg  g   vHGBg^b!*1=)rr  rJ  gS?c                 ^    t         j                  j                  | |      }t        ||d       y Nrx  )r9   
foldcauchyr   r   rX   r  rQ   r   s       r3   test_foldcauchy_sfr  "  s(     
				Q	"BB%(r5   r  ))r`   g?)rg  r  )r  r  )g6ްPg8R#/c                 \    t         j                  j                  |       }t        ||d       y r  )r9   rE  r   r   )rX   rQ   r   s      r3   test_halfcauchy_sfr!  "  s&     
				Q	BB%(r5   zp, expected))g?g*wӄZ>)333333?gN9?)ru   rM  )rw   g8<,O@)r  g:B)gl ׶w/gMb}[Pc                 Z    t         j                  j                  |       }t        ||       y ro   )r9   rE  r  r   )ro  rQ   rX   s      r3   test_halfcauchy_isfr$  "  s$     	QAAx r5   c                  h    t        j                  dd      } t        | j                  d      d       y )Nr   r    r  )r9   r'  r   rj   )r  s    r3   test_foldnorm_zeror&  "  s$    		#BAr5   ))r`   r    gwo{?)r  r    gGd-P/)rY   r8  gof?)r~  r8  gOul";c                 ^    t         j                  j                  | |      }t        ||d       y )Nr  )r9   r'  r   r   r  s       r3   test_foldnorm_sfr(  #  s&     
		1a	 BB%(r5   c                     t         j                  j                  g ddd      } t         j                  j                  ddgdd      }t        d |D              }t        ||        t         j                  j                  g d      } t         j                  j                  ddg      }t        d	 |D              }t        ||        y )
N)rz   ru   rM  r    ru   rM  c              3   b   K   | ]'  }t         j                  t         j                  |f    ) y wro   rc   rG  r  rZ	  s     r3   rl  z-test_stats_shapes_argcheck.<locals>.<genexpr>"#  s!     8q"%%	*8   -/)r`   r3  r   r`   r3  c              3   b   K   | ]'  }t         j                  |t         j                  f    ) y wro   r+  rZ	  s     r3   rl  z-test_stats_shapes_argcheck.<locals>.<genexpr>(#  s!     8q"%%266	*8r,  )r9   r  tupler   r!  )mv3mv2mv2_augmenteds      r3   test_stats_shapes_argcheckr2  #  s     ..

3
7C
..

Sz1c
2C8C88M$ --

l
+C
--

q#h
'C8C88M$r5   c                       e Zd Zd Zy)
_distr_genc                      yNr  r;   rl   rX   r1   s      r3   _pdfz_distr_gen._pdf3#  s    r5   Nr   r   r   r8  r;   r5   r3   r4  r4  2#  s    r5   r4  c                       e Zd Zd Zy)_distr2_genc                     d|z  |z   S r6  r;   r7  s      r3   _cdfz_distr2_gen._cdf8#      Avzr5   N)r   r   r   r=  r;   r5   r3   r;  r;  7#  s    r5   r;  c                       e Zd Zd Zd Zy)_distr3_genc                     ||z   S ro   r;   rl   rX   r1   r2   s       r3   r8  z_distr3_gen._pdf=#  s    1ur5   c                     d|z  |z   S r6  r;   r7  s      r3   r=  z_distr3_gen._cdf@#  s     Avzr5   Nr   r   r   r8  r=  r;   r5   r3   r@  r@  <#  s    r5   r@  c                       e Zd Zd Zd Zy)_distr6_genc                     ||z  |z   S ro   r;   rB  s       r3   r8  z_distr6_gen._pdfH#  s    sQwr5   c                     d|z  |z   S r6  r;   rB  s       r3   r=  z_distr6_gen._cdfK#  r>  r5   NrD  r;   r5   r3   rF  rF  F#  s    r5   rF  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dummyr1   r  r	  r    rg  r  r4  r   rb   rl   dummy_distrs     r3   test_correct_shapesz1TestSubclassingExplicitShapes.test_correct_shapesR#  s%     gc:[__Q!_,b1r5   c                 j    t        dd      }t        t        |j                  dfi t	        d       y )NrL  ArM  r    rg  )r4  rW  r  rb   r  rO  s     r3   test_wrong_shapes_1z1TestSubclassingExplicitShapes.test_wrong_shapes_1V#  s'     gc:i!AtayAr5   c                 r    t        dd      }t        ddd      }t        t        |j                  dfi | y )NrL  za, b, crM  r    r`   r   r  )r4  r  rW  r  rb   )rl   rP  r(  s      r3   test_wrong_shapes_2z1TestSubclassingExplicitShapes.test_wrong_shapes_2Z#  s1     gi@Q!q!i!;s;r5   c                 H    t        dd      }t        t        t        fi | y )NrL  r  rM  )r  rW  r  r4  rl   r(  s     r3   test_shapes_stringz0TestSubclassingExplicitShapes.test_shapes_string_#  s    +i3s3r5   c                 H    t        dd      }t        t        t        fi | y )NrL  z(!)rM  r  rW  SyntaxErrorr4  rX  s     r3   test_shapes_identifiers_1z7TestSubclassingExplicitShapes.test_shapes_identifiers_1d#  s    .k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrL  4chanrM  r[  rX  s     r3   test_shapes_identifiers_2z7TestSubclassingExplicitShapes.test_shapes_identifiers_2i#      0k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrL  zm(fti)rM  r[  rX  s     r3   test_shapes_identifiers_3z7TestSubclassingExplicitShapes.test_shapes_identifiers_3m#  s    1k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrL  za=2rM  r[  rX  s     r3   "test_shapes_identifiers_nodefaultsz@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaultsq#  s    .k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrL  z*argsrM  r[  rX  s     r3   test_shapes_argsz.TestSubclassingExplicitShapes.test_shapes_argsu#  ra  r5   c                 H    t        dd      }t        t        t        fi | y )NrL  z**kwargsrM  r[  rX  s     r3   test_shapes_kwargsz0TestSubclassingExplicitShapes.test_shapes_kwargsy#  s    
3k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrL  za, b, c, lambdarM  r[  rX  s     r3   test_shapes_keywordsz2TestSubclassingExplicitShapes.test_shapes_keywords}#  s    (9:k:55r5   c                      G d dt         j                        } |d      }t        |j                  dd      t         j                  j                  d      dz         y )Nc                       e Zd Zd Zy)FTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_genc                 F    t         j                  j                  |      |z  S ro   r9   r  r8  r7  s      r3   r8  zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdf#      zzq)A--r5   Nr9  r;   r5   r3   	_dist_genrn  #      .r5   rr  r1   r	  ru   r`   rg  r9   r?   r   rb   r  rl   rr  rM   s      r3   test_shapes_signaturez3TestSubclassingExplicitShapes.test_shapes_signature#  sI    	.++ 	. $TXXcQX')<Q)>?r5   c                      G d dt         j                        } |d      }t        t        |j                  dfi t        dd       y )	Nc                       e Zd Zd Zy)STestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_genc                 F    t         j                  j                  |      |z  S ro   rp  r7  s      r3   r8  zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdf#  rq  r5   Nr9  r;   r5   r3   rr  rz  #  rs  r5   rr  rj  rt  ru   r    r`   r  )r9   r?   rW  r  rb   r  rv  s      r3   "test_shapes_signature_inconsistentz@TestSubclassingExplicitShapes.test_shapes_signature_inconsistent#  s;    	.++ 	. 'i3A$a.Ar5   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   rp  )rl   rX   r)  extra_kwargs       r3   r8  zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdf#  s#    "1gzzq)K77r5   Nr9  r;   r5   r3   rr  r  #  s    8r5   rr  r  rt  ru   !   r  )xxx)r9   r?   r   rb   r  rW  r  r  rv  s      r3   test_star_argsz,TestSubclassingExplicitShapes.test_star_args#  s    	8++ 	8
 .TXXcrX2EJJNN34G4JKTXXc2&

s(;B(>?i3?$2,?r5   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  rp  )rl   rX   r
  r)  r  s        r3   r8  zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf#  s(    "1gzzq)K7&@@r5   Nr9  r;   r5   r3   rr  r  #  s    Ar5   rr  zoffset, extra_kwargrt  ru   o   r  )r
  r  ru  rv  s      r3   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	3r5   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    )popr9   r  r8  )rl   rX   r)  kwargsr  s        r3   r8  zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf#  s,     %jj:zzq)K77r5   Nr9  r;   r5   r3   r4  r  #  s    8r5   r4  r  rt  r    r   r  ru  )rl   r4  rM   s      r3   test_extra_kwargz.TestSubclassingExplicitShapes.test_extra_kwarg#  sD    	8,, 	8 /TXXaQX/1BCr5   c                      G d dt         j                        } |d      }t        |j                  d      t         j                  j                  d             y )Nc                       e Zd Zd Zy)ITestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_genc                 @    t         j                  j                  |      S ro   )r9   r  rb   r  s     r3   r8  zNTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdf#  s    zz~~a((r5   Nr9  r;   r5   r3   rr  r  #  s    )r5   rr   rt  ru   ru  rv  s      r3   test_shapes_empty_stringz6TestSubclassingExplicitShapes.test_shapes_empty_string#  s?    	)++ 	) #TXXc]EJJNN3$78r5   N)r   r   r   rQ  rT  rV  rY  r]  r`  rc  re  rg  ri  rk  rw  r|  r  r  r  r  r;   r5   r3   rJ  rJ  O#  s\    2B<
4
6
666666
@B@3D9r5   rJ  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 )NrL  r  r    rg  r  rN  rO  s     r3   test_only__pdfz&TestSubclassingNoShapes.test_only__pdf#  s#     g.[__Q!_,b1r5   c                 V    t        d      }t        |j                  dd      d       y )NrL  r  r    rg  )r;  r   rb   rO  s     r3   test_only__cdfz&TestSubclassingNoShapes.test_only__cdf#  s#    !w/KOOAO3Q7r5   docstring strippedrU  c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )NrL  r  r    r1   zlogpdf\(x, a, loc=0, scale=1\))	r4  r   numargsr	  refindallr  r	   r
  rl   rP  r   s      r3   test_signature_inspectionz1TestSubclassingNoShapes.test_signature_inspection#  sX     !g.[((!,[''-jj:$,,.CAr5   c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )NrL  r  r`   rj  z!logpdf\(x, a, b, loc=0, scale=1\)r    )	rF  r   r  r	  r  r  r  r	   r
  r  s      r3   test_signature_inspection_2argsz7TestSubclassingNoShapes.test_signature_inspection_2args#  sX     "w/[((!,[''0jj=$,,.CAr5   c                 0    t        t        t        d       y )NrL  r  )rW  r  r@  rq   s    r3   0test_signature_inspection_2args_incorrect_shapeszHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapes#  s    i7;r5   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r6  r;   r7  s      r3   r8  zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdf#      r5   N)r  r9  r;   r5   r3   rr  r  #  s    r5   rr  rL  r  r9   r?   rW  r  r  rl   rr  s     r3   test_defaults_raisez+TestSubclassingNoShapes.test_defaults_raise#  *    	++ 	 	iAd.@Ar5   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r6  r;   )rl   rX   r1   r)  s       r3   r8  zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdf#  r  r5   Nr9  r;   r5   r3   rr  r  #      r5   rr  rL  r  r  r  s     r3   test_starargs_raisez+TestSubclassingNoShapes.test_starargs_raise#  r  r5   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r6  r;   )rl   rX   r1   r  s       r3   r8  zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdf#  r  r5   Nr9  r;   r5   r3   rr  r  #  r  r5   rr  rL  r  r  r  s     r3   test_kwargs_raisez)TestSubclassingNoShapes.test_kwargs_raise#  r  r5   N)r   r   r   r  r  r   r   rz  DOCSTRINGS_STRIPPEDr  r  r  r  r  r  r;   r5   r3   r  r  #  sy    28
 [[+4HI J [[+4HI J<BBBr5   r  r  c                     g d} t         j                  D ]p  }t        t         |      }t        |t         j                  t         j
                  z        s?| D ]-  }t        t        j                  ||j                        d u        / r y )N)z,\s*,z\(\s*,z^\s*:)
r9   rJ   r'  r=  r>   r?   r	   r  searchr  )badonesdistnamerM   regexs       r3   r  r  $  sp    -GMM @uh'dU..1D1DDF  @		%6$>?@@r5   c                      t        t        j                  j                  t        j
                  dd      d       t        t        j                  j                  t        j
                  dd      d       y )NrY   r  r   r  rV   r    )r   r9   r0  r   rc   r  r  r=  r;   r5   r3   test_infinite_inputr  $  sB    ((R8!<

37;r5   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | d       y r  )r9   lomaxr   rj   r   r
  s    r3   test_lomax_accuracyr  $  s/    2A6AAvr5   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | d       y r  )r9   r(  r   rj   r   r
  s    r3   test_truncexpon_accuracyr  $  s7    U--11&!<a@AAvr5   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | dd       y )Nr  r    r  r8  rP  )r9   r$  r  r   r   r
  s    r3   test_rayleigh_accuracyr  $  s5    5>>,,Q2A6A3+r5   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)rP  alwaysru   r   rz   N)rp  rq  rr  r9   r  rj   rb   r   r   rc   r  r
  r   )rk  number_of_warnings_throwns     r3    test_genextreme_give_no_warningsr  #$  s     
	 	 	- 3h'R#R#R#-$'F!.23 3 3s   B<CC%c                  D   t        j                  t        j                  j                  dt         j                  ddgd            } t         j
                  }t         j                  dz  dz  }dt        j                  d      z  t        j                  d	      z  t         j                  d	z  z  }d
}||||g}t         j                  gdz  x}}g d}t        | d d df   |d       t        | d d df   |       t        | d d df   |d       t        | d d d	f   |       y )Nrz   r    rQ  r  r  r`   r)  rO  r   r3  r   )r   r    r   r)  r   r  r~   )rc   r   r9   r  r  euler_gammard   r  r   zetar   r   )	r   r   r7  r8  r9  ref_0ref_1ref_3ref_2s	            r3   test_moments_gh22400r  1$  s    
 **U%%++S"&&!T,BF+S
TC >>D
%%(Q,C
?W\\!_,ruuax7DD3d#EVVHQJEEEC1Iu51QTE"C1Iu51QTE"r5   c                     d} t         j                  j                  d      }t        |d| z  dz   d       t         j                  j                  d      }t        || dz   d       t         j                  j                  d      }t	        |d       t         j                  j                  d	d
      }t        || dz  t        j                  d
      z   dz   d       t         j                  j                  d
      }t        |d| z  dz   d       t         j                  j                  d      }t        |d| z  dz   d       y )Ngox?r  r`   r    r  r~   r   rM  r  rY   r  r   r  rf  r  )r9   r  rA   r   r   rc   r  )r  ri  s     r3   test_genextreme_entropyr  G$  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+~)6r5   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   rt  g'b%4gQ@rr  gؗҜ;r   g.l6?)r9   r  r   r   r  )rX   rG   ri  s      r3   test_genextreme_sf_isfr  ^$  s    2 	AAv&AA-.					a	(BBAAu%AA()					a	'BBAAq!AA-.					a	#BBr5   c                  b    d} t         j                  j                  | dd      }t        |d       y )Nr|  r`   r   gH&8>)r9   rM
  r   r   )probr  s     r3   test_burr12_ppf_small_argr  $  s,    D||a+H H45r5   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)  r  s       r3   r  z&test_invweibull_fit.<locals>.optimizer$  s    D"4dUKKr5   )r    r  r`   r|  rf  r   r  r   r   r  rY   rO  @   c   )r   r  g`?r_  r~   g [@N)r;   r   )rc   r   r9   r  r   r   )r  rX   r  r^   r_   s        r3   test_invweibull_fitr  $  s_    .L 	HIA$$((i(HMAsEAxd+!8O8E8$/r5   ))r   r  g7Ըh?)r   r  gz]r>)r   g     "@goBڱ9)r  r  g$=cC;c                 `    t         j                  j                  | |      }t        ||d       y r|   )r9   r  r   r   )rX   r  rQ   r:  s       r3   test_invweibull_sfr  $  s(     ""1a(HHhU3r5   zp, c, expected)ru   r|  g9?)geK<r   g@c                 `    t         j                  j                  | |      }t        ||d       y r|   )r9   r  r  r   )ro  r  rQ   r:  s       r3   test_invweibull_isfr  $  s(     ##Aq)HHhU3r5   z	df1,df2,x)r   rJ  rM  r=  r   r  r  rv  r\  c                 L   d}t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       y )Nr   r  r~   ro  )r9   r  rj   r  r   rb   )df1df2rX   r~	  expected_cdfcalculated_cdfr   calculated_pdfs           r3   test_ncf_edge_caser  $  s     
B77;;q#s+LYY]]1c33NL.u= 77;;q#s+LYY]]1c33NL.t<r5   c                  b    t         j                  j                  ddd      } t        | dd       y )Nr`   r)  r   g     `E@r  r~   )r9   r  r7  r   )r  s    r3   test_ncf_variancer  $  s&     			aAAAu5)r5   c                      t         j                  j                  dddd      } d}t        |t	        j
                  | d             y )Nr  r)  r  gffffff>@g&4I,)?)decimals)r9   r  rj   r   rc   round)	scipy_val	check_vals     r3   test_ncf_cdf_spotcheckr  $  s6    
 		b!R.IIIrxx	A>?r5   c                      t        j                  ddd      } d| d<   d}t        j                  j                  | g| }| D cg c]"  }t        j                  j                  |g| $ }}t        ||       y c c}w )Nr   r    r  r|  )rV   r`   r   r   r    )rc   rR  r9   r  r   r   )rX   parrx  xiq0s        r3   test_ncf_ppf_issue_17026r  $  sm    
Aq#AAaD
C		a#A,-	.b%))--
!S
!	.B	.Ar 
/s   'A9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  r  r  binsrM  r|  r  {   r9  r6  )
rc   r   r   	histogramr9   r@   templater  r   norm_template)rl   r	  r   norm_histograms       r3   r0  zTestHistogram.setup_method%  s{    
		t LL "@FGI	**95zz~~#Su3~Od4"//?r5   c                    t        j                  g d      }t        j                  g d      }t        | j                  j                  |      |       t        | j                  j                  d      d       t        | j                  j                  d      d       t        | j                  j                  d      d       t        | j                  j                  d      d       t        j                  d	d
d      }t        | j                  j                  |      t        j                  j                  |dd      d       y )Nrz   ru   rM  r  ry   r|  r  r1  r  r/  rN        @r  r	  r  r  r        !@r  r"  )rz   rz   rF  rF  {Gz?r  Q?r  {Gz?r  rJ  rJ  r  r  r  r  r  r  rz   rz   r  r  r  r  rz   r  r   r`   rY   rM  r|  r]   rV   r~   )rc   r   r   r   r
  rb   r   rR  r  r9   r  )rl   rE  
pdf_valuesrX   s       r3   rK  zTestHistogram.test_pdf%  s     M NZZ !I J

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

qc=C	Ir5   c                    t        j                  g d      }t        j                  g d      }t        | j                  j                  |      |       t        | j                  j                  |dd       |dd        t        j                  ddd      }t        | j                  j                  | j                  j                  |            |       t        j                  ddd      }t        | j                  j                  | j                  j                  |            |       t        j                  d	dd
      }t        | j                  j                  |      t        j                  j                  |dd      d       y )Nr  )rz   rz   rz   r  rF  r  r  
ףp=
?Q?{Gz?r  ru   r|  (\?RQ?=
ףp=?)\(?r
  rM  rM  r`   r   rM  r  rZ   rz   r   rY   r|  r]   rV   r~   )rc   r   r   r   r
  rj   r   rR  r  r9   r  )rl   rE  
cdf_valuesrX   s       r3   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r5   c                    d}| j                   j                  |d      }t        t        j                  |dk        d       t        t        j                  |dk        d|z  d	       t        t        j                  |d
k        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |dk        d|z  d	       t        t        j                  |d k        d!|z  d	       t        t        j                  |d"k        d#|z  d	       t        t        j                  |d$k        d%|z  d	       t        t        j                  |d&k        d|z  d	       t        t        j                  |d&k        d|z  d	       t        t        j                  |d&kD        d       y )'Nr  r  r   rM  rz   ry   rF  rJ  r~   r|  r  r  r  rV   r1  r  r  r  r/  r  rN  r  r?  r  ru   r  r|  r	  r  r  r  r  r  r  r  r  r
  r  )r
  r   r   rc   rf  r   )rl   r+  rD  s      r3   rC  zTestHistogram.test_rvsC%  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/r5   c                     t        d      D ]L  }t        | j                  j                  |      t	        j
                  dd      j                  |      d       N y )Nr   rM  r|  r?  r~   )r  r   r  r  r9   r  r  ry  s     r3   r
  zTestHistogram.test_munpY%  sN    q 	GAD..44Q7!JJsC077:G	Gr5   c                     t        | j                  j                         t        j                  j                  dd      d       y )NrM  r|  r]   r?  r~   )r   r  rA   r9   r  rq   s    r3   rj  zTestHistogram.test_entropy^%  s5    **224

**s#*>T	Kr5   N)	r   r   r   r0  rK  r  rC  r
  rj  r;   r5   r3   r  r  %  s%    @ I4I,0,G
Kr5   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)rs  ru   rJ  r  Tg'^P?g     H@z(Bin widths are not constant. Assuming...r  r.  )
r9   r@   rc   r  r   rb   r>  r   rh  rs  )countsr  rM   r[  s       r3   test_histogram_non_uniformr#  c%  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   rY   r  r  iL  r   )rc   r   r   r9   
loguniformr   
reciprocalr   r	  log10r  r  r   r>  )rl   r   r  r   rv2r   rA  r   s           r3   
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3r5   r  r  r  c                 >   t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  j                  ||      \  }}}}|dk(  sJ t        j                  j                  |d|      \  }}}}|dk(  sJ y )	Nr'  rV   r    r   r   r  r`   r  )rc   r   r   r9   r(  r   r   )rl   r  r   r   r1   r2   r^   r_   s           r3   test_fit_overridez TestLogUniform.test_fit_override%  s     ii##K0""33"G ++//F/C1c5zz ++//Af/M1c5zzr5   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r  r   r    r   r4  r  i8rJ  r   rY   )rc   r   r   r9   r(  r  r   rj   r   r   r  rb   r  r   )
rl   r   r1   r2   rM   rj   r   rX   rb   r   s
             r3   test_overflowzTestLogUniform.test_overflow%  s    ii##$7811% kk!QTk*#/5hhDh!#/5 4%%hhqkCRQR("- Aq	BFF1I-.		T*r5   N)	r   r   r   r,  r   r   r   r.  r0  r;   r5   r3   r%  r%  z%  s5    4" [[Xt}5
 6
+r5   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ej
                  j                  dg d!      d"        Zy#)$	TestArgusc                     t         j                  j                  ddd      }t        t        j                  d      j	                         |j	                         d       y )Nr6  r  E  r   r   rP  )r9   argusr   r   r   r  s     r3   test_argus_rvs_large_chiz"TestArgus.test_argus_rvs_large_chi%  s=    KKOOBSsO;EKKO002AFFHaHr5   zchi, random_staterV   r4  r     r1     c                     t         j                  j                  |d|      }t        j                  |d|f      \  }}t	        |dkD         y )Nr  r   r5  r?  r9   r5  r   rB  r	   )rl   r  r   rX   r   ro  s         r3   rC  zTestArgus.test_rvs%  s@     KKOOCcOE||Aw01Dr5   r  r  ro  c                     t         j                  j                  |dd      }t        j                  |d       \  }}t	        |dkD         y )Nr  ie r   c                     dd| dz  z
  dz  z
  S )Nr    r`   r  r;   r   s    r3   rH   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>%  s    a!Q$h#->)> r5   r?  r:  )rl   r  r  r   ro  s        r3   test_rvs_small_chizTestArgus.test_rvs_small_chi%  s=    
 KKOOCcO?||A>?1Dr5   zchi, expected_mean))r    g щi?)rY   g.憃?)rv  g\paP?)rw  g	?)r  g,6?c                 b    t         j                  j                  |d      }t        ||d       y )Nr    r  r   r~   )r9   r5  r   r   )rl   r  expected_meanr  s       r3   r  zTestArgus.test_mean%  s)     KKS*=u5r5   zchi, expected_var, rtol))r    gLH'B?r   )rY   go$?r  )rv  g
=>r%  )rw  g2W>r%  )r  gb~P>r%  c                 b    t         j                  j                  |d      }t        |||       y )Nr    r  r~   )r9   r5  r7  r   )rl   r  expected_varr   r  s        r3   r  zTestArgus.test_var%  s&     KKOOCqO)<d3r5   zchi, expected, rtol))r   gwM?r  )ru   gj?r  )rV   gHEA`!?r  )rw   gcف>r}   )r  gF=r  )r  g߹Q#B=r  )ro  g0ޟ<r  )r  g*W%:r}   c                 2    t        t        |      ||       y r  )r   r$   )rl   r  rQ   r   s       r3   test_argus_phi_small_chiz"TestArgus.test_argus_phi_small_chi%  s     	
3=r5   zchi, expected))ru   )g-\/?g+p7c?g5Ϧ\?)rJ  )g
f?gi{?ٸ?gZ@7?)rV   )gB	?g]?gR{?)rw   )glͅw?g,?g[Z=?)r  )gz,?g]?gѪ1?)r  )g8<?gE-?gI?)ro  )g~7?g7B.?g9?)r  )g;?g9B.?g}5?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrV   ru   r   r   r~   )rc   r   r   r9   r5  rb   rl   r  rQ   rX   s       r3   test_pdf_small_chizTestArgus.test_pdf_small_chi%  -     HH_%3/Fr5   ))ru   )gQ߹?e?grJ,?g򺗄?)rJ  )gΎd?g?gh?)rV   )g|
o?gvb?g+@?)rw   )g̈́On?ge?gC|[3?)r  )g!?m?g{jiH?gu53?)r  )g~m?g0-.?g3?)ro  )g~m?g7;B.?gŗ3?)r  )g~m?g9B.?gŗ3?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrE  r  r~   )rc   r   r   r9   r5  r   rF  s       r3   test_sf_small_chizTestArgus.test_sf_small_chi%  s-     HH_%q#.uEr5   zx, chi, expected))P?re  g;=)rK  r  g[$7>)rN  r|  g=~L]=)rN  r  gD,G
'=c                 `    t         j                  j                  ||      }t        ||d       y r  )r9   r5  r   r   )rl   rX   r  rQ   r   s        r3   test_sf_near_1zTestArgus.test_sf_near_1&  s$     [[^^As#H51r5   ))ru   )g+&?gk?gμm/?)rJ  )g?CL\f?g^N?g]AͭR?)rV   )ga>$?g;Lf?gaW?)rw   )gx?g 43n?gwY?)r  )go7🤎?g
+-oGn?gIQ9Y?)r  )gT?gGn?g@̋Y?)ro  )gU?g{Gn?giG͋Y?)r  )gDU?g {Gn?gH͋Y?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrE  r  r~   )rc   r   r   r9   r5  rj   rF  s       r3   test_cdf_small_chizTestArgus.test_cdf_small_chi&  rH  r5   ))ru   )gQ)?g6{?r  )gB`"۹?)g?g8%?r  )rV   )g388?gV%?r   )rw   )g*j?gRS%?r   )r  )g!|?gZ%?r   )r  )gy[|?gG%?r   )ro  )g"3|?gW%?r   )r  )g!3|?gW%?r   c                 b    t         j                  j                  |d      }t        |||       y )Nr  r  r~   )r9   r5  r   )rl   r  rQ   r   rB  s        r3   test_stats_small_chizTestArgus.test_stats_small_chi%&  s)     kkT2XD1r5   N)r   r   r   r6  r   r   r   rC  r=  r  r  rC  rG  rJ  rM  rO  rQ  r;   r5   r3   r2  r2  %  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
 [[	67272
 [[	P	QG	QG
 [[	C	D2	D2r5   r2  c                      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      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+)r9   nakagamir   r   )rl   r  rX   r  s       r3   r  zTestNakagami.test_logpdf6&  s/     ~~$$Q+12r5   c                     d}d}t         j                  j                  ||      }t        |dd       t         j                  j	                  ||      }t        ||d       y )Nr|  rN  g"S+:r   r~   )r9   rU  r   r   r  )rl   r  r  r   rh  s        r3   r  zTestNakagami.test_sf_isfG&  sS     ^^r2&1>^^B'BU+r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr  ru   gUiּr  r~   )r9   rU  r  r   )rl   rX   r  r~  r  s        r3   r  zTestNakagami.test_logcdfZ&  s3    %&&q"-%0r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr?  rO  gD&`Ur  r~   )r9   rU  r  r   )rl   rX   r  r~  r  s        r3   r  zTestNakagami.test_logsfb&  s3    %$$Q+s/r5   zm, ref))r   g|Bd븿)ru   r  )rY   g/ۿc                 Z    t        t        j                  j                  |      |d       y )Ng^~z=r~   r   r9   rU  rA   rl   r  r~  s      r3   rj  zTestNakagami.test_entropyj&  s      	..q13WEr5   ))r  g}Ô%I)r  gq_)g    ScAgB4U)g    cAgu1U)r  gb>%)r  gWҙ\c                 V    t        t        j                  j                  |      |       y ro   rZ  r[  s      r3   test_extreme_nuzTestNakagami.test_extreme_nu|&  s    
 	..q137r5   c                     t        j                  t        j                  j	                  d            sJ t        j                  t        j                  j	                  d            sJ y )Nr  r  )rc   r=  r9   rU  _entropyrq   s    r3   test_entropy_overflowz"TestNakagami.test_entropy_overflow&  sD    {{5>>2259:::{{5>>226:;;;r5   znu, ref))r  g2H?)r  g:U?)r  g>c                 Z    t        t        j                  j                  |      |d       y r  )r   r9   rU  r   )rl   r  r~  s      r3   r  zTestNakagami.test_mean&  s     	++B/5Ar5   z+Fit of nakagami not reliable, see gh-10908.rU  r  )r  r|  r  r^   )rx   rY   ra
  r_   )r  r   r  c                   
 d
t         j                  j                  
|||d      t         j                  j                        \  }}}t	        ||d       t	        ||d       t	        ||d       fd}
fd}
fd}	t	         ||||      d	d
       t	         ||||      d	d
       t	         |	|||      d	d
       y )NrZ   9  r   r  r^   r_   r   rJ  r~   c                     d| z  dz   t        j                  d|z
  z        z  d| z  |dz  z  t        j                  |z
        z  z   S )Nr   r    r`   rc   rf  )r  r^   r_   rI  s      r3   	dlogl_dnuz(TestNakagami.test_fit.<locals>.dlogl_dnu&  sP    UQY"&&GcM):";;d5!8mbffWs]&;;< =r5   c                     dt        j                  |       z   t        d|       z
  z  dt        j                  t        j                  |z
  |z              z  z   t        j                  |z
  |z  dz        z
  S )Nr    r   r`   )rc   r  r   rf  r  r^   r_   r+  rI  s      r3   
dlogl_dlocz)TestNakagami.test_fit.<locals>.dlogl_dloc&  sp    RVVBZ)Ar*::;rvvw}&=>??@ffw}59:; <r5   c                 j    dz  | z  |z  d| z  |dz  z  t        j                  |z
  dz        z  z   S )Nr   r`   r   rf  ri  s      r3   dlogl_dscalez+TestNakagami.test_fit.<locals>.dlogl_dscale&  sF    !GbL5("fuz)BFFGcMa3G,HHI Jr5   r   r  r   )r9   rU  r   r   r   )rl   r  r^   r_   nu_estloc_est	scale_estrg  rj  rl  r+  rI  s             @@r3   ro  zTestNakagami.test_fit&  s     ..$$!+0t % E%*^^%7%7%@"-3/	5s3	=	<
	J 		&'9=qtL
67I>MVWi@!$Or5   c                 x   d}d}t         j                  j                  ||||d      }t         j                  j                  ||      \  }}}t	        j
                  |      }	t	        j                  t	        j                  ||z
  dz              }
t        ||d       t        ||	d       t        ||
d       y )	Nru   rZ   rc  rd  r}  r`   r&  r~   )	r9   rU  r   r   rc   r  r  r   r   )rl   r^   r_   r  rn  rI  rm  rn  ro  loc_theo
scale_theos              r3   test_fit_nuzTestNakagami.test_fit_nu&  s    
 ..$$!+0t % E%*^^%7%7B%7%G" 66'?WWRWWg&7A%=>?
.5	:D9r5   N)r   r   r   r  r  r  r  r   r   r   rj  r]  r`  r  r|  ro  rs  r;   r5   r3   rS  rS  4&  sS   3",&10 [[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:r5   rS  c                   R   e Zd Zd Zd Zd Zej                  j                  dddg      ej                  j                  ddd	e	j                  z  e	j                   d
e	j                  de	j                  z  dg      ej                  j                  dg d      d                      Zy)TestWrapCauchyc                    t        j                  ddgddgg      }t        j                  dgdgg      }t        j                  j	                  ||      }|j
                  dk(  sJ t        j                  ||f      D cg c]%  \  }}t        j                  j	                  ||      ' }}}t        |j                         |d	       y c c}}w )
NQ?re  ru   r   rM  r  r`  r   r~   )	rc   r   r9   
wrapcauchyrj   r;  nditerr   r/
  )rl   r  rX   ro  rh  r3
  scalar_valuess          r3   test_cdf_shape_broadcastingz*TestWrapCauchy.test_cdf_shape_broadcasting&  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 )Nrw  ru   r  r~   )r9   rx  rj   rc   rd   r   r  s     r3   test_cdf_centerzTestWrapCauchy.test_cdf_center&  s*      -3U+r5   c                    d}d}d}t         j                  j                  ||g|      }d|z   d|z
  z  }t        |d   t	        j
                  |t	        j                  |dz        z        t        j                  z         t        |d   dt	        j
                  |t	        j                  t        j                  |dz  z
        z        t        j                  z  z
         y )NrM  r  r   r    r   r`   )r9   rx  rj   r   rc   arctantanrd   )rl   rh  ri  r  ro  crs         r3   rU  zTestWrapCauchy.test_cdf&  s      "b1-!ea!e_!bii266"Q$<8>?!a"))Brvvbeebdl/C,C"DRUU"JJKr5   r  r  rV   r^   r  r   r   r`   rZ   r_   )r  r    r  c                     t         j                  j                  |||d      }t        j                  |dk\        sJ t        j                  |dt        j
                  z  k        sJ y )Nr   )r  r^   r_   r   r   r`   )r9   rx  r   rc   r   rd   )rl   r  r^   r_   rX   s        r3   test_rvs_lie_on_circlez%TestWrapCauchy.test_rvs_lie_on_circle&  sU    
   1#U Fvva1f~~vva1ruu9n%%%r5   N)r   r   r   r{  r}  rU  r   r   r   rc   rd   r  r;   r5   r3   ru  ru  &  s    
>,L [[S5$-0[[UT2bee8beeVQqwPS$TU[[W&67& 8 V 1&r5   ru  c                       G d dt         j                        }  | d      }t        t        d      5  |j	                          d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zd Zy)/test_rvs_no_size_error.<locals>.rvs_no_size_genc                      yr   r;   rq   s    r3   _rvsz4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvs&  s    r5   N)r   r   r   r  r;   r5   r3   rvs_no_size_genr  &  s    	r5   r  rvs_no_sizer  z_rvs\(\) got (an|\d) unexpectedr  )r9   r?   rW  r  r   )r  r  s     r3   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   r  )$skip_test_support_gh13294_regressionr   r   r'  r9   r=  r?   r
  r
  r   rc   r  )r  r)  rM   a0b0r  r  a1b1r1   r2   s              r3   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r5   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   )	r9   r  r
  rc   r   r  r  r   r;  )r  r  ex_a0ex_b0r  r  ex_a1ex_b1r  r  ex_a2ex_b2s               r3   ,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{{"""r5   c                  4   ddg} dgdgdgg}t        t        j                  j                  | |      ddgddgddgg       t	        j
                  d      } t	        j
                  d      }t        j                  j                  | |      j                  dk(  sJ y )	Nrz   rM  ry   r  r  r  )r   r  )r   r9   r  r7  rc   r.
  r;  r]   s     r3   *test_stats_broadcasting_gh14953_regressionr  ,'  s    r(CTB4"EU+r2hR2r(-KL
((5/CHHVE::>>#u%++v555r5   )gn!	g:I"<)gQ	@gE?c                     t        t        j                  j                  |       |       t        t        j                  j	                  |        |       y ro   )r   r9   cosinerj   r   )rX   rQ   s     r3   test_cosine_cdf_sfr  :'  s6     ELL$$Q'2ELLOOQB'2r5   ))ro  gkM6O)r  g0ӭ!	)r"  g;'u(@c                     t        t        j                  j                  |       |       t        t        j                  j	                  |       |        y ro   )r   r9   r  r   r  )ro  rQ   s     r3   test_cosine_ppf_isfr  B'  s8    
 ELL$$Q'2ELL$$Q'(3r5   c                      t         j                  j                  t        j                   t        j                  g      } t        | d       y )NgrB)r9   r  r   rc   rd   r   )r  s    r3   test_cosine_logpdf_endpointsr  K'  s1    <</D d./r5   c                  0   t         D  ch c]  \  } }t        | t              r|  }} }t        D  ch c]  \  } }| 	 }} }||k(  sJ t        D  ch c]  \  } }| 	 }} }t
        D  ch c]  \  } }| 	 }} }||k(  sJ y c c}} w c c}} w c c}} w c c}} w ro   )r!   r=  rD   r"   r   r   )r  r   discrete_distnamesinvdiscrete_distnamescont_distnamesinvcont_distnamess         r3   test_distr_params_listsr  R'  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   rU   ri  r   )r  r1   r  )r9   r  _statsr  r  r;   r5   r3   test_moment_order_4r  `'  s`     
NNAs+ >>  qA .#555 >>1%,,,r5   c                   &   e Zd Zej                  d        Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	ej                  j                  ej                  j                  d ej                  d	d
ej                  j                         ej                  ddej                  j                         ej                  ddej                  j                        g      d               Zy)TestRelativisticBWc                     t        j                  t        t              j                  dz        }t         j
                  j                  |j                  d      }|S )a&  Sample data points for pdf computed with CERN's ROOT

        See - https://root.cern/

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

        pdf calculated for Z0 Boson, W Boson, and Higgs Boson for
        x in `np.linspace(0, 200, 401)`.
        z-data/rel_breitwigner_pdf_sample_data_ROOT.npyzx,pdf,rho,gammar  r  rr  s     r3   ROOT_pdf_sample_dataz'TestRelativisticBW.ROOT_pdf_sample_datau'  sL     wwN!!;<
 vv  /@ Ar5   zrho,gamma,rtol))qVEB@gj+@rH  )FC@Gz @r  )ND@_LU?r  c                     ||d   |k(  |d   |k(  z     }|d   |d   }}t        |t        j                  j                  |||      |       y )Nrhor  rX   rb   r  r~   )r   r9   rel_breitwignerrb   )rl   r  r  r  r   r   rX   rb   s           r3   test_pdf_against_ROOTz(TestRelativisticBW.test_pdf_against_ROOT'  sg     $!%(C/#G,57
 cDK3&&**1c*?d	
r5   zrho, Gamma, rtol))r  r  r  )r  r  r  )r  r  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 rn  )rc   r  rd   )Er  Gammar  rU   s        r3   rb   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9r5   r?  r2  rY   r  r~   )rc   rR  r9   r  r   rb   r   )	rl   r  r  r   rb   ro  rX   r   r~  s	            r3   &test_pdf_against_simple_implementationz9TestRelativisticBW.test_pdf_against_simple_implementation'  ss    	: KKdB'!!%%aE%:##''3e'<!SY&St,r5   z	rho,gammar  r  r  r  r  r  r  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`   rJ  r~   r    r:  rw   N)rc   r   r   r9   r  r   r   r   )rl   r  r  r   r   r   r   s          r3   test_fit_flocz TestRelativisticBW.test_fit_floc'  s    & #ii##D)$$((u4c ) 
 ##''1'5QQ(3,TB1v{{##''1U'CA$/AAAu:---r5   N)r   r   r   r   r  r  r   r   r  r  r   r  r   r  r;   r5   r3   r  r  t'  s   ^^ $ [[ 


 [[/ 2 -- [[[[FLL"F&++2B2B FLL!50A0A FLL &0A0A

. .r5   r  c                   T    e Zd Zej                  j                  dddg      d        Zy)TestJohnsonSUr  )r
  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   r  r  r  r~   )r9   rK  r   )rl   r  r   s      r3   test_moment_gh18071z!TestJohnsonSU.test_moment_gh18071'  s5     oo##T"1X>v>T!"XE2r5   N)r   r   r   r   r   r   r  r;   r5   r3   r  r  '  s9    [[VOJ&K L
3L
3r5   r  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@r  r  )rc   rR  r9   truncparetorb   r  rj   r   )rl   r2   r  rX   r   r~  s         r3   rK  zTestTruncPareto.test_pdf'  sr    1KKS!1%))!,ll1o!!!$u||A':':1'==S!r5   r   TFr6  r  r  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 )r  r  r    r|  r]   r  r   r   r   r   r  r  r  )rc   r   r   r9   r  r   r   r   r  r   r   )rl   r   r6  r  r  r   r2   r  r^   r_   rM   r   r   r[  s                 r3   ro  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   rK  r   r   r   ro  r;   r5   r3   r  r  '  s    " [[Yu6[[[4-8[[WtUm4[[WtUm4K 5 5 9 7Kr5   r  c                       e Zd Zd Zy)
TestKappa3c                     dt         j                  j                  dd      z
  }t         j                  j                  dd      }t	        ||       y )Nr    ru   g     j@)r9   kappa3rj   r   r   )rl   sf0rp  s      r3   r  zTestKappa3.test_sf(  s=     %,,""3,,llooc3'S!r5   N)r   r   r   r  r;   r5   r3   r  r  (  s    "r5   r  c                       e Zd Z ej                  dd      Z ej                  d      Z ej                  d      Zd Z	d Z
d Zd Zd Zd	 Zd
 Zd Zd Zy)TestIrwinHallr   r    rY   c                 N    t        | j                  j                  d      d       y )Nr  )r   g?r   gQ)r   ih10r9   rq   s    r3   test_stats_ih10zTestIrwinHall.test_stats_ih10(  s     	TYY__V46JKr5   c                     g d}t        t        |            D cg c]   }| j                  j                  |dz         " }}t	        ||       | j                  j                  d      }d}t	        ||       y c c}w )N)	r   gUUUUU9@g     0a@i  gx@gn۶mˠ@g    :PAg8)Ag   SAr    r6  g2⍚H)r  r
  r  r  r   )rl   rA  rn  r  m50	m50_exacts         r3   test_moments_ih10zTestIrwinHall.test_moments_ih10(  sm    - 38D	2BCQ499##AaC(CCWd+iir"H	S), Ds   %A8c                     t        j                  ddd      }| j                  j                  |      }| j                  j                  |      }t        ||d       y Nr   r    rZ   rY   maxulp)rc   rR  unifrb   ih1r   )rl   ptspdf_unifpdf_ih1s       r3   test_pdf_ih1_unifzTestIrwinHall.test_pdf_ih1_unif'(  sF     kk!Q$99==%((,,s#Whr:r5   c                     t        j                  d      }d}t        j                  dd|      }t        j                  dd|      }d||dz   dz  d  z
  ||dz   dz  d  |j	                  |      }t        ||d       y )Nr`   rW   r   r    rY   r  )r9   r  rc   rR  rb   r   )rl   ih2nptsr  rQ   pdf_ih2s         r3   test_pdf_ih2_trianglez#TestIrwinHall.test_pdf_ih2_triangle3(  s|    ooa kk!Q%;;q!T*%&4!8/2B)C%C$(q!"''#,Whr:r5   c                     t        j                  ddd      }| j                  j                  |      }| j                  j                  |      }t        ||d       y r  )rc   rR  r  rj   r  r   )rl   r  cdf_unifcdf_ih1s       r3   test_cdf_ih1_unifzTestIrwinHall.test_cdf_ih1_unif=(  sD    kk!Q$99==%((,,s#Whr:r5   c                     t        j                  dd      }t        j                  |      }|j	                  |dz        }t        j
                  dt        |            }t        ||d       y )Nr    rY   r`   ru   r  )rc   r  r9   r  rj   r  r
  r   )rl   rn  ihih_cdfexacts        r3   rU  zTestIrwinHall.test_cdfE(  sQ    IIa__QA		#s1v&VU26r5   c                     g d}t        | j                  j                  t        j                  d            |d       t        | j                  j                  d      dd       d}t        | j                  j                  d      |d       y )	N)r   g\xO~>g-P2?g8ʝi?gg{Ȇ?ru   g&M?g׈Y?gB?gDl?r    r  rY   r  rV   g+|<rM  g#@)r   r  rj   rc   r  r7  s      r3   test_cdf_ih10_exactz!TestIrwinHall.test_cdf_ih10_exactN(  sd    ( 	TYY]]299R=94KTYY]]402EbQ1TYY]]513rBr5   c                     g d}|dg|d d d   z   z  }t        | j                  j                  t        j                  d            |d       y )N)r   g4V>gP3NV?g*8f?gNgX?gjS?r   r  rY   r  )r   r  rb   rc   r  r  s     r3   test_pdf_ih10_exactz!TestIrwinHall.test_pdf_ih10_exact^(  sD     J$tt*,,TYY]]299R=94Kr5   c           	      $   t        | j                  j                  t        j                  d            d| j                  j                  t        j                  d            z
         d}t        | j                  j                  d      |d       y )Nr  r    rM  rV   rY   r  )r   r  r   rc   r  rj   r   )rl   r~  s     r3   test_sf_ih10_exactz TestIrwinHall.test_sf_ih10_exacte(  s\    		RYYr]3QryyQS}9U5UV 2TYY\\$/R@r5   N)r   r   r   r9   r  r  r  r  r  r  r  r  r  r  rU  r  r  r  r;   r5   r3   r  r  (  se    5==AD
%//!
C5??2DL-
;;;7C LAr5   r  c                       e Zd Zd Zy)TestDParetoLognormc                     d\  }}}}}t        j                  ||||      }t        j                  j	                  |j                  |      d       t        j                  j	                  |j                  |      d       y )N)r  r   r[  r  r`   g6Z?g@#
?)r9   dpareto_lognormrc   r  r   rb   rj   )rl   rX   r  rG   r1   r2   rM   s          r3   test_against_Rz!TestDParetoLognorm.test_against_Ro(  sc     ,1aA$$Q1a0


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


""488A;0CDr5   N)r   r   r   r  r;   r5   r3   r  r  n(  s    Er5   r  r  ))r  NNNN)r  NNNN)r!  NNNN)r  NNNN)r  NNNNc                    | \  }}}}}t        j                  d      }|xs d}|xs d}|xs d}|xs d}t        t        |      }t	        t
              |   } || }	t        j                  ||      }
|	j                  |	j                  |
            }t        ||
||       dt        j                  ||d      z
  }
|	j                  |	j                  |
            }t        ||
||       y )	Nru   iir   r  rg  r    r  )
rc   r*  r'  r9   r  r   r  r   r  r   )r  r  lp1lp2r   r   lpmrM   r  dist_frozenr~  r   s               r3   test_sf_isf_overridesr  (  s     &*"Hc3d
((3-C
+C
*C91D=5D5(#D(^H%F-K ++c3
C
..-
.CC4d3 bkk#sB'
'C
..-
.CC4d3r5   ro   )NF(  r  rp  r  r  r  r  pathlibr   r
  r
  rJ  numpy.testingr   r   r   r   r   r	   r
   r   r   r   r   r   r   rW  numpyrc   r   r   numpy.lib.recfunctionsr   r8   r   scipy._lib._utilr   r  r   r   r   r   scipy.statsr9   !scipy.stats._distn_infrastructurer   scipy.stats._constantsr   scipy.stats.distributionsscipy.specialr   r   r   scipy.stats._distr_paramsr   r   test_discrete_basicr!   r"   scipy.stats._continuous_distnsr#   r$   scipy.optimizer%   r&   r'   	itertoolsr(   flagsoptimizer  rM  r{  r  r4   r<   rR   rT   r   r  r   r   r*  r,  rW  r  r  r  r  r  r  r.  r:  ra  r  r  r  r  r  r	  r  r#  r*  rC  rH  r[  re  ry  r  r  r#  rG  rR  rU  r  r  r  r  r  r  r+  r9  ra  rk  rx  r  r  r  r  r  r  r  r  r  rA  rt  r|  r  rd   r  r  r  r  r  r  r  r&  r*  r.  r9  rF  r~  r  r  r  r  r  r  r  r  r  r  r  r  r	  ru	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r7
  r<
  rC
  rJ
  r]
  re
  r
  r
  r
  rz  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r  r  r
  r  r  r  r  r  r!  r$  r&  r(  r2  r?   r4  r;  r@  rF  rJ  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r%  r2  rS  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r;   r5   r3   <module>r     s4    	 
    	  : : : :
  *  " 4  /3 3  8 (   0 0 ; > C = =  ii((1,  ||x'M.>h.>.>.@H.L )6z'B $$8
G@ G@T4D.. >?

6?

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