
    e!hI                    f   d Z ddlZddlZddlZddlZddlmZ ddlZddlZddl	Z	ddl
mZmZmZmZmZmZmZmZmZmZmZ ddlZddlmZ ddlZddlmZmZ ddlmZ ddlm Z  dd	l!m"Z" dd
l#m$Z$m%Z%m&Z&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.Zddl/m0Z0m1Z1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z=m>Z>m?Z? ddl@mAZA ej                  j                  dkD  ZDej                  dk(  xr  e	j                         dk(  ZFddgZGddZHd ZId ZJ G d d      ZKddZLd ZMej                  j                  dg d       d!        ZP G d" d#      ZQ G d$ d%      ZR G d& d'      ZS G d( d)      ZT G d* d+      ZU G d, d-      ZV G d. d/      ZW G d0 d1      ZX G d2 d3      ZY G d4 d5      ZZ G d6 d7      Z[ G d8 d9      Z\ G d: d;      Z] G d< d=      Z^ G d> d?      Z_ G d@ dA      Z` G dB dC      Za G dD dE      Zb G dF dG      Zc G dH dI      Zd G dJ dK      Ze G dL dM      Zf G dN dO      Zg G dP dQ      Zh G dR dS      Zi G dT dU      Zj G dV dW      Zk G dX dY      Zl G dZ d[      Zm G d\ d]      Zn G d^ d_      Zo G d` da      Zp G db dc      Zq G dd de      Zr G df dg      Zs G dh di      Zt G dj dk      Zu G dl dm      Zv G dn do      Zw G dp dq      Zx G dr ds      Zy G dt du      Zz 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                  jq                  eD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j8                  d$d%g      fd& ej8                  d'd(g      fd) ej8                  d*d+g      fd, ej8                  d-d.g      fg      d/        Zΐ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                  jq                  eD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                  dve8e5z         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      l/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattrr4   5   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entropytrapzc                 8    t        |       j                  d       S )N<)str
startswithss    r3   <lambda>z.test_distributions_submodule.<locals>.<lambda>J   s    A(9(9#(>$> r5   )setr8   r9   r:   __all__r   r!   filter)actualdist
continuousdiscreteotherexpecteds         r3   test_distributions_submodulerS   @   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rV   LrH   rY   vms        r3   check_vonmises_pdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicS   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    ra   )r9   rb   r   cdfrd   re   rf   s        r3   check_vonmises_cdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicW   sM    q2Bq	A "qAIM': ;a ?Ar5   r   r    rZ   r;   )selfrV   rY   ri   rl   s        r3   test_vonmises_periodicz#TestVonMises.test_vonmises_periodicP   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   rd   re   r2   rm   s    r3   test_vonmises_line_supportz'TestVonMises.test_vonmises_line_supportd   s8    U((**RUUF3U((**BEE2r5   c                 d    t        j                  d      }t        |j                  d      d       y )N   r         ?)r9   rb   r   rk   )rm   rh   s     r3   test_vonmises_numericalz$TestVonMises.test_vonmises_numericalh   s"    ^^C BFF1Is+r5   zx, kappa, expected_pdf))rW   {Gz?g|65?)rW         9@g?U?)rW   ru   g"?)       @rx   gDfI?)rz   ry   g1<)rz   ru           c                 `    t         j                  j                  ||      }t        ||d       y NV瞯<rtol)r9   rb   rc   r   )rm   rY   kappaexpected_pdfrc   s        r3   test_vonmises_pdfzTestVonMises.test_vonmises_pdfv   s&     nn  E*\6r5   zkappa, expected_entropy))r    gA	?)   g,eޞ?)r[   gBb9d22)  g
G )  gc                 ^    t         j                  j                  |      }t        ||d       y NvIh%<=r   )r9   rb   rA   r   )rm   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_statera   r~   atol)	rd   randomdefault_rngr9   rb   rvsre   absr   )rm   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))rW   rx   gEJ?)rW   ry   goι?)rW   ru   g0,)rz   rx   gdty)rz   ry   gʹw[A)rz   ru   gc                 `    t         j                  j                  ||      }t        ||d       y r}   )r9   rb   logpdfr   )rm   rY   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    rZ   r_   r   c                      yNr    r;   rY   s    r3   rI   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>       r5   r    ra   c                      yr   r;   r   s    r3   rI   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   r   r5   c                 2    t        j                  d| z        S )Ny              ?)rd   expr   s    r3   rI   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   s    BFF2a4L r5   complex_funcN)rd   r   r   r9   rb   expectr   
issubdtypedtypefloatingre   anglecomplexfloating)rm   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_locra   	rvs_shape)r    r[       ח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skiprd   r   r   r9   rb   r   _assert_less_or_close_loglikennlf)rm   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   )rd   asarrayre   r9   rb   fitfinfofloattinyr   r   )rm   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   rv   rZ   r   順 r      r    )	rd   r   r   r9   rb   re   r   r   r   )rm   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    ra   r~   r         ??皙?r   rZ     r   r   )r9   rb   r   rc   rd   re   rk   sfppfmeanr   allr   r   )rm   rN   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   rb   r   )rm   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   ra   gd?)r8   r9   rb   r   rd   re   rr   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parametrizerd   re   rn   rs   rw   r   r   r   r   r   xslowr   slowr   r   r   r   r   r;   r5   r3   rU   rU   O   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   rU   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typerd   anyallclose)	rN   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    ra   r   3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:ra   )extra_keywordzToo many positional arguments.r    )shapeslensplitdictziprd   aranger   r   RuntimeErrorr   
ValueErrornaninf	TypeError)rN   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,rN   )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   rc   r1   r   r   rd   r  r2   )rN   dctargss      r3   test_supportr+  R  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   rd   r   r   rr   s    r3   setup_methodzTestRandInt.setup_methode      
		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      r[   r   ra   2   
AllInteger   .   r.   r   )r9   randintr   r	   rd   r   r  shaper   charr   
isinstance
ScalarTypereprr   rm   valsvals      r3   test_rvszTestRandInt.test_rvsh  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   r4  {Gz?)rd   r_wherer9   r;  pmfr   )rm   rV   outrB  s       r3   test_pdfzTestRandInt.test_pdfu  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   rF  r[   r4  r         ?      @r    ry      decimal)rd   linspacefloorselectr9   r;  rk   r   )rm   rY   rV   rK  rB  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   r1  rD  rL  rV  r;   r5   r3   r-  r-  d  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/  r0  rr   s    r3   r1  zTestBinom.setup_method  r2  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 NrZ   r   r6  r5  r   r8  r   )r9   binomr   r	   rd   r   r<  r   r=  r   r>  intndarrayrA  s      r3   rD  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 )Nr[   r    r   rN  r~   r   r   r9   r\  rJ  r   )rm   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 )Nra   rv   )      ?rv   rf  r{   rN  )	r9   r\  rd   r   sumr   rA   r   r   )rm   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errorra   r   np)	warningscatch_warningssimplefilterRuntimeWarningr   r9   r\  r   stdrr   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?rN  )qro  rp  )r9   r\  r   rm   ro  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   rn  缉ؗҜ<r   )rd   r  r9   r\  rJ  poissonr   )rm   ro  rp  rY   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\  rJ  rk   r   )rm   ro  rp  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   ra  )rm   r   s     r3   test_pmf_gh15101zTestBinom.test_pmf_gh15101  s$    kkooau-QU+r5   N)r   r   r   r1  rD  rd  rk  rv  r{  r  r  r  r;   r5   r3   rX  rX    s/    	;8 97
..,r5   rX  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   arcsinerc   r   rd   r  rm   rp  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/  r0  rr   s    r3   r1  zTestBernoulli.setup_method  r2  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   r6  r5  r   r    r8  r   )r9   	bernoullir   r	   rd   r   r<  r   r=  r   r>  r]  r^  rA  s      r3   rD  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 )Nrf        пr   r{   rN  )r9   r  rd   logrA   r   r   )rm   r2   ri  rj  s       r3   rk  zTestBernoulli.test_entropy  s    OOD!266$<'$rvvd|*;;
IIK:&OOC IIKQOOC IIKQr5   N)r   r   r   r1  rD  rk  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 )NrW   )rd   logspacer9   bradfordrk   r   r   )rm   crY   ry  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tir{   )r9   cauchyrc   r  s     r3   test_pdf_no_overflow_warningz'TestCauchy.test_pdf_no_overflow_warning  s#     LLU#Cxxr5   x, ref)r{   罡HP)g       r  )gIL8r  )gOd@<r  ):0yU>gHP)Mb@?gP)rW   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   )rm   rY   r  logps       r3   test_logpdfzTestCauchy.test_logpdf	  s.     ||""Ar7+sCju5r5   ))g 7y1gu	lY<)g^?)r   rf  )r   rv   )r    r   )r   g)nE?)g 7y1C?zmethod, sgnr    r   c                 6     |||z        }t        ||d       y r}   r   )rm   rY   r  methodsgnrp  s         r3   test_cdf_sfzTestCauchy.test_cdf_sf  s      3q5M3U+r5   ))gRyXsg!;v+͋)(,* EgjLҳ)      $@g
 )r{   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rm   rY   r  r  r  s        r3   test_logcdf_logsfzTestCauchy.test_logcdf_logsf/  sF     $$Q'%0""A2&s/r5   zp, ref))#B;g8)&.>g/)rf        )rv   r{   )r   rN  )!?gqmA)g?gqJRBc                 6    | ||      z  }t        ||d       y r}   r  )rm   rp  r  r  r  rY   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  rk   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 )NrZ   r   r~   r   )r9   chir   r   CHI_SF_10_4rm   rH   s     r3   test_sfzTestChi.test_sfZ  s(    IILLQ4++%8r5   c                 t    t         j                  j                  | j                  d      }t	        |dd       y )Nr   rZ   r~   r   )r9   r  r  r  r   rm   rY   s     r3   test_isfzTestChi.test_isf^  s(    IIMM$**A.2E*r5   c                 h    d}d}t         j                  j                  ||      }t        |dd       y )Nr  r9  gar  r   )r9   r  r  r   )rm   rY   dfr  s       r3   test_logcdfzTestChi.test_logcdfb  s/    !!!R( 6UCr5   c                 h    d}d}t         j                  j                  ||      }t        |dd       y )Nrx   r9  @y`r  r   )r9   r  r  r   )rm   rY   r  r  s       r3   
test_logsfzTestChi.test_logsfi  s-    		2&5EBr5   df, ref     @@)g  ļBgcAc                 Z    t        t        j                  j                  |      |d       y N-q=r   )r   r9   r  r   rm   r  r  s      r3   	test_meanzTestChi.test_meanv  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   rk  zTestChi.test_entropy  s!     			"--/5Ar5   N)r   r   r   r  CHI_MEAN_1000r  r  r  r  r   r   r   r  rk  r;   r5   r3   r  r  Q  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.
              rO     Nr   rN  rz   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>rv   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  )rd   rS  r9   crystalballrc   r   r   rm   X
calculatedrR   s       r3   rL  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  rO  r  Nr   rN  rz   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?rv   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  )rd   rS  r9   r  rk   r   r   r  s       r3   rV  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))      (@rN  rz   gI9)      "@      @      ?gy
 <)   rW   gjt?g+,)g      rz   r  gGA*?)g      >rv   rO  g^v'?)gd~Qr  皙?g眭?c                 d    t         j                  j                  |||      }t        ||d       y )Nr  r   r   )r9   r  r   r   )rm   rY   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
        )rz   rN  r  rz   r  )r  r  rz   r  r  )rN  rN  rN  rN  rN  r   MbP?r   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr    g
@gn(@ra   g?Җ)r   gMg'#@r   g('UHr   N)rd   r   r9   r  _munpr   r  )rm   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 )Nra   r   )ir4  @ Hz>r   )	r9   r  rA   rd   rS  r   r   rc   r   )rm   cbres1lohiNrY   res2s           r3   rk  zTestCrystalBall.test_entropyL  s`    q!$zz|&	BKKB"bffQi!,d.r5   N)r   r   r   rL  rV  r   r   r   r  r$  rk  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/  r0  rr   s    r3   r1  zTestNBinom.setup_methodX  r2  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 r[  )r9   nbinomr   r	   rd   r   r<  r   r=  r   r>  r]  r^  rA  s      r3   rD  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   rd   r   r9   r2  logpmfrJ  r8   r   )rm   rC  s     r3   rd  zTestNBinom.test_pmff  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@?rn  )r9   r2  r  rd   r  rk   r   rm   rB  r  s      r3   test_logcdf_gh16159zTestNBinom.test_logcdf_gh16159n  sK    ||""<3$"?ffU\\%%lcT%BCc"r5   N)r   r   r   r1  rD  rd  r9  r;   r5   r3   r/  r/  W  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/  r0  rr   s    r3   r1  zTestGenInvGauss.setup_methodv  r2  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   rk   r   rm   gigr   rp  s       r3   test_rvs_with_mode_shiftz(TestGenInvGauss.test_rvs_with_mode_shifty  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@  TrA  rD  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 )NrW   皙?r?  r   r   r@  TrA  rD  s       r3   test_rvs_new_methodz#TestGenInvGauss.test_rvs_new_method  rG  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   rB  r   rC  rk   )rp  r2   rE  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   rK  Tr   r  )r   )rm   rO  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      ra   rZ   r   r   r    r  )r   r9   rB  r   rr   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   rp  r2   r   r  r*  333333?Tr[   rx   rZ   )rp  r2   r`   )r9   rB  r   r   rC  rd   rS  rc   r   r  rk   )rm   igmurY   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?rx   r   rZ   rv   r    )rd   r   rS  r   r9   rB  rc   )rm   vals_RrY   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   rv   g    >Ar7  ra   )r   r9   rB  rc   rr   s    r3   test_pdf_zerozTestGenInvGauss.test_pdf_zero  sB    U&&**1c37; 	U&&**3A6:r5   N)r   r   r   r1  r   r   r   rF  rI  rL  rP  rS  r[  r^  r`  r;   r5   r3   r;  r;  u  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/  r0  rr   s    r3   r1  zTestGenHyperbolic.setup_method  r2  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?ra   ra   r    rv   r  r^   rZ   r   r   r   r   )rd   r   r9   genhyperbolicrS  r   rc   
rm   r]  lmbdar  r  rX  deltar*  ghrY   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?re  rf  r^   rg  rZ   r   ư>rh  )rd   r   r9   ri  rS  r   rk   rj  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)
)ra   r   r  rv   r  g8ɹvF(;)rr  rZ   r  rf  r    r   g[Ϡ?)rr  rZ   r  g      ?r   r    g ✝`D;)rr        ?r  ):?r   r    gdL;)r   rs  r  rt  r   r    gzK^7?)r         r  rt  r   r    gj?)r   ru  r     r   r    ga=vG:)r  ru  r   rv  r   r    g?)(   ru  r   rv  r   r    g1bV?)<   ru  r   rv  r   r    g?c                 j    t         j                  j                  ||||||      }t        ||d       y Nr^   dy=r   )r9   ri  rk   r   )	rm   rY   rp  r1   r2   r_   r`   r  rk   s	            r3   test_cdf_mpmathz!TestGenHyperbolic.test_cdf_mpmath  s3     !!%%aAqc%GSu-r5   ))r   rp  rP  r   r   r    gC!,?)r   r         @      @r    r   g,Ћf?)r  r   r}  r~  r    r   rN  )   ra   r   r  rv   r  gm"چ>),  rZ   r  rf  r    r   g:;)rx  ru  r   rv  r   r    gw=)K   ru  r   rv  r   r    g3Z0&K<c                 j    t         j                  j                  ||||||      }t        ||d       y rz  )r9   ri  r   r   )	rm   rY   rp  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@re  rf  r    r   r^   r   r   rh  )ranger9   ri  momentr   )
rm   r]  rk  r  r  rX  rl  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 )	Nre  rf  r^   r?  r   r   r@  T)r9   ri  rC  r   rk   r   )
rm   rk  r  r  rX  rl  r*  rm  r   rp  s
             r3   rD  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    r4  rZ   ra   r   r^   rx   Gz?r7  rp  rh  )rd   rS  float_powerr   float32epssqrtr9   ri  r   newaxisr   rc   t)	rm   r  r  r  rX  rl  r*  rm  rY   s	            r3   
test_pdf_tzTestGenHyperbolic.test_pdf_t8  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^   rx   r  r7  rp  rh  )rd   r   r  r  r9   ri  rS  r   r  r   rc   r  )	rm   rk  r  r  rX  rl  r*  rm  rY   s	            r3   test_pdf_cauchyz!TestGenHyperbolic.test_pdf_cauchyJ  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 )Nrg  rZ   )r    r    r   r^   r  r  r7  r    r   dy=rh  )rd   rS  r   r  r  r9   ri  r  r   rc   laplace)	rm   r_   rl  rk  r  r  r*  rm  rY   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  rZ   r      r   r[   r   r^   rx   r  r7  )r1   r2   r_   r`   r   rh  )rd   rS  r  r  r9   ri  r   r  r   rc   norminvgauss)	rm   r  r  rl  rX  rk  r*  rm  rY   s	            r3   test_pdf_norminvgaussz'TestGenHyperbolic.test_pdf_norminvgaussp  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   r1  rn  rq  r   r   r   r|  r  r  rD  r  r  r  r  r;   r5   r3   rb  rb    s    ?,>4 [[%		<.. [[%	@	-	-=.%$"*r5   rb  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)r4  gA0=)r7  g!b;c                 ^    t         j                  j                  |      }t        ||d       y r  )r9   	hypsecantr   r   )rm   rY   	referencer   s       r3   r  zTestHypSecant.test_sf  s$     __"IE2r5   zp, reference)rp  g9bT*@)r  gTW-;@c                 ^    t         j                  j                  |      }t        ||d       y r  )r9   r  r  r   )rm   rp  r  rY   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/  r0  rr   s    r3   r1  zTestNormInvGauss.setup_method  r2  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      r9  r    rv   r1   r2   r  r   )rd   r   r9   r  rk   r   )rm   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    rv   r  r  r   )rd   r   r9   r  rc   r   )rm   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   rR  gy5`?r  )rZ   r   rR  gMLC9r  c                     t         j                  j                  |||      }t        |||       t         j                  j	                  |||      }t        |||       y Nr   r9   r  r   r   r  )rm   rY   r1   r2   r   r   rH   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`  rp  r   r  )rm   rY   r1   r2   r   rH   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  ra   )r9   r  rd   r  r   r  r   )rm   dstrY   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    rv   ra   r   r  r    r   mvskmoments)rd   r  r   r9   r  )rm   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  rv   r  )rd   r   r9   r  r   r   rk   )rm   r1   r2   r  rB  s        r3   test_ppfzTestNormInvGauss.test_ppf  sS    1-.!!%%fa3 2 2 6 6tQ BCr5   N)r   r   r   r1  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/  r0  rr   s    r3   r1  zTestGeom.setup_method  r2  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   r6  r5  r   r8  r   )r9   geomr   r	   rd   r   r<  r   r=  r   r>  r]  r^  rA  s      r3   rD  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   )rd   r   r   r9   r  r   r   r   int64r   iinfoint32max)rm   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  rv   )rv   rf  rs  )r9   r  rJ  r   rm   rB  s     r3   rd  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  rv   r~   r   r`  r    r{   )rd   r  r9   r  rJ  r4  r   r   )rm   rb  rc  rC  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  rv   rv   r         ?r    )r9   r  rk   r   r   r   rm   rB  vals_sfrR   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  rv   r  )	r9   r  r  r  r   r   rd   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  rv   )rN  rz   r  )r9   r  r   r   r   rm   rB  rR   s      r3   r  zTestGeom.test_ppf!  s+    zz~~0#6)!$1r5   c                 \    t        t        j                  j                  dd      dd       y )Nr  rN  r  r   )r   r9   r  r   rr   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   )rm   rj  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KH9rZ   r   r   )rd   r   RandomStater9   r  r   r   )rm   r   s     r3   test_rvs_gh18372zTestGeom.test_rvs_gh183720  sB     yy,,Y7

u2LIAMRRTTTr5   N)r   r   r   r1  rD  r  rd  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/  r0  rr   s    r3   r1  zTestPlanck.setup_method8  r2  r5   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )Nr  rO  )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_logsfB  s.    ||!!"7?:;!$1r5   N)r   r   r   r1  r  r  r;   r5   r3   r  r  7  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   gennormrc   r  r   rm   pointspdf1pdf2s       r3   test_laplacezTestGennorm.test_laplaceI  s;    }}  +}}  (D$'r5   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y Nr  ra   g;f?r`   )r9   r  rc   r  r   r  s       r3   	test_normzTestGennorm.test_normP  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   rv   r   r5  rW   r    ra   g;f?r`   r   )rd   r   r   r9   r  r   rC  rk   pvaluer  ks_2sampr  )rm   rN   r   rvs_laplacervs_norms        r3   rD  zTestGennorm.test_rvsW  s    
		q}}S!hhDh!||C*11C777}}QhhDh!mm''T'2~~c;/66<<<}}QhhDh!::>>t><~~c8,33c99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   rv   rN  rz   rO  )r   ra   ra   r5  r    rW   )rd   r   r   r9   r  r   rC  rk   )rm   rN   r   s      r3   test_rvs_broadcastingz!TestGennorm.test_rvs_broadcastingh  s   
		q}}sBi"b23hhLh)||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJr5   N)r   r   r   r  r   rD  r  r;   r5   r3   r  r  H  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  rm   rY   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
  r  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   rk   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  )rm   rY   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       @rW   g_r  r   )r9   r  r  r   )rm   rY   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/rP  gH7Wr  r   )r9   r  r  r   )rm   rY   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   rm   r  r  s      r3   rk  zTestGompertz.test_entropy  s    
 	..q13UCr5   N)r   r   r   r  r   r   r   r  r  r  rk  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   foldnormrk   rm   rY   r  r  s       r3   rV  zTestFoldNorm.test_cdf  s!     	**1a0#EBr5   N)r   r   r   r   r   r   rV  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?)rZ   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/  rk   rm   rY   r  s      r3   rV  zTestHalfNorm.test_cdf  s     	**1-s?r5   r   h㈵>r  	rvs_scalerx   r[   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)rd   r   r   r9   r/  r   r   r   r  halflogisticr   r   	rm   r   r5  r   r7  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  ra   r   )r   r   r#   r9   r/  r   rr   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  rV  r   rA  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   r4  r  r5  rx   r   r   TFr7  c                    t         j                  j                  d      }t        j                  j                  ||d|      }|rK|rId}t        j                  t        |      5  t        j                  j                  |||       d d d        y i }|r||d<   |r||d<   t        t        j                  |fi | y # 1 sw Y   y xY w)	Nr   r   r:  r  r  r;  r   r   )rd   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   rF  r   rr   s    r3   rA  zTestHalfCauchy.test_fit_error.  s<    ]]<( 	4   3	4 	4 	4rB  N)r   r   r   r   r   r   r   rA  r;   r5   r3   rD  rD    s    [[Yt5[[[4+6[[Yu6[[[4-8F 9 7 7 6F,4r5   rD  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  )r[   ]6)   L-c                 Z    t        t        j                  j                  |      |d       y r}   )r   r9   r<  r   r3  s      r3   r  zTestHalfLogistic.test_sf<  s!     	**--a0#EBr5   q, ref))rJ  r[   )rL  rK  )硏v?g   .!>)g?g      <c                 Z    t        t        j                  j                  |      |d       y r}   )r   r9   r<  r  rm   ry  r  s      r3   r  zTestHalfLogistic.test_isfH  s!    
 	**..q13UCr5   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Ng      >@guVJr  r   )r9   r<  r  r   rm   rY   r  r  s       r3   r  zTestHalfLogistic.test_logcdfO  s.    $##**1-%0r5   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Nr  g+r  r   )r9   r<  r  r   rm   rY   r  r  s       r3   r  zTestHalfLogistic.test_logsfV  s.    $""((+s/r5   r   r4  r  r5  r6  r   TFr7  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r9  )rd   r   r   r9   r<  r   r   r   r  r   r   )	rm   r   r5  r   r7  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   ra   r   r    r   )assert_raisesr#   r9   r<  r   rm   r/   s     r3   test_fit_bad_flocz"TestHalfLogistic.test_fit_bad_flocz  s?    L<s3 	6""91"5	6 	6 	6s   $AA
N)r   r   r   r   r   r   r  r  r  r  r   rZ  r;   r5   r3   rI  rI  4  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   rI  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   halfgennormrc   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^  rc   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
(?ra   )r9   r^  rc   r  r   r  s       r3   test_gennormzTestHalfgennorm.test_gennorm  sC      $$VW5}}  1D!D&)r5   N)r   r   r   r`  rb  rd  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  )rd   r   r9   laplace_asymmetricrc   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  ra   r    )rd   r   r9   rh  rc   r   )rm   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   rZ   ra   rW   gMbp?rK  V-?r   gMb`?)rd   r   r  r9   rh  rc   rk   r   r   r  r   concatenate)rm   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  rk  rx  r;   r5   r3   rf  rf    s    $$Gr5   rf  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/  r0  rr   s    r3   r1  zTestTruncnorm.setup_method  r2  r5   	a, b, ref))r   r[   r  )333333?ffffff?gܲl)rp  g>g+c                 \    t        t        j                  j                  ||      |d       y N绽|=r   r   r9   	truncnormrA   rm   r1   r2   r  s       r3   rk  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  rv   H.?r    ra   r  rN  r      ra   r^   r    fO?l@r   )r9   r  r   rd   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  rN  r   r  ra   r^   r   r  r  r    )r9   r  r  rd   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)irg  r   r    rZ   r5  )rZ      r9   r  r   r	   minr  rm   lowhighrY   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)r[   rX   r   r    rZ   r5  )r     )'  i'  )i)r9   r  r   r	   r  r  rE   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  rz   r   r   r    r    rN  rN  r{   r{   )r   d._MT
@BKg?r   r   )r   r  r  r   r    ra   rv   r   rv   rN  gĖy	@gdv*?g,mj%V?rf  )rd   r   r  r9   r  rk   r   rc   r   r  r   r   )rm   r  r  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsrc   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'   rw  irz   r  r  )r   pGC@Ff<r   r   )r   r  r  r   r    ra   rv   r  gEC@g i?gspXio)>rf  r  r   )rd   r   r  r9   r  rk   r   rc   r   r  r   r   rS  )rm   r  r  r  r  r  r  r  r  r  r  r  r  r  rc   xvals2s                   r3   test_gh_9403_medium_tail_valuesz-TestTruncnorm.test_gh_9403_medium_tail_values0  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  rk   rd   r  rr   s    r3   test_cdf_tail_15110_14753z'TestTruncnorm.test_cdf_tail_15110_14753_  sN    
 	S155c:*	,266266s;*	,r5   )r4  r{   rN  r{   r{   )rg  rZ   r{   rN  r{   gLFu)r  r   r{   gMFmz%?r{   gſ)r   ra   r{   ghI}?r{   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r   r   gU*? bn?gnA??c3TXʿ)r  r    gU*ҿr  gnAr  )rg  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   )rm   r  r1   r2   m0v0s0k0r  vrH   rV   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  rd   r  r   )rm   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)rZ   r9  r   r    rZ   r5  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 )Nrg  rZ   r  irw  r  r   r  -   r5  r   )axis)rd   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   rg  r  r   r   )r0   rd   r   r9   r  r   r   rr   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 )NrZ   r  )rZ         @r  	   r  )gOul"gځ=!gL!g>EG	f g^K[X)rd   r   r  r   r9   r  r  r  )rm   r1   r2   rY   rR   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   )rm   r   r  s      r3   test_moments_gh18634z"TestTruncnorm.test_moments_gh18634  s0     oob!$++A.  S!r5   N)r   r   r   r1  r   r   r   rk  r  r  r  r  r  r  r  r  rd   r  _truncnorm_stats_datar   r$  r  r  r  r  r  r  r;   r5   r3   rz  rz    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   rz  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
=)r[   gh@X)r   gh<c                 d    d}t         j                  j                  ||      }t        ||d       y )Nr  r   r   )r9   genlogisticr   r   )rm   rY   rR   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   rk  zTestGenLogistic.test_entropy  s!    
 	))11!4cFr5   r%  )rK  rZ   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)rx   rK  g^ #@)r  ra   gGFf@c                 \    t        t        j                  j                  ||      |d       y NV瞯<r   )r   r9   r  r  rm   ry  r  r  s       r3   r  zTestGenLogistic.test_isf  #     	))--a3SuEr5   )rv   rK  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   )r[   {Gz?g(?)r7  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  rk  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/  r0  rr   s    r3   r1  zTestHypergeom.setup_method	  r2  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  rZ   r   r6  r5  r   r8  )r9   	hypergeomr   rd   r   r<  r   r=  r   r>  r]  r^  rA  s      r3   rD  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	  r7  r  ra   gkㅒP?r  )r9   r  rJ  r   )rm   Mro  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   ra   r    rN  r  r{   )r   r9   r  rJ  rr   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   r4  io i  if0  rN  )r	   r9   r  rk   rr   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Ơ>rh  )g     @r  g     @g     @g     @)r    r  g)9g"1)rd   r   r9   r  r   r   )rm   orangespearsfruits_eatenquantileeatenr   rR   	quantilesr-  	expected2s              r3   test_precision2zTestHypergeom.test_precision2.  s     xx =>D(* !!(GeOWeL * *88 9 :XAD9 0	!!)Wu_guM>	iad;*s   ,B6c                 >   t        j                  ddd      }|j                         }t        j                  ddg      }t        j
                  t        ||             }t        ||       t        j                  ddd      }|j                         }t        |d       y )Nr   r    r   rf  r{   )	r9   r  rA   rd   r   rg  r   r   r   )rm   hgrj  rh  ri  s        r3   rk  zTestHypergeom.test_entropyA  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   rQ  r    @  X  r  g_7	j$r9  )r9   r  r  r   rm   rV   r  ro  r,  resultrR   s          r3   r  zTestHypergeom.test_logsfM  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   rQ  rw  r  r7  r  g*@Vr9  }      r  gר)rw  rw  rw  )r9   r  r  r   rd   r   fullr  s          r3   r  zTestHypergeom.test_logcdfe  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   )rm   r  ro  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 )NrZ   r   r   r9  r  r    r   )rd   r  r9   r  r   r   diff)rm   ro  r,  r  population_sizerp  s         r3   test_sf_gh18506zTestHypergeom.test_sf_gh18506  sw     IIaq&OOq1uoq!<vva!e}}vvbggaj1n%%%r5   N)r   r   r   r1  rD  r  r  r  r  rk  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    ra   g;Y%?)r      gRٲa6_<)gHr  gi|e?)r  g6l?)i+rW   g֬CCf9)ir   g ֺlc                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r9   loggammark   r   r   )rm   rY   r  rk   rp  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;)   r[   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  )rm   rY   r  r   rH   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ra   g     @r  r   )r9   r(  r   r   )rm   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   )rm   rY   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   )rm   rY   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)rv   g"~jg46<@g oŏr  rN  g	h"lxgQ?gZd;333333@r  g{/L@g??gгYҿgh|?5?r   r   msvkr  r   rQ  )rd   r   reshaper9   r(  r   )rm   tabler  r   varskewkurtcomputeds           r3   r  zTestLoggamma.test_stats  st       
 wr1~ 	 ). 	1$AtS$~~++Av+>H%hsD$0G./1	1r5   r  rW   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   r5  r  )confidence_levelrv   )r9   r(  r   rd   isfiniter   median	binomtestcount_nonzeror  proportion_cir  r  )rm   r  rY   medbtestcis         r3   rD  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   rk  zTestLoggamma.test_entropy	  s     	..q13UCr5   N)r   r   r   r   r   r   r  r  r  r  r  r  rD  rk  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?x7rI  r  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y NrI  r   )r   r9   	johnsonsur   r  rm   r  rY   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   rH  rH  	  s0    ;E [[VU+D ,Dr5   rH  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:rI  )r  r    r    gQbF5rI  r  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y )NrI  r   r   )r   r9   r  r   r  rM  s          r3   r  zTestJohnsonb.test_sf_isf;	  rO  r5   NrP  r;   r5   r3   rS  rS  ,	  s0    =E [[VU+D ,Dr5   rS  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  )rd   rS  r9   logisticrk   r   r   rm   rY   r)  r  s       r3   r  zTestLogistic.test_cdf_ppfD	  sD    KKR NNq!^^"2r5   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y rX  )rd   rS  r9   rY  r   r  r   rZ  s       r3   r  zTestLogistic.test_sf_isfJ	  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   rY  r   r  )rm   rp  desireds      r3   test_extreme_valuesz TestLogistic.test_extreme_valuesP	  sB    !#**1q517;**1-w7r5   c                 j    t         j                  j                  g d      }g d}t        ||d       y )N)rr  r   rZ   )gm\  .g9B.gO& $r   r   )r9   rY  r   r   )rm   r  rR   s      r3   test_logpdf_basiczTestLogistic.test_logpdf_basicW	  s+    ~~$$\2) 	hU3r5   c                 b    t         j                  j                  ddg      }t        |ddg       y )Nru   r&  )r9   rY  r   r   rm   r  s     r3   test_logpdf_extreme_valuesz'TestLogistic.test_logpdf_extreme_values_	  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 )Nr[   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    ra   )r  rd   rg  r   )inputr   r1   r2   ro  x1x2s          r3   r   z#TestLogistic.test_fit.<locals>.funck	  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   rU  r  r   )r9   rY  r   r%   	_fitstartrY   r   r   )rm   loc_rvs	scale_rvsr   r   expected_solution
fit_methods          r3   test_fitzTestLogistic.test_fite	  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 )Nr[   rv   ra   re  r    r   r   )r9   rY  r   r   rm   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&     r7  r  )     g      g%h9fg?~T}%mgCx^&ْV瞯<r   )rd   r   r9   rY  r  r  r   )rm   ru  rY   r)  rR   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  )rd   r   r   r9   rY  rs  s     r3   test_fit_gh_18176zTestLogistic.test_fit_gh_18176	  sA     xx>$(#&(TAX. / 	&ennd;r5   N)r   r   r   r  r  r^  r`  rc  r   r   r   rp  rt  rz  r  r;   r5   r3   rV  rV  B	  s    84) [[03J3K3M NCNC,F [[\D%=91 :1<r5   rV  c                   $    e Zd Zd Zd Zd Zd Zy)
TestLogserc                 B    t         j                  j                  d       y r/  r0  rr   s    r3   r1  zTestLogser.setup_method	  r2  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   r6  r5  r    r8  r   )r9   logserr   rd   r   r<  r   r=  r   r>  r]  r^  rA  s      r3   rD  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  rJ  r   rm   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   r1  rD  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/  rd   r   r   rr   s    r3   r   zTestGumbel_r_l.rng	      yy$$T**r5   rN   rl  r   r   r    rm  rW   r    r   zfix_loc, fix_scaleTFc                     |j                  d|||      }t               }|r|dz  |d<   |r|dz  |d<   t        ||fi | y )Nr[   r   r_   r`   r   ra   r   r   )r   r  r   )	rm   rN   rl  rm  r   r7  r   r   r   s	            r3   rt  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>rp  r   )rd   r   r   r   )rm   rN   r  zr_   r`   s         r3   rp  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_lrt  rp  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                  d      d        Zej                  j                  d      ej                  j                  ddd	g      ej                  j                  d
dd	g      ej                  j                  dddg      d                             Zej                  j                  ddd	g      ej                  j                  d
dd	g      ej                  j                  dddg      ej                  j                  d eddgd      D  cg c]  }d|v r|
 c}}        ej                  d      d                                    Z ej                  d      d        Zd Zd Zyc c}} w )
TestParetoc                 J	   t        j                         5  t        j                  dt               t        j
                  j	                  dd      \  }}}}t        |t        j                         t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |t        j                         t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |t        j                         t        |t        j                         t        |t        j                         t        j
                  j	                  d	d      \  }}}}t        |d
       t        |d       t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |t        j                         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |t        j                         t        j
                  j	                  dd      \  }}}}t        |d       t        |d       t        |dt        j                  d      z         t        |d       d d d        y # 1 sw Y   y xY w)Nrm  rv   r  r  rN  r  r  rz   r}  g?grq@r   r2  gffffff?gK~?g      2@g۶m۶m?r  UUUUUU?gqq?r  r0  g%I$I?gQ?gUUUUUU@grq?g88Nb@)rq  rr  rs  rt  r9   paretor   rd   r  r  r   r  rm   r  r  rH   rV   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    eAra   r  r   r^   )r9   r  r   r   )rm   rY   r2   r`   rp  rR   s         r3   r  zTestPareto.test_sf$
  sB    LLOOAqauO5!Ga<8$r5   r  r  c                 @    t         j                  j                  d      S r/  r  rr   s    r3   r   zTestPareto.rng,
  r  r5   z2ignore:invalid value encountered in double_scalarsr   r    ra   r   r   r5  r   c                    t         j                  j                  d||||      }t         j                  j                  |dd      d   }t         j                  j                  |dd      d   }t         j                  j                  |dd      d   }||cxk(  r|cxk(  rdk(  sJ  J t         j                  j                  d|||dz   |      }t         j                  j                  |d	      \  }	}
}t	        |dz   |j                                |dz
  }|j                  d   }t	        |	|t        j                  t        j                  ||j                         z              z         t	        |
d       y )
Nr[   r   r2   r`   r_   r   r   p=
ף?)r   r   )r   fix_b)r   fbra   r   )
r9   r  r   r   r   r  r<  rd   rg  r  )rm   r   r   r5  r   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r3   rp  zTestPareto.test_fit0
  so    ||SIY$+#   ? !& 0 0A$ 0 G J % 0 0AT 0 J1 M % 0 0A$ 0 G J%)> .%.)-. 	/ . 	/ . ||SIY%,q[   E.3ll.>.>t!.>.L+Y[1_dhhj1AX
  #[RVVBFF:jnn6F+F$GHH	JY"r5   rW   fix_shape, fix_loc, fix_scaleTFr   repeatignoreinvalidc                     t         j                  j                  d||||      }i }	|r||	d<   |r||	d<   |r||	d<   t        t         j                  |fi |	 y )Nr[   r  r   r   r   )r9   r  r   r   
rm   r   r   r5  r   r   r7  r   r   r   s
             r3   r   z&TestPareto.test_fit_MLE_comp_optimizerL
  sf     ||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    r[   ið& r   )r9   r  r   rd   r   r   r   )rm   r<  locationr`   r   s        r3   test_fit_known_bad_seedz"TestPareto.test_fit_known_bad_seedb
  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  ra   r   )r   ra   r   r    r   r;  )r  r9   r  rX  r#   r   rr   s    r3   test_fit_warningszTestPareto.test_fit_warningsl
  sC    ELL)lELL$4$4iaHlELL$4$4ia	 r5   c                     t         j                  j                  ddd|      }t        |d       t         j                  j	                  |      }y )Ni~r    r[   )r_   r2   r   r   r   )r9   r  r   r   r   )rm   r   r   r   s       r3   test_negative_datazTestPareto.test_negative_datat
  s?    ||DACcJ$"
 LLT"r5   N)r   r   r   r  r  r   r  r   r   filterwarningsr   rp  r(   rd   errstater   r  r  r  .0rp  s   00r3   r  r  	  s   :Nx% V^^*%+ &+ [[ !1 2[[[1a&1[[YA/[[[1a&1# 2 0 22
#. [[[2q'2[[YA/[[[1a&1[[<)0$q)I -A!&!   -. R[["B #. 2 0 3B R[[": #: #I-s   $F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rN  r{   r{          rv   )	rd   r   r9   	genpareto_get_supportr   r	   isposinfr   )rm   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 )Nr{   r  r   r  r4  rN  rZ   )
r9   r  rd   rS  r   rc   r_  rk   r   r   rm   rvrY   ry  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  r4  r{   rN  rZ   r    )r9   r  rd   rS  r   rc   uniformrk   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 )NrW   r  r{   rN  r  )
r9   r  r   rc   rd   r  rk   r	   isneginfr   rm   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   rZ   r4  r   r   r  g+r  r   )r  r  )rd   rS  r9   r  rc   r   rk   )rm   rY   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  rx   rW   baser    r4  FendpointrN  )r{   r  r  r   )rd   rH  r  rS  r9   r  r   r   )rm   ry  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  )rd   rH  r  rS  r9   r  r  r   )rm   ry  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  rx   rW   r  r    r4  Fr  rN  )r&  gC]r2r~   gV瞯Ҽr~   r   )	rd   rH  r  rS  r   r9   r  rk   r   )rm   ry  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  rx   r   r    gpEȜ)r9   r  r  r   rb  s     r3   r  zTestGenpareto.test_logsf
  s'    $$T31512r5   zc, expected_statsr   )r    r    ra   r*  rf  r  gqq@rZ   ra   gqq?g      ?g$I$	?rq?r  gll0@r   )rv   UUUUUU?r   333333c                 d    t         j                  j                  |d      }t        ||dd       y )Nr  r  r   r~   r`  )r9   r  r   )rm   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  r8  r   )rm   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   rd   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/  r0  rr   s    r3   r1  zTestPearson3.setup_method
  r2  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 )NrW   r6  r5  AllFloatrv   r   )r9   r,   r   rd   r<  r   r=  r   r>  r   r^  r  rA  s      r3   rD  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 )Nra   r{   rW   rK  )gtT?g+q?g?rp  r   r  rW   ND}i?r  r   r   r   r    )r  gj?gdC?gs?g'M?)r9   r,   rc   r   rd   r   r  s     r3   rL  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 )Nra   r  )grE?gTp]0?g~?rp  r   r  rW   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r9   r,   rk   r   rd   r   r  s     r3   rV  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   rv   rv   r  r   )r9   r,   rk   r   rc   r   )rm   skewsx_evalneg_infr  r9  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    ra   r   rp  )r9   r,   r  r   r>  rd   number)rm   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	  rv   r   r  r   ra   )r9   r,   r   rk   r   rd   r   rS  rc   r   r  )rm   r
  r  r   r9  rY   s         r3   test_ppf_bug_17050zTestPearson3.test_ppf_bug_17050.  s    !nn  !3!3FE!BEJV$ xx$#(KKA**1d3**A2u5	7**1d3))1"te4	6**1d3++Au55	7r5   c                    g d}g d}g d}t        t        j                  j                  ||      |d       t        t        j                  j                  |d      t        j                  j                  |      d       y )N)rW   rv   rN  皙)rO  r  r  r  )g7>g~׼=gp'+7g;r  r   r   )r   r9   r,   r   r  )rm   r9  rY   r  s       r3   r  zTestPearson3.test_sfA  s\     %">))!T2CeD))!Q/q1ANr5   N)r   r   r   r1  rD  rL  rV  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)r{   rW   rK  rv   rN  )
gffffffr  r   皙ɿr  rW   rK  rv   rN  ffffff?)r9   kappa4rk   r  r   rm   rY   rj  rV   rB  	vals_comps         r3   test_cdf_genparetozTestKappa4.test_cdf_genparetoN  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   rZ   r{   r  r   )rd   rS  r9   r  rk   
genextremer   r  s         r3   test_cdf_genextremezTestKappa4.test_cdf_genextremeY  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   rZ   rN  r{   )rd   rS  r9   r  rk   r_  r   r  s         r3   test_cdf_exponzTestKappa4.test_cdf_exponb  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   rZ   r{   )rd   rS  r9   r  rk   r  r   r  s         r3   test_cdf_gumbel_rzTestKappa4.test_cdf_gumbel_rk  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   rZ   r  r{   )rd   rS  r9   r  rk   rY  r   r  s         r3   test_cdf_logisticzTestKappa4.test_cdf_logistict  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   rZ   rN  )rd   rS  r9   r  rk   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 rg  )r9   r  rr   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  M  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/  r0  rr   s    r3   r1  zTestPoisson.setup_method  r2  r5   c                     t        j                  d      }t        j                  j	                  g d|      }d|dz  |dz  dz  g}t        ||       y )Nra   r   r    ra   rv   r   )rd   r  r9   r~  rJ  r   )rm   ln2rB  rR   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 )Nr0  r   )r    r   r   ffffff?r   r   )r9   r~  rJ  r   intervalr   )rm   rB  rR   r6  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 )Nrv   r6  r5  r   r8  r   )r9   r~  r   rd   r   r<  r   r=  r   r>  r]  r^  rA  s      r3   rD  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  rN  )r{   rN  rz   r    ra   rv   )r9   r~  r   rd   r  r   r  )rm   rX  r  rR   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   r1  r2  r7  rD  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/  r0  rr   s    r3   r1  zTestKSTwo.setup_method  r2  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    ra   r   rZ   r[   r   r   rv   r    rN  ra   r{   )rd   r   r8   r   gammalnr   r9   ksoner   r  kstwork   r   )rm   ro  rY   v1lgelgrR   r  s           r3   rV  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>  rv   rN  ra   )rd   rS  r   r8   r   r?  r   r9   r@  r   r  rA  r   )rm   rY   ro  rB  rC  rD  rR   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   ra   r  r    )r7  r[   rK  i  r   r   r&  )rd   rS  r  r9   rA  rk   r   r   )rm   rY   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>  )rd   rS  r9   rA  rk   r   r   )rm   rY   ro  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 rN  )rd   rS  r  r9   rA  rk   r   r   )rm   rY   ro  rI  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>  rv   r  r  r   )rd   rS  r9   rA  rk   r   r   rm   rY   ro  rI  r  condrB  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>  rv   rN  r  r   )rd   rS  r9   rA  r  r   r   )rm   rY   ro  rI  vals_isfrS  rB  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>  rv   rN  )rd   rS  r  r9   rA  rk   r   r   rR  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>  rv   r4  )rd   rS  r  r9   rA  r   r  r   )rm   rY   ro  rI  r  rS  rB  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 rN  )rd   rS  r9   rA  r   rk   r   )rm   rJ  ro  rI  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)rZ   r7  r[   rK  r  r   )rf  gUUUUUU?rv   r    ra   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?ra   r4  r   )
rd   r   	enumerater  r  re   r9   rA  rk   r   )rm   rG  ratiosrR   idxro  rY   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   r1  rV  r  rL  r  rP  rT  rW  rY  r[  r  ra  r;   r5   r3   r;  r;    s?    0(/+====22-@r5   r;  c                       e Zd Zd Zd Zd Zy)TestZipfc                 B    t         j                  j                  d       y r/  r0  rr   s    r3   r1  zTestZipf.setup_methodI  r2  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  r6  r5  r    r8  r   )r9   zipfr   rd   r   r<  r   r=  r   r>  r]  r^  rA  s      r3   rD  zTestZipf.test_rvsL  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   r6  skr1   r  )r9   rf  r	   rd   r>  r   r  r   r  s        r3   r$  zTestZipf.test_momentsW  sy    zz#&1AQzz#t41BKKA'++--.r5   N)r   r   r   r1  rD  r$  r;   r5   r3   rc  rc  H  s    	9/r5   rc  c                   $    e Zd Zd Zd Zd Zd Zy)TestDLaplacec                 B    t         j                  j                  d       y r/  r0  rr   s    r3   r1  zTestDLaplace.setup_methodb  r2  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  r6  r5  r8  r   r   )r9   dlaplacer   rd   r<  r   r=  r   r>  r]  r^  rA  s      r3   rD  zTestDLaplace.test_rvse  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 )NrN  r  r|  r    ra   r   r5  r  r  r&  rh  )r9   rp  rd   r  rJ  rg  r   r   )rm   r1   dlr  r  rH   rV   r,  r  ppm2m4s               r3   r  zTestDLaplace.test_statsp  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 )Nrz   r  )r{   r{   )r        
@)rd   r  r9   rp  r   r   )rm   r1   rr  r  r  rH   rV   s          r3   test_stats2zTestDLaplace.test_stats2}  sO    FF2J^^AXXf%
1aaVX&A
+r5   N)r   r   r   r1  rD  r  rx  r;   r5   r3   rm  rm  a  s    	3L,r5   rm  c                       e Zd Zd Zej
                  j                  dddg      d        Zej
                  j                  dddg       fd       Zd Z	d	 Z
d
 Zej
                  j                  dg d      d        Z xZS )TestInvgaussc                 B    t         j                  j                  d       y r/  r0  rr   s    r3   r1  zTestInvgauss.setup_method  r2  r5   zrvs_mu,rvs_loc,rvs_scale)ra   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 )Nr[   )r   rX  r_   r`   r   r   r~   rh  r    r;  r  )fmur   )fix_mur   )
r9   r  r   r   rd   r   r  rg  r   r   )rm   rvs_mur   r5  r   rX  r_   r`   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r3   rp  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   r[   )r   rX  r_   r`   r   r   ra   )r   r}  r   r    r;  )rd   r   r  r9   r  r   r   r   r   r   r   r   rand)
rm   r  r   r5  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   rr   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    皙?rX  r  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r9   r  rk   r   r   r   )rm   rX  rR   rM   
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  )rm   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%!)rx   g40)r   gK'
@)r  g`p
@c                 Z    t        t        j                  j                  |      |d       y rK  )r   r9   r  rA   )rm   rX  r  s      r3   rk  zTestInvgauss.test_entropy  s     	..r2CeDr5   )r   r   r   r1  r   r   r   rp  r   r  r  r  rk  __classcell__r  s   @r3   rz  rz    s     [[7')>?A>A>: [[7')>?A CA CD2!3F2. [[Y )D E
EE
Er5   rz  c                   Z    e Zd Zej                  j                  dg d      d        Zd Zy)
TestLandauname)rc   rk   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   rW   r   r   r   rZ   r    r  r   )rd   rS  r(  r9   landaulevy_stabler   )rm   r  rY   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  rd   r  r  rr   s    r3   r$  zTestLandau.test_moments&  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    ra   r5  )r    ra   r   rZ   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   r[   r  r~   rh  r   rr  ra   r;  )rd   r   r  r9   r  r   r?  rg  r   r  r   r   r   rX  r  r  r  r  )	rm   r   r5  r   r   loc_mler  r_   r`   s	            r3   rp  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  rZ   rZ   r   )rv   rK  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   ra   r    )r  rd   r  rg  r   )r_   r`   r   s      r3   llz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.lle  sO    CI%8E'266"&&*<#==> ? ?r5   r~   rh  )
rd   r   r  r9   r  r   r   r   r   r   )rm   r   r5  r   r   r  r_   r`   loc_opt	scale_optll_mlell_optr  s               r3   r   z'TestLaplace.test_fit_MLE_comp_optimizer\  s     ii##D)}}  dy.1 ! 3	? ]]&&t,
U"4#6#(==66:) 	C%GY-"++ff38u#F 	F F #Fr5   c                     t        j                  g d      }t        j                  j	                  |d      \  }}t        |ddd       t        j                  j	                  |d      \  }}t        |ddd       y )N)rN  rN  r  rO  r  r  r*  r   r   r~   rh  rr  )rd   r   r9   r  r   r   )rm   r   r_   r`   s       r3   test_fit_simple_non_random_dataz+TestLaplace.test_fit_simple_non_random_datas  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   r{   rN  )r9   r  rk   r   )rm   rY   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 )NrK  ra   r   r   )r9   r  r   r   rd   r   )rm   rY   rp  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}:ra   r   r   )r9   r  r  r   rd   r  )rm   rp  rY   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 )Nrw  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   rp  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)rz   r  rO  )r4  r    4&kC)g ?gKH9gXrL0r~   r   )rd   r   r   r9   
loglaplacer   )rm   r  rY   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 )Nrw  )r   rW   r  r  r0  )gHhlh#?gH]9@?g"fj#@g11Ags!8wBr  r   )r   r9   r  r  )rm   r  ry  r  s       r3   r  zTestLogLaplace.test_isf  s4     +6((,,Q2CeDr5   r  r    ra   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    rv   r  )	rd   r  r   r9   r  r  r  r   r>  )rm   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  )rv   rN  rz   z
loc, scale)r  g@fix_cTFr7  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   r[   r:  r   fcr   r   r   r  r  )rd   r   r   r9   r  r   r  r   r   r  r  r   r   )rm   r  r_   r`   r  r7  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)rf  rz   g      ?)g     ?g      p?gSQ>c                 \    t        t        j                  j                  ||      |d       y r}   )r   r9   powerlawr   )rm   rY   r1   r   s       r3   r  zTestPowerlaw.test_sf  s!     	))!Q/%@r5   r  r  c                 @    t         j                  j                  d      S r/  r  rr   s    r3   r   zTestPowerlaw.rng  r  r5   r   )rW   rv   r   r    ra   r   r  r5  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  rd   	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`- @r{   grߟA@r[   r   )r1   r_   r`   r   r   r   ra   )r9   r  r   rd   r   r   ptpr   )rm   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    ra   r   r   r   r;  ra   r   r    z$Negative or zero `fscale` is outsider  rr  z0`fscale` must be greater than the range of data.)r  r9   r  rX  r#   r   r  rY  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    ra   ra   r   r   r   r   r   r   r   r*  r  over)r9   r  rd   r  r   )rm   r   rN   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))r[   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   rm   rY   r  rH   r  s        r3   r  zTestPowerLogNorm.test_sfG  s%     	**--aA6%Hr5   zq, c, s, ref)g?r  r    rx   )gR4-r  r    r   c                 ^    t        t        j                  j                  |||      |d       y )Ng|=r   )r   r9   r$  r  )rm   ry  r  rH   r  s        r3   r  zTestPowerLogNorm.test_isfQ  s%     	**..q!Q75Ir5   ))r  r  r    g?)rp  r  r    gv6)rp  rK  r    g+	94|7)rx  rK  r    g?c                 ^    t        t        j                  j                  |||      |d       y )Ngt =r   )r   r9   r$  rk   r  s        r3   rV  zTestPowerLogNorm.test_cdfW  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$  rc   r  s        r3   rL  zTestPowerLogNorm.test_pdfj  s%    
 	**..q!Q75Ir5   N)
r   r   r   r   r   r   r  r  rV  rL  r;   r5   r3   r  r  6  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  ra   ge()r[   r  g%!@6)rK  rx   gT;-c                 \    t        t        j                  j                  ||      |d       y r   )r   r9   	powernormr   r)  s       r3   r  zTestPowerNorm.test_sfz  s!     	**1a0#EBr5   r  ))r4  r  gĿ)gwJ?r[   g!X)r  r  g缂U)r@  r  gͫ1@)r1  ra   gD@)Jz5r   gU!zYr@c                 \    t        t        j                  j                  ||      |d       y Nr{  r   )r   r9   r  r  r  s       r3   r  zTestPowerNorm.test_isf  s!     	++Aq13UCr5   ))ir  g.u	T9)ra   r  ?)r  r  gsK-)r  r  gk8>)r  r  g^u1-c                 \    t        t        j                  j                  ||      |d       y rK  )r   r9   r  rk   r)  s       r3   rV  zTestPowerNorm.test_cdf  s!     	++Aq13UCr5   N)	r   r   r   r   r   r   r  r  rV  r;   r5   r3   r  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)Nrm  g(\O3@r  rk  )g~?gCX&?g*7gS?gBqFq @)r  @gffffff@)r  gEy?gў3oz?g^Yb?g,r?gOD@g2*Z@gFN8@)rq  rr  rs  rt  r9   r  r   rd   r  r  r  r   )rm   r  rR   r1   rY   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    )rd   r  r9   r  rk   r   r   rZ  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        ra   r[      r    rN  r   )	sysmaxsizerd   r  r9   r  r   r  r   rZ  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   rm   rY   r1   r  r  s        r3   r  zTestInvGamma.test_logcdf  s3    #&&q!,%0r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nrx   r2  grطr  r   )r9   r  r  r   rm   rY   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   rm   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)ra   r    rN  )r9   frc   r1   r   )	rm   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	   rd   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)Nrm  r  r   )ra   r   r*  r  r  dfndfdr  )rq  rr  rs  rt  r9   r   rr   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  rP  r  r  ra   r   r  r*  r      )rd   r   r9   r   r   r  )rm   r  r  r  r  rH   rV   rt  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  ru  rr   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  )\(?r{   ra   gGz @g     i@r   rj  gGz@r   g
ףp=
@)r{   gq    @)r   r9   r  rd   r  r  rr   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    ra   r  r[   )g?@gTM]?ggY?U?r   r   r   r9   r  rA   )rm   r  rR   s      r3   test_t_entropyzTestStudentT.test_t_entropy+  s'    ;+XEBr5   zv, ref)r[   r  )r  r  c                 Z    t        t        j                  j                  |      |d       y r  r   )rm   r  r  s      r3   test_t_extreme_entropyz#TestStudentT.test_t_extreme_entropy2  s     	*Ce<r5   methname)rc   r   rk   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   rZ   r5  r   r    r  r_   r`   r^   )rd   r   r   r   boolr  r<  randnr  r9   r  r  r(  r   )rm   r$  r%  r  rY   t_dist
t_dist_ref	norm_distt_meth
t_meth_ref	norm_methr   s               r3   test_t_inf_dfzTestStudentT.test_t_inf_dfC  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'  rZ   r5  r   r    r  )r  r_   r`   r  r_   r`   r  r   r(  r^   )rd   r   r   r   r)  r  r<  r  r9   r  r  r  r   rA   )rm   r%  r  r   
res_ex_infres_ex_noinfr  s          r3   test_t_inf_df_stats_entropyz(TestStudentT.test_t_inf_df_stats_entropyY  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  rZ   r    )r  d~QJr  r    )gZ_2g9g!ǟuIgdg)g73?r   gմFhAW;gm0_?r  r   )r   r9   r  r   rc   )rm   rY   r  
logpdf_refpdf_refs        r3   test_logpdf_pdfzTestStudentT.test_logpdf_pdfp  sS     #@
>q"-zFAr*G%@r5   
x, df, ref))g     Rr9  guSaG)r   r9  r  )     R@r9  gGn`?c                     t         j                  j                  ||      }t        ||d       t         j                  j	                  | |      }t        ||d       y r  )r9   r  r  r   r  )rm   rY   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#  r1  r6  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/  r0  rr   s    r3   r1  zTestRvDiscrete.setup_method  r2  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    ra   r   r   )r{   rx  r  r{   rx  r{   r   sample)r  valuesr5  r@  )r9   r>   r   r>  rd   r^  r  r   rg  r   r   r   integer)rm   statesprobabilitysamplesr  rY   rH   rp  s           r3   rD  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)rf  r7  rx  r0  rD  )rN  r   r   r{   )	rd   r   r9   r>   rg  r   rA   r   r   )rm   r  rp  ri  rj  s        r3   rk  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  rv   rx  rK  rJ  rN  r  r  ra   rv   rK  r{   rx  r  r   )r9   r>   r   rJ  )rm   xkpkr  rY   s        r3   rd  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  rL  rJ  )r   rN  r  r  rz   r  r   r   )r   rv   rv   rv   r   r   r    r    r  r   )r9   r>   r   rk   )rm   rM  rN  r  x_valuesrR   r  s          r3   rV  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  rL  rJ  )rW   rv   r}  r   r   rN  )r    r    ra   ra   r   r   r  r   )r9   r>   r   r   )rm   rM  rN  r  q_valuesrR   ry  s          r3   r  zTestRvDiscrete.test_ppf  sf    r2h/0%x((? 	H5q5 u	.5rQ  c           	          g dg df}t        j                  |      }t        |j                  |j	                  |j
                  d d       dz         |j
                  dd         y )N)r    ra   r   r  r  )rW   rK  rx  rx  rW   rJ  r   r&  r    )r9   r>   r   r   rk   rM  )rm   rB  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 )NrP  )r   r   )rW   rW   rV  r@  )rW   rW   r@  r@  rJ  r  r   )rd   r  r6  r   r9   r>   r   r   rg  rM  rN  rm   rM  rN  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  rv   rJ  )rv   333333?gffffff濩r    ra   r   r   r   )rx  rx  rx  rx  r  r    )rX  r  r9   r>   r  rm   rM  rN  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   ra   ra   ra   r   gUUUUUU?rJ  r*  r   ra   r   )rd   r  r6  r  rX  r  r9   r>   r  r   rJ  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    ra   r   r*  r  r  )rW   rK  rK  rK  rK  rW   rJ  r  r   )r9   r>   r   r   rd   rg  rM  rN  rW  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:?r{   gF%uk?g:vz?r{   r{   g.nr?g|гY?r{   r{   r{   g @6*? 4U0*C?g@+?gC6z?g nr?g ?gOjM?g n?g1w-!?g:pΈ?gףp=
?g _Le?r{   g^)p?g~jtx?gJ4q?gGzt?g J4q?g Mb@?g@Psׂ?g@^)ˀ?r{   r{   g N@s?g 1w-!_?rg  gൄ|г?r{   gH}}?r{   g
F%u?r{   r{   g ^)ˀ?g v?r{   rJ  r  r   c              3   ,   K   | ]  \  }}||z    y wrp   r;   r  r  ws      r3   	<genexpr>z.TestRvDiscrete.test_expect2.<locals>.<genexpr>'  s     9daAE9s   c                     | dz  S Nra   r;   r   s    r3   rI   z-TestRvDiscrete.test_expect2.<locals>.<lambda>*  
    AqD r5   c              3   2   K   | ]  \  }}|d z  |z    yw)ra   Nr;   ri  s      r3   rk  z.TestRvDiscrete.test_expect2.<locals>.<genexpr>+  s     <AAqD1H<s   )r9   r>   r   r   r   rg  r  )rm   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   r1  rD  rk  rd  rV  r  rU  rX  r]  rb  rd  rq  r;   r5   r3   r@  r@    sC    2
	1..&HN(EH#Jr5   r@  c                       e Zd Zd Zd Zy)TestSkewCauchyc                    t        j                  ddd      }t        t        j                  j                  |d      t        j                  j                  |             t        t        j                  j                  |d      t        j                  j                  |             t        t        j                  j                  |d      t        j                  j                  |             y Nr  r   r[   r   ri  )	rd   rS  r   r9   
skewcauchyrc   r  rk   r   r  s     r3   test_cauchyzTestSkewCauchy.test_cauchy/  s    KKAs#!%"2"2"6"6qA"6">"',,"2"21"5	7!%"2"2"6"6qA"6">"',,"2"21"5	7!%"2"2"6"6qA"6">"',,"2"21"5	7r5   c                    t         j                  j                  d       t         j                  j                  d      dz  dz
  }t         j                  j                  d      dz  dz
  }g d}g d}t	        t
        j                  j                  ||      |       t	        t
        j                  j                  ||      |       t	        t
        j                  j                  ||      |       y )Nr   rZ   ra   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?)
rd   r   r   r  r   r9   rv  rc   rk   r   )rm   r1   rY   rc   rk   s        r3   test_skewcauchy_Rz TestSkewCauchy.test_skewcauchy_R8  s    & 			qIINN2"Q&IINN2#a'%$ 	((,,Q2C8((,,Q2C8((,,S!4a8r5   N)r   r   r   rw  ry  r;   r5   r3   rs  rs  .  s    7 9r5   rs  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   ra   )r  r{   rN  rz   )r{   rW   rf  r   r   rN  r  )r9   	jf_skew_tr  r   rc   rk   r   )rm   r1   r2   r  rY   ry  jfr  s           r3   test_compare_tzTestJFSkewT.test_compare_t\  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)rd   loadr   __file__parentrec
fromarraysrs  s     r3   gamlss_pdf_datazTestJFSkewT.gamlss_pdf_datal  sA     wwN!!$HH
 vv  [ 99r5   za,b)r`  )r  r   )rP     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   rY   rc   r  r   N)r   r9   r}  rc   )rm   r  r1   r2   r   rY   rc   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{  [  sH    ;  ^^: : [[U$>?	G @	Gr5   r{  ra   r   g@r   gףp=
1@r9  gRZ@i   gS㥛Ԋ@rW   rX   g&@iQ i'  i0ybi l   HO1Z i3r  irZ   ir[   ikrK  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   rr   s    r3   r1  zTestSkewNorm.setup_method  s    %d+r5   c                     t        j                  ddd      }t        t        j                  j                  |d      t        j                  j                  |             y ru  )rd   rS  r   r9   skewnormrc   r  r  s     r3   test_normalzTestSkewNorm.test_normal  sB    KKAs#!%.."4"4Q!"4"<"'**.."3	5r5   c                    d}t         j                  j                  d|| j                        }t	        ||j
                         t         j                  j                  d|| j                        }t	        ||j
                         y )N)r   r   r   r   )r1   r   r   r  )r9   r  r   r   r   r<  )rm   r<  rY   s      r3   rD  zTestSkewNorm.test_rvs  sa    NNEIUAGG$NN%dhhGUAGG$r5   c                    t         j                  j                  dt        d      dd| j                        }t        j                  |      t        j                  |      t        j                  |      t        j                  |      g}t         j                  j                  dddd      }t        ||d       t         j                  j                  d	t        d      dd| j                        }t        j                  |      t        j                  |      t        j                  |      t        j                  |      g}t         j                  j                  d	ddd      }t        ||d       y )
Nr   r  r   ra   )r1   r   r_   r`   r   r  )r1   r_   r`   r  rQ  r  )r9   r  r   r]  r   rd   r   r8  r9  kurtosisr   )rm   r  rR   r;  s       r3   r$  zTestSkewNorm.test_moments  s
   NNSq,0HH  6GGAJq	5::a=%..:KL>>''!!V'L!(Ha@NN#c(,0HH  6GGAJq	5::a=%..:KL>>''"!1f'M!(Ha@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)rw  r   gEAV)rw  r   gV|@$a)rw  r   g0rY)rw  rv   Zk)r  r   r  )r   r  ļ)ra   g    cr  r&  r   )r9   r  r   r   )rm   
logpdfvalsrY   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)rZ   r  r4  r   r   r  r   r  r}  rN  )r9   r  rk   r   rd   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  ra   gn'/2;)r   r   g::)r  r   g|<)rg  r  r-  r&  r   )r9   r  rk   r   r   )rm   cdfvalsrY   r1   cdfvalrp  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   )rm   r1   r  orderrR   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   r2  rv   r[   r   rR  r   r   gmmr   r  msr  r    r  ra   mle)rd   r   r   r9   r  r   r   r   r9  r   r  r   r>  isinfr8  r  re   )%rm   r   r1   r_   r`   rN   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   rp  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   r4  rP  r    r   T)superfitrv   l   y
ND )r  r   )rg  rZ   )r}  rZ   r1   r_   r`   c                      t        | |      S )N)r   )r'   )funr   r   s     r3   	optimizerz0TestSkewNorm.test_fit_gh19332.<locals>.optimizerH  s    )#v3??r5   )r  r  r   )rd   r   r9   r  r   r   r   r   testingr   params)
rm   rY   r  r   params_superr  r   r  
fit_resultr   s
            @r3   test_fit_gh19332zTestSkewNorm.test_fit_gh193323  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 )Nrx   r  gi}#%?r   r   )r   r9   r  r   rr   s    r3   r  zTestSkewNorm.test_ppfN  s"     	**457HuUr5   N)r   r   r   r1  r  rD  r$  r  r  r  r   r   r   _skewnorm_noncentral_momentsr  rp  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_  rc   rr   s    r3   	test_zerozTestExpon.test_zeroV  s    U[[__Q'+r5   c                     t        t        j                  j                  d      d       t        t        j                  j	                  t        j                  j                  d            d       y )Nr1  rw  )r   r9   r_  rk   r  r   rr   s    r3   	test_tailzTestExpon.test_tailY  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@)rd   r   r  rX  r  r9   r_  r   r  s     r3   test_nan_raises_errorzTestExpon.test_nan_raises_error]  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  )rd   r   r  rX  r  r9   r_  r   r  s     r3   test_inf_raises_errorzTestExpon.test_inf_raises_errorb  r  r5   N)r   r   r   r  r  r  r  r;   r5   r3   r  r  U  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  )rd   r   r  rX  r  r9   r  r   r  s     r3   r  zTestNorm.test_nan_raises_errori  5    HHfffffbffEFj%**..!4r5   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y r  )rd   r   r  rX  r  r9   r  r   r  s     r3   r  zTestNorm.test_inf_raises_errorn  r  r5   c                 b    g d}t        t        t        j                  j                  |d       y )Nr  shrimp)plate)rX  r  r9   r  r   r  s     r3   test_bad_keyword_argzTestNorm.test_bad_keyword_args  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  rP  r_   r   r   )r9   r  
_delta_cdfr   )rm   r_   rR   rl  s       r3   test_delta_cdfzTestNorm.test_delta_cdfw  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  h  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  )rd   r   r  rX  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  )rd   r   r  rX  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 )NrN  r    ra   r   rR        @r   r;   )lamsigrX  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    rN  r  r3  )r  ra   rW   )r   r   r    )r  r  r2  )r9   	exponnormr   )rm   r  rX  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;  )rd   r   r  rX  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  )rd   r   r  rX  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    r{     rx   )r   r9   r  rc   rr   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  rx   g6
N-)r    rx   g՜n+H?)r   rx   gi?)r  rx   gbJI-)rZ   r    gI8?)rZ   r  gQ3|-0?c                 \    t        t        j                  j                  ||      |d       y r  )r   r9   r  rc   )rm   rY   r  rR   s       r3   test_std_pdfzTestExponNorm.test_std_pdf  s!     	++Aq18%Hr5   zx, K, scale, expected)r   rx   r    gVAҤ?)r  {Gzt?r    g'^>)rx  rx   r[   r{   )rx  rx   r   gbr ;)r   r  r    gVMe?c                 ~    t         j                  j                  |||      }|dk(  r|dk(  sJ y t        ||d       y )Nr  r{   r   r   )r9   r  rk   r   rm   rY   r  r`   rR   rp  s         r3   test_cdf_small_KzTestExponNorm.test_cdf_small_K  s=     OO1E2s?8O8Axe4r5   )rZ   rx   r    ghG}$;)ra   r  r    g]fJ?)r   r  rv   g31"g#;)rZ   r  rv   gf
+-)r  r  rv   r{   )r  r  r    ga9S?c                 ~    t         j                  j                  |||      }|dk(  r|dk(  sJ y t        ||d       y )Nr  r{   -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   )simpsonrZ   rx   rv   rz   )dxr    )scipy.integrater  r9   genexponrc   rd   r  r   )rm   r  rp  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   rZ   rx   rv   rz   r    )r9   r  rk   rd   r  r   )rm   rk   s     r3   test_cdf_boundszTestGenExpon.test_cdf_bounds  sH    nn  1b$!7c3GvvqCxC1H-...r5   zx, p, a, b, c))r9  gM <r    ra   r  )rf  g%DYY?rv   ra   r   )rf  gS4z?      #@ra   rv   )rx   ga^5?r}  rf  rv   )rw  gs%)?r}  rf  rv   )rs  gdm?rf  r   rv   c                     t         j                  j                  ||||      }t        ||d       t         j                  j	                  ||||      }t        ||d       y r  )r9   r  r   r   r  )rm   rY   rp  r1   r2   r  r   r  s           r3   r  zTestGenExpon.test_sf_isf  sP     ^^q!Q*AE*nn  Aq!,QU+r5   ))rf  g;\i?rv   ra   r   )rf  gu0?r!  ra   rv   )rx   g-%I?r}  rf  rv   )rw  g]d?r}  rf  rv   )rs  g泩'?rf  r   rv   c                     t         j                  j                  ||||      }t        ||d       t         j                  j	                  ||||      }t        ||d       y r  )r9   r  rk   r   r   )rm   rY   rp  r1   r2   r  rk   r   s           r3   r  zTestGenExpon.test_cdf_ppf-  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  r[   g_93@gBX@g,M<gǃ@֫5gLa㧝=r   r  )r   r9   
truncexponr   r  )rm   r2   rY   r  s       r3   r  zTestTruncexpon.test_sf_isf<  s`     I	"%'=>((++Aq13WE((,,S!4aeDr5   N)r   r   r   r  r;   r5   r3   r%  r%  :  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  rz   r  r   r   )r   r9   exponpowrk   r  r   rr   s    r3   r  zTestExponpow.test_tailG  sL    ENN..ub95AENN..u~~/@/@B/GL	r5   N)r   r   r   r  r;   r5   r3   r)  r)  F  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 )Nrg  r9  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~?rQ  )rd   r  r   r   r9   skellamrJ  )rm   rV   mu1mu2skpmfRs        r3   rd  zTestSkellam.test_pmfN  sO    IIc2S-. 	EMM--ac:FBOr5   c                     t        j                  dd      }d\  }}t        j                  g d      }t        t        j
                  j                  |||      |d       y )Nrg  r9  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   rQ  )rd   r  r   r   r9   r/  rk   )rm   rV   r0  r1  skcdfRs        r3   rV  zTestSkellam.test_cdfc  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   r/  rJ  rk   )rm   rY   r0  r1  s       r3   test_extreme_mu2zTestSkellam.test_extreme_mu2x  sK    .3))!S#6F))!S#6Fr5   N)r   r   r   rd  rV  r6  r;   r5   r3   r-  r-  M  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)Nrm  r   rv   r    r    )r{   g~r?g e3E?)rq  rr  rs  rt  r9   r"  rc   r   rm   rc   s     r3   rL  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?rG   )r   r9   r"  r   r  rd   r  r  )rm   rj  rX  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  rr   s    r3   r   zTestLognorm.rng  r  r5   r   rW   ra   r   )r   r   ra   r5  )rK  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 )Nr[   )r   rH   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+?)rW   绽|=gҶOɃ;gk3;9"7)g?y+@g~K8ax@gƶ@g9]Ar  r   )r   r9   r"  r  )rm   rH   ry  r  s       r3   r  zTestLognorm.test_isf  s2    
 &#))!Q/5Ar5   N)r   r   r   rL  r  r   r  r   r   r   r(   rd   r  r   r  )r  es   00r3   r8  r8    s    J? V^^*%+ &+ [[[2q'2[[Y
3[[[*5[[<)0q)I -A!&!   -. R[["< #. 6 4 3<$	B+-s   Cr8  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    rv   g;B.)r9   r  r   r   rd   r  rm   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  rK  rv   r}  gƒ)	rd   r   r9   r  r   r   rg  rc   r   rm   r  r  rY   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rW   rv   r}  r   r    r  )r   r   r  )rX  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 )NrN  rv   )fafix_a)rX  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   )rm   rp  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?)rZ   r[   r   r  r    r   )rd   r   r9   r  r  r   r   )rm   inv_R
count_listrp  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   )rd   r  r9   r  r   rk   r   )	rm   alpha_2count_nobsry  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    )rK  r   r   )r    r   r   +ph  )r   r    rN  )r   r9   r  rc   rd   r  )rm   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   warnsrt  r9   r  r   )rm   ry  r1   r2   s       r3   test_boost_eval_issue_14606z$TestBeta.test_boost_eval_issue_14606  sB    '1a\\.) 	$JJNN1a#	$ 	$ 	$s   "AAr  a, b)rd        )@)rj  rd  c                 <    d}	  ||||       y # t         $ r Y y w xY w)Nr   )OverflowError)rm   r  r1   r2   rp  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)&.!>rw  r}  g'rOc                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r  r  r   rm   rY   r1   r2   r  r  s         r3   r  zTestBeta.test_logcdf3  s(     ""1a+%0r5   )rn  r  r}  gp}^U)rn  rw  r}  g
1*c                 `    t         j                  j                  |||      }t        ||d       y )Nr  )r9   r  r  r   rm   rY   r1   r2   r  r  s         r3   r  zTestBeta.test_logsf;  s(     

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

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

1a(002CcBr5   N)r   r   r   r  rL  rO  rS  r   r   skipifMACOS_INTELrW  r\  rb  r  xfailr   rh  r   r9   r  r   r  rm  r  r  rk  r  r;   r5   r3   rE  rE    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   rE  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@  rW   gPK?)r   r~  r@  g%p?)r  r@  rW   g#|/?)r  r  r  gsM
<)r  r@  r~  $5Є*?)^ 9^;r@  rW   gompP?)r  r  r  g7j"!9)r  r@  r~  z^J?)r  r@  rW   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 )NrI  rJ  )rd   r   r9   r  r	   r>  r   r   r   rc   r   rK  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   rK  rx  r{   rI  rJ  -=rh  )r9   r  rk   r   rd   r   r	   r>  r   r?   _cdf_singler   )rm   rY   r  r  r  gen_cdfrC  cdfs_gs           r3   rV  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))rx   r  r}  gV)?)r  r  r}  gWJB9*=)r1  r  r}  gOG J<)r  rf        @gΣ01)      ?rf  r  g8ǘ`?)>q?r@  rW   gMDc                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r  r   r   )rm   rp  r1   r2   rR   rY   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   )rm   rY   r1   r2   rp  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 )NrN  rv   r  r   )rd   r   r   r9   r  _ppf)rm   r1   r2   rp  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@  rW   gV[?)r  r@  rW   r  c                 ^    t        t        j                  j                  |||      |d       y r  )r   r9   r  rk   )rm   rY   r1   r2   rR   s        r3   test_cdf_gh_17631zTestBetaPrime.test_cdf_gh_17631  s#     	++Aq!4hUKr5   )r8  r@  rW   g%?)r8  r~  r@  goXr?c                 p    t         j                  j                  |||      }|dk  sJ t        ||d       y )NrN  gh㈵>r   )r9   r  rk   r   )rm   rY   r1   r2   rR   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   ra   r@  r@  r@  r@  r~  r~  r@  r@  r@  r  r  )r   ra   r    rW   rW   rW   rW   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   )rm   r1   r2   rY   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 )Nru   rv   rO  gg%`ʼr  r   )r9   r  r  r   rp  s         r3   r  zTestBetaPrime.test_logcdf   s:    $''1a0%0r5   c                 r    d}d}d}d}t         j                  j                  |||      }t        ||d       y )Nr&  r0  rv   g9;ЋVr  r   )r9   r  r  r   rr  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)rW   rf  rx  rZ  皙?r   r    r;  r  r  )r9   r  r   rr   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?ra   r  gffffff@r   )rd   r  r9   r  r  r   )rm   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  rV  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  rK  r  g
CTb?r   rZ   gBΖ?)r9   r  rc   r   r;  s     r3   rL  zTestGamma.test_pdf%  sF    kkoob#To2C-kkooa4o0C+r5   c                 \    t         j                  j                  dd      }t        |d       y r  )r9   r  r   r   rG  s     r3   r  zTestGamma.test_logpdf-  s$     ##Aq)FA&r5   c                 d    g d}t        t        t        j                  j                  |dd       y )NrN  r   r  )r   r  )rX  r  r9   r  r   r  s     r3   rO  z#TestGamma.test_fit_bad_keyword_args3  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  r[   g1}t@r   )rd   iscloser9   r  r  rr   s    r3   r  zTestGamma.test_isf7  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_logcdfM  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_logsfT  s3    %!!!Q's/r5   r`   rN  rO  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   rm   r`   rl  s      r3   r  zTestGamma.test_delta_cdf[  s6     &&uSy%)Qe&L6UCr5   za, ref, rtol))r  gt.r~   )ra   r  r~   )r[   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   )rm   r1   r  r   s       r3   rk  zTestGamma.test_entropyi  s     	++A.$?r5   r1   )rx   r    r~  r_   )rx   r   r~  rR  TFr   r7  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   r[   r:  rQ  r   r   r   r   r  r  r  r  r    ra   )rd   r   r   r9   r  r   r  r   r   r  r   r   r   r  )rm   r1   r_   r`   rR  r   r7  r   r   r   r  r>  thetarN   s                 r3   test_fit_mmzTestGamma.test_fit_mmz  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   rL  r  rO  r  r  r  r   r   r   r  rk  r  r;   r5   r3   r  r  $  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?ra   r    r   r^   rN  gV{q@)r9   r  r   rc   )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($ rZ   r  )r  r   ra   r  r   )rd   r   r   normalr  r9   dgammarc   r  r   r   )rm   r   r   rY   r1   r   r  rN   s           r3   rL  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<)rs  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  rk   r   r   r   r  )rm   rY   r1   rR   rk   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   rk  zTestDgamma.test_entropy  s      	,,Q/5Ar5   ))r  r  )r  g>_)r4  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  r4  )rd   r   r9   r  rA   r  r  )rm   rY   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   rL  r   r   r   r  rk  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%  rQ  r[   g6:֜?r   r9   chi2rc   rr   s    r3   r  zTestChi2.test_precision   s@    EJJNN468N$&	(EJJNN346J$&	(r5   r<  ))g     p@r   g~#e)g      ^@r9  gtA)r  r  gzĀ׿c                 `    t         j                  j                  ||      }t        ||d       y r  )r9   r  r  r   )rm   rY   r  r  r  s        r3   r  zTestChi2.test_logcdf  s&     ""1b)%0r5   ))r  r9  r  )r  rw  gc)r  rZ   g]3c                 `    t         j                  j                  ||      }t        ||d       y r  )r9   r  r  r   )rm   rY   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 )Nr6  gλm:=6g'bd5 <r  r   rv   gQ8@r  gܐ؆0guu[9=rW   g8-*@)r9   r  r   r   )rm   r  rY   s      r3   r  zTestChi2.test_ppf  s    JJNN5"%<5IJJNN3#7eDJJNN5"%:GJJNN3#8uEr5   r  ))r  gܫ>)r    gƯʉ?)r[   gn>@)   g͔v0@)r  g9:3@c                 b    t        t        j                  |      j                         |d       y r   )r   r9   r  rA   r  s      r3   rk  zTestChi2.test_entropy4  s!     	

2..0#EBr5   c                 Z    t        t        j                  j                  dd      dd       y )Nr{   ra   rv   r%  r  rr   s    r3   test_regression_ticket_1326z$TestChi2.test_regression_ticket_1326=  s    EJJNN32C<r5   N)r   r   r   r  r   r   r   r  r  r  rk  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  )rd   rS  r9   r  rk   r   r   rZ  s       r3   r  zTestGumbelL.test_cdf_ppfD  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  )
rd   rS  r9   r  r  r  r   r   expm1r   )rm   rY   r)  r  ur  s         r3   r  zTestGumbelL.test_logcdf_logsfJ  sb    KKb!NN!!!$NN  #FF1I]]11r5   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y )Nr  r   )rd   rS  r9   r  r   r  r   rZ  s       r3   r  zTestGumbelL.test_sf_isfR  sD    KKQNNa ^^"2r5   r_   r   r    c                     t         j                  j                  d|      }t         j                  j                  ||      \  }}t	        ||       y )Nr[   )r   r_   r   )r9   r  r   r   r   )rm   r_   r   
fitted_locr   s        r3   test_fit_fixed_paramz TestGumbelL.test_fit_fixed_paramX  sD     ~~!!s!4**4c*:
AZ%r5   N)
r   r   r   r  r  r  r   r   r   r  r;   r5   r3   r  r  B  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 )Nr7  ?~T}%m;r  r   )r   r9   r  r   rr   s    r3   r  zTestGumbelR.test_sfc  s#     	))"-/E"	$r5   c                 Z    t        t        j                  j                  d      dd       y )Nr  r  r  r   )r   r9   r  r  rr   s    r3   r  zTestGumbelR.test_isfl  s#     	**513D"	$r5   N)r   r   r   r  r  r;   r5   r3   r  r  a  s    $$r5   r  c                   
   e Zd Z ej                  d      d        Zej                  d        Zej                  d        Zej                  d        Zej                  j                  ej                  j                  d ej                  d       ej                  d	ej                  j                  
      g      ej                  j                  dddg      ej                  j                  dg d      ej                  j                  dddg      d                                    Zej                  j                  ej                  j                  dddg      d               Zd Zej                  j#                  d      ej                  j                  dddg      ej                  j                  dddg      d                      Zd  Zd! Zd" Zej                  j                  ej                  j                  d# ej                  g d$g d%g d&       ej                  g d'g d(g d)ej                  j                  
       ej                  g d* ej.                  d+d,d-       ej.                  d.dd/      ej                  j                  
      g      d0               Zej                  j                  d# ej                  g d$g d%g d&       ej                  g d'g d(g d)ej                  j                  
       ej                  g d* ej.                  d+d,d-       ej.                  d.dd/      ej                  j                  
      g      d1        Zej                  j                  d2d3dg      ej                  j                  d4d5d6g      d7               Zej                  j                  d8d9d:gd;d:gg      d<        Zej                  j                  d=d>d3ej8                  ej:                  ej:                  fgd?d@gg      dA        Zej                  j                  dBg dC      ej                  j                  dDej@                  jB                  dE ej.                  dFd3dG      dHfej@                  jD                  dE ej.                  dFd3dG      dHfej@                  jB                  dI ej.                  d3dJdG      dEfej@                  jD                  dI ej.                  d3dJdG      dHfg      dK               Z#ej                  j                  dLg dM      dN        Z$ej                  j"                  ej                  j                  dLg dO      dP               Z%dQ Z&dR Z'yS)T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_epsrr   s    r3   reset_levy_stable_paramsz'TestLevyStable.reset_levy_stable_paramsw  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  rd   r  r   r  r  r  r  Trs  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  rs  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)rd   r  r   r  r  rs  s     r3   nolan_loc_scale_sample_dataz*TestLevyStable.nolan_loc_scale_sample_data  s/     wwN!!?@
 r5   sample_sizer7  r?  marksr  S0r  z
alpha,beta))rN  r   )rN  r   )r  r   )r  rv   zgamma,deltar    r   ra  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  rC  r   rk   )
rm   r  r  r  r  rl  r  lsr   rp  s
             r3   rD  zTestLevyStable.test_rvs  sb    ( .>*d%U
 ||FF$F7
1 4xxr5   r  rv   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:rN  rv   r  r  r_   r`   r   r  rU  rx   N)rd   r   r   r9   r  r   rC  )rm   r  r  r_   r`   rY   statrp  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  r{   r{   r{   r{   羼 u?r	  r	  r	  r	  67',?r
  r
  r
  r
  tA}˜.?r  r  r  r  Gz?r   rx   r`  )\(̿ra   gۧ1?r   g9]c?)r  r  r  r  r  r   gv?r
  )r9   r  rk  r   r   r   rm   rY   alpha1beta1loc1scale1rj  alpha2beta2r  r  s              r3   rp  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.rT  zalpha,beta,delta,gamma)r  r  ra   r   )rN  r  ra   r   parametrizationc                     |t         j                  _        t         j                  j                  ||||dd      }t         j                  j	                  |      }|\  }}	}
}t        ||||g||	|
|gd       y)z7Test that fit agrees with rvs for each parametrization.r  r   r:  rx   r   N)r9   r  r  r   rk  r   )rm   r  r  rl  r  r  r   r   	alpha_obsbeta_obs	delta_obs	gamma_obss               r3   test_fit_rvszTestLevyStable.test_fit_rvs  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   rZ   rZ   rZ   r4  r4  r[   r[   r    r   )rd   r   r9   r  rk  r   r   )
rm   rY   r  r  r  r  r  r  r  r  s
             r3   test_fit_beta_flipz!TestLevyStable.test_fit_beta_flip8  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  )rd   r   r9   r  rk  r   )rm   SHIFTrY   r  r  r  r  r  r  r  r  s              r3   test_fit_delta_shiftz#TestLevyStable.test_fit_delta_shiftD  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   rZ   rZ   rZ   r4  r4     r#  r    zExpected alpha < 1, got zExpected loc < z, got )r    r    r   r   rZ   rZ   rZ   r4  r4     r$  zExpected alpha > 1, got zExpected loc > )r9   r  rk  r  r  r  s              r3   test_fit_loc_extrapz"TestLevyStable.test_fit_loc_extrapO  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)rx   rv   r  )rW   r    ra   )r   r   r   )rx   r@  rv   r4  r  )rW   rv   r    r  ra   )gr   r   rx  r}  r    )rx   r@  rW   rf  ffffff?rv   ?r   r   r4  r  rW   ra   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   rv   r   r  r  rx   r  rx  r@  r4  rK  rW   rf  r   )rv   r}  r~  r&  r'  )gٿ333333ӿrx  r  rv   r/  rN  rW   rK  rx  r  )r   r   rN  r  r  )rd   isinr   r  alpha_range
beta_range	pct_ranges    r3   rI   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 )Nr.  r  r  rK  rN  rd   r1  r2  s    r3   rI   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  rN  r.  r  r7  )r  r3  r4  is_linux_32r5  s    r3   rI   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 )Nr.  r  r  rK  r7  r2  s    r3   rI   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s[    GGAeHi0GGAgJ45GGAfIz23 wZ3&( r5   fft-simpsonr4  c                     | d   dk\  t        j                  | d         z  t        j                  | d         z  t        j                  | d         z  S )Nr  r  r.  r  r7  r2  s    r3   rI   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s[    wZ3&GGAeHi01GGAgJ45 GGAfIz23 r5   rp  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr.  r  r  r    r  r7  r2  s    r3   rI   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.*rY   r  r  r    r   r`   r_   r  r  calcabserrrelerrrp  rB  z	pdf test  failed with method 'z' [platform: z]

Ferr_msgverbose)platformunamesystemmachinejoin	processorr^  r9   r  r  r   recordrt  rc   rd   r  r   r   isnanr   r  r   )rm   r  r5  r3  r4  r   rI  platform_desctestsixdefault_methodr   filter_funcsubdatasuprp  subdata2failuresmessager9  s     ```              @r3   test_pdf_nolan_samplesz%TestLevyStable.test_pdf_nolan_samples[  s   4 %  llg-I%--62I\\5==%//:< t JL^ U % U % W ' t & t &kC
L "+5!1*	 B 3AE0 + 7 ;t, =A "$ %

"H %%))CLG$FO *  [[h/ 	04FF1ws|#34FF1ws|#34rvvgcl7KK H	 $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 	Nr.  r  r  rN  )r/  r  r  rx   rW   rK  rx  r  r7  r2  s    r3   rI   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>P  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]  r7  r2  s    r3   rI   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>e  s    GGAeHi0GGAgJ45GGAfIz23 7r)&	+=>?5T)+	 7r)&	?;<5T)+ r5   r;  r4  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  S )Nr.  r  r  333333?r7  r2  s    r3   rI   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>w  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 )Nr.  r  r  r  ra  r7  r2  s    r3   rI   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 )Nr.  r  r  r  r  r7  r2  s    r3   rI   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  rc  r5   rx   c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr.  r  r  rN  r  r7  r2  s    r3   rI   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  rc  r5   Nz[Cumulative density calculations experimental for FFT method. Use piecewise method instead.*rY   r  r  r    r   r>  r  r  r?  rp  rB  z	cdf test rC  z'
rD  FrE  )r^  r9   r  r  r   rN  rt  rk   rd   r  r   r   rO  r   r  r   )rm   r  r5  r3  r4  r   rQ  rR  rS  r   rT  rU  rV  rp  rW  rX  rY  s     ```            r3   test_cdf_nolan_samplesz%TestLevyStable.test_cdf_nolan_samples3  s*   2 % U %, T $& t & t & t & t &GL
\ "+5!1(	 B 3AE0 + 7 ;t, =A "$ #

"@
 %%))CLG$FO *  [[h/ 	04FF1ws|#34FF1ws|#34rvvgcl7KK H	 $H%-((1+ 'rd*??Os&nn2232hZACL#!;# #(	$	 	# #s'   AF0AF$:AF0$F-)F00F:	r  r   r  rc   rk   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   rc   z4Test unstable on some platforms; see gh-17839, 17859r  r  S)rc   rk   rY   r  r  ra   r   r>  r4  N)rH  rI  rJ  architecturer   r   r9   r  r  r  r  rc   rk   r   )
rm   r  r  r  rI  r9  r   rU  r  rB  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    ra   ra   ra   ra   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   rf  rv   r    r   rf  rv   r    r   rf  rv   r    r   rf  rv   r    r   rf  rv   r    r  r   zDensity calculation unstable.*)categoryrY  r    r   r>  N)rd   r   r  r   rL   rt  r9   r  r  rc   r   )rm   r  decimal_placesxsdensitybetasrV  rc   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    )ra   r   rZ   r  )rZ   r0  r   r   c                 |    t         j                  j                  |d   |d   |d   |d   d      }t        ||       y )Nr   r    ra   r   r  r3  )r9   r  r   )rm   r  rR   observeds       r3   r  zTestLevyStable.test_stats  sG     $$**1IvayfQivay + 
 	Hh/r5   r  )rf  rv   r   zfunction,beta,points,expectedrN  r  rZ   r{   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   rd   r  r  )rm   r  r  r  r  rR   s         r3   !test_distribution_outside_supportz0TestLevyStable.test_distribution_outside_support  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=rw  Nr9   r  r  r   rc   rm   rY   r  r  rR   s        r3   test_x_equal_zetaz TestLevyStable.test_x_equal_zetaI  s9    Z &-"!!!5t!<	
r5   )
)r  ry  rz  gz¶?)r  r{  r|  gV?)r  r}  r~  gRE)3\?)r  r  r  gB?)r  r  r  g/^?)-C6ry  rz  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  rw  Nr  r  s        r3   test_x_near_zetazTestLevyStable.test_x_near_zeta}  s9    D &-"!!!5t!<	
r5   c                    t         j                  j                  }t        dddd      }t        j
                  }t	        j
                  di |}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        ||       y )Nr  rW   r{   rN  r  r  r_   r`   r  r  rZ   
r   r;   )
rd   r   r   r  r9   r  r  r   r   r   	rm   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,$(!"&!X\\QFQ#i.Q
::2C	N:C66(j0111$(!"&!X\\QFQ#i.Q
::2C	N:CXz*Z*r5   c                    t         j                  j                  }t        dddd      }t        j
                  }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        ||       y )Nr  rW   r{   rN  r  r  rZ   r  r   r  r;   )	rd   r   r   r  r9   r  r  r   r   r  s	            r3   %test_frozen_parameterization_gh20821bz4TestLevyStable.test_frozen_parameterization_gh20821b  s     ii##Ccs#>$$$(!"",V,!X\\QFQ#i.Q
::2C	N:CXz*$(!"",V,!X\\QFQ#i.Q
::2C	N:CXz*r5   N)(r   r   r   r   r  r  r  r  r  r   r   r   r  rD  r   r  rp  r{  r  r  r!  r%  rd   rS  rZ  rf  rk  rs  r  r  r  r9   r  rk   rc   rx  r  r  r  r  r;   r5   r3   r  r  v  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/  r0  rr   s    r3   r1  zTestArrayArgument.setup_method  r2  r5   c                     t         j                  j                  t        j                  d      t        j
                  d      d      }t        |j                  d       y )Nr   r  r  )r9   r  r   rd   r  r  r   r<  rm   r   s     r3   test_noexceptionz"TestArrayArgument.test_noexception  s>    jjnn"))A,rwwqz")  +SYY(r5   N)r   r   r   r1  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  rr   s    r3   test_docstringszTestDocstring.test_docstrings  sg    >>!!-J%.."8"8">">"@@A??"".K5??#:#:#@#@#BBC /r5   c                 T    t        j                          t        j                          y rp   )r9   r?   r>   rr   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   ra   r    ra   r   r   r    ra   )r   ra   ra   r   r   r   )r   r   r   rd   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@  rA  	irwinhallc                 B    t         j                  j                  d       y r/  r0  rr   s    r3   r1  zTestFitMethod.setup_method  r2  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    rr  N)fitSkipNonFiniter   r   rd   r   r  r  r(  r9   rX  r  r   )rm   rN   r*  rY   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  rm  rf  r{         4@r  r5  ra   r   r;  r&  r   )rd   r   r   r  r9   r"  r   r  r  r   r   r   r   )rm   rY   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   ra   r   rr  )rd   r  r9   r  r   r   r  r   rm   rY   r_   r`   s       r3   test_fix_fit_normzTestFitMethod.test_fix_fit_norm  s    IIaOZZ^^A&
UC#E2771:.ZZ^^AA^.
US!UBGGAJ'ZZ^^Aa^0
UC#UA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   rQ  r  r   r   ra   r;  )rd   r  r  r   r9   r  r   r   r   digammar   )rm   rY   meanlogr   r1   r_   r`   rH   r   r   r  s              r3   test_fix_fit_gammaz TestFitMethod.test_fix_fit_gamma%  s   IIaO&&).." 53FF1668w&BFF1I(::AqIS$E1668A:q9
 bt<3QS$E1668A:q9bt<3QS$E1668A:q9 VD3S$UF#bffVn$GOOA.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  rd   r  rg  r   psi)r1   r2   rY   ro  s1r  psiabr   s           r3   mlefuncz0TestFitMethod.test_fix_fit_beta.<locals>.mlefuncN  s     AAB!"BKKA&Eufw{{1~566ufw{{1~5668DKr5   )rs  rf  rv   r   r    r;  rp  r   ra   )r   r   r   r4  )r  r   r   rv   r:  )r   r   r   )r   r   r  r   )r   r  r   r   )
rd   r   r9   r  r   r   r   r   rX  r  )rm   r  rY   r1   r2   r_   r`   dadbrj  r  b2r  r  r)  s                  r3   test_fix_fit_betazTestFitMethod.test_fix_fit_betaK  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)ra   ra   r   r   r   r   r   r  ra   r   rr  r   r   r   )rd   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   rZ   r9     r  r    r   r  r   r*  r;  ra   r   )r   fix_s)rd   r   r  r9   r"  r   r   ru  r   r   r   r  )rm   rY   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)rN  r  rZ  r  r   r   rZ   rr  rz   rO  )rd   r   r9   r  r   r   r  r  r  rX  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  r[   r   r   r  )r   r  )rQ  r  r  rh  )rR  r  r  )r  r  )r  r  )r  r  r    ra   )rQ  r   r  r   r   )rQ  r  r   r   r  )rQ  r   r   r  )r  r   r    r5  )	r9   r  r   r   r   rX  r  r   r  )rm   r  r1   r2   rY   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 )Nra   r[   )r  r   i)enikibenikir  )r9   r  r   r  rX  r  r   )rm   r  rN   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   r1  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/  r0  rr   s    r3   r1  zTestFrozen.setup_method  r2  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  rf  ra   )r9   r  rc   r   rk   r   r  r   r?  r   r8  ru  rA   r  r1   r2   )rm   rN   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 )Nrz   r  rf  r  ra   )r9   r  rc   r   rk   r   r  r   r?  r   r8  ru  rA   r  r1   rN   r2   )rm   r1   rN   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    ra   r  r  )r9   r"  r  r   )rm   r  m1rt  s       r3   test_regression_ticket_1293z&TestFrozen.test_regression_ticket_1293X  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  r{   r  rW   r   r  r  rv   )r9   r  rN   r  r   rc   rd   r  r1   r2   r	   r   r  r   )rm   r  r  r1   r2   rv1s         r3   r  zTestFrozen.test_abg  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:   rr   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_staterd   r   r  r   )rm   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    ra   r   r0  rJ  r   r  r5  rv   r   r    )r9   r  r~  r>   r   r   pickledumpsloadsr   r   rk   )
rm   r  poissrC  distfnrH   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 rp   r;   r   s    r3   r   z$TestFrozen.test_expect.<locals>.func  s    Hr5   ra   r   r   r  r  )r  divider    T)r   ubconditionalra   r*  r_   r`   r   r	  r	  r  )r   r*  r_   )r9   r  rd   r  r   r   r~  )rm   r   gmgm_val	gamma_valrp  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   r1  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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   rI   z&TestExpect.test_norm.<locals>.<lambda>  s    1qs r5   r   ra   r^   r   r%  rQ  c                     | S rp   r;   r   s    r3   rI   z&TestExpect.test_norm.<locals>.<lambda>  s     r5   r@  r4  c                      yr   r;   r   s    r3   rI   z&TestExpect.test_norm.<locals>.<lambda>  r   r5   r_   r`   r   r	  r   c                      yr   r;   r   s    r3   rI   z&TestExpect.test_norm.<locals>.<lambda>  r   r5   Tr_   r`   r   r	  r	  rN  )r9   r  r   r   r   )rm   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   rI   z&TestExpect.test_beta.<locals>.<lambda>  s    51U7(; r5   r  r   ra   )r*  r_   r`   qq?r  rQ  c                     | S rp   r;   r   s    r3   rI   z&TestExpect.test_beta.<locals>.<lambda>  s     r5   rO  rz   r	  r4  rZ   r^   r@  c                      y)NrN  r;   r   s    r3   rI   z&TestExpect.test_beta.<locals>.<lambda>  r   r5   )rZ   rZ   Fr	  r   c                      yr   r;   r   s    r3   rI   z&TestExpect.test_beta.<locals>.<lambda>  r   r5   TrN  )r9   r  r   r   r   )rm   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  rZ   r  rO  r  c                     | S rp   r;   r   s    r3   rI   z+TestExpect.test_hypergeom.<locals>.<lambda>      Q r5   )r  rZ   r  r	  r  rQ  c                     | dz
  dz  S Nr  ra   r;   r   s    r3   rI   z+TestExpect.test_hypergeom.<locals>.<lambda>   s    adQY r5   r%  c                     | dz
  dz  S r#	  r;   r   s    r3   rI   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    QrTAI r5   r   )r*  r_   r   r	  r    c                      yr   r;   r   s    r3   rI   z+TestExpect.test_hypergeom.<locals>.<lambda>  r   r5   r*  rP  c                      yr   r;   r   s    r3   rI   z+TestExpect.test_hypergeom.<locals>.<lambda>  r   r5   T)r*  r_   r   r	  r	  c                      yr   r;   r   s    r3   rI   z+TestExpect.test_hypergeom.<locals>.<lambda>  r   r5   r   )r*  r   r	  )r9   r  r   r   rJ  rg  )
rm   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   rI   z)TestExpect.test_poisson.<locals>.<lambda>  r   r5   r	  r   F)r*  r   r	  r    ra   r%  rQ  c                      yr   r;   r   s    r3   rI   z)TestExpect.test_poisson.<locals>.<lambda>!  r   r5   T)r9   r~  r   rk   r   )rm   r,	  prob_b_trueprob_lbs       r3   test_poissonzTestExpect.test_poisson  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  rU  )rv   r%  rQ  )r9   genhalflogisticr   r   )rm   halflogr)  r-  s       r3   test_genhalflogisticzTestExpect.test_genhalflogistic%  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 )Nrv  Gz?c                      yr   r;   r   s    r3   rI   z/TestExpect.test_rice_overflow.<locals>.<lambda>4  r   r5   )r;	  rU  c                      yrm  r;   r   s    r3   rI   z/TestExpect.test_rice_overflow.<locals>.<lambda>5  r   r5   c                      yNr   r;   r   s    r3   rI   z/TestExpect.test_rice_overflow.<locals>.<lambda>6  r   r5   )r	   rd   r>  r9   ricerc   r   rr   s    r3   test_rice_overflowzTestExpect.test_rice_overflow/  s     	EJJNN3567EJJ--k-HIJEJJ--k-HIJEJJ--k-HI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)rx  r   c                     | S rp   r;   rV   s    r3   rI   z(TestExpect.test_logser.<locals>.<lambda>;      a r5   rU  rN  r~   r   c                     | S rp   r;   rD	  s    r3   rI   z(TestExpect.test_logser.<locals>.<lambda>A  rE	  r5   r	  )r9   r  r   r   rd   r  )rm   rp  r_   res_0res_ls        r3   test_logserzTestExpect.test_logser8  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 rp   r;   r   s    r3   rI   z)TestExpect.test_skellam.<locals>.<lambda>H  s    A r5   rU  c                     | dz  S rm  r;   r   s    r3   rI   z)TestExpect.test_skellam.<locals>.<lambda>I  rn  r5   r  r   ra   )r9   r/  r   r   )rm   r  p2r  rt  s        r3   test_skellamzTestExpect.test_skellamD  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 rp   r;   r   s    r3   rI   z)TestExpect.test_randint.<locals>.<lambda>Q  r!	  r5   c              3       K   | ]  }|  y wrp   r;   r  r   s     r3   rk  z*TestExpect.test_randint.<locals>.<genexpr>S  s     5!A5s   r~   r   )r9   r;  r   r   rg  r  )rm   r*  r+  r   s       r3   test_randintzTestExpect.test_randintM  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 rm  r;   r   s    r3   rI   z&TestExpect.test_zipf.<locals>.<lambda>X  s
    q!t r5   r	  )r
   rt  r9   rf  r   rr   s    r3   	test_zipfzTestExpect.test_zipfU  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   rI   z/TestExpect.test_discrete_kwds.<locals>.<lambda>\  r   r5   r	  rU  c                      yr   r;   r   s    r3   rI   z/TestExpect.test_discrete_kwds.<locals>.<lambda>]  r   r5   r      r&  )r*  maxcount	chunksize	tolerancer%  rQ  )r9   r~  r   r   )rm   n0n1s      r3   test_discrete_kwdszTestExpect.test_discrete_kwdsZ  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   rZ   r   r  r   r9  ra   r;   r  s    r3   poiss_moment5z-TestExpect.test_moment.<locals>.poiss_moment5d  s8    q52b!e8#bQh.BE9B>>r5   )r   r  r   r  r   )r9   r~  r  r   )rm   rd	  rX  m5s       r3   test_momentzTestExpect.test_momenta  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 )NrF  rN  r^   rw  rZ   rW   )   rU  rh	  U   r  )r   r9   r  r   r  rY  rr   s    r3   test_challenging_cases_gh8928z(TestExpect.test_challenging_cases_gh8928k  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 )NrZ   r   r^   r  rm  r	  r  r%  r}  Tr	  r  g433333@g433333rP  )r9   r  r   r   r   )rm   rN   r  s      r3   test_lb_ub_gh15855zTestExpect.test_lb_ub_gh15855t  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	  r/	  r5	  r9	  rA	  rI	  rN	  rT	  rW	  ra	  rf	  rj	  rl	  r;   r5   r3   r	  r	    sK    
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   rv   r   g K?rZ   rQ  )r9   nctr   rk   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  rW   r    )gMp^j?g6].ftv?gȳ'ς?gu?)g!Y<a?g]d1p?go|?g?)gHdY?g2Ԥg?g}o/u?g .mr?r4  r   )r9   rp	  rc   rd   r  rS  r   r   )rm   r   rR   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   rz   )r9   rp	  r   r8  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   rx  r  )r  ncr  r  r  )r9   rp	  r   rd   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   ra   g@ @g*dn?r   r  r   r   gqI  @gL) ?r  )r9   rp	  r   r   )rm   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 )Nra   i   r   )r   r9   rp	  rk   r   rr   s    r3   test_cdf_large_nczTestNct.test_cdf_large_nc  s!    		aE%L91=r5   zx, df, nc, expected)r  rZ   rm  gAs69)rg  r  rm  gV1c                 ^    t        t        j                  j                  |||      |d       y r  )r   r9   rp	  rc   )rm   rY   r  rw	  rR   s        r3   test_pdf_large_nczTestNct.test_pdf_large_nc  s!     			aR0(Gr5   N)r   r   r   rq	  rs	  ru	  rx	  r	  r	  r   r   r   r	  r;   r5   r3   rn	  rn	    sT    C2$ >,>6 [[2.+5
 H	Hr5   rn	  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}  r{   )r9   recipinvgaussrc   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   rd   r  rb  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@  rv   g9V9s;r  r   )r9   r	  rk   r   rm   rp  rR   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  rv   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)rK  rN  rO  r{   r2   )rW   rW   rv   r   r   r  r  r&  rh  )r	   rd   r>  r9   r@	  rc   r   r   rk   r  r   r   )rm   rY   ry  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   r@	  r   r   r   r<  r  s     r3   test_rice_rvszTestRice.test_rice_rvs%  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 )NrZ      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?rW   r    g     @_@r   r  )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@rv      )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   r@	  rk   rd   r  r   r   r8   )rm   rk   cdf_expprobabilitiesr   ppf_exps         r3   test_rice_gh9836zTestRice.test_rice_gh9836*  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/  r0  rr   s    r3   r1  zTestErlang.setup_methodU  r2  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)Nrm  r  r   r    r   r  )rv   rN  rz   r  r  r  r   )rq  rr  rs  rt  rX  r9   erlangr   r   r  r   )rm   r   result_erlangresult_gammas       r3   test_erlang_runtimewarningz%TestErlang.test_erlang_runtimewarningX  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 )Nrv   r    r   ri  )r   r9   r	  rc   r  rr   s    r3   test_gh_pr_10949_argcheckz$TestErlang.test_gh_pr_10949_argcheckk  s<    U\\%%caW%5[[__SQG_4	6r5   N)r   r   r   r1  r	  r	  r;   r5   r3   r	  r	  T  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  r0  rr   s    r3   r1  zTestRayleigh.setup_methodq  s    
		y!r5   c                 Z    t         j                  j                  d      }t        |d       y )Nr7  g)Zx)r9   r%  r   r   rm   r)  s     r3   r  zTestRayleigh.test_logpdfu  s!    NN!!"%./r5   c                 Z    t         j                  j                  d      }t        |d       y )Nr7  i)r9   r%  r  r   r	  s     r3   r  zTestRayleigh.test_logsfy  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  re  c                 \    t        j                  | |z
  dz        dt        |       z  z  dz  S )Nra   rv   )rd   rg  r  )r   r   s     r3   r  z(TestRayleigh.test_fit.<locals>.scale_mle  s,    FFD4KA-.!c$i-@RGGr5   r   r}  rr  )r9   r%  r   r   r   )rm   r   r5  r   r  scale_expectr_   r`   s           r3   rp  zTestRayleigh.test_fit}  s     ~~!!sy!I	H !w/^^''7';
US'"UL) ^^''R'8
UUB
 ^^''-
UUIdC01r5   r;	  rx   g̡=E?g@1d?c                 |    t         j                  j                  d||      }t        t         j                  |       y )Nr  re  )r9   r%  r   r   )rm   r   r5  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 rp   )r  r9   r%  rr   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  )r7  r  r  r   rr  )rd   r   r   r9   r%  r   r   r  )	rm   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   r1  r  r  r   r   r   rp  r	  r  r	  r;   r5   r3   r	  r	  p  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 )NrW   rN  r~  g:23W+g~`9k)r9   	exponweibrc   r   r   )rm   rY   r1   r  rp  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    r[   )rd   r  r9   r	  rc   weibull_minr   r   rm   rY   r1   r  rp  rR   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    rZ   )rd   r  r9   r	  rc   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 ?)r7  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   )rm   rY   r1   r  r  r   s         r3   r  zTestExponWeib.test_sf  s(     __1a(Ce,r5   zp, a, c, ref))rf  r}  r   g;y$(@)gMg<r}  r   gdbq^@)r  r    ra   gE@)gvIh%L=r	  r   g/7@)rI  r  r  gTWTOc                 b    t         j                  j                  |||      }t        ||d       y rK  )r9   r	  r  r   )rm   rp  r1   r  r  r  s         r3   r  zTestExponWeib.test_isf	  s(     oo!!!Q*Su-r5   )ra   r   r  g)r   rv   r   gl̇կc                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r	  r  r   )rm   rY   r1   r  r  r  s         r3   r  zTestExponWeib.test_logcdf  s(     ''1a0%0r5   )gR]jp2r  r  gr)rB  ra   rZ   gN~c                 b    t         j                  j                  |||      }t        ||d       y r  )r9   r	  r  r   )rm   rY   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 )Nrf  r}  X9r   r   )r9   r  r   r   r  s     r3   test_sf_tailzTestFatigueLife.test_sf_tail(  s)       ,0u=r5   c                 d    d}t         j                  j                  |d      }t        |dd       y )Nr	  r}  rf  r   r   )r9   r  r  r   )rm   rp  ry  s      r3   test_isf_tailzTestFatigueLife.test_isf_tail6  s+    !!!!S)5u-r5   N)r   r   r   r	  r	  r;   r5   r3   r	  r	  &  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  rz   r  r  r  r   r4  ra   r  rR  g&.gCe )r9   r	  rc   r   rd   r   r   r  rk   r   r  r  r   r  weibull_max)
rm   rY   r1   r2   rp  r.  r  lcrH   r  s
             r3   test_with_maxima_distribz$TestWeibull.test_with_maxima_distribD  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`   rN  rW   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   > )ra   r2  rv   r[   r   r  r   r   r  r  r  r  r  )
rd   r   r   r9   r	  r   r   r   r9  r   )rm   r   r  r_   r`   rN   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%  )r7  r    r  )r   r   gq뮕qH)c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y rK  )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	  =  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>~). rZ   r[   r  rv   r~   r   )
rd   r   r   r  r9   dweibullrA   r	  r  r   )rm   r   r  r   r  s        r3   rk  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	  rZ   r    r  rv   r~   r   )
rd   r   r   r  r  r9   r	  r   r	  r   )rm   r   r  rY   r   r  s         r3   r  zTestDweibull.test_sf  s     ii##$78


,,nn1%E%%((A..Su-r5   N)r   r   r   rk  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 )NrW   rz   g)\(?gףp=
?r{   )r9   truncweibull_minrc   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 )Nrz   rN  r{   r  g~?)r9   r	  r   rd   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 )Nr{   rN  rz   rW   )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)r{   rW   rf  rv   r   r   rN  rz   r{   r  )r9   r	  r   rk   r   rm   ry  rY   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 )Nrz   rN  r  c                 T    | |z  t         j                  j                  |       z  S rp   )r9   r	  rc   )rY   ro  r1   r2   r  s     r3   xnpdfz)TestTruncWeibull.test_munp.<locals>.xnpdf  s)    a4..221aA>>>r5   r   r    c                      | d      S r   r;   rY   r	  s    r3   rI   z,TestTruncWeibull.test_munp.<locals>.<lambda>      a r5   ra   c                      | d      S rm  r;   r	  s    r3   rI   z,TestTruncWeibull.test_munp.<locals>.<lambda>  r	  r5   r   c                      | d      S r?	  r;   r	  s    r3   rI   z,TestTruncWeibull.test_munp.<locals>.<lambda>   r	  r5   r   c                      | d      S )Nr   r;   r	  s    r3   rI   z,TestTruncWeibull.test_munp.<locals>.<lambda>$  r	  r5   )r9   r	  r  r   r   r   )rm   r  r  m1_expectedr   rt  m2_expectedm3m3_expectedru  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 )NrN  r  rz   r    rv   r  )rd   r  r  r   r9   r	  rk   r   r  r   r   r  r  )rm   r1   r2   r  x_medrk   r	  r   r   r  r  s              r3   test_reference_valuesz&TestTruncWeibull.test_reference_values'  sB   BFF3"rvvbz/0B)C#CDDE$$((1a8S!##**5!Q:RVVBZK($$((aA6U###&&uaA6C ##))%Aq9RVVBZK($$((aA6U#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  rz   r{   r  r  r4  ra   r   r  )rd   r  r9   r	  rc   r	  r   r   rk   r  r   r  r   )rm   rY   r  r1   r2   r`   rp  p_truncr.  lp_truncrk   	cdf_truncr	  lc_truncrH   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}  rf  r  r[   )	rd   rS  r9   r	  rc   rk   r	  r  r   )
rm   r  r1   r2   rY   r  rp  r  r  rr  s
             r3   test_compare_weibull_min2z*TestTruncWeibull.test_compare_weibull_min2h  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   rQ  )r9   rdistr   rk   r   )rm   r  rD  s      r3   test_rdist_cdf_gh1285zTestRdist.test_rdist_cdf_gh1285z  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  rZ   g@rv   ra   r    )rd   rS  r   r9   r  rc   r
  )rm   rY   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?)rW      g;|bZ?)rv   i  g79)r   iU  g޻S/c                 \    t        t        j                  j                  ||      |d       y rK  )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
  y  s7    /3 [[	
??r5   r
  c                   x    e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  dg d      d	        Zy
)TestTrapezoidc                 H   g d}|D ]  }d|dg}t        t        j                  j                  |||      t        j                  j                  ||             t        t        j                  j                  |||      t        j                  j                  ||              y )N)r   rx  rv   r    r   r    )r   r9   r   rc   triangrk   )rm   modesmoderY   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    rZ   )rd   rS  r   r9   r   rc   r  rk   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   ra   r    rv   r   r  rK  rN  rW   g      ?r  r   r	  rs  g      ?)r   r9   r   rc   rk   rr   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   ra   r   ra   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 )Nra   r    r;   )ro  r1   r2   r  drj  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    rv   r  rQ  r   r  r*  r   r   )rd   r  r   r9   r   r   r8  rA   )rm   r  rM	  r_   r`   r  r   r8  rA   r1   r2   r  r#
  rj  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^  rv   r}  )rV  rf  r   r'  r~   r   r  r  r   )rd   r   r9   r   rc   broadcast_arraysemptyr   r   r  r  ravelr   r6  r<  r   r  )rm   r  r#
  rY   r  ccddr  r   indr  ri  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   c                    t        j                  ddd      }t        j                  d      5  t        j
                  j                  |dd      }d d d        t        t        j                  j                  |             y # 1 sw Y   3xY w)Nr   r    rZ   z`trapz.pdf` is deprecatedr  )	rd   rS  r   deprecated_callr9   rB   rc   r   r  )rm   rY   r  s      r3   
test_trapzzTestTrapezoid.test_trapz  sg    KK1b!##*EF 	.[[__Q1-F	.FEMM$5$5a$89	. 	.s   "BBr  )rc   r   rk   r  r   r  r   r  c                    d\  }} t        t        j                  |      d||      }t        j                  d| d      5   t        t        j
                  |      d||      }d d d        |k(  sJ y # 1 sw Y   xY w)N)rK  r   r    z`trapz.z` is deprecatedr  )r(  r9   r   r   r0
  rB   )rm   r  r  r#
  rR   r  s         r3   test_trapz_deprecationz$TestTrapezoid.test_trapz_deprecation  s     1375??F3Aq!<##F8?3
 	; 2WU[[&1!Q:F	; !!!		; 	;s   #A55A>N)r   r   r   r
  r
  r 
  r$
  r.
  r1
  r   r   r   r3
  r;   r5   r3   r
  r
    sP    ;P
E(M6?4: [[X (E F"F"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raiserm  r   rz   rv   rN  r    r{   ra   r   rf  )rd   r  r   r9   r
  rc   rk   rr   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   r8
  r;   r5   r3   r5
  r5
    s    6r5   r5
  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&.)rx   g7q?c                 Z    t        t        j                  j                  |      |d       y r  )r   r9   maxwellr   r3  s      r3   r  zTestMaxwell.test_sf   s     	((+Su=r5   rN  ))r  g1!@)g    ?g?)g      <gCuJ!@c                 Z    t        t        j                  j                  |      |d       y r}   )r   r9   r<
  r  rQ  s      r3   r  zTestMaxwell.test_isf)  s    
 	))!,c>r5   c                 b    d}t         j                  j                  d      }t        ||d       y )Ngi6ur  r  r   )r9   r<
  r  r   )rm   r  r  s      r3   r  zTestMaxwell.test_logcdf0  s'    %%%a(%0r5   c                 b    d}t         j                  j                  d      }t        ||d       y )Ng_OԺr&  r  r   )r9   r<
  r  r   )rm   r  r  s      r3   r  zTestMaxwell.test_logsf6  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    rN  r  )r   r9   mielker  rd   r  r	   r>  )rm   rV   rH   s      r3   r$  zTestMielke.test_moments>  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 )Nrx   r[   r7  )g@gHzG@)rd   rS  r   r9   burrrc   rC
  )rm   rY   rV   rH   s       r3   test_burr_equivalencez TestMielke.test_burr_equivalenceE  sO    KKc2&1

q!QqS15<<3C3CAq!3LMr5   N)r   r   r   r$  rF
  r;   r5   r3   rA
  rA
  =  s    >Nr5   rA
  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    )rv   ra   )r    r    )ra   rv   r  rv   rN  )r    ra   rz   )
r9   fiskrE
  burr12rc   r1   r   r   rd   r  )rm   r   r  r  r   r  r  r  s           r3   test_endpoints_7491zTestBurr.test_endpoints_7491L  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)rO  r   )g4U?g&MI?)r9   rE
  r   )rm   r  r#
  r   variancemean_hcvariance_hcs          r3   test_burr_stats_9544zTestBurr.test_burr_stats_9544`  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)rv   r   )r  r   r  )r}  r   )r2  r   )r0  r   )r9   rE
  r	   rd   rO  r>  r  r   )	rm   r  r#
  r   rN
  e1e2e3e4s	            r3   test_burr_nan_mean_var_9544z$TestBurr.test_burr_nan_mean_var_9544k  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)rO  r  )rW   r  r  r0  )g+&?gI$_@gKT@gؗVAr  r   )r   r9   rE
  r  )rm   r  r#
  ry  r  s        r3   test_burr_isfzTestBurr.test_burr_isf  s6     1&#

q!Q/5Ar5   N)r   r   r   rL
  rQ
  rW
  rY
  r;   r5   r3   rH
  rH
  K  s    0(	/(!TBr5   rH
  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)rN  gd~)r2  gR톇T c                 h    t         j                  j                  dddd|      }t        ||d       y )Ng     jAg     jAr   r  r  r   r   )r9   rK
  r  r   )rm   r`   rR   rl  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    ra   rm  r   r[	  r  r  r  r   )rd   re   r  r9   rK
  r   )	rm   r  r#
  r   r8  r9  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  rv   ggx4/@)gҶOɃ;r  rv   gI8aS@)r  rf  #   gj\/ @)g#aMR/rf  r_
  g!GAc                 b    t         j                  j                  |||      }t        ||d       y r  )r9   rK
  r  r   )rm   rp  r  r#
  r  rY   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^
  ra
  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`"@rh  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/ݤ@)r4  r  r  r    r   rZ   r  x   )ra   r  r%  r  )rW   r   i)#  gupm1f?)r    rZ   r   g?<-=A?gv"?r   gd暕?ga-A?c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )Nr  r   )r   r9   studentized_rangerk   r   )rm   pvkry  
p_expectedr  rV   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   rf
  r   r   )rm   rg
  
q_expectedrp  r  rV   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_resultry  rV   r  expected_atolexpected_rtolrh  )r9   rf
  rk   r   rm   ro
  rs
  rt
  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 rr
  )r9   rf
  rc   r   rw
  s         r3   test_pdf_against_mpz(TestStudentizedRange.test_pdf_against_mp   rz
  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)Nrs
  rt
  r  rV   r  r  r  ru
  rv
  rh  )rd   r  r9   rf
  r  r   )rm   ro
  rs
  rt
  mkvr   s         r3   test_moment_against_mpz+TestStudentizedRange.test_moment_against_mp)   s     z*,	smXc]HSM9 [[* 	7))00#6C	7 	Y%o6%o6	8	7 	7s   A**A3c                     d\  }}t        t        j                  j                  dt        j
                  ||f      }t        |d   d       y )Nr   rZ   r   rU  r    )r   r9   rf
  rc   rd   r  r   )rm   rV   r  r   s       r3   test_pdf_integrationz)TestStudentizedRange.test_pdf_integration:   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   rZ   rx   )stepr    r  r   )rd   r  r9   rf
  rk   rc   r   r   )rm   rV   r  rY   y_cdf	y_pdf_rawy_pdf_cumulatives          r3   test_pdf_against_cdfz)TestStudentizedRange.test_pdf_against_cdfA   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  )rd   r  r9   rf
  rk   r   )rm   r
  ry  rV   r  r_resr   s          r3   test_cdf_against_rz'TestStudentizedRange.test_cdf_against_rQ   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    ra   r   r   rZ   r  r	  z...could not be broadcast...r  )rZ   r  rP  )
rd   r  r9   rf
  r  r   r<  r   r   r  r  s     r3   test_moment_vectorizationz.TestStudentizedRange.test_moment_vectorizationY   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   rd   r  rL   r   r9   rf
  rk  r	   	_argcheck)rm   rV  rV   r  r   s        r3   test_fitstart_validz(TestStudentizedRange.test_fitstart_validi   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   rZ   韆 r  rh  )r9   rf
  rc   rd   r  r   rk   )rm   r   
res_finites      r3   test_infinite_dfz%TestStudentizedRange.test_infinite_dfq   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   rZ   r   r
  i rp  rh  )r9   rf
  rc   rX  AssertionErrorr   rk   )rm   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   rf
  r   r   )rm   ry  rV   r  rp  s        r3   test_clippingz"TestStudentizedRange.test_clipping   s@     .1a##&&q!Q/15)Avvr5   )1r   r   r   q05q01q001rd   ro  qspsr  vskslistr  r(   r   r_datar   r   r   rj
  r   rn
  ospathdirnamer  path_prefixrelative_pathopenrL  filejsonr  pregenerated_datar   ry
  r}
  xfail_on_32bitr
  r
  r
  r
  r
  r
  r
  r
  r
  r;   r5   r3   rc
  rc
    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rc
  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  r{   r  r  c                     t        j                  ddd      }t        j                  j	                  ||      }t        j
                  |      j                         sJ |dkD  j                         sJ y )Nr  rO  rX   r{   )rd   rS  r9   r+   rc   r>  r   )rm   r  rY   rp  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  rO  rX   r  r{   rz   ra   )	rd   rS  r   r9   r+   rc   r>  r   r   )rm   rY   r  rp  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   r{   rf  rv   rz   r   ra   rv   )rd   r   r9   r+   supportr  r   )rm   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  rz   rv   r{   )r9   r+   rc   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  ra   r   rZ  rZ   rQ  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r9   r+   rd   re   r   )rm   r  rR   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   rd   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   rN  rv   rW   rx   r  )g~V1?r,  gba"?g܄4ťY?r-  g$%+Ir  r   r   )rd   r   r9   r   rk   r   r   )rm   rY   rR   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  gMraB3Gr8  )gep[>g}XEQ=gѭEG<g?_%~:r  r   )rd   r   r9   r   r   r   )rm   rY   rR   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   )rm   rp  expected_isfrY   s       r3   test_levy_isfzTestLevy.test_levy_isf!  s"     JJNN1<e4r5   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Nr8  g?_%~r  r   )r9   r   r  r   rS  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   rU  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?rZ   test_540_567)rR  rF  g2gk?g;B.?gͣh?gHŎ*?r^   g.y?)r   r9   r  rk   r;   r5   r3   r
  r
  #!  sk    

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

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

}.-; ' =+ "N<r5   zdocstrings strippedrT  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    rv   )rd   r  r	   rO  r9   r  r  r  rk   r  r   rc   r   r   r  r  rJ  r4  r;   r5   r3    test_nan_arguments_gh_issue_1362r
  5!  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.  )rf  r{   rv   r   r    ra   r[   r5  r  )r 	  r{   r   rQ  rv   )r   r_   rf  )r   r_   r  r   rz   r   )rd   r   r   r   r9   r"  r   r  r   r   r  r  r   )truerY   r  r_   r   rR   s         r3   test_frozen_fit_ticket_1536r
  J!  s   IINN488O$D$q'47DG#>A	H	% 9%--++AB+789 a0XXemm''#1'=>Fa0XXemm''d':;Fa0XXemm''d';<Fa0IINN4
CD

sBS)AXXejjnnQTn23Fxxrww4!'9'9';<=>H!4)9 9s   95IIc                      t         j                  j                  d       t        j                  j                  d      } t        j                  j                  |       }d}t        ||d       y )Ni	 r[   r5  )g
ףp=
?gʡE?r    rQ  )rd   r   r   r9   r  r   r   r   )r   r  rR   s      r3   test_regression_ticket_1530r
  f!  sN    IINN6
,,



$C\\c"FH!4r5   c                     t         j                  j                  d       t         j                  j                  d      } dD ]C  }t        j
                  j                  | |z         \  }}t        ||d       t        |dd       E y )Nr   r  )r  g   6ArN  r   r}  )rd   r   r   r*  r9   r  r   r   )rY   offsetr_   r`   s       r3   test_gh_pr_4806r
  o!  sg    IINN4
		A' .\\%%a&j1
UV#.s-.r5   c                  |    t        t        j                  t        j                  j                  dd                   y )Nr?  rK  )r	   rd   r>  r9   r~  r4  r;   r5   r3   test_poisson_logpmf_ticket_1436r
  y!  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))
    )rN  )rv   r  r{   r  )rz   )gUUUUUU?r	  g^cQg333333r  r  N)r9   r  r   )rQ  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    r{   )r9   r  r   r   rp  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    r{   )rf  rN  r  rN  )r9   r+  r   r   rc   rd   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    rN  )r9   gengammarc   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  rN  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   r{   )r9   r
  rc   r   rd   r  )rp  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   rK  rN  g>rZ   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)
rd   r   r  r   rL   r   rt  r9   r@  r   )r#
  rV  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   rd
  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  )rd   r   r
  r  r   r9   r  r  realimagr   r   )rY   rR   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   )rd   r   r9   r!  r   r   )rY   rR   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<rf  r  rI  r   )rd   r   r9   r!  r  r   r   )rp  rY   ry  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 )Nr4  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@r  r[   r  r    )r   r9   r  r6  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   rW   r~  r   numra   r   rN  r  r   rv   r^   rz   r  r  r5  r*  r  )rd   r   r   rS  rX  r  r9   r  rc   r   rk   r   rA   r   r  rJ  r_  r	  r  r   s    r3   test_distribution_too_many_argsr
  3"  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  rK  ra   gYZ@r  r   r`  )r9   ncx2rk   rd   r  _cdfvecr   r  s     r3   test_ncx2_tails_ticket_955r  ["  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)Nrm  r    iT  i^  ra   r   r  r   rP  gsq6)rq  rr  rs  rt  r   r9   r  rc   rd   r  r   r	   r  r   r   )logvals    r3   test_ncx2_tails_pdfr  c"  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, expectedrk   gu%>g	;Q=rc   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 )NrW   r   r   rZ   )rw	  r  r~   r   )r(  r9   r  r   )r  rR   r  s      r3   test_ncx2_zero_ncr  t"  s/      )WUZZ(!QB?FFH51r5   c                      t         j                  j                  ddd      } t         j                  j                  dd      }t	        | |d       y )NrZ   r   r    )r  rw	  r   )r  r   r~   r   )r9   r  r   r  r   )r  rR   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 )NrZ   r   r  r    r  rw	  r   )rd   r  r   r9   r  rk   )rw	  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  )rN  rN  rN  rN  rN  g?gy[qD?r{   r{   r{   r{   r{   r{   r  r   )rd   r   r9   r  r   r   )rY   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
  ra   r   r  r   )	rd   rS  r9   r  r   rc   r  r  r   )r  rw	  rY   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))ra   r    g|1q?)ra   ra   g~?)rf  r    V<3T1=) 7yQCr    u	lY<)rf  g   vHGBg^b!*1=)rs  rK  gS?c                 ^    t         j                  j                  | |      }t        ||d       y Nry  )r9   
foldcauchyr   r   rY   r  rR   r   s       r3   test_foldcauchy_sfr  "  s(     
				Q	"BB%(r5   r  ))ra   g?)rf  r  )r  r  )g6ްPg8R#/c                 \    t         j                  j                  |       }t        ||d       y r  )r9   rF  r   r   )rY   rR   r   s      r3   test_halfcauchy_sfr  "  s&     
				Q	BB%(r5   zp, expected))g?g*wӄZ>)333333?gN9?)rv   rN  )rx   g8<,O@)r  g:B)gl ׶w/gMb}[Pc                 Z    t         j                  j                  |       }t        ||       y rp   )r9   rF  r  r   )rp  rR   rY   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   rk   )r  s    r3   test_foldnorm_zeror$  "  s$    		#BAr5   ))ra   r    gwo{?)r  r    gGd-P/)rZ   r9  gof?)r  r9  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)r{   rv   rN  r    rv   rN  c              3   b   K   | ]'  }t         j                  t         j                  |f    ) y wrp   rd   rH  r  rS	  s     r3   rk  z-test_stats_shapes_argcheck.<locals>.<genexpr>#  s!     8q"%%	*8   -/)ra   r4  r   ra   r4  c              3   b   K   | ]'  }t         j                  |t         j                  f    ) y wrp   r)  rS	  s     r3   rk  z-test_stats_shapes_argcheck.<locals>.<genexpr>#  s!     8q"%%266	*8r*  )r9   r  tupler   r"  )mv3mv2mv2_augmenteds      r3   test_stats_shapes_argcheckr0  #  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;   rm   rY   r1   s      r3   _pdfz_distr_gen._pdf(#  s    r5   Nr   r   r   r6  r;   r5   r3   r2  r2  '#  s    r5   r2  c                       e Zd Zd Zy)_distr2_genc                     d|z  |z   S r4  r;   r5  s      r3   _cdfz_distr2_gen._cdf-#      Avzr5   N)r   r   r   r;  r;   r5   r3   r9  r9  ,#  s    r5   r9  c                       e Zd Zd Zd Zy)_distr3_genc                     ||z   S rp   r;   rm   rY   r1   r2   s       r3   r6  z_distr3_gen._pdf2#  s    1ur5   c                     d|z  |z   S r4  r;   r5  s      r3   r;  z_distr3_gen._cdf5#  s     Avzr5   Nr   r   r   r6  r;  r;   r5   r3   r>  r>  1#  s    r5   r>  c                       e Zd Zd Zd Zy)_distr6_genc                     ||z  |z   S rp   r;   r@  s       r3   r6  z_distr6_gen._pdf=#  s    sQwr5   c                     d|z  |z   S r4  r;   r@  s       r3   r;  z_distr6_gen._cdf@#  r<  r5   NrB  r;   r5   r3   rD  rD  ;#  s    r5   rD  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    ri  r  r2  r   rc   rm   dummy_distrs     r3   test_correct_shapesz1TestSubclassingExplicitShapes.test_correct_shapesG#  s%     gc:[__Q!_,b1r5   c                 j    t        dd      }t        t        |j                  dfi t	        d       y )NrJ  ArK  r    ri  )r2  rX  r  rc   r  rM  s     r3   test_wrong_shapes_1z1TestSubclassingExplicitShapes.test_wrong_shapes_1K#  s'     gc:i!AtayAr5   c                 r    t        dd      }t        ddd      }t        t        |j                  dfi | y )NrJ  za, b, crK  r    ra   r   r  )r2  r  rX  r  rc   )rm   rN  r)  s      r3   test_wrong_shapes_2z1TestSubclassingExplicitShapes.test_wrong_shapes_2O#  s1     gi@Q!q!i!;s;r5   c                 H    t        dd      }t        t        t        fi | y )NrJ  r  rK  )r  rX  r  r2  rm   r)  s     r3   test_shapes_stringz0TestSubclassingExplicitShapes.test_shapes_stringT#  s    +i3s3r5   c                 H    t        dd      }t        t        t        fi | y )NrJ  z(!)rK  r  rX  SyntaxErrorr2  rV  s     r3   test_shapes_identifiers_1z7TestSubclassingExplicitShapes.test_shapes_identifiers_1Y#  s    .k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrJ  4chanrK  rY  rV  s     r3   test_shapes_identifiers_2z7TestSubclassingExplicitShapes.test_shapes_identifiers_2^#      0k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrJ  zm(fti)rK  rY  rV  s     r3   test_shapes_identifiers_3z7TestSubclassingExplicitShapes.test_shapes_identifiers_3b#  s    1k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrJ  za=2rK  rY  rV  s     r3   "test_shapes_identifiers_nodefaultsz@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaultsf#  s    .k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrJ  z*argsrK  rY  rV  s     r3   test_shapes_argsz.TestSubclassingExplicitShapes.test_shapes_argsj#  r_  r5   c                 H    t        dd      }t        t        t        fi | y )NrJ  z**kwargsrK  rY  rV  s     r3   test_shapes_kwargsz0TestSubclassingExplicitShapes.test_shapes_kwargsn#  s    
3k:55r5   c                 H    t        dd      }t        t        t        fi | y )NrJ  za, b, c, lambdarK  rY  rV  s     r3   test_shapes_keywordsz2TestSubclassingExplicitShapes.test_shapes_keywordsr#  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 rp   r9   r  r6  r5  s      r3   r6  zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdfz#      zzq)A--r5   Nr7  r;   r5   r3   	_dist_genrl  y#      .r5   rp  r1   r
  rv   ra   ri  r9   r?   r   rc   r  rm   rp  rN   s      r3   test_shapes_signaturez3TestSubclassingExplicitShapes.test_shapes_signaturew#  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 rp   rn  r5  s      r3   r6  zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdf#  ro  r5   Nr7  r;   r5   r3   rp  rx  #  rq  r5   rp  ri  rr  rv   r    ra   r  )r9   r?   rX  r  rc   r  rt  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   rn  )rm   rY   r*  extra_kwargs       r3   r6  zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdf#  s#    "1gzzq)K77r5   Nr7  r;   r5   r3   rp  r}  #  s    8r5   rp  r  rr  rv   !   r  )xxx)r9   r?   r   rc   r  rX  r  r  rt  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  rn  )rm   rY   r
  r*  r  s        r3   r6  zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf#  s(    "1gzzq)K7&@@r5   Nr7  r;   r5   r3   rp  r  #  s    Ar5   rp  zoffset, extra_kwargrr  rv   o   r  )r
  r  rs  rt  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  r6  )rm   rY   r*  kwargsr  s        r3   r6  zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf#  s,     %jj:zzq)K77r5   Nr7  r;   r5   r3   r2  r  #  s    8r5   r2  r  rr  r    r   r  rs  )rm   r2  rN   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 rp   )r9   r  rc   r  s     r3   r6  zNTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdf#  s    zz~~a((r5   Nr7  r;   r5   r3   rp  r  #  s    )r5   rp   rr  rv   rs  rt  s      r3   test_shapes_empty_stringz6TestSubclassingExplicitShapes.test_shapes_empty_string#  s?    	)++ 	) #TXXc]EJJNN3$78r5   N)r   r   r   rO  rR  rT  rW  r[  r^  ra  rc  re  rg  ri  ru  rz  r  r  r  r  r;   r5   r3   rH  rH  D#  s\    2B<
4
6
666666
@B@3D9r5   rH  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 )NrJ  r  r    ri  r  rL  rM  s     r3   test_only__pdfz&TestSubclassingNoShapes.test_only__pdf#  s#     g.[__Q!_,b1r5   c                 V    t        d      }t        |j                  dd      d       y )NrJ  r  r    ri  )r9  r   rc   rM  s     r3   test_only__cdfz&TestSubclassingNoShapes.test_only__cdf#  s#    !w/KOOAO3Q7r5   docstring strippedrT  c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )NrJ  r  r    r1   zlogpdf\(x, a, loc=0, scale=1\))	r2  r   numargsr
  refindallr  r	   r  rm   rN  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 )NrJ  r  ra   ri  z!logpdf\(x, a, b, loc=0, scale=1\)r    )	rD  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 )NrJ  r  )rX  r  r>  rr   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r4  r;   r5  s      r3   r6  zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdf#      r5   N)r  r7  r;   r5   r3   rp  r  #  s    r5   rp  rJ  r  r9   r?   rX  r  r  rm   rp  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r4  r;   )rm   rY   r1   r*  s       r3   r6  zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdf#  r  r5   Nr7  r;   r5   r3   rp  r  #      r5   rp  rJ  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r4  r;   )rm   rY   r1   r  s       r3   r6  zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdf#  r  r5   Nr7  r;   r5   r3   rp  r  #  r  r5   rp  rJ  r  r  r  s     r3   test_kwargs_raisez)TestSubclassingNoShapes.test_kwargs_raise#  r  r5   N)r   r   r   r  r  r   r   ry  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   rK   r(  r>  r>   r?   r	   r  searchr  )badonesdistnamerN   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 )NrZ   r  r   r  rW   r    )r   r9   r/  r   rd   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   rk   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   rk   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  r9  rQ  )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)rN  alwaysrv   r   r{   N)rq  rr  rs  r9   r   rk   rc   r   r   rd   r  r  r   )rj  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 )Nr{   r    rR  r  r  ra   r*  rP  r   r4  r   )r   r    r   r*  r   r  r   )rd   r   r9   r   r  euler_gammare   r  r   zetar   r   )	r   r   r8  r9  r:  ref_0ref_1ref_3ref_2s	            r3   test_moments_gh22400r  &$  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  ra   r    r  r   r   rN  r  rZ   r  r   r  rg  r  )r9   r   rA   r   r   rd   r  )r  rj  s     r3   test_genextreme_entropyr  <$  s   $K  &AAq}q(u5  #AA{QU3  %AA  R 0AA{1}rvvbz1A5EB  $AAr+~)6  %AAr+~)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   ru  g'b%4gQ@rs  gؗҜ;r   g.l6?)r9   r   r   r   r  )rY   rH   rj  s      r3   test_genextreme_sf_isfr  S$  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}  ra   r   gH&8>)r9   rK
  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  ra   r}  rh  r   r  r   r   r  rZ   rP  @   c   )r   r  g`?r^  r   g [@N)r;   r   )rd   r   r9   r  r   r   )r  rY   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   )rY   r  rR   r;  s       r3   test_invweibull_sfr  $  s(     ""1a(HHhU3r5   zp, c, expected)rv   r}  g9?)geK<r   g@c                 `    t         j                  j                  | |      }t        ||d       y r}   )r9   r  r  r   )rp  r  rR   r;  s       r3   test_invweibull_isfr  $  s(     ##Aq)HHhU3r5   z	df1,df2,x)r   rK  rN  r>  r   r  r  rw  r[  c                 L   d}t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       y )Nr   r  r   rp  )r9   r   rk   r  r   rc   )df1df2rY   rw	  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 )Nra   r*  r   g     `E@r  r   )r9   r  r8  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  rk   r   rd   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}  )rW   ra   r   r   r    )rd   rS  r9   r  r   r   )rY   parry  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    ra   ra   r   r   r   r   r   r   r   r   r   r   r   r   r*  r*  r*  r*  r  r  r  r  r  r  r  binsrN  r}  r  {   r:  r7  )
rd   r   r   	histogramr9   r@   templater  r   norm_template)rm   r  r   norm_histograms       r3   r1  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r{   rv   rN  r  rz   r}  r  r2  r  r0  rO        @r  r  r  r  r        !@r  r!  )r{   r{   rG  rG  {Gz?r  Q?r  {Gz?r  rK  rK  r  r  r  r  r  r  r{   r{   r  r  r  r  r{   r  r   ra   rZ   rN  r}  r^   rW   r   )rd   r   r   r   r  rc   r   rS  r	  r9   r  )rm   rD  
pdf_valuesrY   s       r3   rL  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  )r{   r{   r{   r  rG  r  r  
ףp=
?Q?{Gz?r  rv   r}  (\?RQ?=
ףp=?)\(?r
  rN  rN  ra   r   rN  r  r[   r{   r   rZ   r}  r^   rW   r   )rd   r   r   r   r  rk   r   rS  r	  r9   r  )rm   rD  
cdf_valuesrY   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   rN  r{   rz   rG  rK  r   r}  r  r  r  rW   r2  r  r  r  r0  r  rO  r  r@  r  rv   r  r}  r  r  r  r  r  r  r  r  r  r
  r  )r  r   r   rd   rg  r   )rm   r,  rC  s      r3   rD  zTestHistogram.test_rvs8%  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   rN  r}  r@  r   )r  r   r	  r  r9   r  r  rz  s     r3   r	  zTestHistogram.test_munpN%  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 )NrN  r}  r^   r@  r   )r   r	  rA   r9   r  rr   s    r3   rk  zTestHistogram.test_entropyS%  s5    **224

**s#*>T	Kr5   N)	r   r   r   r1  rL  r  rD  r	  rk  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)rq  rv   rK  r  Tg'^P?g     H@z(Bin widths are not constant. Assuming...r  r0  )
r9   r@   rd   r  r   rc   r?  r   rg  rt  )countsr  rN   rY  s       r3   test_histogram_non_uniformr!  X%  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   rZ   r  r  iL  r   )rd   r   r   r9   
loguniformr   
reciprocalr   r  log10r  r  r   r?  )rm   r   r  r   rv2r   rB  r   s           r3   
test_aliaszTestLogUniform.test_aliasp%  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%  rW   r    r   r   r  ra   r  )rd   r   r   r9   r&  r   r   )rm   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   r5  r  i8rK  r   rZ   )rd   r   r   r9   r&  r  r   rk   r   r   r  rc   r  r   )
rm   r   r1   r2   rN   rk   r   rY   rc   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,  r.  r;   r5   r3   r#  r#  o%  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 )Nr7  r  E  r   r   rQ  )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_staterW   r2  r     r2     c                     t         j                  j                  |d|      }t        j                  |d|f      \  }}t	        |dkD         y )Nr  r   r3  r@  r9   r3  r   rC  r	   )rm   r  r   rY   r   rp  s         r3   rD  zTestArgus.test_rvs%  s@     KKOOCcOE||Aw01Dr5   r  r  rp  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    ra   r  r;   r   s    r3   rI   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>%  s    a!Q$h#->)> r5   r@  r8  )rm   r  r  r   rp  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?)rZ   g.憃?)rw  g\paP?)rx  g	?)r  g,6?c                 b    t         j                  j                  |d      }t        ||d       y )Nr    r  r   r   )r9   r3  r   r   )rm   r  expected_meanr  s       r3   r  zTestArgus.test_mean%  s)     KKS*=u5r5   zchi, expected_var, rtol))r    gLH'B?r   )rZ   go$?r  )rw  g
=>r&  )rx  g2W>r&  )r  gb~P>r&  c                 b    t         j                  j                  |d      }t        |||       y )Nr    r  r   )r9   r3  r8  r   )rm   r  expected_varr   r  s        r3   r  zTestArgus.test_var%  s&     KKOOCqO)<d3r5   zchi, expected, rtol))r   gwM?r  )rv   gj?r  )rW   gHEA`!?r  )rx   gcف>r~   )r  gF=r  )r  g߹Q#B=r  )rp  g0ޟ<r  )r  g*W%:r~   c                 2    t        t        |      ||       y r  )r   r$   )rm   r  rR   r   s       r3   test_argus_phi_small_chiz"TestArgus.test_argus_phi_small_chi%  s     	
3=r5   zchi, expected))rv   )g-\/?g+p7c?g5Ϧ\?)rK  )g
f?gi{?ٸ?gZ@7?)rW   )gB	?g]?gR{?)rx   )glͅw?g,?g[Z=?)r  )gz,?g]?gѪ1?)r  )g8<?gE-?gI?)rp  )g~7?g7B.?g9?)r  )g;?g9B.?g}5?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrW   rv   r   r   r   )rd   r   r   r9   r3  rc   rm   r  rR   rY   s       r3   test_pdf_small_chizTestArgus.test_pdf_small_chi%  -     HH_%3/Fr5   ))rv   )gQ߹?e?grJ,?g򺗄?)rK  )gΎd?g?gh?)rW   )g|
o?gvb?g+@?)rx   )g̈́On?ge?gC|[3?)r  )g!?m?g{jiH?gu53?)r  )g~m?g0-.?g3?)rp  )g~m?g7;B.?gŗ3?)r  )g~m?g9B.?gŗ3?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrC  r  r   )rd   r   r   r9   r3  r   rD  s       r3   test_sf_small_chizTestArgus.test_sf_small_chi%  s-     HH_%q#.uEr5   zx, chi, expected))P?rf  g;=)rI  r  g[$7>)rO  r}  g=~L]=)rO  r  gD,G
'=c                 `    t         j                  j                  ||      }t        ||d       y r  )r9   r3  r   r   )rm   rY   r  rR   r   s        r3   test_sf_near_1zTestArgus.test_sf_near_1 &  s$     [[^^As#H51r5   ))rv   )g+&?gk?gμm/?)rK  )g?CL\f?g^N?g]AͭR?)rW   )ga>$?g;Lf?gaW?)rx   )gx?g 43n?gwY?)r  )go7🤎?g
+-oGn?gIQ9Y?)r  )gT?gGn?g@̋Y?)rp  )gU?g{Gn?giG͋Y?)r  )gDU?g {Gn?gH͋Y?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrC  r  r   )rd   r   r   r9   r3  rk   rD  s       r3   test_cdf_small_chizTestArgus.test_cdf_small_chi&  rF  r5   ))rv   )gQ)?g6{?r  )gB`"۹?)g?g8%?r  )rW   )g388?gV%?r   )rx   )g*j?gRS%?r   )r  )g!|?gZ%?r   )r  )gy[|?gG%?r   )rp  )g"3|?gW%?r   )r  )g!3|?gW%?r   c                 b    t         j                  j                  |d      }t        |||       y )Nr  r  r   )r9   r3  r   )rm   r  rR   r   rC  s        r3   test_stats_small_chizTestArgus.test_stats_small_chi&  s)     kkT2XD1r5   N)r   r   r   r4  r   r   r   rD  r;  r  r  rA  rE  rH  rK  rM  rO  r;   r5   r3   r0  r0  %  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   r0  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   )rm   r  rY   r  s       r3   r  zTestNakagami.test_logpdf+&  s/     ~~$$Q+12r5   c                     d}d}t         j                  j                  ||      }t        |dd       t         j                  j	                  ||      }t        ||d       y )Nr}  rO  g"S+:r   r   )r9   rS  r   r   r  )rm   r  r  r   ri  s        r3   r  zTestNakagami.test_sf_isf<&  sS     ^^r2&1>^^B'BU+r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr  rv   gUiּr  r   )r9   rS  r  r   )rm   rY   r  r  r  s        r3   r  zTestNakagami.test_logcdfO&  s3    %&&q"-%0r5   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr@  rP  gD&`Ur  r   )r9   rS  r  r   )rm   rY   r  r  r  s        r3   r  zTestNakagami.test_logsfW&  s3    %$$Q+s/r5   zm, ref))r   g|Bd븿)rv   r  )rZ   g/ۿc                 Z    t        t        j                  j                  |      |d       y )Ng^~z=r   r   r9   rS  rA   rm   r  r  s      r3   rk  zTestNakagami.test_entropy_&  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 rp   rX  rY  s      r3   test_extreme_nuzTestNakagami.test_extreme_nuq&  s    
 	..q137r5   c                     t        j                  t        j                  j	                  d            sJ t        j                  t        j                  j	                  d            sJ y )Nr  r  )rd   r>  r9   rS  _entropyrr   s    r3   test_entropy_overflowz"TestNakagami.test_entropy_overflowx&  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   rS  r   )rm   r  r  s      r3   r  zTestNakagami.test_mean|&  s     	++B/5Ar5   z+Fit of nakagami not reliable, see gh-10908.rT  r  )r  r}  r   r_   )ry   rZ   r_
  r`   )r  r   r  c                   
 d
t         j                  j                  
|||d      t         j                  j                        \  }}}t	        ||d       t	        ||d       t	        ||d       fd}
fd}
fd}	t	         ||||      d	d
       t	         ||||      d	d
       t	         |	|||      d	d
       y )Nr[   9  r   r  r_   r`   r   rK  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    ra   rd   rg  )r  r_   r`   rH  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   ra   )rd   r  r   rg  r  r_   r`   r,  rH  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   ra   r   rd  rg  s      r3   dlogl_dscalez+TestNakagami.test_fit.<locals>.dlogl_dscale&  sF    !GbL5("fuz)BFFGcMa3G,HHI Jr5   r   r  r   )r9   rS  r   r   r   )rm   r  r_   r`   nu_estloc_est	scale_estre  rh  rj  r,  rH  s             @@r3   rp  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 )	Nrv   r[   ra  rb  r  ra   r'  r   )	r9   rS  r   r   rd   r  r  r   r   )rm   r_   r`   r  ro  rH  rk  rl  rm  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   rk  r[  r^  r  r{  rp  rq  r;   r5   r3   rQ  rQ  )&  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   rQ  c                       e Zd Zd Zd Zd Zy)TestWrapCauchyc                    t        j                  ddgddgg      }t        j                  dgdgg      }t        j                  j	                  ||      }|j
                  dk(  sJ t        j                  ||f      D cg c]%  \  }}t        j                  j	                  ||      ' }}}t        |j                         |d	       y c c}}w )
NQ?rf  rv   r   rN  r  r_  r   r   )	rd   r   r9   
wrapcauchyrk   r<  nditerr   r(
  )rm   r  rY   rp  ri  r,
  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 )Nru  rv   r  r   )r9   rv  rk   rd   re   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 )NrN  r  r   r    r   ra   )r9   rv  rk   r   rd   arctantanre   )rm   ri  rj  r  rp  crs         r3   rV  zTestWrapCauchy.test_cdf&  s      "b1-!ea!e_!bii266"Q$<8>?!a"))Brvvbeebdl/C,C"DRUU"JJKr5   N)r   r   r   ry  r{  rV  r;   r5   r3   rs  rs  &  s    
>,Lr5   rs  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;   rr   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?   rX  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   rd   r  )r  r*  rN   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
  rd   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 )	Nr{   rN  rz   r  r  r  )r   r  )r   r9   r  r8  rd   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 rp   )r   r9   cosinerk   r   )rY   rR   s     r3   test_cosine_cdf_sfr  &'  s6     ELL$$Q'2ELLOOQB'2r5   ))rp  gkM6O)r  g0ӭ!	)r   g;'u(@c                     t        t        j                  j                  |       |       t        t        j                  j	                  |       |        y rp   )r   r9   r  r   r  )rp  rR   s     r3   test_cosine_ppf_isfr  .'  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   rd   re   r   )r  s    r3   test_cosine_logpdf_endpointsr  7'  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 rp   )r!   r>  rE   r"   r   r   )r  r   discrete_distnamesinvdiscrete_distnamescont_distnamesinvcont_distnamess         r3   test_distr_params_listsr  >'  s     /; 474'c2  4 41@AgdATAA!6666*23wtQd3N3-89'$99....4A 49s   B BB)Bc                      t         j                  j                  dd       t         j                  j                  dd      dk(  sJ t         j                  j	                  dd      dk(  sJ y )Nr   rV   rk  r   )r  r1   r  )r9   r  _statsr  r  r;   r5   r3   test_moment_order_4r  L'  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  rs  s     r3   ROOT_pdf_sample_dataz'TestRelativisticBW.ROOT_pdf_sample_dataa'  sL     wwN!!;<
 vv  /@ Ar5   zrho,gamma,rtol))qVEB@gj+@rI  )FC@Gz @r  )ND@_LU?r  c                     ||d   |k(  |d   |k(  z     }|d   |d   }}t        |t        j                  j                  |||      |       y )Nrhor  rY   rc   r  r   )r   r9   rel_breitwignerrc   )rm   r  r  r  r   r   rY   rc   s           r3   test_pdf_against_ROOTz(TestRelativisticBW.test_pdf_against_ROOTt'  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 rm  )rd   r  re   )Er  Gammar  rV   s        r3   rc   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@  r4  rZ   r  r   )rd   rS  r9   r  r   rc   r   )	rm   r  r  r   rc   rp  rY   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   r   ra   rK  r   r    r;  rx   N)rd   r   r   r9   r  r   r   r   )rm   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  `'  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   rL  r   )rm   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  )rd   rS  r9   truncparetorc   r  rk   r   )rm   r2   r  rY   r   r  s         r3   rL  zTestTruncPareto.test_pdf'  sr    1KKS!1%))!,ll1o!!!$u||A':':1'==S!r5   r   TFr7  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  )rd   r   r   r9   r  r   r   r   r  r   r   )rm   r   r7  r  r  r   r2   r  r_   r`   rN   r   r   rY  s                 r3   rp  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   rL  r   r   r   rp  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    rv   g     j@)r9   kappa3rk   r   r   )rm   sf0rq  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    rZ   c                 N    t        | j                  j                  d      d       y )Nr  )r   g?r   gQ)r   ih10r9   rr   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    r7  g2⍚H)r  r  r  r  r   )rm   rB  ro  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    r[   rZ   maxulp)rd   rS  unifrc   ih1r   )rm   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 )Nra   rX   r   r    rZ   r  )r9   r  rd   rS  rc   r   )rm   ih2nptsr  rR   pdf_ih2s         r3   test_pdf_ih2_trianglez#TestIrwinHall.test_pdf_ih2_triangle(  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  )rd   rS  r  rk   r  r   )rm   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    rZ   ra   rv   r  )rd   r  r9   r  rk   r  r  r   )rm   ro  ihih_cdfexacts        r3   rV  zTestIrwinHall.test_cdf1(  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{Ȇ?rv   g&M?g׈Y?gB?gDl?r    r  rZ   r  rW   g+|<rN  g#@)r   r  rk   rd   r  r8  s      r3   test_cdf_ih10_exactz!TestIrwinHall.test_cdf_ih10_exact:(  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  rZ   r  )r   r  rc   rd   r  r  s     r3   test_pdf_ih10_exactz!TestIrwinHall.test_pdf_ih10_exactJ(  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    rN  rW   rZ   r  )r   r  r   rd   r  rk   r   )rm   r  s     r3   test_sf_ih10_exactz TestIrwinHall.test_sf_ih10_exactQ(  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  rV  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   rZ  r  ra   g6Z?g@#
?)r9   dpareto_lognormrd   r  r   rc   rk   )rm   rY   r  rH   r1   r2   rN   s          r3   test_against_Rz!TestDParetoLognorm.test_against_R[(  sc     ,1aA$$Q1a0


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


""488A;0CDr5   N)r   r   r   r  r;   r5   r3   r  r  Z(  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 )	Nrv   iir   r  rh  r    r  )
rd   r(  r(  r9   r  r   r  r   r  r   )r  r  lp1lp2r   r   lpmrN   r  dist_frozenr  r   s               r3   test_sf_isf_overridesr  o(  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   rp   )NF(  r  rq  r  r  r  pathlibr   r
  r
  rH  numpy.testingr   r   r   r   r   r	   r
   r   r   r   r   r   r   rX  numpyrd   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  rK  rz  r  r4   r<   rS   rU   r   r  r   r   r+  r-  rX  r  r  r  r  r  r  r/  r;  rb  r  r  r  r  r  r
  r  r$  r+  rD  rI  r\  rf  rz  r  r  r$  rH  rS  rV  r  r  r  r  r  r  r-  r;  rc  rm  rz  r  r  r  r  r  r  r  r  r  r@  rs  r{  r  re   r  r  r  r  r  r  r  r%  r)  r-  r8  rE  r}  r  r  r  r  r  r  r  r  r  r  r  r  r	  rn	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r5
  r:
  rA
  rH
  r[
  rc
  r
  r
  r
  ry  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&  r0  r?   r2  r9  r>  rD  rH  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r!  r#  r0  rQ  rs  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T> >*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T# T#nt: t:nUO UOp< <~'* '*TO@ O@d/ /2!, !,HME ME`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B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& &>$ $*W+ W+t) ) , mG mG`e, e,Pw; w;t]H ]H@", ",JB& B&J6 68;" ;"|u0 u0p. ..SF SFl. .2J/ J/Z ?  ?Fh" h"V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L L8	 )?[+HI  J 4#26 ;467373
 784	84
0/-(W. W.t3 3 #K #KL" "]A ]A@E E*  "G H
4H
4r5   