
    bi,d                    ^   d Z ddlZddlZddlZddlZddlZddlmZ ddlZddl	Z	ddl
Z
ddlmZmZmZmZmZmZmZmZ ddlZddlmZ ddlZddlmZmZ ddlmZ ddlmZ dd	lm Z  dd
l!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,Zddl-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z= ddl>m?Z? ej                  j                  dkD  ZBej                  dk(  xr  e
j                         dk(  ZDddgZEddZFd ZGd ZH G d d      ZIddZJd ZKej                  j                  dg d       d!        ZN G d" d#      ZO G d$ d%      ZP G d& d'      ZQ G d( d)      ZR G d* d+      ZS G d, d-      ZT G d. d/      ZU G d0 d1      ZV G d2 d3      ZW G d4 d5      ZX G d6 d7      ZY G d8 d9      ZZ G d: d;      Z[ G d< d=      Z\ G d> d?      Z] G d@ dA      Z^ G dB dC      Z_ G dD dE      Z` G dF dG      Za G dH dI      Zb G dJ dK      Zc G dL dM      Zd G dN dO      Ze G dP dQ      Zf G dR dS      Zg G dT dU      Zh G dV dW      Zi G dX dY      Zj G dZ d[      Zk G d\ d]      Zl G d^ d_      Zm G d` da      Zn G db dc      Zo G dd de      Zp G df dg      Zq G dh di      Zr G dj dk      Zs G dl dm      Zt G dn do      Zu G dp dq      Zv G dr ds      Zw G dt du      Zx G dv dw      Zy G dx dy      Zz 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                  jm                  eB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j4                  d$d%g      fd& ej4                  d'd(g      fd) ej4                  d*d+g      fd, ej4                  d-d.g      fg      d/        Z̐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                  jm                  eB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                  dve6e3z         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_array_lessassert_array_max_ulp)raises)	typecodesarray)rec_append_fields)special)check_random_state)IntegrationWarningquad	trapezoidcumulative_trapezoid)
argsreduce)_XMAX)xlogy	polygammaentr)distcontinvdistcont   )distdiscreteinvdistdiscrete)FitDataError
_argus_phi)rootfmindifferential_evolution)productdarwinx86_64tukeylambdapearson3c                 D    ||  d| }t        t        | |      |       y )Nz does not have attribute msg)r	   hasattr)abr,   s      _/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattrr1   5   s(    
{,QC0GAqMs#    c                  L    t        t        j                  j                  d       y )Nf_gen)r1   scipystatsdistributions r2   r0   test_api_regressionr9   ;   s    EKK--w7r2   c                     t        t        j                  j                  j                        } t
        D cg c]  }|d   	 }}t        D cg c]  }|d   	 }}g d}||z   |z   }t        t        d |            }| |k(  sJ y c c}w c c}w )Nr   )rv_discreterv_continuousrv_histogramentropyc                 8    t        |       j                  d       S )N<)str
startswithss    r0   <lambda>z.test_distributions_submodule.<locals>.<lambda>J   s    A(9(9#(>$> r2   )setr5   r6   r7   __all__r   r   filter)actualdist
continuousdiscreteotherexpecteds         r0   test_distributions_submodulerO   @   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            	       x   e Zd 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')(TestVonMisesc                 L    t         j                  j                  d      | _        y )Nl   Exq nprandomdefault_rngrngselfs    r0   setup_methodzTestVonMises.setup_methodP       99((4r2   k)皙?r   e   xr   r   
   d   c                     d }d } ||dd|        ||dd|        ||dd|        ||dd|        ||dd|        ||dd|       y )Nc                     t        j                  | ||      }t        |j                  |      |j                  |dt        j
                  z  |z  z               y )Nlocscale   )r6   vonmisesr   pdfrT   pir\   LrD   r_   vms        r0   check_vonmises_pdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicV   s@    q2Bq	266!q255y1}2E+FGr2   c                     t        j                  | ||      }t        |j                  |      dz  |j                  |dt        j
                  z  |z  z        dz         y )Nrd   r   rg   )r6   rh   r   cdfrT   rj   rk   s        r0   check_vonmises_cdf_periodiczHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicZ   sM    q2Bq	A "qAIM': ;a ?Ar2   r   r   r`   r8   )rY   r\   r_   rn   rq   s        r0   test_vonmises_periodicz#TestVonMises.test_vonmises_periodicS   sd    	H	A
 	$Aq!Q/#Aq!Q/#Aq"a0#Aq!Q/#Aq!Q/#Aq"a0r2   c                     t        t        j                  j                  t        j
                          t        t        j                  j                  t        j
                         y N)r   r6   vonmises_liner.   rT   rj   r/   rX   s    r0   test_vonmises_line_supportz'TestVonMises.test_vonmises_line_supportg   s8    U((**RUUF3U((**BEE2r2   c                 d    t        j                  d      }t        |j                  d      d       y )N   r         ?)r6   rh   r   rp   )rY   rm   s     r0   test_vonmises_numericalz$TestVonMises.test_vonmises_numericalk   s"    ^^C BFF1Is+r2   zx, kappa, expected_pdf))r]   {Gz?g|65?)r]         9@g?U?)r]   rx   g"?)       @r{   gDfI?)r}   r|   g1<)r}   rx           c                 `    t         j                  j                  ||      }t        ||d       y NV瞯<rtol)r6   rh   ri   r   )rY   r_   kappaexpected_pdfri   s        r0   test_vonmises_pdfzTestVonMises.test_vonmises_pdfy   s&     nn  E*\6r2   zkappa, expected_entropy))r   gA	?)   g,eޞ?)ra   gBb9d22)  g
G )  gc                 ^    t         j                  j                  |      }t        ||d       y NvIh%<=r   )r6   rh   r>   r   )rY   r   expected_entropyr>   s       r0   test_vonmises_entropyz"TestVonMises.test_vonmises_entropy   s%     ..((/!1>r2   c                 L   d}t         j                  j                  |      }t         j                  j                  |      }t         j                  j                  |      }t        j                  ddd      j                  |      }t        j                  ddt         j                  z  d      j                  |      }t        j                  dddt         j                  z  t        |      z  dz         j                  |      }t        ||d       t        ||d       y )	Ni@}r   r   rd   random_staterg   r   atol)	rT   rU   rV   r6   rh   rvsrj   absr   )rY   seedrng1rng2rng3rvs1rvs2rvs3s           r0   test_vonmises_rvs_gh4598z%TestVonMises.test_vonmises_rvs_gh4598   s    yy$$T*yy$$T*yy$$T*~~aQa044$4G~~aQruuWA6:::M~~aQ%&ruuWSY%6q%8;;>3D3;Q 	d/d/r2   zx, kappa, expected_logpdf))r]   r{   gEJ?)r]   r|   goι?)r]   rx   g0,)r}   r{   gdty)r}   r|   gʹw[A)r}   rx   gc                 `    t         j                  j                  ||      }t        ||d       y r   )r6   rh   logpdfr   )rY   r_   r   expected_logpdfr   s        r0   test_vonmises_logpdfz!TestVonMises.test_vonmises_logpdf   s&     &&q%0e<r2   c                    t         j                  j                  d      }|j                  d      dz  \  }}}t        j                  ||      j                  d       }t        |d       t        j                  |j                  t         j                        sJ ||dt         j                  z  z   f} t        j                  ||      j
                  d g| }t        |d       t        j                  |j                  t         j                        sJ ||dt         j                  z  z   f} t        j                  ||      j
                  d	 g|d
di}t        t        j                  |      |dt         j                  z  z         t        j                  |j                  t         j                        sJ y)a   
        Test that the vonmises expectation values are
        computed correctly.  This test checks that the
        numeric integration estimates the correct normalization
        (1) and mean angle (loc).  These expectations are
        independent of the chosen 2pi interval.
           kD +xNn    r`   re   r   c                      yNr   r8   r_   s    r0   rE   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>       r2   r   rg   c                      yr   r8   r   s    r0   rE   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   r   r2   c                 2    t        j                  d| z        S )Ny              ?)rT   expr   s    r0   rE   z3TestVonMises.test_vonmises_expect.<locals>.<lambda>   s    BFF2a4L r2   complex_funcN)rT   rU   rV   r6   rh   expectr   
issubdtypedtypefloatingrj   anglecomplexfloating)rY   rW   re   r   lbresboundss          r0   test_vonmises_expectz!TestVonMises.test_vonmises_expect   sU    ii##$78A+UBnnE299+FQ}}SYY444R!bee)^#9ennE299+OOQ}}SYY444R!bee)^#9ennE299:P S;ASPQSsag7}}SYY(:(:;;;r2   rvs_locrg   	rvs_shape)r   ra       ח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   sizere   r   fscaler   flocf0)
pytestskiprT   rU   rV   r6   rh   r   _assert_less_or_close_loglikennlf)rY   r   r   r   r   rW   datakwdss           r0   test_fit_MLE_comp_optimizerz(TestVonMises.test_fit_MLE_comp_optimizer   s     KK)*ii##$78~~!!)$G/2 " 4 !}"DL"DJ%ennd&+nn&9&9	C=A	Cr2   c                 b   g d}t        j                  |      }dt         j                  z  }t        j                  j                  ||      \  }}}|t        j                  t              j                  k(  sJ t        t        j                  |t        j                  j                  d|       y )N)g!*Kg4,%OԿgZ۵?g
ge_@g-8gPghn?g<t?g.6@gjb?g0]o@g݅ZgSsgx7W?g%H?g65Jg:m2?g@g;,gM^lsF      ࿩r   r   )r   r   )rT   asarrayrj   r6   rh   fitfinfofloattinyr   r   )rY   r   re   	kappa_fitloc_fit	scale_fits         r0   test_vonmises_fit_bad_flocz'TestVonMises.test_vonmises_fit_bad_floc   s    M zz$RUUl(-(:(:4c(:(J%	7IBHHUO00000%ennd&+nn&9&9!#	Or2   signc                 
   t         j                  j                  d      }t        j                  |dz  t         j
                  z  d      j                  d|      }|dt         j
                  z  z   }t        j                  j                  |      \  }}}t        j                  j                  |      \  }}	}
t        ||	       t        ||       |dk(  sJ t         j
                   |cxk  rt         j
                  k  sJ  J y )	Nr   ry   r`   r   順 r      r   )	rT   rU   rV   r6   rh   rj   r   r   r   )rY   r   rW   r   shifted_datar   r   r   kappa_fit_shiftedloc_fit_shifted_s              r0    test_vonmises_fit_unwrapped_dataz-TestVonMises.test_vonmises_fit_unwrapped_data   s    ii##$78~~$s(255.;??MP @ Rag~(-(:(:4(@%	7I050B0B<0P-?A1	#45A~~v'"%%'''''r2   c                    t        j                  d      }t        |j                  d      ddt        j
                  z  z  d       t        |j                  t        j
                  dz        dd       t        |j                  t        j
                   dz        dd       t        |j                  d      t        j
                  dz  d       t        |j                         dd	       t        |j                         dd	       t	        j                  t	        j                  |j                  d
| j                              t        j
                  k        sJ y )Nr   r   rg   r   r         ??皙?r   r`   r   r   )r6   rh   r   ri   rT   rj   rp   sfppfmeanr   allr   r   rW   )rY   rJ   s     r0   test_vonmises_kappa_0_gh18166z*TestVonMises.test_vonmises_kappa_0_gh18166   s    ~~a Q!bee)_5Aq)4e<q)4e<ruuSyu=		QU3qu5vvbffTXX2DHHXEF"%%OPPPr2   c                 n    t         j                  j                  dg      \  }}}|dk(  r
|dk(  r|dk(  sJ y )Nr   g 7yACr   )r6   rh   r   )rY   r   re   rf   s       r0   test_vonmises_fit_equal_dataz)TestVonMises.test_vonmises_fit_equal_data	  s:    !NN..s3sE}eqj88jr2   c                     t         j                  j                  j                  ddgd       t         j                  j                  j                  t        j
                  dz  dz  gd       y )Nr   gl=c>r   rg   gd?)r5   r6   rh   r   rT   rj   rX   s    r0   test_vonmises_fit_boundsz%TestVonMises.test_vonmises_fit_bounds  sT     	  !WA 6 	  "%%'9"5!6Q ?r2   N)__name__
__module____qualname__rZ   r   markparametrizerT   rj   rr   rv   rz   r   r   r   r   r   xslowr   slowr   r   r   r   r   r8   r2   r0   rQ   rQ   O   s   5 [[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-
( .
(	Q9
@r2   rQ   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typerT   anyallclose)	rJ   r   funcmaybe_identicalr   mle_analyticalnumerical_optll_mle_analyticalll_numerical_opts	            r0   r   r     s     |yyTXXd+d+N$t*d/==M
 vvn5666^T2M40!11KK)+;%HJ I
 ~b!T&\1114b!T(^333 r2   c           
         ddg}| j                   r.t        | j                   j                  d            }|g dd | z  }t        t	        |t        j                  t        |                        }g d}t        j                  t        d      5   | j                  |fi | d d d        t        j                  t        d      5  | j                  t
        j                  g       d d d        t        j                  t        d      5  | j                  t
        j                  g       d d d        t        j                  t        d	      5  | j                  |d
       d d d        t        j                  t        d      5   | j                  |gdgt        |      dz
  z    d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   vxY w# 1 sw Y   y xY w)Nr   r   ,)r   f1f2r   rg   r   3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:rg   )extra_keywordzToo many positional arguments.r   )shapeslensplitdictziprT   aranger   r   RuntimeErrorr   
ValueErrornaninf	TypeError)rJ   paramnshapes	all_fixedr   s        r0   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,rJ   )alpha	betaprimefatiguelifeinvgammainvgauss
invweibull	johnsonsblevylevy_llognormgibratpowerlognormrayleighwaldc                    t        t              }||    }t        t        |       } t	         | j
                  | j                  g| d       t         | j                  | j                  g| t        j                          t	         | j
                  | j                  g| d       t         | j                  | j                  g| t        j                          y)zgh-6235r   N)r  r   getattrr6   r   ri   r.   r   r   rT   r  r/   )rJ   dctargss      r0   test_supportr+  U  s     x.Ct9D5$D/$/3TVV+d+bffW5/$/3TVV+d+bffW5r2   c                   $    e Zd Zd Zd Zd Zd Zy)TestRandIntc                 L    t         j                  j                  d      | _        y )Nl   {2 rS   rX   s    r0   rZ   zTestRandInt.setup_methodh  r[   r2   c                    t         j                  j                  ddd| j                        }t	        t        j                  |dk        t        j                  |dk\        z         t	        t        |      dk(         t         j                  j                  ddd| j                        }t	        t        j                  |      dk(         t	        |j                  j                  t        d   v        t         j                  j                  dd| j                  	      }t	        |dk\  |dk  z         t	        t        |t
        j                        t        t        |            
       t        j                  dd      j                  d| j                  	      }t	        |j                  j                  t        d   v        y )Nr      ra   r   rg   2   
AllInteger   .   r   r+   r   )r6   randintr   rW   r	   rT   r   r  shaper   charr   
isinstance
ScalarTypereprr   rY   valsvals      r0   test_rvszTestRandInt.test_rvsk  s:   }}  BStxx Htby!BFF419$556D	S !}}  BW488 L')*

9\#::;mmBTXX>sRx()
3.DcODmmB#'''A		)L"99:r2   c                     t         j                  dd }t        j                  |dk\  |dk  z  dd      }t        j                  j                  |dd      }t        ||       y )Nr   $   r   r0  {Gz?)rT   r_wherer6   r6  pmfr   )rY   r\   outr=  s       r0   test_pdfzTestRandInt.test_pdfx  sR    EE!BKhhQ1r6*J:}}  Ar*!$,r2   c                    t        j                  ddd      }t        j                  |      }t        j                  |dk\  |dk\  gd|dz
  dz   d	z  gd      }t        j
                  j                  |dd      }t        ||d
       y )Nr   rA  ra   r0  r         ?      @r   r|      decimal)rT   linspacefloorselectr6   r6  rp   r   )rY   r_   r\   rF  r=  s        r0   test_cdfzTestRandInt.test_cdf~  sv    KK2s#HHQKiib!q&)C!C%'F1C+DaH}}  Ar*!$R8r2   N)r   r   r   rZ   r?  rG  rQ  r8   r2   r0   r-  r-  g  s    5;-9r2   r-  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)	TestBinomc                 L    t         j                  j                  d      | _        y )Ni&8jrS   rX   s    r0   rZ   zTestBinom.setup_method  r[   r2   c                    t         j                  j                  ddd| j                        }t	        t        j                  |dk\        t        j                  |dk        z         t	        t        j                  |      dk(         t	        |j                  j                  t        d   v        t         j                  j                  dd| j                        }t	        t        |t                     t        j                  dd      j                  d| j                        }t	        t        |t
        j                               t	        |j                  j                  t        d   v        y 	Nr`   r   r1  r   r   r3  r   r   )r6   binomr   rW   r	   rT   r   r7  r   r8  r   r9  intndarrayr<  s      r0   r?  zTestBinom.test_rvs  s    {{r4gDHHMtqy!BFF42:$667')*

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

+,		)L"99:r2   c                     t         j                  j                  ddd      }t         j                  j                  ddd      }t        |ddd       t        |ddd       y )Nra   r   r   rI  r   r   r   r6   rW  rE  r   )rY   vals1vals2s      r0   test_pmfzTestBinom.test_pmf  sJ    S!,3*sQ7sQ7r2   c                    t        j                  dd      }t        j                  g d      }t	        t        ||             }|j                         }t        ||       t        j                  dd      }|j                         }t        |d       t        j                  dd      }|j                         }t        |d       y )Nrg   ry   )      ?ry   ra  r~   rI  )	r6   rW  rT   r   sumr   r>   r   r   )rY   r/   
expected_p
expected_hhs        r0   test_entropyzTestBinom.test_entropy  s    KK3XX/0
%
J788
IIK:&KK3IIKQKK3IIKQr2   c                 F   t        j                         5  t        j                  dt               t	        t        j                  dd      j                         d       t	        t        j                  dd      j                         d       d d d        y # 1 sw Y   y xY w)Nerrorrg   r   np)	warningscatch_warningssimplefilterRuntimeWarningr   r6   rW  r   stdrX   s    r0   test_warns_p0zTestBinom.test_warns_p0  so    $$& 	9!!'>:qA.335q9qA.224a8	9 	9 	9s   A9BB c                 V    d}t         j                  j                  d|d      |k(  sJ y )Nr   333333?rI  )qrj  rk  )r6   rW  r   rY   rj  s     r0   test_ppf_p1zTestBinom.test_ppf_p1  s(    {{S1Q666r2   c                     d}d}t        j                  d      }t        j                  j	                  |||      }t        j
                  j	                  |||z        }t        ||d       y )NglyCgq]\	T3<r   ri  缉ؗҜ<r   )rT   r  r6   rW  rE  poissonr   )rY   rj  rk  r_   r   refs         r0   test_pmf_poissonzTestBinom.test_pmf_poisson  sW    "IIaLkkooa1o*mm1q5)Su-r2   c                     d}d}d}t         j                  j                  |||      }t         j                  j                  |||      }t	        ||d       y )NgJ-DgO
;r   rx  r   )r6   rW  rE  rp   r   )rY   rj  rk  rr   rz  s         r0   test_pmf_cdfzTestBinom.test_pmf_cdf  sI    kkooaA&kkooaA&Su-r2   c                 b    t         j                  j                  ddd      }t        |dd       y )Nr   r   +?r   rx  r   r\  )rY   r   s     r0   test_pmf_gh15101zTestBinom.test_pmf_gh15101  s$    kkooau-QU+r2   N)r   r   r   rZ   r?  r_  rf  rq  rv  r{  r~  r  r8   r2   r0   rS  rS    s/    5	;8 97
..,r2   rS  c                       e Zd Zd Zy)TestArcsinec                     t         j                  j                  ddg      }t        |t        j
                  t        j
                  g       y Nr   r   )r6   arcsineri   r   rT   r  rY   rk  s     r0   test_endpointszTestArcsine.test_endpoints  s3     MMq!f%Q()r2   N)r   r   r   r  r8   r2   r0   r  r    s    *r2   r  c                       e Zd Zd Zd Zd Zy)TestBernoullic                 L    t         j                  j                  d      | _        y )Nl   u7& rS   rX   s    r0   rZ   zTestBernoulli.setup_method  r[   r2   c                    t         j                  j                  dd| j                        }t	        t        j                  |dk\        t        j                  |dk        z         t	        t        j                  |      dk(         t	        |j                  j                  t        d   v        t         j                  j                  d| j                        }t	        t        |t                     t        j                  d      j                  d| j                        }t	        t        |t
        j                               t	        |j                  j                  t        d   v        y )	Nr   r1  r   r   r   r3  r   r   )r6   	bernoullir   rW   r	   rT   r   r7  r   r8  r   r9  rX  rY  r<  s      r0   r?  zTestBernoulli.test_rvs  s    ""4gDHH"Mtqy!BFF419$556')*

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

+,		)L"99:r2   c                    t        j                  d      }dt        j                  d      z  dt        j                  d      z  z
  }|j	                         }t        ||       t        j                  d      }|j	                         }t        |d       t        j                  d      }|j	                         }t        |d       y )Nra        пr   r~   rI  )r6   r  rT   logr>   r   r   )rY   r/   rd  re  s       r0   rf  zTestBernoulli.test_entropy  s    OOD!266$<'$rvvd|*;;
IIK:&OOC IIKQOOC IIKQr2   N)r   r   r   rZ   r?  rf  r8   r2   r0   r  r    s    5	;r2   r  c                       e Zd Zd Zy)TestBradfordc                     d}t        j                  dd      }t        j                  j	                  ||      }t        j                  j                  ||      }t        ||       y )Nr]   )rT   logspacer6   bradfordrp   r   r   )rY   cr_   rt  xxs        r0   test_cdf_ppfzTestBradford.test_cdf_ppf  sM    KKR NNq!$^^1%2r2   N)r   r   r   r  r8   r2   r0   r  r    s    r2   r  c                   |   e Zd Zd Z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~   )r6   cauchyri   r  s     r0   test_pdf_no_overflow_warningz'TestCauchy.test_pdf_no_overflow_warning  s#     LLU#Cxxr2   x, ref)r~   罡HP)g       r  )gIL8r  )gOd@<r  ):0yU>gHP)Mb@?gP)r]   g*6y)      ?g8@(J)g NgmCg'K@$[U)r  gonьgs32c                 h    t         j                  j                  || g      }t        |||gd       y r   )r6   r  r   r   )rY   r_   rz  logps       r0   test_logpdfzTestCauchy.test_logpdf  s.     ||""Ar7+sCju5r2   ))g 7y1gu	lY<)g^?)r   ra  )r   ry   )r   r   )r   g)nE?)g 7y1C?zmethod, sgnr   r   c                 6     |||z        }t        ||d       y r   r   )rY   r_   rz  methodsgnrk  s         r0   test_cdf_sfzTestCauchy.test_cdf_sf  s      3q5M3U+r2   ))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   )r6   r  logcdfr   logsfrY   r_   rz  r  r  s        r0   test_logcdf_logsfzTestCauchy.test_logcdf_logsf2  sF     $$Q'%0""A2&s/r2   zp, ref))#B;g8)&.>g/)ra        )ry   r~   )r   rI  )!?gqmA)g?gqJRBc                 6    | ||      z  }t        ||d       y r   r  )rY   rk  rz  r  r  r_   s         r0   test_ppf_isfzTestCauchy.test_ppf_isfA  s     q	M3U+r2   N)r   r   r   r  r   r   r   r   r  r6   r  rp   r   r  r  r   isfr  r8   r2   r0   r  r    sa    [[	#	&	%	'	$	#	#	#	#	$
$	%
	'(6(6
 [[	%	 [[
,,

A	
,,//2		 
,	,
 [[X;<0<0 [[	/	 [[
,,

A	
,,

B		!",	"	,r2   r  c                       e Zd ZdZdZd Zd Zd Zd Ze	j                  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 )Nr`   r   r   r   )r6   chir   r   CHI_SF_10_4rY   rD   s     r0   test_sfzTestChi.test_sf]  s(    IILLQ4++%8r2   c                 t    t         j                  j                  | j                  d      }t	        |dd       y )Nr   r`   r   r   )r6   r  r  r  r   rY   r_   s     r0   test_isfzTestChi.test_isfa  s(    IIMM$**A.2E*r2   c                 h    d}d}t         j                  j                  ||      }t        |dd       y )Nr  r4  gar  r   )r6   r  r  r   )rY   r_   dfr  s       r0   test_logcdfzTestChi.test_logcdfe  s/    !!!R( 6UCr2   c                 h    d}d}t         j                  j                  ||      }t        |dd       y )Nr{   r4  @y`r  r   )r6   r  r  r   )rY   r_   r  r  s       r0   
test_logsfzTestChi.test_logsfl  s-    		2&5EBr2   df, ref     @@)g  ļBgcAc                 Z    t        t        j                  j                  |      |d       y N-q=r   )r   r6   r  r   rY   r  rz  s      r0   	test_meanzTestChi.test_meany  s     			r*Ce<r2   ))-C6?gQ(݂)r   ńjɮ9?)r  gWr4'?)    _Bgr$h(?)}Ô%ITgs$h(?c                 b    t        t        j                  |      j                         |d       y r   )r   r6   r  r>   r  s      r0   rf  zTestChi.test_entropy  s!     			"--/5Ar2   N)r   r   r   r  CHI_MEAN_1000r  r  r  r  r   r   r   r  rf  r8   r2   r0   r  r  T  s     'K $M9+DC [[Y"M279:=:= [[Y;<B<Br2   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.
              rJ     Nr   rI  r}   betam)gF6Ɣ?g9nZ丘?g9b?g"i"w?g|^?g>?gG6ƴ?g9b?|^?߈܁r ?gTC?r  r  gm?gFZۤ?g
HB?gTXek?g?bȓE?gLZ;x?gJ>+=r         @)g2c}`?g>t\f?g˂q?gg'T){?gmw?g>t\?h'T)?7-h	J?u8n?A#?g:Q?r  r  r  r  gZrԢ?g߄q?g)aL?gr'O<!?g99{-w>ry   r  r  re   rf   )g3c}?g>t\?g˂?f'T)?#n?5-h	J??u8n?vL1??#?||P?g:Q?r  r  r  r  r  r  r  r  )rT   rN  r6   crystalballri   r   r   rY   X
calculatedrN   s       r0   rG  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9r2   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  rJ  r  Nr   rI  r}   r  )ghQ|
)?gj,,?gd}9?gH6?g|^?gEv?glQ|
)?gd}9?g|^?go[?gsX?g&Ռ?g~M+?gZRc?gtE_s?gi?gB?gEg?gvP
?gx훟?r   r   r  )g pr?g t\v?ge}?gݠn^?gCȘU?at\?ݠn^?~[n|D?gS4s/?2s?`qfhG?IgL?荩s?rA?IH?guk?ghi"?gP ?g.q?gs?ry   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  )rT   rN  r6   r  rp   r   r   r  s       r0   rQ  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9r2   zx, beta, m, rootref))      (@rI  r}   gI9)      "@      @      ?gy
 <)   r]   gjt?g+,)g      r}   r  gGA*?)g      >ry   rJ  g^v'?)gd~Qr  皙?g眭?c                 d    t         j                  j                  |||      }t        ||d       y )Nr  r   r   )r6   r  r   r   )rY   r_   r  r  rootrefr   s         r0   r  zTestCrystalBall.test_sf  s-     !!!$!!4G%0r2   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
        )r}   rI  r  r}   r  )r  r  r}   r	  r  )rI  rI  rI  rI  rI  r   MbP?r   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr   g
@gn(@rg   g?Җ)r   gMg'#@r   g('UHr   N)rT   r   r6   r  _munpr   r  )rY   r  r  expected_0th_momentcalculated_0th_momentnormr.   expected_1th_momentcalculated_1th_momentexpected_2th_momentcalculated_2th_momentexpected_3th_momentcalculated_3th_momentexpected_4th_momentcalculated_4th_momentexpected_5th_momentcalculated_5th_moments                    r0   test_momentszTestCrystalBall.test_moments"  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Or2   c                     t        j                  dd      }|j                         }d\  }}}t        j                  |||      }t        t        |j                  |            |      }t        ||d       y )Nrg   r   )ir0  @ Hz>r   )	r6   r  r>   rT   rN  r   r   ri   r   )rY   cbres1lohiNr_   res2s           r0   rf  zTestCrystalBall.test_entropyO  s`    q!$zz|&	BKKB"bffQi!,d.r2   N)r   r   r   rG  rQ  r   r   r   r  r  rf  r8   r2   r0   r  r    sE    <:|<:D [[	011+PZ/r2   r  c                   $    e Zd Zd Zd Zd Zd Zy)
TestNBinomc                 L    t         j                  j                  d      | _        y )Nl   \: rS   rX   s    r0   rZ   zTestNBinom.setup_method[  r[   r2   c                    t         j                  j                  ddd| j                        }t	        t        j                  |dk\               t	        t        j                  |      dk(         t	        |j                  j                  t        d   v        t         j                  j                  dd| j                        }t	        t        |t                     t        j                  dd      j                  d| j                        }t	        t        |t
        j                               t	        |j                  j                  t        d   v        y rV  )r6   nbinomr   rW   r	   rT   r   r7  r   r8  r   r9  rX  rY  r<  s      r0   r?  zTestNBinom.test_rvs^  s    ||DwTXXNtqy!"')*

9\#::;llr4dhh?
3$%ll2t$(((B
3

+,		)L"99:r2   c           	      ,   t        t        j                  t        j                  j                  ddd            t        j                  j                  ddd             t        j                  j                  j                  ddd      }t        |d       y )Ni  i  gp=
ף?r   r   )	r   rT   r   r6   r-  logpmfrE  r5   r   )rY   r>  s     r0   r_  zTestNBinom.test_pmfi  sh    u||223TBC((c48	: kk  ''1a0S!r2   c                     t         j                  j                  g ddd      }t        j                  t         j                  j                  g ddd            }t        ||       y )N)r   r   r   r   333333@?ri  )r6   r-  r  rT   r  rp   r   rY   r=  rz  s      r0   test_logcdf_gh16159zTestNBinom.test_logcdf_gh16159q  sK    ||""<3$"?ffU\\%%lcT%BCc"r2   N)r   r   r   rZ   r?  r_  r4  r8   r2   r0   r*  r*  Z  s    5	;#r2   r*  c                   
   e Zd Zd Zej
                  j                  d        Zej
                  j                  d        Zej
                  j                  d        Z	ej
                  j                  d        Z
d Zd Zd Zd	 Zy
)TestGenInvGaussc                 L    t         j                  j                  d      | _        y )Nl   n rS   rX   s    r0   rZ   zTestGenInvGauss.setup_methody  r[   r2   c                     t        j                  dd      }t        j                  |j                  d| j                        |j
                        \  }}t        |dkD  d       y )Nffffff@r    r   皙?Tr6   geninvgausskstestr   rW   rp   r   rY   gigr   rk  s       r0   test_rvs_with_mode_shiftz(TestGenInvGauss.test_rvs_with_mode_shift|  M     S)||CGGDHHGEswwO1QXt$r2   c                     t        j                  dd      }t        j                  |j                  d| j                        |j
                        \  }}t        |dkD  d       y )Nr   r   r:  r   r;  Tr<  r?  s       r0   test_rvs_without_mode_shiftz+TestGenInvGauss.test_rvs_without_mode_shift  sM     T*||CGGDHHGEswwO1QXt$r2   c                     t        j                  dd      }t        j                  |j                  d| j                        |j
                        \  }}t        |dkD  d       y )Nr]   皙?r:  r   r;  Tr<  r?  s       r0   test_rvs_new_methodz#TestGenInvGauss.test_rvs_new_method  rB  r2   c                       fd}t         |dd      d       t         |dd      d       t         |dd      d       y )Nc                     t        j                  | |      }|j                  dj                        }t        j                  ||j
                        d   dkD  S )Nr:  r   r   r;  )r6   r=  r   rW   r>  rp   )rk  r/   r@  r   rY   s       r0   my_ks_checkz4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_check  sJ    ##Aq)C''t$((';C<<SWW-a0477r2   r   rF  Tr   r  )r   )rY   rJ  s   ` r0   test_rvs_p_zerozTestGenInvGauss.test_rvs_p_zero  s=    	8
 	[C($/[C($/[C($/r2   c                     t        t        j                  dd      j                  dd      dt        j                  dd      j                  dd      z         y )N      rg   r`     r   r   r  )r   r6   r=  r   rX   s    r0   test_rvs_negative_pz#TestGenInvGauss.test_rvs_negative_p  sP    !!$*..BT.JE%%c1-11r1MM	Or2   c                    t         j                  j                  dddd      }t        t        j                  |ddg      d   dkD  d	       d
t        j                  ddd      }}t         j                  j                  |dd|z  |      }t        |t        j                  |      j                  |             t         j                  j                  |dd|z  |      }t        |t        j                  |      j                  |             y )Nr:  r   r   iFPW)r   rk  r/   r   r  r*  333333?Tra   r{   r`   )rk  r/   rf   )r6   r=  r   r   r>  rT   rN  ri   r   r  rp   )rY   igmur_   pdf_igcdf_igs         r0   test_invgausszTestGenInvGauss.test_invgauss  s    ""
"SU\\"js;A>EtLR[[q"-A""&&qDAF"&Er 2 6 6q 9:""&&qDAF"&Er 2 6 6q 9:r2   c                     t        j                  g d      }t        j                  ddd      }t        |t        j
                  j                  |dd             y )N)
g;g8y8?g\}Z?ghܲ<?g&Khdd?g7!L?g	Cf?g_诱?g>0|?gRq?r{   r   r`   ry   r   )rT   r   rN  r   r6   r=  ri   )rY   vals_Rr_   s      r0   
test_pdf_RzTestGenInvGauss.test_pdf_R  sJ      , - KKa$ 1 1 5 5aa @Ar2   c                     t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       y )Nr   ry   g    >Ar2  rg   )r   r6   r=  ri   rX   s    r0   test_pdf_zerozTestGenInvGauss.test_pdf_zero  sB    U&&**1c37; 	U&&**3A6:r2   N)r   r   r   rZ   r   r   r   rA  rD  rG  rK  rO  rW  rZ  r\  r8   r2   r0   r6  r6  x  s    5 [[% % [[% % [[% % [[0 0O	;	B;r2   r6  c                       e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	d Z
d	 Zd
 Zd Zd Zd Zy)TestGenHyperbolicc                     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?rg   rg   r   ry   r  rd   r`   r   r   r   r   )rT   r   r6   genhyperbolicrN  r   ri   
rY   rY  lmbdar  r  rT  deltar*  ghr_   s
             r0   
test_pdf_rzTestGenHyperbolic.test_pdf_r  s~        %ud	EuU{DJ/  $Be<KKR$q	6>r2   c                     t        j                  g d      }d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  ddd      }	t        |j                  |	      |dd	       y )
N)
g=R0W<=gEB=g#Nb>g_PG>g! 1Or?gUM?g u./?gfy?gl5\?gkV?r`  ra  rd   rb  r`   r   ư>rc  )rT   r   r6   rd  rN  r   rp   re  s
             r0   
test_cdf_rzTestGenHyperbolic.test_cdf_r  s~        %ud	EuU{DJ/  $Be<KKR$q	6=r2   zx, p, a, b, loc, scale, ref)
)rg   r   r  ry   r  g8ɹvF(;)rm  r`   r  ra  r   r   g[Ϡ?)rm  r`   r  g      ?r   r   g ✝`D;)rm        ?r  ):?r   r   gdL;)r   rn  r  ro  r   r   gzK^7?)r         r  ro  r   r   gj?)r   rp  r     r   r   ga=vG:)r  rp  r   rq  r   r   g?)(   rp  r   rq  r   r   g1bV?)<   rp  r   rq  r   r   g?c                 j    t         j                  j                  ||||||      }t        ||d       y Nrd   dy=r   )r6   rd  rp   r   )	rY   r_   rk  r.   r/   re   rf   rz  rp   s	            r0   test_cdf_mpmathz!TestGenHyperbolic.test_cdf_mpmath  s3     !!%%aAqc%GSu-r2   ))r   rk  rK  r   r   r   gC!,?)r   r         @      @r   r   g,Ћf?)r  r   rx  ry  r   r   rI  )   rg   r   r  ry   r  gm"چ>),  r`   r  ra  r   r   g:;)rs  rp  r   rq  r   r   gw=)K   rp  r   rq  r   r   g3Z0&K<c                 j    t         j                  j                  ||||||      }t        ||d       y ru  )r6   rd  r   r   )	rY   r_   rk  r.   r/   re   rf   rz  r   s	            r0   test_sf_mpmathz TestGenHyperbolic.test_sf_mpmath  s3       ##Aq!QCu#ECe,r2   c           	          g d}d\  }}}d\  }}|||z  ||z  f}t        dd      D cg c]'  }t        j                  |||dj                  |      ) }	}t	        |	|dd	       y c c}w )
N)g@쐧@g@쐧 @g܊B@gvGăi@r`  ra  r   r   rd   r   r   rc  )ranger6   rd  momentr   )
rY   rY  rf  r  r  rT  rg  r*  ivals_uss
             r0   test_moments_rz TestGenHyperbolic.test_moments_r  s    5 %ud	EuU{DJ/ 1a[ 2U;BB1E 
 	ae<s   ,A'c                     d\  }}}d\  }}|||z  ||z  f}t        j                  |||d}t        j                  |j                  dd      |j                        \  }}	t        |	dkD  d       y )	Nr`  ra  rd   r:  rN  r   r;  T)r6   rd  r>  r   rp   r   )
rY   rf  r  r  rT  rg  r*  rh  r   rk  s
             r0   r?  zTestGenHyperbolic.test_rvs,  st     %ud	EuU{DJ/  $Be<||BFF4F@"&&I1QXt$r2   c                 6   t        j                  ddd      }t        j                  |d      t        j                  t         j                        j
                  z  d}}dt        j                  |      }}| dz  ||f}t        j                  |||d}t        j                  |j                  d      |j                  d      d	      d d t         j                  f   }t        |j                  |      t        j                  j                  ||      dd
       y )Nr   r0  r`   rg   r   rd   r{   Gz?r2  rk  rc  )rT   rN  float_powerr   float32epssqrtr6   rd  r   newaxisr   ri   t)	rY   r  r  r  rT  rg  r*  rh  r_   s	            r0   
test_pdf_tzTestGenHyperbolic.test_pdf_t9  s    [[B# nnR+BHHRZZ,@,D,DDatrwwr{EAud#  $Be<KKtbffTlB72::FFF1Iuww{{1b)	r2   c                    dt        j                  t         j                        j                  d}}}d\  }}|||f}t	        j
                  |||d}t        j                  |j                  d      |j                  d      d      d d t         j                  f   }t        |j                  |      t        j                  j                  |      dd	       y )
Nr   r   )r   r   rd   r{   r  r2  rk  rc  )rT   r   r  r  r6   rd  rN  r   r  r   ri   r  )	rY   rf  r  r  rT  rg  r*  rh  r_   s	            r0   test_pdf_cauchyz!TestGenHyperbolic.test_pdf_cauchyK  s    
 "288BJJ#7#;#;Qdu	Eud#  $Be<KKtbffTlB72::FFF1Iu||''*	r2   c                    t        j                  ddd      }t        j                  t         j                        j                  }d\  }}}|||z  ||z  f}t        j                  |||d}t        j                  ddd      d d t         j                  f   }t        |j                  |      t
        j                  j                  ||d      d	d
       y )Nrb  r`   )r   r   r   rd   r  r  r2  r   r   dy=rc  )rT   rN  r   r  r  r6   rd  r  r   ri   laplace)	rY   re   rg  rf  r  r  r*  rh  r_   s	            r0   test_pdf_laplacez"TestGenHyperbolic.test_pdf_laplace\  s    kk#r2& $(($uduU{DJ/   $Cu=KKR$Q

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

9\#::;jjnnTn9
3$%jj""1488"<
3

+,		)L"99:r2   c                 J   t         j                  j                  t        j                  d      d| j
                        }|j                  t        j                  k(  sJ t        j                  |t        j                  t        j                        j                  kD        sJ y )Nir   r   )r6   r  r   rT   r   rW   r   int64r   iinfoint32maxrY   r   s     r0   test_rvs_9313zTestGeom.test_rvs_9313  sh     jjnnRVVC[qtxxnHyyBHH$$$vvcBHHRXX.222333r2   c                 d    t         j                  j                  g dd      }t        |g d       y )Nr  ry   )ry   ra  rn  )r6   r  rE  r   rY   r=  s     r0   r_  zTestGeom.test_pmf  s!    zz~~i-!$(:;r2   c                 (   t        j                  t        j                  j	                  g dd            }t        j                  j                  g dd      }t        ||dd       t        j                  j                  dd      }t        |d       y )Nr  ry   r   r   r[  r   r~   )rT   r  r6   r  rE  r/  r   r   )rY   r]  r^  r>  s       r0   test_logpmfzTestGeom.test_logpmf  se    uzz~~i56

!!)S1u5q9 jj1%S#r2   c                     t         j                  j                  g dd      }t         j                  j                  g dd      }t	        g d      }t        ||       t        |d|z
         y )Nr  ry   ry   r         ?r   )r6   r  rp   r   r   r   rY   r=  vals_sfrN   s       r0   r  zTestGeom.test_cdf_sf  sM    zz~~i-**--	3/+,!$1!'1X:6r2   c                 $   t         j                  j                  g dd      }t         j                  j                  g dd      }t	        g d      }t        |t        j                  |             t        |t        j                  |              y )Nr  ry   r  )	r6   r  r  r  r   r   rT   r  log1pr  s       r0   r  zTestGeom.test_logcdf_logsf  sa    zz  C0**""9c2+,!$x(89!'288XI+>?r2   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )Nr  ry   )rI  r}   r  )r6   r  r   r   r   rY   r=  rN   s      r0   r  zTestGeom.test_ppf  s+    zz~~0#6)!$1r2   c                 \    t        t        j                  j                  dd      dd       y )Nr  rI  r  r   )r   r6   r  r   rX   s    r0   test_ppf_underflowzTestGeom.test_ppf_underflow#  s    

ue4cFr2   c                 f    t        j                  d      j                         }t        |dd       y )Ng<,Ԛ?g۩@r   r   )r6   r  r>   r   )rY   re  s     r0   test_entropy_gh18226zTestGeom.test_entropy_gh18226'  s(     JJv&&(,59r2   c                     t         j                  j                  d      }t        j                  j                  dd|      dkD  j                         sJ y )NiKH9r`   r   r   )rT   rU   RandomStater6   r  r   r   )rY   r   s     r0   test_rvs_gh18372zTestGeom.test_rvs_gh18372-  sB     yy,,Y7

u2LIAMRRTTTr2   N)r   r   r   rZ   r?  r  r_  r  r  r  r  r  r  r  r8   r2   r0   r  r    s<    5	;4<7@2
G:Ur2   r  c                       e Zd Zd Zd Zy)
TestPlanckc                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )Nr  rJ  )g|dy?g8'\>ggrU!>)r6   planckr   r   r   r  s      r0   r  zTestPlanck.test_sf7  s1    ||y"- 2 3 	"$1r2   c                 z    t         j                  j                  g dd      }t        g d      }t	        ||       y )N)r       @@     p@r  )g    P.g    h>g    TF)r6   r  r  r   r   r  s      r0   r  zTestPlanck.test_logsf>  s.    ||!!"7?:;!$1r2   N)r   r   r   r  r  r8   r2   r0   r  r  5  s    22r2   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestGennormc                     g d}t         j                  j                  |d      }t         j                  j                  |      }t	        ||       y Nr  r   )r6   gennormri   r  r   rY   pointspdf1pdf2s       r0   test_laplacezTestGennorm.test_laplaceE  s;    }}  +}}  (D$'r2   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y Nr  rg   g;f?rf   )r6   r  ri   r  r   r  s       r0   	test_normzTestGennorm.test_normL  s=    }}  +zz~~fF~3D$'r2   c                    t        j                  d      }t        j                  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 )
Nry       r   r   r]   r   rg   g;f?rf   r   r   )r6   r  rT   rU   rV   r   r>  rp   pvaluer  ks_2sampr   r  )rY   rJ   rW   r   rvs_laplacervs_norms         r0   r?  zTestGennorm.test_rvsS  s   }}S!ii##J/hhDsh3||C*11C777}}QhhDsh3mm''T'D~~c;/66<<<}}QhhDsh3::>>t#>N~~c8,33c999r2   c                    t        j                  ddgddgg      }t        j                  j	                  d      }|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 )Nry   rI  r}   rJ  r  )r   rg   rg   r   r   r   r]   )r6   r  rT   rU   rV   r   r>  rp   )rY   rJ   rW   r   s       r0   test_rvs_broadcastingz!TestGennorm.test_rvs_broadcastinge  s   }}sBi"b23ii##J/hhLsh;||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJr2   N)r   r   r   r  r  r?  r  r8   r2   r0   r  r  D  s    ((:$Kr2   r  c                   T    e Zd Zej                  j                  dddg      d        Zy)
TestGibratx, sfx)r  gD.?)  gJ]b<c                     t        t        j                  j                  |      |d       t        t        j                  j	                  |      |d       y N+=r   )r   r6   r#  r   r  rY   r_   sfxs      r0   test_sf_isfzTestGibrat.test_sf_isf}  s8     	*Ce<((-qu=r2   N)r   r   r   r   r   r   r  r8   r2   r0   r  r  o  s5     [[X(A(E(G H>H>r2   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   )r6   gompertzr   rp   r   r  s     r0   test_gompertz_accuracyz#TestGompertz.test_gompertz_accuracy  s3    NNu~~11&!<a@6"r2   z	x, c, sfx))r   rx  g|t?)r   rx  g(fMr;)r;  r   g[?)      @r   gg[<c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y Nr  r   )r   r6   r  r   r  )rY   r_   r  r  s       r0   r  zTestGompertz.test_sf_isf  s>    
 	))!Q/5A**32AEBr2   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )N       @r]   g_r  r   )r6   r  r  r   )rY   r_   r  rz  r  s        r0   r  zTestGompertz.test_logcdf  s3    %&&q!,%0r2   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Ng"ul/rK  gH7Wr  r   )r6   r  r  r   )rY   r_   r  rz  r  s        r0   r  zTestGompertz.test_logsf  s3    $$Q*s/r2   c, ref))r  geUT8?)r   gtqq?)r   gs{)r  gN*6c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   r  r>   rY   r  rz  s      r0   rf  zTestGompertz.test_entropy  s    
 	..q13UCr2   N)r   r   r   r  r   r   r   r  r  r  rf  r8   r2   r0   r  r    so    #" [[[ +M NC	NC10 [[X (E FD	FDr2   r  c                   T    e Zd Zej                  j                  dddg      d        Zy)TestFoldNorm	x, c, ref)r  :0yE>g:0N<?)r  r  g:?c                 \    t        t        j                  j                  ||      |d       y r   )r   r6   foldnormrp   rY   r_   r  rz  s       r0   rQ  zTestFoldNorm.test_cdf  s!     	**1a0#EBr2   N)r   r   r   r   r   r   rQ  r8   r2   r0   r  r    s7     [[[+N+M+O PCPCr2   r  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Zej                  j                  dd	d
g      ej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                             Zd Z	y)TestHalfNormr  )r   |N?)r`   Oul2;c                     t        t        j                  j                  |      |d       t        t        j                  j	                  |      |d       y r  )r   r6   halfnormr   r  r  s      r0   r  zTestHalfNorm.test_sf_isf  s:     	))!,c>**3/?r2   r  ))Ww'&l7g;G<^͛7)C]r2<gE~o-<)r  g?c                 Z    t        t        j                  j                  |      |d       y r   )r   r6   r*  rp   rY   r_   rz  s      r0   rQ  zTestHalfNorm.test_cdf  s     	**1-s?r2   r   h㈵>r  	rvs_scaler{   ra   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   re   rf   r   r   r  r  r   r   r   r   r   T)rT   rU   rV   r6   r*  r   r   r   r  halflogisticr   r   	rY   r   r0  r   r2  rW   r   	error_msgr   s	            r0   r   z(TestHalfNorm.test_fit_MLE_comp_optimizer  s     ii##$78~~!!gYT/2 " 4 y%I|9= M""&&t')&LM"DL&DN 	&ennd 	<d 	<6:	<Ms   $#C  C	c                     t        j                  t              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wNr  rg   r   )r   r   r    r6   r*  r   rX   s    r0   test_fit_errorzTestHalfNorm.test_fit_error	  s:    ]]<( 	2NNyq1	2 	2 	2   $AAN)
r   r   r   r   r   r   r  rQ  r   r<  r8   r2   r0   r&  r&    s     [[X(?(C(E F@F@ [[X (A B@B@ [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<22r2   r&  c                       e Zd Zej                  j                  dddg      ej                  j                  dddg      ej                  j                  ddd	g      ej                  j                  d
dd	g      d                             Zd Zy)TestHalfCauchyr   r/  r  r0  r{   r   r   TFr2  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   r5  r  r  r6  r   r   )rT   rU   rV   r6   r*  r   r   r   r  
halfcauchyr   r   r8  s	            r0   r   z*TestHalfCauchy.test_fit_MLE_comp_optimizer  s     ii##$78~~!!gYT/2 " 4 y%I|9= K  $$T	$JK"DL&DN%e&6&6EEKs   $#B<<Cc                     t        j                  t              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wr;  )r   r   r    r6   rA  r   rX   s    r0   r<  zTestHalfCauchy.test_fit_error+  s<    ]]<( 	4   3	4 	4 	4r=  N)r   r   r   r   r   r   r   r<  r8   r2   r0   r?  r?    s    [[Yt5[[[4+6[[Yu6[[[4-8F 9 7 7 6F,4r2   r?  c                      e Zd Zej                  j                  dddg      d        Zej                  j                  dg d      d        Z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  )ra   ]6)   L-c                 Z    t        t        j                  j                  |      |d       y r   )r   r6   r7  r   r.  s      r0   r  zTestHalfLogistic.test_sf9  s!     	**--a0#EBr2   q, ref))rE  ra   )rG  rF  )硏v?g   .!>)g?g      <c                 Z    t        t        j                  j                  |      |d       y r   )r   r6   r7  r  rY   rt  rz  s      r0   r  zTestHalfLogistic.test_isfE  s!    
 	**..q13UCr2   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Ng      >@guVJr  r   )r6   r7  r  r   rY   r_   rz  r  s       r0   r  zTestHalfLogistic.test_logcdfL  s.    $##**1-%0r2   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Nr
  g+r  r   )r6   r7  r  r   rY   r_   rz  r  s       r0   r  zTestHalfLogistic.test_logsfS  s.    $""((+s/r2   r   r/  r  r0  r1  r   TFr2  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r4  )rT   rU   rV   r6   r7  r   r   r   r  r   r   )	rY   r   r0  r   r2  rW   r   r   r9  s	            r0   r   z,TestHalfLogistic.test_fit_MLE_comp_optimizerZ  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   rg   r   r   r   )assert_raisesr    r6   r7  r   rY   r,   s     r0   test_fit_bad_flocz"TestHalfLogistic.test_fit_bad_flocw  s?    L<s3 	6""91"5	6 	6 	6s   $AA
N)r   r   r   r   r   r   r  r  r  r  r   rU  r8   r2   r0   rD  rD  1  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6r2   rD  c                       e Zd Zd Zd Zd Zy)TestHalfgennormc                     g d}t         j                  j                  |d      }t         j                  j                  |      }t	        ||       y r  )r6   halfgennormri   exponr   r  s       r0   
test_exponzTestHalfgennorm.test_expon~  s;      $$VQ/{{v&D$'r2   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        ||       y r  )r6   rY  ri   r*  r   r  s       r0   test_halfnormzTestHalfgennorm.test_halfnorm  sB      $$VQ/~~!!&!7D$'r2   c                     g d}t         j                  j                  |d      }t         j                  j                  |d      }t	        |d|z         y )Nr  g
(?rg   )r6   rY  ri   r  r   r  s       r0   test_gennormzTestHalfgennorm.test_gennorm  sC      $$VW5}}  1D!D&)r2   N)r   r   r   r[  r]  r_  r8   r2   r0   rW  rW  }  s    ((*r2   rW  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  )rT   r   r6   laplace_asymmetricri   r  r   r  s       r0   r  z"TestLaplaceasymmetric.test_laplace  sF    )$''++FA6}}  (d#r2   c                     t        j                  g d      }d}d|z  }t        j                  j	                  ||      }t        j                  j	                  ||dz  z  |      }t        ||       y )Nr  rg   r   )rT   r   r6   rc  ri   r   )rY   r  r   kapinvr  r  s         r0   test_asymmetric_laplace_pdfz1TestLaplaceasymmetric.test_asymmetric_laplace_pdf  sa    )$5''++FE:''++FE1H,=vFd#r2   c           
         t        j                  t        j                  d       t        j                  d      g      }d}t        j                  j                  ||      }t        j                  j                  ||      }t        j                  j                  ||      }t        j                  ddg      }t        j                  ddg      }t        j                  dd	g      }t        j                  j                  ||      }	|}
t        j                  j                  ||      }|}t        t        j                  ||||	|f      t        j                  ||||
|f             y )
N   r`   rg   r]   gMbp?rF  V-?r   gMb`?)rT   r   r  r6   rc  ri   rp   r   r   r  r   concatenate)rY   r  r   r  cdf1sf1r  cdf2sf2ppf1ppf2isf1isf2s                r0   !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r2   N)r   r   r   r  rf  rs  r8   r2   r0   ra  ra    s    $$Gr2   ra  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                 L    t         j                  j                  d      | _        y )Nl   A$ rS   rX   s    r0   rZ   zTestTruncnorm.setup_method  r[   r2   	a, b, ref))r   ra   r  )333333?ffffff?gܲl)rk  g>g+c                 \    t        t        j                  j                  ||      |d       y N绽|=r   r   r6   	truncnormr>   rY   r.   r/   rz  s       r0   rf  zTestTruncnorm.test_entropy  s!    $ 	//15sGr2   ))r  r  ghiɮ9?)r  r  r  )g0.+r  r  )}Ô%Ir  Z_2?c                 \    t        t        j                  j                  ||      |d       y r  r}  r  s       r0   test_extreme_entropyz"TestTruncnorm.test_extreme_entropy  s!      	//15sGr2   c           	          t         j                  j                  g ddddgdz  d      }t        j                  t        j
                  dd	dd
dt        j
                  g      }t        ||       y )Nr   r   r  ry   H.?r   rg   r  rI  r      rg   rd   r   fO?l@r   )r6   r~  r   rT   r   r  r   r  s      r0   test_ppf_ticket1131z!TestTruncnorm.test_ppf_ticket1131  \    ""#EsB()s1uA # 788RVVQ
Az1bffMN!$1r2   c           	          t         j                  j                  g ddddgdz  d      }t        j                  t        j
                  dd	dd
dt        j
                  g      }t        ||       y )Nr  r  rI  r   r  rg   rd   r   r  r  r   )r6   r~  r  rT   r   r  r   r  s      r0   test_isf_ticket1131z!TestTruncnorm.test_isf_ticket1131  r  r2   c                    d\  }}t         j                  j                  ||ddd| j                        }t	        ||j                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd| j                        }t	        ||j                         cxk  xr  |j                         cxk  xr
 |k         y c        y )N)irb  r   r   r`   r   )r`      r6   r~  r   rW   r	   minr  rY   lowhighr_   s       r0   test_gh_2477_small_valuesz'TestTruncnorm.test_gh_2477_small_values  s    	TOOT1abtxxPaeeg..$./	TOOT1abtxxPaeeg..$././r2   c                    d\  }}t         j                  j                  ||ddd| j                        }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| j                        }t	        ||j                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd| j                        }t	        ||j                         cxk  xr |j                         cxk  xr |k  nc        d\  }}t         j                  j                  ||ddd| j                        }t	        ||j                         cxk  xr  |j                         cxk  xr
 |k         y c        y )	N)ra   r^   r   r   r`   r   )r     )'  i'  )i)r6   r~  r   rW   r	   r  r  rA   r  s       r0   test_gh_2477_large_valuesz'TestTruncnorm.test_gh_2477_large_values  s^   	TOOT1abtxxPquuw1!%%'1T12CdA4GG 	TOOT1abtxxPaeeg..$./ 	TOOT1abtxxPaeeg..$./"	TOOT1abtxxPaeeg..$././r2   c                    ddgddgfD ]  \  }}t        j                  t         j                   ||t         j                  g      }||z   dz  }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  g d      }t        j                  g d      }	t        j                  g d      }
|d	k  rt        j                  g d
      }
t        ||       t        ||	       t        ||
       t        t        j                  |
d   |
d   z        |dz          t        j                  g d      }t        j                  j                  |||      }t        j                  |t        j                  |      dz  |g      }t        ||       |d	k  rWt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       nVt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       t        j                  j                  |||      }t        t        j                  ||
d   z        |dz   dz          y )Nr   r   r  r}   r   r   r   r   rI  rI  r~   r~   )r   d._MT
@BKg?r   r   )r   r  r  r   r   rg   ry   r   ry   rI  gĖy	@gdv*?g,mj%V?ra  )rT   r   r  r6   r~  rp   r   ri   r   r  r   r   )rY   r  r  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsri   s                  r0   test_gh_9403_nontail_valuesz)TestTruncnorm.test_gh_9403_nontail_values
  s<   a&2r(+  	MICHHrvvgsD"&&9:EHc>D??&&uc48D//$$UC6C??&&uc48DHH\2M88$89LHH%ABMQw ")E Fm4\2m4}Q'7a8H'H I #c	+HH]+E??&&uc48DHHc2773<	+A4%HIMm4Qw#EOO$6$6tS$$G$68#EOO$7$7c4$H$68 $EOO$7$7c4$H$68#EOO$6$6tS$$G$68//%%dC6Cs=+;'; <tDy!mLA 	Mr2   c           	      0   ddgddgfD ]
  \  }}t        j                  t         j                   ||t         j                  g      }||z   dz  }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  j                  |||      }t        j                  g d      }t        j                  g d      }	t        j                  g d      }
|d	k  rt        j                  g d
      }
t        ||       t        ||	       t        ||
       t        t        j                  |
d   |
d   z        |dz          t        j                  g d      }t        j                  j                  |||      }t        j                  |t        j                  |      dz  |g      }t        ||       t        j                  j                  |||      }t        ||       |d	k  rWt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       nVt        t        j                  j                  |||      d       t        t        j                  j                  |||      d       t        j                  j                  |||      }t        t        j                  ||
d   z        |dz   dz         t        j                  ||d      }|d d d    }t        t        j                  j                  |||      t        j                  j                  || |       d d d          t        t        j                  j                  |||      t        j                  j                  || |       d d d          t        t        j                  j                  |||      t        j                  j                  || |       d d d           y )N'   rr  ir}   r  r  )r   pGC@Ff<r   r   )r   r  r  r   r   rg   ry   r  gEC@g i?gspXio)>ra  r  r   )rT   r   r  r6   r~  rp   r   ri   r   r  r   r   rN  )rY   r  r  r  r  r  r  r  r  r  r  r  r  r  ri   xvals2s                   r0   test_gh_9403_medium_tail_valuesz-TestTruncnorm.test_gh_9403_medium_tail_values-  sF   r(S#J/ ,	PICHHrvvgsD"&&9:EHc>D??&&uc48D//$$UC6C??&&uc48DHH\2M88$89LHH%KLMQw " *= !>m4\2m4}Q'7a8H'H I #c	+HH]+E??&&uc48DHHc2773<+CT%JKMm4??&&tS$7De,Qw#EOO$6$6tS$$G$68#EOO$7$7c4$H$9; $EOO$7$7c4$H$68#EOO$6$6tS$$G$9;//%%dC6Cs=+;'; <tDy!mLKKT2.EDbDk\F 3 3E3 E % 2 26D53$ G" MO 2 25#t D % 3 3FTEC4 H2 NP 3 3E3 E % 3 3FTEC4 H2 NPW,	Pr2   c                     t        t        j                  dd      j                  d      d       t        t        j                  dt        j
                        j                  d      d       y )Ng      *@      .@      ,@g T?r  g @gR?)r   r6   r~  rp   rT   r  rX   s    r0   test_cdf_tail_15110_14753z'TestTruncnorm.test_cdf_tail_15110_14753\  sN    
 	S155c:*	,266266s;*	,r2   )r0  r~   rI  r~   r~   )rb  r`   r~   rI  r~   gLFu)r  r   r~   gMFmz%?r~   gſ)r   rg   r~   ghI}?r~   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r   r   gU*? bn?gnA??c3TXʿ)r  r   gU*ҿr  gnAr  )rb  g"$7"gOxr?gp7`g'>K@casec                     |\  }}}}}}t         j                  j                  ||d      \  }}	}
}t        ||	|
|g||||gd       y )Nr  r  FFg<r   )r6   r~  r   )rY   r  r.   r/   m0v0s0k0r  vrD   r\   s               r0   r  zTestTruncnorm.test_moments  sT    #1b"b"__**1a*@
1aAq!r2r2&6UCr2   c                     t         j                  j                  dt        j                  d      \  }}t	        |d       t	        |d       y )Nr   mvr  g e3E?g:&A?)r6   r~  rT   r  r   )rY   r  r  s      r0   test_9902_momentszTestTruncnorm.test_9902_moments  s9    $$Q$=1Az*Az*r2   c                     d\  }}t         j                  j                  ||ddd| j                        }t	        ||j                         cxk  xr  |j                         cxk  xr
 |k         y c        y )N)r`   r4  r   r   r`   r   r  r  s       r0   test_gh_1489_trac_962_rvsz'TestTruncnorm.test_gh_1489_trac_962_rvs  sY    	TOOT1abtxxPaeeg..$././r2   c                 d   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| j                  
      }t        j                  |      dt        |      fk(  sJ t        t        j                  ||j                  d      k               t        t        j                  |j                  d      |k               y )Nrb  r`   r  irr  r  r   r  -   r   r   )axis)rT   r  r6   r~  r   r  rW   r7  r	   r   r  r  r  s       r0   test_gh_11299_rvszTestTruncnorm.test_gh_11299_rvs  s     BbffWrvvgsCS"MB2662sBRHOOTCHDHHUxx{q#c(m+++saeeem+,-quu!u},-.r2   c                     t        t        j                  d      r.t        j                  j                  ddd| j                         y y )NrV   rb  r  r   r   )r-   rT   rU   r6   r~  r   rW   rX   s    r0   test_rvs_Generatorz TestTruncnorm.test_rvs_Generator  s4    299m,OORadhhG -r2   c                    t        j                  t         j                   t         j                   dt         j                   dg      }t        j                  t         j                  t         j                  ddt         j                  g      }t        j                  g d      }g d}t        t	        j
                  ||      j                  |      |       t        t	        j
                  | |       j                  |       |       y )Nr`   r  )r`         @r  	   r  )gOul"gځ=!gL!g>EG	f g^K[X)rT   r   r  r   r6   r~  r  r  )rY   r.   r/   r_   rN   s        r0   test_logcdf_gh17064z!TestTruncnorm.test_logcdf_gh17064  s    HHrvvgwRVVGR89HHbffbffaRVV45HH*++ 	1-44Q7BQB/55qb98Dr2   c                 j    t        j                  dd      j                  d      }d}t        ||       y )Nr   r   r   gl).0S?)r6   r~  r  r   )rY   r   rz  s      r0   test_moments_gh18634z"TestTruncnorm.test_moments_gh18634  s0     oob!$++A.  S!r2   N)r   r   r   rZ   r   r   r   rf  r  r  r  r  r  r  r  r  rT   r  _truncnorm_stats_datar   r  r  r  r  r  r  r  r8   r2   r0   ru  ru    sJ   5 [[[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/H
	E"r2   ru  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
=)ra   gh@X)r   gh<c                 d    d}t         j                  j                  ||      }t        ||d       y )Nr  r   r   )r6   genlogisticr   r   )rY   r_   rN   r  r  s        r0   r  zTestGenLogistic.test_logpdf  s-       ''1-hU3r2   r  ))r  gTKEl@)r  gJk$@)r   gsF<?)r  7~F<?c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   r  r>   r  s      r0   rf  zTestGenLogistic.test_entropy  s!    
 	))11!4cFr2   r   )rF  r`   g8.)  r  gpT	oc                 \    t        t        j                  j                  ||      |d       y r  )r   r6   r  r   r$  s       r0   r  zTestGenLogistic.test_sf  s#     	)),,Q2CeDr2   	q, c, ref)r{   rF  g^ #@)r  rg   gGFf@c                 \    t        t        j                  j                  ||      |d       y NV瞯<r   )r   r6   r  r  rY   rt  r  rz  s       r0   r  zTestGenLogistic.test_isf  #     	))--a3SuEr2   )ry   rF  gİ@)r  r  g1a@c                 \    t        t        j                  j                  ||      |d       y r  )r   r6   r  r   r  s       r0   r  zTestGenLogistic.test_ppf  r  r2   )ra   {Gz?g(?)r2  r  g'Tn7c                 \    t        t        j                  j                  ||      |d       y r   )r   r6   r  r  r$  s       r0   r  zTestGenLogistic.test_logcdf  s#     	))00A6%Hr2   N)r   r   r   r   r   r   r  rf  r  r  r  r  r8   r2   r0   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r2   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  j                  d        Zy)TestHypergeomc                 L    t         j                  j                  d      | _        y )Ni~<irS   rX   s    r0   rZ   zTestHypergeom.setup_method  r[   r2   c                    t         j                  j                  dddd| j                        }t	        j
                  |dk\        t	        j
                  |dk        z  sJ t	        j                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  ddd| j                        }t        |t              sJ t        j                  ddd      j                  d| j                        }t        |t        j                        sJ |j                  j                  t        d   v sJ y )	Nr  r`   r   r1  r   r   r3  r   )r6   	hypergeomr   rW   rT   r   r7  r   r8  r   r9  rX  rY  r<  s      r0   r?  zTestHypergeom.test_rvs  s   ""2r17"Rvvdai 266$!)#4444xx~(((zz)L"9999oo!!"a$((!C#s###oob!R(,,QTXX,F#rzz***yy~~<!8888r2   c                 v    d}d}d}|}|}t         j                  j                  d|||      }t        |dd       y )Ni	  r2  r  rg   gkㅒP?r  )r6   r  rE  r   )rY   Mrj  r'  totgoodhgpmfs          r0   test_precisionzTestHypergeom.test_precision  sB    ##AsD!4E#8"=r2   c                 l   t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       t        t        j                  j                  dddd      dd       y )Nr   rg   r   rI  r  r~   )r   r6   r  rE  rX   s    r0   	test_argszTestHypergeom.test_args  s     	EOO//1a;S"EEOO//1a;S"EEOO//1a;S"EEOO//1a;S"Er2   c           	          t        dt        j                  j                  dddd      cxk  xr
 dk         y c        y )Nr   r0  io i  if0  rI  )r	   r6   r  rp   rX   s    r0   test_cdf_above_onez TestHypergeom.test_cdf_above_one&  s/    U__((XtUCJsJKJKr2   c           	      v   d}d}t        j                  g d      dz  }d}|D cg c]'  }t        j                  j	                  |||z   ||      ) }}t        j                  g d      }t        ||dd	       g d
}t        j                  j	                  |||z   |d      }	g d}
t        |	|
dd	       y c c}w )Ng    +@g     @)r   ffffff@333333@r   gffffff@@r        @     @)r   gpR(g㘍R2gJޱ p9g?Mf=
G?r   r   gƠ>rc  )g     @r  g     @g     @g     @)r   r  g)9g"1)rT   r   r6   r  r   r   )rY   orangespearsfruits_eatenquantileeatenr   rN   	quantilesr(  	expected2s              r0   test_precision2zTestHypergeom.test_precision2*  s     xx =>D(* !!(GeOWeL * *88 9 :XAD9 0	!!)Wu_guM>	iad;*s   ,B6c                 >   t        j                  ddd      }|j                         }t        j                  ddg      }t        j
                  t        ||             }t        ||       t        j                  ddd      }|j                         }t        |d       y )Nr   r   r   ra  r~   )	r6   r  r>   rT   r   rb  r   r   r   )rY   hgre  rc  rd  s        r0   rf  zTestHypergeom.test_entropy=  sz    __Q1%JJLXXtTl+
ffU:z:;;
:&__Q1%JJLQr2   c                     d}d}d}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d
}d}t         j                  j                  ||||      }d}t        ||d       y )Nr      cA    .A     j@gor   rL  r   @  X  r{  g_7	j$r4  )r6   r  r  r   rY   r\   r  rj  r'  resultrN   s          r0   r  zTestHypergeom.test_logsfI  s     &&q!Q2FHa8&&q!Q2 FHb9r2   c                 &   d}d}d}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d
}d}t         j                  j                  ||||      }d}t        ||d       d}d	}d}d}t         j                  j                  ||||      }d}t        ||d       t	        j
                  g d      }d	}d
}d}t         j                  j                  ||||      }t	        j                  dd      }t        ||d       y )Nr   r  r  r  g)\Ur   rL  rr  r  r2  r{  g*@Vr4  }      r  gר)rr  rr  rr  )r6   r  r  r   rT   r   fullr  s          r0   r  zTestHypergeom.test_logcdfa  s    ''1a3FHa8 ''1a3&FHb9''1a3 FHb9
 HH\"''1a377112FHb9r2   c                 z    d}d}d}t         j                  j                  |||      }||z  |z  }t        ||       y )Nip iP i.  )r6   r  r   r   )rY   r  rj  r'  hmrms         r0   test_mean_gh18511zTestHypergeom.test_mean_gh18511  sB     __!!!Q*UQYBr2   c                    d}d}t        j                  dd      }d|z  }t        j                  j	                  |dz
  |||      }t        j
                  |dkD        sJ t        j
                  t        j                  |      dk        sJ y )Nr`   r   r   r4  r  r   r   )rT   r  r6   r  r   r   diff)rY   rj  r'  r  population_sizerk  s         r0   test_sf_gh18506zTestHypergeom.test_sf_gh18506  sw     IIaq&OOq1uoq!<vva!e}}vvbggaj1n%%%r2   N)r   r   r   rZ   r?  r  r  r  r  rf  r  r  r  r   r   r   r  r8   r2   r0   r  r    sU    5	9>FL<&
:0,:\	  [[	& 	&r2   r  c                   J   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ej
                  j                  dddg      d        Zej
                  j                  dg d      d        Zy)TestLoggammac                 L    t         j                  j                  d      | _        y )Nl   L rS   rX   s    r0   rZ   zTestLoggamma.setup_method  r[   r2   z	x, c, cdf))r   rg   g;Y%?)r      gRٲa6_<)gHr  gi|e?)r  g6l?)i+r]   g֬CCf9)ir   g ֺlc                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r6   loggammarp   r   r   )rY   r_   r  rp   rk  ys         r0   r  zTestLoggamma.test_cdf_ppf  sH     NNq!$3U+NNsA&15)r2   zx, c, sf))r   r  gQOu3;)   ra   g\Z{0)r"  r  geɐ?)ig{Gzd?gr0T?c                     t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       y r   )r6   r$  r   r   r  )rY   r_   r  r   rD   r%  s         r0   r  zTestLoggamma.test_sf_isf  sH     NNa#2E*NNr1%15)r2   c                 `    t         j                  j                  dd      }t        |dd       y )Nrg   g     @r  r   )r6   r$  r   r   )rY   lps     r0   r  zTestLoggamma.test_logpdf  s&    
 ^^""4+G%0r2   c                 l    d}d}t         j                  j                  ||      }d}t        ||d       y )Nr	        @gI.r  r   )r6   r$  r  r   )rY   r_   r  r  rz  s        r0   r  zTestLoggamma.test_logcdf  s3    &&q!,%%0r2   c                 l    d}d}t         j                  j                  ||      }d}t        ||d       y )Ng      9      @g!{1+ҷr  r   )r6   r$  r  r   )rY   r_   r  r  rz  s        r0   r  zTestLoggamma.test_logsf  s3    $$Q*#s/r2   c                     t        j                  g d      j                  dd      }|D ];  \  }}}}}t        j                  j                  |d      }t        |||||gd       = y )N)ry   g"~jg46<@g oŏr	  rI  g	h"lxgQ?gZd;333333@r  g{/L@g??gгYҿgh|?5?r   r   msvkr  r   rL  )rT   r   reshaper6   r$  r   )rY   tabler  r   varskewkurtcomputeds           r0   r  zTestLoggamma.test_stats  st       
 wr1~ 	 ). 	1$AtS$~~++Av+>H%hsD$0G./1	1r2   r  r]   r  c                    t         j                  j                  |d| j                        }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   r   r  )confidence_levelry   )r6   r$  r   rW   rT   isfiniter   median	binomtestcount_nonzeror  proportion_cir  r  )rY   r  r_   medbtestcis         r0   r?  zTestLoggamma.test_rvs  s     NNqvDHHE {{1~!!### nn##A& 0 0S 93q6B  % 8vv%bgg%%%%%r2   r  ))r!  g3H໱k3@)r   r  )r  g8,[H^}	)r  g90$)r  gtum\c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   r$  r>   r  s      r0   rf  zTestLoggamma.test_entropy	  s     	..q13UCr2   N)r   r   r   rZ   r   r   r   r  r  r  r  r  r  r?  rf  r8   r2   r0   r  r    s    5 [[[EF*F* [[ZBC
*C
*1101 [[S3,/& 0& [[X<=	D=	Dr2   r  c                   X    e Zd Zg dZej
                  j                  de      d        Zy)TestJohnsonsu))r)  r   r   g?r!  )r   r   r   gH';vIh%,=)r   r   r   g?x7rE  r  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y NrE  r   )r   r6   	johnsonsur   r  rY   r  r_   r.   r/   r   tols          r0   r  zTestJohnsonsu.test_sf_isf#	  P    1aS**1a3ReD++B15qsCr2   Nr   r   r   casesr   r   r   r  r8   r2   r0   rD  rD  	  s0    ;E [[VU+D ,Dr2   rD  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:rE  )r  r   r   gQbF5rE  r  c                     |\  }}}}}t        t        j                  j                  |||      |d       t        t        j                  j	                  |||      ||       y )NrE  r   r   )r   r6   r  r   r  rI  s          r0   r  zTestJohnsonb.test_sf_isf9	  rK  r2   NrL  r8   r2   r0   rO  rO  *	  s0    =E [[VU+D ,Dr2   rO  c                       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d Ze	j                  j                  dddg      d        Zd Zy)TestLogisticc                 L    t         j                  j                  d      | _        y )Nl   }$N rS   rX   s    r0   rZ   zTestLogistic.setup_methodA	  r[   r2   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y Nr  r  )rT   rN  r6   logisticrp   r   r   rY   r_   r%  r  s       r0   r  zTestLogistic.test_cdf_ppfE	  sD    KKR NNq!^^"2r2   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y rU  )rT   rN  r6   rV  r   r  r   rW  s       r0   r  zTestLogistic.test_sf_isfK	  sD    KKR NNa ^^"2r2   c                     d}d}t        t        j                  j                  d|z
        |       t        t        j                  j	                  |      |       y )Ng      <gg|EA@r   )r   r6   rV  r   r  )rY   rk  desireds      r0   test_extreme_valuesz TestLogistic.test_extreme_valuesQ	  sB    !#**1q517;**1-w7r2   c                 j    t         j                  j                  g d      }g d}t        ||d       y )N)rm  r   r`   )gm\  .g9B.gO& $r   r   )r6   rV  r   r   )rY   r  rN   s      r0   test_logpdf_basiczTestLogistic.test_logpdf_basicX	  s+    ~~$$\2) 	hU3r2   c                 b    t         j                  j                  ddg      }t        |ddg       y )Nrx   r"  )r6   rV  r   r   rY   r  s     r0   test_logpdf_extreme_valuesz'TestLogistic.test_logpdf_extreme_values`	  s*    ~~$$c4[1 	TD$<(r2   zloc_rvs,scale_rvs)g9x&?gi '?)gB"?gs^&?c                 *   t         j                  j                  d||| j                        }d }t	        |t         j                  j                  |      |f      j                  }t         j                  j                  |      }t        ||d       y )Nra   r   re   rf   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   rg   )r  rT   rb  r   )inputr   r.   r/   rj  x1x2s          r0   r   z#TestLogistic.test_fit.<locals>.funcm	  s    DAqD	AqA~.RVVTAXN335 689A>B$(a&&$(a014&&$(a01467 8:;<B r6Mr2   rQ  r  r   )	r6   rV  r   rW   r"   	_fitstartr_   r   r   )rY   loc_rvs	scale_rvsr   r   expected_solution
fit_methods          r0   test_fitzTestLogistic.test_fitf	  s     ~~!!sy/3xx " 9	 !u~~'?'?'EM A 	^^''-
 	
$5EBr2   c                    t         j                  j                  ddd| j                        }t	        t         j                  |       t	        t         j                  |d       t	        t         j                  |d       y )Nra   ry   rg   rb  r   r   r   )r6   rV  r   rW   r   rY   r   s     r0   test_fit_comp_optimizerz$TestLogistic.test_fit_comp_optimizer	  sQ    ~~!!s1488!T%ennd;%enndC%ennd1Er2   
testlogcdfTFc                     t        j                  g d      }|r t        j                  j	                  |      }n t        j                  j                  |       }g d}t        ||d       y )N)r  r"     r2  r  )     g      g%h9fg?~T}%mgCx^&ْV瞯<r   )rT   r   r6   rV  r  r  r   )rY   rr  r_   r%  rN   s        r0   test_logcdfsf_tailsz TestLogistic.test_logcdfsf_tails	  sT     HH01%%a(A$$aR(AF8%0r2   c                     t        j                  g ddgdz  z   dgdz  z         }t        t        j                  |       y )N)	i5%   +   r  r  0   6   7   :   ;   r   =   r  )rT   r   r   r6   rV  rp  s     r0   test_fit_gh_18176zTestLogistic.test_fit_gh_18176	  sA     xx>$(#&(TAX. / 	&ennd;r2   N)r   r   r   rZ   r  r  r[  r]  r`  r   r   r   rm  rq  rw  r  r8   r2   r0   rR  rR  @	  s    584) [[03J3K3M NCNC.F [[\D%=91 :1<r2   rR  c                   *    e Zd Zd Zd Zd Zd Zd Zy)
TestLogserc                 L    t         j                  j                  d      | _        y )Ni5-rS   rX   s    r0   rZ   zTestLogser.setup_method	      99((3r2   c                 Z   t         j                  j                  dd| j                        }t	        j
                  |dk\        sJ t	        j                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d| j                        }t        |t              sJ t        j                  d      j                  d| j                        }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nr   r1  r   r   r3  r   r   )r6   logserr   rW   rT   r   r7  r   r8  r   r9  rX  rY  r<  s      r0   r?  zTestLogser.test_rvs	  s    ||7Jvvdai   xx~(((zz)L"9999llt$((;#s###ll4 $$QTXX$>#rzz***yy~~<!8888r2   c                 \    t         j                  j                  dd      }t        |d       y )Nr   r  g&Y3)r6   r  rE  r   rY   r  s     r0   test_pmf_small_pzTestLogser.test_pmf_small_p	  s$    LLQ& 	7#r2   c                 Z    t         j                  j                  d      }t        |d       y )Nr!  gW  ?)r6   r  r   r   r  s     r0   test_mean_small_pzTestLogser.test_mean_small_p	  s"    LLd# 	;'r2   c                     dgdgdgg}g d}g dg dg dg}t         j                  j                  ||      }t        j                  j                  ||d	       y )
Nry   r/  wJ?)r   r`   ra   r   )g5q?gD,t"?g02L9g@Y	 )g%Lӷ>gU5r   r   )g0gu8?g+?g㳒?g,nq?gYnr   )r6   r  r   rT   testingr   )rY   rk  r\   rz  r   s        r0   r  zTestLogser.test_sf	  s]    UTFXJ'A@89
 llooa#


""3&"9r2   N)r   r   r   rZ   r?  r  r  r  r8   r2   r0   r  r  	  s    4	9$(:r2   r  c            	          e Zd Z ej                  d      d        Zej                  j                  dej                  ej                  g      ej                  j                  dg d      ej                  j                  dg d      ej                  j                  d	d
dgdd
gf      d                             Zej                  j                  dej                  dfej                  dfg      d        Zy)TestGumbel_r_lfunctionscopec                 @    t         j                  j                  d      S NrN  rT   rU   rV   rX   s    r0   rW   zTestGumbel_r_l.rng	      yy$$T**r2   rJ   ri  r   r   r   rj  r]   r   r   zfix_loc, fix_scaleTFc                     |j                  d|||      }t               }|r|dz  |d<   |r|dz  |d<   t        ||fi | y )Nra   rb  rg   r   r   )r   r  r   )	rY   rJ   ri  rj  r   r2  rW   r   r   s	            r0   rq  z&TestGumbel_r_l.test_fit_comp_optimizer	  s\     xxSgY%(  * v "Q;DL&]DN 	&dD9D9r2   z	dist, sgnr   r   c                     |t        j                  g d      z  }|j                  |      \  }}t        ||dz         t        |dd       y )N)r   r   r   r   r   r   r   gW  @g   @g3qtw>rk  r   )rT   r   r   r   )rY   rJ   r  zre   rf   s         r0   rm  zTestGumbel_r_l.test_fit	  sH     :;;XXa[
U 	S!3345DAr2   N)r   r   r   r   fixturerW   r   r   r6   gumbel_rgumbel_lrq  rm  r8   r2   r0   r  r  	  s    V^^*%+ &+ [[Vennenn%EF[[Y
3[[[*5[[1#UmeT];=:= 6 4 G
:  [[[ENNA+>,1NNB+?+A BBBBr2   r  c                      e Zd Zd Zd Zej                  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)Nrh  ry   r  r  rI  r  r  r}   rx  g?grq@r   r.  gffffff?gK~?g      2@g۶m۶m?r	  UUUUUU?gqq?r  r,  g%I$I?gQ?gUUUUUU@grq?g88Nb@)rl  rm  rn  ro  r6   paretor   rT   r  r  r   r  rY   r  r  rD   r\   s        r0   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 )N    eArg   r  r   rd   )r6   r  r   r   )rY   r_   r/   rf   rk  rN   s         r0   r  zTestPareto.test_sf4
  sB    LLOOAqauO5!Ga<8$r2   z2ignore:invalid value encountered in double_scalarsr   r   rg   r   r   r0  r   c                 2   t         j                  j                  d      }t        j                  j                  d||||      }t        j                  j                  |dd      d   }t        j                  j                  |dd      d   }t        j                  j                  |dd      d   }||cxk(  r|cxk(  rdk(  sJ  J t        j                  j                  d|||d	z   |      }t        j                  j                  |d	
      \  }	}
}t        |d	z   |j                                |d	z
  }|j                  d   }t        |	|t        j                  t        j                  ||j                         z              z         t        |
d	       y )NrN  ra   r   r/   rf   re   r   r   p=
ף?)r   r   )r   fix_b)r   fbrg   r   )rT   rU   rV   r6   r  r   r   r   r  r7  rb  r  )rY   r   r   r0  rW   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r0   rm  zTestPareto.test_fit<
  s    ii##D)||SIY$+#   ? !& 0 0A$ 0 G J % 0 0AT 0 J1 M % 0 0A$ 0 G J%)> .%.)-. 	/ . 	/ . ||SIY%,q[   E.3ll.>.>t!.>.L+Y[1_dhhj1AX
  #[RVVBFF:jnn6F+F$GHH	JY"r2   r]   fix_shape, fix_loc, fix_scaleTFr   repeatignoreinvalidc                     t         j                  j                  d      }t        j                  j                  d||||      }i }	|r||	d<   |r||	d<   |r||	d<   t        t        j                  |fi |	 y )NrN  ra   r  r   r   r   )rT   rU   rV   r6   r  r   r   
rY   r   r   r0  r   r   r2  rW   r   r   s
             r0   r   z&TestPareto.test_fit_MLE_comp_optimizerY
  sz     ii##D)||SIY$+#   ? "DJ"DL&DN%ellDADAr2   c           	          d\  }}}t         j                  j                  |||dt        j                  j                  d            }t        t         j                  |       y )N)r   r   r   ra   ið& r   )r6   r  r   rT   rU   rV   r   )rY   r7  locationrf   r   s        r0   test_fit_known_bad_seedz"TestPareto.test_fit_known_bad_seedp
  sR    
 ")x||xS-/YY-B-B7-K   M%ellD9r2   c                     t        t        j                         t        t        t        j                  j
                  g dd       t        t        t        j                  j
                  g ddd       y )Nr  rg   r   )r   rg   r   r   r   r6  )r  r6   r  rS  r    r   rX   s    r0   test_fit_warningszTestPareto.test_fit_warningsz
  sC    ELL)lELL$4$4iaHlELL$4$4ia	 r2   c                     t         j                  j                  d      }t        j                  j                  ddd|      }t        |d       t        j                  j                  |      }y )NrN  i~r   ra   )re   r/   r   r   r   )rT   rU   rV   r6   r  r   r
   r   )rY   rW   r   r   s       r0   test_negative_datazTestPareto.test_negative_data
  sS    ii##D)||DACcJ$"
 LLT"r2   N)r   r   r   r  r  r   r   filterwarningsr   rm  r%   rT   errstater   r  r  r  .0rk  s   00r0   r  r  	  sw   :Nx% [[ !1 2[[[1a&1[[YA/[[[1a&1# 2 0 22
#0 [[[2q'2[[YA/[[[1a&1[[<)0$q)I -A!&!   -. R[["B #. 2 0 3B  R[[": #: #K-s   E(r  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
dg dfdddd ej                   d      z  ej"                  gfdddd ej                   d      z  dgfdg dfg      d        Zd Zy)TestGenparetoc                 b   dD ]c  }t        j                  |      }t        j                  j	                  |      \  }}t        |d       t        t        j                  |             e t        j                  d      }t        j                  j	                  |      \  }}t        ||gddg       y )NrI  r~   r~          ry   )	rT   r   r6   	genpareto_get_supportr   r	   isposinfr   )rY   r  r.   r/   s       r0   test_abzTestGenpareto.test_ab
  s     	$A

1A??//2DAqBBKKN#		$ JJsO++A.1AS	*r2   c                 L   t        j                  d      }t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t        j                  ddd      }t	        |j                  |      t         j                  j                  |             y )Nr~   r  r   r  r0  rI  r`   )
r6   r  rT   rN  r   ri   rZ  rp   r   r   rY   rvr_   rt  s       r0   test_c0zTestGenpareto.test_c0
  s     __r"KK3#q	5;;??1#56q	5;;??1#56a%++.."34KKB#q	5;;??1#56r2   c                    t        j                  d      }t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t	        |j                  |      t         j                  j                  |             t        j                  ddd      }t	        |j                  |      t         j                  j                  |             t	        |j                  d	      d       y )
Nr  r  r   r  r0  r~   rI  r`   r   )r6   r  rT   rN  r   ri   uniformrp   r   r   r   r  s       r0   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(r2   c                    t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     t        j                  d      }t        |j                  t        j
                        |j                  t        j
                        gddg       t        t	        j                  |j                  t        j
                                     y )Nr]   r  r~   rI  r  )
r6   r  r   ri   rT   r  rp   r	   isneginfr   rY   r  s     r0   
test_x_infzTestGenpareto.test_x_inf
  s   __s#82r(CBIIbff-./__r"82r(CBIIbff-./__s#82r(CBIIbff-./r2   c                    t        j                  ddd      }dD ]  }t        j                  j	                  ||      }dD ]3  }t        j                  j	                  |||z         }t        ||d       5 t        j                  j                  ||      }dD ]3  }t        j                  j                  |||z         }t        ||d       5  y )	Nr   r`   r0  r   r   r  g+r  r   )r  r  )rT   rN  r6   r  ri   r   rp   )rY   r_   r  pdf0dcpdfccdf0cdfcs           r0   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		8r2   c           	      z   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]Z  }t        j
                  j                  ||      }dD ]3  }t        j
                  j                  |||z         }t        ||d       5 \ y Nr  r{   r]   baser   r0  FendpointrI  )r~   r  r  r   )rT   rC  r  rN  r6   r  r   r   )rY   rt  r  ppf0r  ppfcs         r0   test_c_continuity_ppfz#TestGenpareto.test_c_continuity_ppf
      EE"++eT4++dArE:r{{5$S99: ;  	8A??&&q!,D% 8**1a"f5d78	8r2   c           	      z   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]Z  }t        j
                  j                  ||      }dD ]3  }t        j
                  j                  |||z         }t        ||d       5 \ y r  )rT   rC  r  rN  r6   r  r  r   )rY   rt  r  isf0r  isfcs         r0   test_c_continuity_isfz#TestGenpareto.test_c_continuity_isf
  r  r2   c           	      ^   t         j                  t        j                  ddd      t        j                  dddd      d	t        j                  ddd      z
  f   }d
D ]L  }t	        t
        j                  j                  t
        j                  j                  ||      |      |d       N y )Nr  r{   r]   r  r   r0  Fr  rI  )r!  gC]r2r   gV瞯Ҽr   r   )	rT   rC  r  rN  r   r6   r  rp   r   )rY   rt  r  s      r0   test_cdf_ppf_roundtripz$TestGenpareto.test_cdf_ppf_roundtrip
  s    EE"++eT4++dArE:r{{5$S99: ; / 	+AEOO//0C0CAq0I1ME+	+r2   c                 `    t         j                  j                  dddd      }t        |d       y )Nr  r{   r   r   gpEȜ)r6   r  r  r   r_  s     r0   r  zTestGenpareto.test_logsf
  s'    $$T31512r2   zc, expected_statsr   )r   r   rg   r&  ra  r  gqq@r`   rg   gqq?g      ?g$I$	?rq?r  gll0@r   )ry   UUUUUU?r   333333c                 d    t         j                  j                  |d      }t        ||dd       y )Nr  r  r   r   r[  )r6   r  r   )rY   r  expected_statsr  s       r0   r  zTestGenpareto.test_stats
  s+     &&q&&9UGr2   c                 ^    t         j                  j                  d      }t        |dd       y )Nr!  gvǼ
  ?r   r   )r6   r  r4  r   )rY   r  s     r0   test_varzTestGenpareto.test_var
  s#    OO%,59r2   N)r   r   r   r  r  r  r  r  r  r  r  r  r   r   r   rT   r  r  r  r  r8   r2   r0   r  r  
  s    +
7)0888+3 [[
\	
T2gbggaj="&&1	2
]T72771:$5v>	?
"	#	%&H&H:r2   r  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestPearson3c                 L    t         j                  j                  d      | _        y )Nl   TJ rS   rX   s    r0   rZ   zTestPearson3.setup_method  r[   r2   c                 F   t         j                  j                  dd| j                        }t	        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d| j                        }t        |t              sJ t        j                  d      j                  d| j                        }t        |t        j                        sJ |j                  j                  t        d   v sJ t        |      dk(  sJ y )Nr]   r1  r   AllFloatry   r   r   )r6   r)   r   rW   rT   r7  r   r8  r   r9  r   rY  r  r<  s      r0   r?  zTestPearson3.test_rvs  s    ~~!!#G$((!Kxx~(((zz)J"7777nn  488 <#u%%%nnS!%%adhh%?#rzz***yy~~:!66663x1}}r2   c                    t         j                  j                  dg d      }t        |t	        j
                  g d      d       t         j                  j                  dd      }t        |t	        j
                  dg      d       t         j                  j                  g d	d      }t        |t	        j
                  g d
      d       y )Nrg   r~   r]   rF  )gtT?g+q?g?rk  r   r  r]   ND}i?r  r   r   r   r   )r  gj?gdC?gs?g'M?)r6   r)   ri   r   rT   r   r  s     r0   rG  zTestPearson3.test_pdf  s    ~~!!!_5bhh'KL!	#~~!!"c*bhh
|44@~~!!"4c:bhh (@ AGK	Mr2   c                 P   t         j                  j                  dg d      }t        |t	        j
                  g d      d       t         j                  j                  dd      }t        |dgd       t         j                  j                  g d	d      }t        |g d
d       y )Nrg   r  )grE?gTp]0?g~?rk  r   r  r]   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r6   r)   rp   r   rT   r   r  s     r0   rQ  zTestPearson3.test_cdf  s    ~~!!!_5bhh'KL!	#~~!!"c*zl6~~!!"4c: ?EI	Kr2   c                     g d}d}d}t         j                  j                  ||      }|D cg c]/  }t        t        j                  |      j                  ||      d   1 }}t        ||       y c c}w )Nr  r   r   ry   ry   r  r   )r6   r)   rp   r   ri   r   )rY   skewsx_evalneg_infr  r5  int_pdfss          r0   test_negative_cdf_bug_11186z(TestPearson3.test_negative_cdf_bug_11186'  sr     !~~!!&%0 %' -117FCAF ' 'h''s   4A0c                 $   t         j                  j                  dd      }t        |d       t	        |t
        j                        sJ t         j                  j                  dd      }t        |d       t	        |t
        j                        sJ y )Nr   rg   r   rk  )r6   r)   r  r   r9  rT   number)rY   r  s     r0   test_return_array_bug_11746z(TestPearson3.test_return_array_bug_117462  sl     &&q!,VQ&")),,,&&q(3VQ&")),,,r2   c                    g d}d}t         j                  j                  t         j                  j                  ||      |      }t	        ||       t        j                  dgdgg      }t        j                  dd      }t	        t         j                  j                  ||      t         j                  j                  | |              t	        t         j                  j                  ||      t         j                  j                  | |              t	        t         j                  j                  ||      t         j                  j                  ||               y )Nr
  ry   r   r  r   rg   )r6   r)   r   rp   r   rT   r   rN  ri   r   r  )rY   r  r  r   r5  r_   s         r0   test_ppf_bug_17050zTestPearson3.test_ppf_bug_17050=  s    !nn  !3!3FE!BEJV$ xx$#(KKA**1d3**A2u5	7**1d3))1"te4	6**1d3++Au55	7r2   c                    g d}g d}g d}t        t        j                  j                  ||      |d       t        t        j                  j                  |d      t        j                  j                  |      d       y )N)r]   ry   rI  皙)rJ  r  r  r  )g7>g~׼=gp'+7g;r
  r   r   )r   r6   r)   r   r  )rY   r5  r_   rz  s       r0   r  zTestPearson3.test_sfP  s\     %">))!T2CeD))!Q/q1ANr2   N)r   r   r   rZ   r?  rG  rQ  r  r  r  r  r8   r2   r0   r   r     s-    5	MK	(	-7&	Or2   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	
TestKappa4c                     g d}d}dD ]P  }t         j                  j                  |||      }t         j                  j                  ||       }t	        ||       R y )N)r~   r]   rF  ry   rI  )
gffffffr  r   皙ɿr  r]   rF  ry   rI  ffffff?)r6   kappa4rp   r  r   rY   r_   re  r\   r=  	vals_comps         r0   test_cdf_genparetozTestKappa4.test_cdf_genpareto]  sW      	-A<<##Aq!,D++Ar2ID),	-r2   c                     t        j                  ddd      }d}t        j                  ddd      }t        j                  j	                  |||      }t        j
                  j	                  ||      }t        ||       y )Nr  r   r`   r~   r  r   )rT   rN  r6   r  rp   
genextremer   r  s         r0   test_cdf_genextremezTestKappa4.test_cdf_genextremeh  se    KKAr"KKAr"||1a($$((A.	i(r2   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr   r`   rI  r~   )rT   rN  r6   r  rp   rZ  r   r  s         r0   test_cdf_exponzTestKappa4.test_cdf_exponq  sR    KK2r"||1a(KKOOA&	i(r2   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr  r   r`   r~   )rT   rN  r6   r  rp   r  r   r  s         r0   test_cdf_gumbel_rzTestKappa4.test_cdf_gumbel_rz  sT    KKAr"||1a(NN&&q)	i(r2   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr  r   r`   r  r~   )rT   rN  r6   r  rp   rV  r   r  s         r0   test_cdf_logisticzTestKappa4.test_cdf_logistic  sT    KKAr"||1a(NN&&q)	i(r2   c                     t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       y )Nr  r   r`   rI  )rT   rN  r6   r  rp   r  r   r  s         r0   test_cdf_uniformzTestKappa4.test_cdf_uniform  sT    KKAr"||1a(MM%%a(	i(r2   c                 0    t        j                  dd       y rd  )r6   r  rX   s    r0   test_integers_ctorzTestKappa4.test_integers_ctor  s     	Qr2   N)
r   r   r   r  r"  r$  r&  r(  r*  r,  r8   r2   r0   r  r  \  s%    	-)))))r2   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestPoissonc                 L    t         j                  j                  d      | _        y )Nl   ,	 rS   rX   s    r0   rZ   zTestPoisson.setup_method  r[   r2   c                     t        j                  d      }t        j                  j	                  g d|      }d|dz  |dz  dz  g}t        ||       y )Nrg   r   r   rg   ry   r   )rT   r  r6   ry  rE  r   )rY   ln2r=  rN   s       r0   test_pmf_basiczTestPoisson.test_pmf_basic  sG    ffQi}}  C0QQq)h'r2   c                     t         j                  j                  g dd      }g d}t        ||       t         j                  j	                  dd      }t        |d       y )Nr1  r   )r   r   r   ffffff?r   r   )r6   ry  rE  r   intervalr   )rY   r=  rN   r7  s       r0   test_mu0zTestPoisson.test_mu0  sG    }}  A.4*==))$2Xv&r2   c                 Z   t         j                  j                  dd| j                        }t	        j
                  |dk\        sJ t	        j                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d| j                        }t        |t              sJ t        j                  d      j                  d| j                        }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nry   r1  r   r   r3  r   r   )r6   ry  r   rW   rT   r   r7  r   r8  r   r9  rX  rY  r<  s      r0   r?  zTestPoisson.test_rvs  s    }}  7 Jvvdai   xx~(((zz)L"9999mm$((;#s###mmC $$QTXX$>#rzz***yy~~<!8888r2   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  rI  )r~   rI  r}   r   rg   ry   )r6   ry  r   rT   r  r   r  )rY   rT  r  rN   s       r0   r  zTestPoisson.test_stats  s    $$R$8RR#b& ABXXo&$$R$8RVVQ"''!*537GH)r2   N)r   r   r   rZ   r3  r8  r?  r  r8   r2   r0   r.  r.    s    5('	9*r2   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)	TestKSTwoc                    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   rg   r   r`   ra   r   r   ry   r   rI  rg   r~   )rT   r   r5   r   gammalnr   r6   ksoner   r  kstworp   r   )rY   rj  r_   v1lgelgrN   r  s           r0   rQ  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/#	0r2   c                    t        j                  ddd      }dD ]  }t        j                  dd|z  d|z  ddd|z  z
  dg      }d|z  |z  }t        j                  j                  |dz         }|dk7  rt        j                  |      nd}t        j                  ddd||z  z
  dt        j                  j                  d|      z  t        d|z  d      dg      }t        j                  j                  ||      }t        ||        y )Nr   r   r  r>  ry   rI  rg   )rT   rN  r   r5   r   r?  r   r6   r@  r   r  rA  r   )rY   r_   rj  rB  rC  rD  rN   r  s           r0   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.	/r2   c                     t        j                  ddd      dd  }g d}|D ][  }|t        j                  |      z  }t        j                  j                  ||      }t        j                  |      }t        |d       ] y )Nr   rg   r  r   )r2  ra   rF  i  r   r   r!  )rT   rN  r  r6   rA  rp   r  r
   )rY   r_   ns_xxnprobsdiffss          r0   test_cdf_sqrtnzTestKSTwo.test_cdf_sqrtn  sn    
 KK1b!!"%, 	+Bbggbk!BKKOOB+EGGENEeT*		+r2   c                     t        j                  ddd      }dD ]Q  }t        j                  j	                  ||      }t        j                  j                  ||      }t        |d|z
         S y Nr   r   r  r>  )rT   rN  r6   rA  rp   r   r   )rY   r_   rj  r  r  s        r0   r  zTestKSTwo.test_cdf_sf  sY    KK1b!) 	=A{{q!,HkknnQ*G%hG<	=r2   c                    t        j                  ddd      }dD ]i  }|t        j                  |      z  }t        j                  j                  ||      }t        j                  j                  ||      }t        |d|z
         k y rN  )rT   rN  r  r6   rA  rp   r   r   )rY   r_   rj  rI  r  r  s         r0   test_cdf_sf_sqrtnzTestKSTwo.test_cdf_sf_sqrtn  sj    KK1b!) 	=ARWWQZB{{r1-HkknnR+G%hG<		=r2   c                    t        j                  ddd      }dD ]l  }||d|z  kD     }t        j                  j	                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||   d       n y )	Nr   r   r  r>  ry   r  r  r   )rT   rN  r6   rA  rp   r   r   rY   r_   rj  rI  r  condr=  s          r0   test_ppf_of_cdfzTestKSTwo.test_ppf_of_cdf  s    KK1b!) 	=A1s1u9B{{r1-HLX_5D;;??8Q/DDJ4t<	=r2   c                    t        j                  ddd      }dD ]l  }||d|z  kD     }t        j                  j	                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||   d       n y )	Nr   r   r  r>  ry   rI  r  r   )rT   rN  r6   rA  r  r   r   )rY   r_   rj  rI  vals_isfrS  r=  s          r0   test_isf_of_sfzTestKSTwo.test_isf_of_sf  s    KK1b!) 	=A1s1u9B{{r1-HLX^4D;;>>(A.DDJ4t<	=r2   c                 <   t        j                  ddd      }dD ]  }|t        j                  |      z  |d|z  kD     }t        j                  j                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||           y )Nr   r   r  r>  ry   rI  )rT   rN  r  r6   rA  rp   r   r   rR  s          r0   test_ppf_of_cdf_sqrtnzTestKSTwo.test_ppf_of_cdf_sqrtn  s    KK1b!) 	2Abggaj.!c!e),B{{r1-HLX^4D;;??8Q/DDJ41	2r2   c                 <   t        j                  ddd      }dD ]  }|t        j                  |      z  |d|z  kD     }t        j                  j                  ||      }d|k  |dk  z  }t        j                  j                  ||      }t        ||   ||           y )Nr   r   r  r>  ry   r5  )rT   rN  r  r6   rA  r   r  r   )rY   r_   rj  rI  r  rS  r=  s          r0   test_isf_of_sf_sqrtnzTestKSTwo.test_isf_of_sf_sqrtn"  s    KK1b!) 	2Abggaj.!c!e),BkknnR+GKGdN3D;;??7A.DDJ41	2r2   c                     t        j                  ddd      dd  }dD ]N  }t        j                  j	                  ||      }t        j                  j                  ||      }t        ||       P y rN  )rT   rN  r6   rA  r   rp   r   )rY   rJ  rj  rI  r  s        r0   r  zTestKSTwo.test_ppf,  s\    Aq"%ab)) 	-A*B{{r1-HHe,	-r2   c           	         g d}t        j                  g d      }t        j                  g dg dg dg dg dg dg      }t        |      D ]x  \  }}|t        j                  d	      z  t        j                  t         j
                  d	z  |z        z  }t        j                  j                  ||      }t        |||   d
       z y )N)r`   r2  ra   rF  r  r   )ra  gUUUUUU?ry   r   rg   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?rg   r/  r   )
rT   r   	enumerater  r  rj   r6   rA  rp   r   )rY   rG  ratiosrN   idxrj  r_   r  s           r0   test_simard_lecuyer_table1z$TestKSTwo.test_simard_lecuyer_table13  s     +8988------
   m 	@FC"RWWRUU1WQY%77A{{q!,HHhsm$?	@r2   N)r   r   r   rQ  r  rL  r  rP  rT  rW  rY  r[  r  ra  r8   r2   r0   r<  r<    s:    0(/+====22-@r2   r<  c                       e Zd Zd Zd Zd Zy)TestZipfc                 L    t         j                  j                  d      | _        y )Nl   p\# rS   rX   s    r0   rZ   zTestZipf.setup_methodV  r[   r2   c                 Z   t         j                  j                  dd| j                        }t	        j
                  |dk\        sJ t	        j                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d| j                        }t        |t              sJ t        j                  d      j                  d| j                        }t        |t        j                        sJ |j                  j                  t        d   v sJ y )Nr  r1  r   r   r3  r   r   )r6   zipfr   rW   rT   r   r7  r   r8  r   r9  rX  rY  r<  s      r0   r?  zTestZipf.test_rvsY  s    zz~~cdhh~Gvvdai   xx~(((zz)L"9999jjnnStxxn8#s###jjo!!!$((!;#rzz***yy~~<!8888r2   c                 `   t         j                  j                  d      \  }}t        t        j                  |             t        |t        j                         t         j                  j                  dd      \  }}t        t        j                  ||g      j                                 y )Nffffff@r.   r1  skr.   r  )r6   rf  r	   rT   r:  r   r  r   r  s        r0   r  zTestZipf.test_momentsd  sy    zz#&1AQzz#t41BKKA'++--.r2   N)r   r   r   rZ   r?  r  r8   r2   r0   rc  rc  U  s    5	9/r2   rc  c                   $    e Zd Zd Zd Zd Zd Zy)TestDLaplacec                 L    t         j                  j                  d      | _        y )Ni1qrS   rX   s    r0   rZ   zTestDLaplace.setup_methodo  r  r2   c                    t         j                  j                  dd| j                        }t	        j
                  |      dk(  sJ |j                  j                  t        d   v sJ t         j                  j                  d| j                        }t        |t              sJ t        j                  d      j                  d| j                        }t        |t        j                        sJ |j                  j                  t        d   v sJ t         j                  j                  d| j                        J y )Nr  r1  r   r3  r   r   r   )r6   dlaplacer   rW   rT   r7  r   r8  r   r9  rX  rY  r<  s      r0   r?  zTestDLaplace.test_rvsr  s    ~~!!#G$((!Kxx~(((zz)L"9999nn  488 <#s###nnS!%%adhh%?#rzz***yy~~<!8888~~!!#DHH!=IIIr2   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 )NrI  r  ry  r   rg   r   r6  r  r  r!  rc  )r6   rp  rT   r  rE  rb  r   r   )rY   r.   dlr  r  rD   r\   r'  r  ppm2m4s               r0   r  zTestDLaplace.test_stats}  s    ^^AXXf%
1aYYr1Q3VVBZ2q5!266"RU(#3BaVV$ARAX] 3%dKr2   c                     t        j                  d      }t        j                  |      }|j                  d      \  }}}}t	        ||fd       t        ||fd       y )Nr}   r  )r~   r~   )r	        
@)rT   r  r6   rp  r   r   )rY   r.   rr  r  r  rD   r\   s          r0   test_stats2zTestDLaplace.test_stats2  sO    FF2J^^AXXf%
1aaVX&A
+r2   N)r   r   r   rZ   r?  r  rx  r8   r2   r0   rm  rm  n  s    4	JL,r2   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d Z xZS )TestInvgaussc                 L    t         j                  j                  d      | _        y )Nl   xs rS   rX   s    r0   rZ   zTestInvgauss.setup_method  r[   r2   zrvs_mu,rvs_loc,rvs_scale)rg   r   r   )g
ףp=@g r@gʡE6@c                    t         j                  j                  d|||| j                        }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|||| j                        }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 )Nra   r   rT  re   rf   r   r   r   r   rc  r   r6  r  )fmur   )fix_mur   )r6   r  r   rW   r   rT   r   r  rb  r   r   )rY   rvs_mur   r0  r   rT  re   rf   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r0   rm  zTestInvgauss.test_fit  s    ~~!!sv&-YTXX " W ++Dw+?Cg~''$-Ir
Wr](B!CD	" 	U;	5u5AS'"~~!!sv&-YTXX " W ++Dw{3<q= , BCY]E*Wq[#& ^^''$'7:
^^''T':1=
^^'''6q9
Z=:======r2   )gX9v>@g	@gGz@c                 "   t         j                  j                  d      }t        j                  j                  d||||      }t        t        t        j                        t        j                  "  } ||      }t        j                  j                  |      }t        ||        ||dd      }t        j                  j                  |dd      }t        ||       t        t        j                  ||       t        j                  ||dz
  z
  dkD        sJ t        t        j                  ||dz
         t        t        j                  |d       t        t        j                  ||| j                  j                  d      d   	       y )
NrN  ra   r}  r   rg   )r   r~  r   r   r6  )rT   rU   r  r6   r  r   r   r   r   r   r   r   rW   )
rY   r  r   r0  rW   r   	super_fitsuper_fittedinvgauss_fit	__class__s
            r0   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-1XX__Q-?-B	Dr2   c                     t        t        j                         t        j                  t
              5  t        j                  j                  g dd       d d d        y # 1 sw Y   y xY wr;  )r  r6   r  r   r   r    r   rX   s    r0   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   皙?rT  r  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r6   r  rp   r   r   r   )rY   rT  rN   rI   
cdf_actual	sf_actuals         r0   r  zTestInvgauss.test_cdf_sf  s    ."##CB#/Xv& ^^''$'7

$9:NN%%cd%3		#78 ##GV4 34 ##Hf5 12r2   c                 h   t         j                  j                  dd      }t        |d       t         j                  j                  dd      }t        |d       t         j                  j	                  dd      }t        |d       t         j                  j	                  dd      }t        |d	       y )
Nr  r  r  giJ.r  gr^ߺr  gpgFgpQ^L)r6   r  r  r   r  )rY   r  r  s      r0   r  zTestInvgauss.test_logcdf_logsf  s     &&v$&7 12&&sD1 56$$Ut$456$$S$/01r2   zmu, ref))r  g,9)r  g%!)r{   g40)r   gK'
@)r  g`p
@c                 Z    t        t        j                  j                  |      |d       y rG  )r   r6   r  r>   )rY   rT  rz  s      r0   rf  zTestInvgauss.test_entropy  s     	..r2CeDr2   c                 $   t        j                  t        j                        }t        j                  dd      }d\  }}t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             t        |j                  |      |j                  |             y )Nr  ry   r  )rI  ry   )r6   r  rT   r  r  r   r   ri   r  rp   r  r   r   r  )rY   rJ   dist0r_   rk  s        r0   test_mu_inf_gh13666z TestInvgauss.test_mu_inf_gh13666!  s     ~~(s#.1AQ8UYYq\2AQ8UYYq\2

1u{{1~6
EHHQK0UYYq\2UYYq\2r2   )r   r   r   rZ   r   r   r   rm  r   r  r  r  rf  r  __classcell__r  s   @r0   rz  rz    s    5 [[7')>?A>A>: [[7')>?A DA DD2!3F2. [[Y )D E
EE
E3r2   rz  c                   Z    e Zd Zej                  j                  dg d      d        Zd Zy)
TestLandauname)ri   rp   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   r]   r   r   r   r`   r   r  r   )rT   rN  r(  r6   landaulevy_stabler   )rY   r  r_   landau_methodlevy_methodr   rz  s          r0   test_landau_levy_agreementz%TestLandau.test_landau_levy_agreement3  s    
 >!Ca()AB2&'Ad3e//6Q#1#a##Su-r2   c                     t        t        j                  j                  d      t        j                  fdz         t        t        j                  j                  d      t        j                         y )Nr  r  r   r   )r   r6   r  rT   r  r  rX   s    r0   r  zTestLandau.test_momentsC  sE    U\\'''7"&&1EU\\((+RVV4r2   N)r   r   r   r   r   r   r  r  r8   r2   r0   r  r  2  s,    [[V%GH. I.5r2   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   rg   r0  )r   rg   r   r`   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 )
NrN  ra   rb  r   rc  r   ro  rg   r6  )rT   rU   r  r6   r  r   r;  rb  r   r  r   r   r   rS  r  r  r  r  )	rY   r   r0  rW   r   loc_mler  re   rf   s	            r0   rm  zTestLaplace.test_fitJ  s   
 ii##D)}}  cwi.1 ! 3 ))D/FF266$.12SY>	 ]]&&t,
UW5u=yu5A ]]&&t'&:
Uyu5A]]&&tI&>
UW% kFF266$*-.T:	 ]]&&t#&6
UY& ]]&&tI&>
UWc" 	lEMM$5$5t'&	( 	j%--"3"3bffX>j%--"3"3bffX>r2   rvs_loc,rvs_scale))r  r`   r`   r   )ry   rF  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 )NrN  r   rb  c           	          dt        |       t        j                  d|z        z  d|z  t        j                  t        j                  || z
              z  z
  z  S )Nr   rg   r   )r  rT   r  rb  r   )re   rf   r   s      r0   llz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.ll  sO    CI%8E'266"&&*<#==> ? ?r2   r   rc  )
rT   rU   r  r6   r  r   r   r   r   r   )rY   r   r0  rW   r   r  re   rf   loc_opt	scale_optll_mlell_optr  s               r0   r   z'TestLaplace.test_fit_MLE_comp_optimizery  s     ii##D)}}  dy.1 ! 3	? ]]&&t,
U"4#6#(==66:) 	C%GY-"++ff38u#F 	F F #Fr2   c                     t        j                  g d      }t        j                  j	                  |d      \  }}t        |ddd       t        j                  j	                  |d      \  }}t        |ddd       y )N)rI  rI  r  rJ  r  r  r&  r   r   r   rc  ro  )rT   r   r6   r  r   r   )rY   r   re   rf   s       r0   test_fit_simple_non_random_dataz+TestLaplace.test_fit_simple_non_random_data  sg    xx78]]&&t!&4
Uqu59]]&&tA&6
UQU7r2   c                 <   d}t         j                  j                  |       }|dk(  sJ t         j                  j                  |      }|dk(  sJ t         j                  j                  |      }|dk(  sJ t         j                  j                  |       }|dk(  sJ y )Nr   r~   rI  )r6   r  rp   r   )rY   r_   p0p1s       r0   test_sf_cdf_extremesz TestLaplace.test_sf_cdf_extremes  s    ]]r" Syy ]]q!Syy]]a  Syy ]]qb!Syyr2   c                     d}t         j                  j                  |      }t        |t	        j
                  |       dz  d       y )NrF  rg   r   r   )r6   r  r   r   rT   r   )rY   r_   rk  s      r0   r  zTestLaplace.test_sf  s5    MMQ2661":a<e4r2   c                     d}t         j                  j                  |      }t        |t	        j
                  d|z         d       y )Ng}:rg   r   r   )r6   r  r  r   rT   r  )rY   rk  r_   s      r0   r  zTestLaplace.test_isf  s5    MMa BFF1Q3K<e4r2   c                     d}d}t         j                  j                  |      }t        ||       t         j                  j	                  |       }t        ||d       y )Nrr  g$ICr  r   )r6   r  r  r   r  r  s        r0   r  zTestLaplace.test_logcdf_logsf  sL    %%%a($##QB's/r2   )r   r   r   r   r   r   rm  r   r  r  r  r  r  r  r  s   @r0   r  r  I  s    [[Y6[[[-8+? 9 7+?Z [[0 3? @F@F(8*5
5
0r2   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)r}   r  rJ  )r/  r    4&kC)g ?gKH9gXrL0r   r   )rT   r   r   r6   
loglaplacer   )rY   r  r_   rz  s       r0   r  zTestLogLaplace.test_sf  sE     HH_%HH'(+((++Aq13UCr2   c                 p    d}g d}g d}t        t        j                  j                  ||      |d       y )Nrw  )r   r]   r|  r  r+  )gHhlh#?gH]9@?g"fj#@g11Ags!8wBr  r   )r   r6   r  r  )rY   r  rt  rz  s       r0   r  zTestLogLaplace.test_isf  s4     +6((,,Q2CeDr2   r}  r   rg   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   ry   r  )	rT   r  r   r6   r  r  r  r   r:  )rY   r}  momr  s       r0   test_moments_statsz!TestLogLaplace.test_moments_stats  s~    QUmIIc1s7C( 	((//15rvv> 66"++e&6&6&<&<Q&<&LMNNNNr2   r  )ry   rI  r}   z
loc, scale)r  g@fix_cTFr2  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   ra   r5  r   fcr   r   r   r  r  )rT   rU   rV   r6   r  r   r  r   r   r  r  r   r   )rY   r  re   rf   r  r2  rW   r   r   nfreer9  s              r0   test_fit_analytic_mlez$TestLogLaplace.test_fit_analytic_mle  s     ii##$78##A3e#14 $ 6 }DJ"DNCIA:MIj9K 3  $$T2T23%e&6&6EE	3s   !CCN)
r   r   r   r  r  r   r   r   r  r  r8   r2   r0   r  r    s    DE [[S,/O 0O [[S/2[[\L>:[[WtUm4[[[4-8F 9 5 ; 3Fr2   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)ra  r}   g      ?)g     ?g      p?gSQ>c                 \    t        t        j                  j                  ||      |d       y r   )r   r6   powerlawr   )rY   r_   r.   r   s       r0   r  zTestPowerlaw.test_sf  s!     	))!Q/%@r2   r  r  c                 @    t         j                  j                  d      S r  r  rX   s    r0   rW   zTestPowerlaw.rng  r  r2   r   )r]   ry   r   r   rg   r   r  r0  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   r.   re   rf   r   r   r   r   r   T)	r6   r  r   r  rT   	nextafterr  r  r   r  s
             r0   r   z(TestPowerlaw.test_fit_MLE_comp_optimizer	  s     ~~!!siW(1 " E v"DJ<<
RVVG<DL&DN 	&ennd 	<d 	<6:	<r2   c           	          d}d}d}t         j                  j                  |||dt        j                  j                  d            }dt        j                  |      dz  i}t        t         j                  |fi | y )	Ng`- @r~   grߟA@ra   r   )r.   re   rf   r   r   r   rg   )r6   r  r   rT   rU   rV   ptpr   )rY   r.   r  rf   r   r   s         r0   test_problem_casezTestPowerlaw.test_problem_case!  ss     #"~~!!A85s/1yy/D/DQ/G " I "&&,*+%enndCdCr2   c                 (   t        t        j                         d}t        t        |      5  t        j                  j                  g ddd       d d d        d}t        t        |      5  t        j                  j                  g dd       d d d        d}t        t        |      5  t        j                  j                  g dd	       d d d        d
}t        t        |      5  t        j                  j                  g dd       d d d        d}t        t        |      5  t        j                  j                  g dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   y xY w)Nz7 Maximum likelihood estimation with 'powerlaw' requiresr  r   rg   r   r   r   r6  rg   r   r   z$Negative or zero `fscale` is outsider  ro  z0`fscale` must be greater than the range of data.)r  r6   r  rS  r    r   r  rT  s     r0   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   rg   rg   r   r   r   r   r   r   r   r&  r  over)r6   r  rT   r  r   )rY   r   rJ   s      r0   test_minimum_data_zero_gh17801z+TestPowerlaw.test_minimum_data_zero_gh17801J  s=     4~~[[h' 	6)$5	6 	6 	6s   AA
N)r   r   r   r   r   r   r  r  rW   r%   r   r  r  r  r  s   00r0   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))ra   r  r   ga!R()r  r  r   g;?)r  r  r   gE?)MDr  r   g=c                 ^    t        t        j                  j                  |||      |d       y r   )r   r6   r$  r   rY   r_   r  rD   rz  s        r0   r  zTestPowerLogNorm.test_sfd  s%     	**--aA6%Hr2   zq, c, s, ref)g?r  r   r{   )gR4-r  r   r   c                 ^    t        t        j                  j                  |||      |d       y )Ng|=r   )r   r6   r$  r  )rY   rt  r  rD   rz  s        r0   r  zTestPowerLogNorm.test_isfn  s%     	**..q!Q75Ir2   ))r  r  r   g?)rk  r  r   gv6)rk  rF  r   g+	94|7)rs  rF  r   g?c                 ^    t        t        j                  j                  |||      |d       y )Ngt =r   )r   r6   r$  rp   r  s        r0   rQ  zTestPowerLogNorm.test_cdft  s%     	**..q!Q75Ir2   ))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   r6   r$  ri   r  s        r0   rG  zTestPowerLogNorm.test_pdf  s%    
 	**..q!Q75Ir2   N)
r   r   r   r   r   r   r  r  rQ  rG  r8   r2   r0   r  r  S  s    " [[^EF
IF
I
 [[^ACEFJFJ [[^AB
JB
J [[^GHJ	HJr2   r  c                       e Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zej                  j                  dg d      d        Zy	)
TestPowerNormr   ))r  r   g| <)r  rg   ge()ra   r  g%!@6)rF  r{   gT;-c                 \    t        t        j                  j                  ||      |d       y r   )r   r6   	powernormr   r$  s       r0   r  zTestPowerNorm.test_sf  s!     	**1a0#EBr2   r  ))r/  r  gĿ)r  ra   g!X)r  r  g缂U)r;  r  gͫ1@)r,  rg   gD@)Jz5r   gU!zYr@c                 \    t        t        j                  j                  ||      |d       y Nrv  r   )r   r6   r  r  r  s       r0   r  zTestPowerNorm.test_isf  s!     	++Aq13UCr2   ))ir  g.u	T9)rg   r  ?)r  r  gsK-)r  r  gk8>)r  r  g^u1-c                 \    t        t        j                  j                  ||      |d       y rG  )r   r6   r  rp   r$  s       r0   rQ  zTestPowerNorm.test_cdf  s!     	++Aq13UCr2   N)	r   r   r   r   r   r   r  r  rQ  r8   r2   r0   r  r    s     [[[CD
CD
C [[[=>D>D [[[BCDCDr2   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)Nrh  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@)rl  rm  rn  ro  r6   r  r   rT   r  r  r  r   )rY   r  rN   r.   r_   r%  s         r0   test_invgamma_inf_gh_1866z&TestInvGamma.test_invgamma_inf_gh_1866  s     $$& 	*!!'>:>>''%'@D%HD(+A>>''!V'<D8}=k:57H D(+ *1#Aq)*	* 	* 	*s   CC99Dc                     t        j                  dd      }t        j                  j	                  |d      }t        j                  j                  |d      }t        ||       y )Ngr   r   )rT   r  r6   r  rp   r   r   rW  s       r0   r  zTestInvGamma.test_cdf_ppf  sH    KKa NNq!$^^1%2r2   c                     t         j                  dkD  rt        j                  dd      }nt        j                  dd      }t        j
                  j                  |d      }t        j
                  j                  |d      }t        ||d       y )Nl        rg   ra      r   rI  r   )	sysmaxsizerT   r  r6   r  r   r  r   rW  s       r0   r  zTestInvGamma.test_sf_isf  sh    ;;As#A Ar"ANNa#^^1%2C(r2   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr  r  gM$r  r   )r6   r  r  r   rY   r_   r.   rz  r  s        r0   r  zTestInvGamma.test_logcdf  s3    #&&q!,%0r2   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr{   r.  grطr  r   )r6   r  r  r   rY   r_   r.   rz  r  s        r0   r  zTestInvGamma.test_logsf  s3    $$$Q*s/r2   a, ref)r   g70K6:)r  gVMOuc                 Z    t        t        j                  j                  |      |d       y r   )r   r6   r  r>   rY   r.   rz  s      r0   test_large_entropyzTestInvGamma.test_large_entropy  s     	..q13UCr2   N)r   r   r   r  r  r  r  r  r   r   r   r  r8   r2   r0   r  r    sM    *&)10 [[X?:<=	D=	Dr2   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)rg   r   rI  )r6   fri   r.   r   )	rY   r   _f_args_correctansr   	_correct_corrects	            r0   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  )r6   r  r	   rT   r:  r  s        r0   test_f_momentszTestF.test_f_moments  se    WW]]2sF];
1aAAABKKN"#r2   c                     t        j                         5  t        j                  dt               t        j
                  j	                  dgdz  g dd       d d d        y # 1 sw Y   y xY w)Nrh  r  r   )rg   r   r&  r  r  dfndfdr  )rl  rm  rn  ro  r6   r  rX   s    r0   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  rK  r  r  rg   r   r  r&  r      )rT   r   r6   r  r   r  )rY   r  r  r  r  rD   r\   rt  v2s2k2numk2denk2s                r0   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r2   N)r   r   r   r  r  r  r  r8   r2   r0   r  r  	  s    0$Hr2   r  c                      e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	ej                  j                  dg d	      ej                  j                  d
ddgddgddgg dg dgddgddggdgdggg      d               Z
ej                  j                  d
ddgddgddgg dg dgddgddggdgdggg      d        Zd Z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   r6   r  rp  rX   s    r0   test_rvgeneric_stdzTestStudentT.test_rvgeneric_std5  s"    !%''++q!f"5
J7OPr2   c                    t        t        j                  j                  dd      t        j                  t        j
                  t        j
                  t        j
                  f       t        t        j                  j                  dd      dt        j                  t        j
                  t        j
                  f       t        t        j                  j                  dd      dt        j                  t        j
                  t        j
                  f       t        t        j                  j                  dd      ddt        j
                  t        j                  f       t        t        j                  j                  d	d
      t        j
                  t        j                  f       t        t        j                  j                  dd
      dt        j                  f       t        t        j                  j                  dd
      dt        j                  f       t        t        j                  j                  dd
      dd       y )Nr   r  )r  r  )\(?r~   rg   gGz @g     i@r   rj  gGz@r   g
ףp=
@)r~   gq    @r  r   )r   r6   r  rT   r  r  r   rX   s    r0   test_moments_tzTestStudentT.test_moments_t9  s]   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t<>U"	$r2   c                 j    g d}g d}t        t        j                  j                  |      |d       y )N)r   rg   rz  ra   )g?@gTM]?ggY?U?r   r   r   r6   r  r>   )rY   r  rN   s      r0   test_t_entropyzTestStudentT.test_t_entropyI  s'    ;+XEBr2   zv, ref)ra   r"  )r  r  c                 Z    t        t        j                  j                  |      |d       y r  r#  )rY   r  rz  s      r0   test_t_extreme_entropyz#TestStudentT.test_t_extreme_entropyP  s     	*Ce<r2   methname)ri   r   rp   r   r   r  
df_infmaskr   r   )r   r   r   )r   r   r   c                 f   t        j                  |t              }t         j                  j	                  d      }|j                  dd|j                        }|j                  |j                        }t         j                  ||<   t        j                  |dd      }t        j                  ||    dd      }t        j                  dd	      }t        ||      }	t        ||      }
t        ||      } |	|      }t        ||    |||         d
       t        ||     |
||                 y )Nr      S8 r   r`   r   r   r   r  re   rf   rd   r  r   )rT   r   boolrU   rV   r  r7  standard_normalr  r6   r  r  r(  r   r   )rY   r'  r(  rW   r  r_   t_dist
t_dist_ref	norm_distt_meth
t_meth_ref	norm_methr   s                r0   test_t_inf_dfzTestStudentT.test_t_inf_dfa  s    ZZ
$7
ii##J/[[BZ%5%5[6
 0 01:BAQ/WWJ;Qa@
JJ1A.	*Z2
Ix0	QiJ1Z=)ANS*%z!ZK.'ABr2   c                 8   t        j                  |t              }t         j                  j	                  d      }|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+  r   r`   r,  r   r   r  )r  re   rf   r  re   rf   r  r   r-  rd   )rT   r   r.  rU   rV   r  r7  r  r6   r  r  r  r   r>   )rY   r(  rW   r  r   
res_ex_infres_ex_noinfr  s           r0   test_t_inf_df_stats_entropyz(TestStudentT.test_t_inf_df_stats_entropyw  s]   
 ZZ
$7
ii##J/[[BZ%5%5[6:ggmmrq6mBZZ%%!1f%E
ww}}J;Qa,2 % 4q 	?AQ
+Z];Q,l1o>	? ggoo!o4ZZ''AQ'7
ww"j[/qJS_j1S*%|4r2   c                     g d}g d}g d}g d}t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y )N)r   r  r`   r   )r  d~QJr  r   )gZ_2g9g!ǟuIgdg)g73?r   gմFhAW;gm0_?r  r   )r   r6   r  r   ri   )rY   r_   r  
logpdf_refpdf_refs        r0   test_logpdf_pdfzTestStudentT.test_logpdf_pdf  sS     #@
>q"-zFAr*G%@r2   
x, df, ref))g     Rr4  guSaG)r   r4  r  )     R@r4  gGn`?c                     t         j                  j                  ||      }t        ||d       t         j                  j	                  | |      }t        ||d       y r  )r6   r  r  r   r  )rY   r_   r  rz  r  r  s         r0   r  zTestStudentT.test_logcdf_logsf  sF    
 2&%0qb"%s/r2   N)r   r   r   r  r   r$  r   r   r   r&  r6  r;  r@  r  r8   r2   r0   r  r  4  sT   Q$ 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0r2   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                 L    t         j                  j                  d      | _        y )Ni}rS   rX   s    r0   rZ   zTestRvDiscrete.setup_method  r  r2   c                    g d}g d}d}t        j                  d||f      }|j                  || j                        }t	        |t
        j                        sJ t        ||      D ]0  \  }}t        t        ||k(        t        |      z  |z
        dk  r0J  |j                  | j                        }t        j                  t        |      t
        j                        sJ y )	N)r   r   r   rg   r   r   )r~   rs  r  r~   rs  r~   r   sample)r  valuesr   r;  r   )r6   r;   r   rW   r9  rT   rY  r  r   rb  r   r   r   integer)rY   statesprobabilitysamplesr}  r_   rD   rk  s           r0   r?  zTestRvDiscrete.test_rvs  s    $48V[4IJEEwTXXE6!RZZ(((, 	>DAqs16{5>1A56===	> EEtxxE(}}T!Wbjj111r2   c                 :   t        j                  g d      }t        j                  g d|f      }t	        t        ||             }|j                         }t        ||       t        j                  g dg df      }|j                         }t        |d       y )N)ra  r2  rs  r1  rI  )rI  r   r   r~   )	rT   r   r6   r;   rb  r   r>   r   r   )rY   r  rk  rd  re  s        r0   rf  zTestRvDiscrete.test_entropy  sy    *+i%78%u-..
IIK:&i%=>IIKQr2   c                     g d}g d}t        j                  ||f      }ddgddgg}t        |j                  |      dd	gd
dggd       y )Nr  ry   rs  rF  rO  rI  r	  r  rg   ry   rF  r~   rs  r  r   )r6   r;   r   rE  )rY   xkpkr  r_   s        r0   r_  zTestRvDiscrete.test_pmf  s]    r2h/"X!Wq	sc$*/	1r2   c                     g d}g d}t        j                  ||f      }g d}g d}t        |j                  |      |d       t        |D cg c]  }|j                  |       c}|d       y c c}w )Nr  rQ  rO  )r   rI  r  r  r}   r  r   r   )r   ry   ry   ry   r   r   r   r   r  r   )r6   r;   r   rp   )rY   rR  rS  r  x_valuesrN   r  s          r0   rQ  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  rQ  rO  )r]   ry   rx  r   r   rI  )r   r   rg   rg   r   r   r  r   )r6   r;   r   r   )rY   rR  rS  r  q_valuesrN   rt  s          r0   r  zTestRvDiscrete.test_ppf  sf    r2h/0%x((? 	H5q5 u	.5rV  c           	          g dg df}t        j                  |      }t        |j                  |j	                  |j
                  d d       dz         |j
                  dd         y )N)r   rg   r   r  r  )r]   rF  rs  rs  r]   rO  r   r!  r   )r6   r;   r   r   rp   rR  )rY   r=  r  s      r0   test_cdf_ppf_nextz TestRvDiscrete.test_cdf_ppf_next  sU    !:;d+266"&&s"4t";<559	&r2   c                 D   t        j                  d      j                  d      }t        j                  g dg dg dg      }t	        j
                  ||f      }t        |j                         t        j                  |j                  |j                  z        d       y )NrK  )r   r   )r]   r]   rR  r;  )r]   r]   r;  r;  rO  r  r   )rT   r  r2  r   r6   r;   r   r   rb  rR  rS  rY   rR  rS  r  s       r0   test_multidimensionz"TestRvDiscrete.test_multidimension  ss    YYr]""6*XX---/ 0 r2h/		RVVBEEBEEM%:Gr2   c                    g d}ddg}t        t        t        j                  fi t	        ||f       g d}t        t        t        j                  fi t	        ||f       g d}g d}t        t        t        j                  fi t	        ||f       g d}g d}t        t        t        j                  fi t	        ||f       ddg}ddg}t        t        t        j                  fi t	        ||f       y )Nr  ry   rO  )ry   333333?gffffff濩r   rg   r   r   r   )rs  rs  rs  rs  r  r   )rS  r  r6   r;   r  rY   rR  rS  s      r0   test_bad_inputzTestRvDiscrete.test_bad_input  s    3Zj%"3"3MtB87LMj%"3"3MtB87LMj%"3"3MtB87LM'j%"3"3MtB87LMV3Zj%"3"3MtB87LMr2   c                 n   t        j                  d      j                  d      t        j                  dd      }}t	        t
        t        j                  fi t        ||f       t        j                  d      j                  d      t        j                  dd      }}t	        t
        t        j                  fi t        ||f       t        j                  d      j                  d      t        j                  dd      }}t        t        j                  ||f      j                  d      d       y )	Nr   rg   rg   rg   r   gUUUUUU?rO  r&  r   rg   r   )rT   r  r2  r  rS  r  r6   r;   r  r   rE  ra  s      r0   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>Dr2   c                     g d}g d}t        j                  ||f      }t        |j                         t	        j
                  |j                  |j                  z        d       y )N)r   rg   r   r&  r  r  )r]   rF  rF  rF  rF  r]   rO  r  r   )r6   r;   r   r   rT   rb  rR  rS  r\  s       r0   test_expect1zTestRvDiscrete.test_expect1  sG     +r2h/		RVVBEEBEEM%:Gr2   c           
      t   g d}g d}t        j                  ||f      }t        |j                         |j	                         d       t        |j                         t        d t        ||      D              d       t        |j                  d       t        d t        ||      D              d       y )	N)/g      i@g     r@g      y@g     @@g     @g     @      @g      @r  g     0@g     @g     P@g     @g     p@g      @g     @g      @g     @r  g     h@g     0@g     @g     @g     @g     P@g     @g     @g     @r  g     8@g      @g     ȩ@g     @g     X@g      @g     @g     @g     x@g     @@g     @g     h@g     ̰@g     0@g     @g     @g     \@g     @)/g-C6:?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-!_?rl  gൄ|г?r~   gH}}?r~   g
F%u?r~   r~   g ^)ˀ?g v?r~   rO  r  r   c              3   ,   K   | ]  \  }}||z    y wrt   r8   r  r  ws      r0   	<genexpr>z.TestRvDiscrete.test_expect2.<locals>.<genexpr>E  s     9daAE9s   c                     | dz  S Nrg   r8   r   s    r0   rE   z-TestRvDiscrete.test_expect2.<locals>.<lambda>H  
    AqD r2   c              3   2   K   | ]  \  }}|d z  |z    yw)rg   Nr8   rn  s      r0   rp  z.TestRvDiscrete.test_expect2.<locals>.<genexpr>I  s     <AAqD1H<s   )r6   r;   r   r   r   rb  r  )rY   r%  pyr  s       r0   test_expect2zTestRvDiscrete.test_expect2&  s    =?  q"g. 			RWWYU;		9c!Rj99	G 			.1<Q<<5	Jr2   N)r   r   r   rZ   r?  rf  r_  rQ  r  rZ  r]  rb  rg  ri  rv  r8   r2   r0   rE  rE    sC    42
	1..&HN(EH#Jr2   rE  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   ra   r   ri  )	rT   rN  r   r6   
skewcauchyri   r  rp   r   r  s     r0   test_cauchyzTestSkewCauchy.test_cauchyM  s    KKAs#!%"2"2"6"6qA"6">"',,"2"21"5	7!%"2"2"6"6qA"6">"',,"2"21"5	7!%"2"2"6"6qA"6">"',,"2"21"5	7r2   c                    t         j                  j                  d      }|j                  d      dz  dz
  }|j                  d      dz  dz
  }g d}g d}t	        t
        j                  j                  ||      |       t	        t
        j                  j                  ||      |       t	        t
        j                  j                  ||      |       y )Nr   r`   rg   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?)
rT   rU   r  randr   r6   r{  ri   rp   r   )rY   rW   r.   r_   ri   rp   s         r0   test_skewcauchy_Rz TestSkewCauchy.test_skewcauchy_RV  s    & ii##A&HHRL1q HHRL2!%$ 	((,,Q2C8((,,Q2C8((,,S!4a8r2   N)r   r   r   r|  r  r8   r2   r0   rx  rx  L  s    7 9r2   rx  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   rg   )r  r~   rI  r}   )r~   r]   ra  r   r   rI  r  )r6   	jf_skew_tr  r   ri   rp   r   )rY   r.   r/   r  r_   rt  jfr  s           r0   test_compare_tzTestJFSkewT.test_compare_tz  s     	AU!-__Q"GGBKq	1558,q	1558,q	1558,(!''&/:r2   c                     t        j                  t        t              j                  dz        }t         j
                  j                  |d      S )a  Sample data points computed using the `ST5` distribution from the
        GAMLSS package in R. The pdf has been calculated for (a,b)=(2,3),
        (a,b)=(8,4), and (a,b)=(12,13) for x in `np.linspace(-10, 10, 41)`.

        N.B. the `ST5` distribution in R uses an alternative parameterization
        in terms of nu and tau, where:
            - nu = (a - b) / (a * b * (a + b)) ** 0.5
            - tau = 2 / (a + b)
        z"data/jf_skew_t_gamlss_pdf_data.npyz	x,pdf,a,bnames)rT   loadr   __file__parentrec
fromarraysrp  s     r0   gamlss_pdf_datazTestJFSkewT.gamlss_pdf_data  sA     wwN!!$HH
 vv  [ 99r2   za,b)re  )r  r   )rK     c                     ||d   |k(  |d   |k(  z     }|d   |d   }}t        |t        j                  ||      j                  |      d       y)zCompare the pdf with a table of reference values. The table of
        reference values was produced using R, where the Jones and Faddy skew
        t distribution is available in the GAMLSS package as `ST5`.
        r.   r/   r_   ri   r  r   N)r   r6   r  ri   )rY   r  r.   r/   r   r_   ri   s          r0   test_compare_with_gamlss_rz&TestJFSkewT.test_compare_with_gamlss_r  s_     S!Q&?3+?1+DE
 cDK3U__Q266q9Fr2   N)
r   r   r   r  r   r  r  r   r   r  r8   r2   r0   r  r  y  sH    ;  ^^: : [[U$>?	G @	Gr2   r  rg   r   g@r   gףp=
1@r4  gRZ@i   gS㥛Ԋ@r]   r^   g&@iQ i'  i0ybi l   HO1Z i3r  ir`   ira   ikrF  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   rW   rX   s    r0   rZ   zTestSkewNorm.setup_method  s    %d+r2   c                     t        j                  ddd      }t        t        j                  j                  |d      t        j                  j                  |             y rz  )rT   rN  r   r6   skewnormri   r  r  s     r0   test_normalzTestSkewNorm.test_normal  sB    KKAs#!%.."4"4Q!"4"<"'**.."3	5r2   c                     t        d      }d}t        j                  j                  d||      }t	        ||j
                         t        j                  j                  d||      }t	        ||j
                         y )NrN  )r   r   r   r   )r.   r   r   r  )r   r6   r  r   r   r7  )rY   rW   r7  r_   s       r0   r?  zTestSkewNorm.test_rvs  sc     &NNEDUAGG$NN%cBUAGG$r2   c                    t        d      }t        j                  j                  dt	        d      dd|      }t        j                  |      t        j                  |      t        j                  |      t        j                  |      g}t        j                  j                  dddd      }t        ||d	       t        j                  j                  d
t	        d      dd|      }t        j                  |      t        j                  |      t        j                  |      t        j                  |      g}t        j                  j                  d
ddd      }t        ||d	       y )NrN  r   r  r   rg   )r.   r   re   rf   r   r  )r.   re   rf   r  rL  r  )r   r6   r  r   rX  rT   r   r4  r5  kurtosisr   )rY   rW   r  rN   r7  s        r0   r  zTestSkewNorm.test_moments  s    &NNSq,/  1GGAJq	5::a=%..:KL>>''!!V'L!(Ha@NN#c(,/  1GGAJq	5::a=%..:KL>>''"!1f'M!(Ha@r2   c                     g dg dg dg dg dg dg dg}|D ]4  \  }}}t         j                  j                  ||      }t        ||d	       6 y )
N)rr  r   gEAV)rr  r   gV|@$a)rr  r   g0rY)rr  ry   Zk)r  r   r  )r   r  ļ)rg   g    cr  r!  r   )r6   r  r   r   )rY   
logpdfvalsr_   r.   	logpdfvalr  s         r0   test_pdf_large_xzTestSkewNorm.test_pdf_large_x  sY     2302455

  * 	8OAq)>>((A.DD)$7	8r2   c                     t         j                  j                  g dd      }t        |t	        j
                  d      d       t         j                  j                  dd      }t        |dd       y )	N)r`   r  r0  r   r   r  r   rz  rx  rI  )r6   r  rp   r   rT   onesr  s     r0   test_cdf_large_xzTestSkewNorm.test_cdf_large_x  sP     NN|R02771:E2NNr3'3U+r2   c                     g dg dg dg dg dg}|D ]d  \  }}}t         j                  j                  ||      }t        ||d       t         j                  j	                  | |       }t        ||d       f y )N)r  r   gzbLe9)r  rg   gn'/2;)r   r   g::)r  r   g|<)rb  r  r(  r!  r   )r6   r  rp   r   r   )rY   cdfvalsr_   r.   cdfvalrk  s         r0   test_cdf_sf_small_valuesz%TestSkewNorm.test_cdf_sf_small_values  sy     .+,./
 $ 	2LAq&""1a(AAvD1!!1"qb)AAvD1	2r2   z
a, momentsc                     t        |d      D ]3  \  }}t        j                  j                  ||      }t	        ||d       5 y )Nr   )startr  r   )r^  r6   r  r  r   )rY   r.   r  orderrN   r  s         r0   test_noncentral_momentsz$TestSkewNorm.test_noncentral_moments  s>    (: 	7OE8..''q1CC6	7r2   c           	      X   t         j                  j                  d      }d\  }}}t        j                  |||      }|j                  d|      }t        j                  j                  |dd      \  }}}	t        j                  j                  |dd      \  }
}}||cxk(  rdk(  sJ  J ||
k7  sJ t        j                  j                  |ddd	
      \  }}}|dk(  sJ t        j                  |||      }|j                  d      }t        j                  |      t        j                  |      f}t        ||       t        j                  j                  dd|      }t        j                  j                  |      }t        j                  t        j                  |            sJ t        j                  j                  |d	      \  }}}t        j                  |      sJ t        j                  |      t        j                  |      }}t        |||t        j                  dt         j                   z        z  z          t        ||dz  ddt         j                   z  z
  z         t        j                  j                  |d      \  }}}t        j                  j                  | d      \  }}}t        |||g| | |g       t        j                  j                  |d	      \  }} }!t        j                  j                  | d	      \  }"}#}$t        |"|#|$g| |  |!g       y )Nl   #ke )r   r.  ry   ra   r   rM  r   r   gmmr   r  msr  r   r  rg   mle)rT   rU   rV   r6   r  r   r   r   r5  r   r  r   r:  isinfr4  r  rj   )%rY   rW   r.   re   rf   rJ   r   a2loc2scale2a3loc3scale3a4loc4scale4dist4r   rz  r   a5loc5scale5r  r  a6ploc6pscale6pa6mloc6mscale6ma7ploc7pscale7pa7mloc7mscale7ms%                                        r0   rm  zTestSkewNorm.test_fit#  s   ii##$78$3~~ae,hhCch2 !>>--c4a-@D& >>--c4a-@D&t q     Rxx !>>--c1Qt-LD&{{r40kk$k'ggclEJJsO+S! ||#> nn  &vvbkk#&''' !>>--d4-@D&xx|| wwt}bffTl14&2771RUU7+;";;<619AI67 $nn00U0CUG#nn00#e0DUGeW-ufg/FG#nn00T0BUG#nn00#d0CUGeW-ufg/FGr2   c                 X  	 t        j                  g dddgz  z   dgz         }t        j                  j	                  |      }t        j                  j                  ||      }t        j                  j	                  |d      }t        j                  j                  ||      }||dz
  k  sJ t         j                  j                  d      	d	d
dd}	fd}t        j                  t        j                  |||      }t         j                  j                  ||j                  d       y )N)r  r   r/  rK  r   r   T)superfitry   l   y
ND )r  r   )rb  r`   )rx  r`   r.   re   rf   c                      t        | |      S )N)rW   )r$   )funr   rW   s     r0   	optimizerz0TestSkewNorm.test_fit_gh19332.<locals>.optimizerh  s    )#v3??r2   )r  r  r   )rT   r   r6   r  r   r   rU   rV   r  r   params)
rY   r_   r  r   params_superrz  r   r  
fit_resultrW   s
            @r0   test_fit_gh19332zTestSkewNorm.test_fit_gh19332S  s    
 HH*R1#X5;<##A&nn!!&!,
 ~~))!d);nn!!,2S3Y ii##$78y;G	@ YYu~~q&IN



""6:+<+<4"Hr2   c                 \    t        t        j                  j                  dd      dd       y )Nr{   r  gi}#%?r   r   )r   r6   r  r   rX   s    r0   r  zTestSkewNorm.test_ppfn  s"     	**457HuUr2   N)r   r   r   rZ   r  r?  r  r  r  r  r   r   r   _skewnorm_noncentral_momentsr  rm  r  r  r8   r2   r0   r  r    s`    ,5%A8 ,2" [[\+GH7 I7
.H`I6Vr2   r  c                   $    e Zd Zd Zd Zd Zd Zy)	TestExponc                 V    t        t        j                  j                  d      d       y r  )r   r6   rZ  ri   rX   s    r0   	test_zerozTestExpon.test_zerov  s    U[[__Q'+r2   c                     t        t        j                  j                  d      d       t        t        j                  j	                  t        j                  j                  d            d       y )Nr,  rr  )r   r6   rZ  rp   r  r   rX   s    r0   	test_tailzTestExpon.test_taily  s=    U[[__U+U3U[[__U[[^^B%78"=r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y No_?46@yX5ͻ@j+?UX@)rT   r   r  rS  r  r6   rZ  r   r  s     r0   test_nan_raises_errorzTestExpon.test_nan_raises_error}  5    HHfffffbffEFj%++//15r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y r  )rT   r   r  rS  r  r6   rZ  r   r  s     r0   test_inf_raises_errorzTestExpon.test_inf_raises_error  r  r2   N)r   r   r   r  r  r  r  r8   r2   r0   r  r  u  s    ,>6
6r2   r  c                   f    e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	y)	TestNormc                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y r  )rT   r   r  rS  r  r6   r  r   r  s     r0   r  zTestNorm.test_nan_raises_error  5    HHfffffbffEFj%**..!4r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y r  )rT   r   r  rS  r  r6   r  r   r  s     r0   r  zTestNorm.test_inf_raises_error  r  r2   c                 b    g d}t        t        t        j                  j                  |d       y )Nr  shrimp)plate)rS  r  r6   r  r   r  s     r0   test_bad_keyword_argzTestNorm.test_bad_keyword_arg  s    i(Cr2   re   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  rK  re   r   r   )r6   r  
_delta_cdfr   )rY   re   rN   rg  s       r0   test_delta_cdfzTestNorm.test_delta_cdf  sm     )

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

%%3i2c6%Exe4r2   N)
r   r   r   r  r  r  r   r   r   r  r8   r2   r0   r  r    s;    5
5
D [[UQF+
5 ,
5r2   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  )rT   r   r  rS  r  r6   r  r   r  s     r0   r  z!TestUniform.test_nan_raises_error  7    HHfffffbffEFj%--"3"3Q7r2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |       y r  )rT   r   r  rS  r  r6   r  r   r  s     r0   r  z!TestUniform.test_inf_raises_error  r  r2   N)r   r   r   __doc__r  r  r8   r2   r0   r  r    s    8
8r2   r  c            
       6   e Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Z
ej                  j                  dg d	g d
g dg dg dg      d        Zej                  j                  dg dg dg dg dg dg dg      d        Zy)TestExponNormc                 2   d }d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             d\  }}}d||z  z  }t         j                  j                  |||d      }t        | ||||             y )	Nc                     dd| |z  dz  z  z   }d| |z  dz  z  |dz  z  }dd| |z  dz  z   dz  z  }|d| z  z   ||z  d| | z  z  z   ||gS )NrI  r   rg   r   rM        @r   r8   )lamsigrT  opK2exp_skewexp_kurts         r0   get_momsz,TestExponNorm.test_moments.<locals>.get_moms  sz     c#g\))DC#I>)D4L8Ha39q.0B77H3JC#s3w- 78LLr2   )r   r   r   rI  r  r8  )r  rg   r]   )r   r   r   )r  r  r.  )r6   	exponnormr   )rY   r  rT  r  r  Kstss          r0   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8r2   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   r6  )rT   r   r  rS  r  r6   r	  r   r  s     r0   r  z#TestExponNorm.test_nan_raises_error  ;    HHfffffbffEFj%//"5"5qqKr2   c                     t        j                  dddddt         j                  g      }t        t        t
        j                  j                  |dd       y r  )rT   r   r  rS  r  r6   r	  r   r  s     r0   r  z#TestExponNorm.test_inf_raises_error  r  r2   c                 T   t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       y )Ni|r   r~     r{   )r   r6   r	  ri   rX   s    r0   test_extremes_xzTestExponNorm.test_extremes_x  sn    EOO//a8#>EOO//a8#>EOO//d;SAEOO//d;SAr2   zx, K, expected))r  r{   g6
N-)r   r{   g՜n+H?)r   r{   gi?)r  r{   gbJI-)r`   r   gI8?)r`   r  gQ3|-0?c                 \    t        t        j                  j                  ||      |d       y r  )r   r6   r	  ri   )rY   r_   r
  rN   s       r0   test_std_pdfzTestExponNorm.test_std_pdf  s!     	++Aq18%Hr2   zx, K, scale, expected)r   r{   r   gVAҤ?)r  {Gzt?r   g'^>)ru  r{   ra   r~   )ru  r{   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   )r6   r	  rp   r   rY   r_   r
  rf   rN   rk  s         r0   test_cdf_small_KzTestExponNorm.test_cdf_small_K   s=     OO1E2s?8O8Axe4r2   )r`   r{   r   ghG}$;)rg   r  r   g]fJ?)r   r  ry   g31"g#;)r`   r  ry   gf
+-)r  r  ry   r~   )r  r  r   ga9S?c                 ~    t         j                  j                  |||      }|dk(  r|dk(  sJ y t        ||d       y )Nr  r~   -a=r   )r6   r	  r   r   r  s         r0   test_sf_small_KzTestExponNorm.test_sf_small_K  s=     OOq!51s?8O8Axe4r2   N)r   r   r   r  r  r  r  r   r   r   r  r  r  r8   r2   r0   r  r    s    96L
L
B$ [[-BCICI [[4>D4G?	AB5B5& [[4B@DF3@BC5C5r2   r  c                       e Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	y)	TestGenExponc                     ddl m} t        j                  j	                  t        j                  ddd      ddd      }t         ||d      dd       y )	Nr   )simpsonr`   r{   ry   r}   )dxr   )scipy.integrater  r6   genexponri   rT   r  r   )rY   r  rk  s      r0   test_pdf_unity_areaz TestGenExpon.test_pdf_unity_area)  s?    +NNryyB5sCEGA$/A6r2   c                     t         j                  j                  t        j                  ddd      ddd      }t        j
                  d|k  |dk  z        sJ y )Nr   r`   r{   ry   r}   r   )r6   r"  rp   rT   r  r   )rY   rp   s     r0   test_cdf_boundszTestGenExpon.test_cdf_bounds/  sH    nn  1b$!7c3GvvqCxC1H-...r2   zx, p, a, b, c))r4  gM <r   rg   r  )ra  g%DYY?ry   rg   r   )ra  gS4z?      #@rg   ry   )r{   ga^5?rx  ra  ry   )rw  gs%)?rx  ra  ry   )rn  gdm?ra  r   ry   c                     t         j                  j                  ||||      }t        ||d       t         j                  j	                  ||||      }t        ||d       y r	  )r6   r"  r   r   r  )rY   r_   rk  r.   r/   r  r   r  s           r0   r  zTestGenExpon.test_sf_isf?  sP     ^^q!Q*AE*nn  Aq!,QU+r2   ))ra  g;\i?ry   rg   r   )ra  gu0?r&  rg   ry   )r{   g-%I?rx  ra  ry   )rw  g]d?rx  ra  ry   )rn  g泩'?ra  r   ry   c                     t         j                  j                  ||||      }t        ||d       t         j                  j	                  ||||      }t        ||d       y r	  )r6   r"  rp   r   r   )rY   r_   rk  r.   r/   r  rp   r   s           r0   r  zTestGenExpon.test_cdf_ppfM  sP     nn  Aq!,QU+nn  Aq!,QU+r2   N)
r   r   r   r#  r%  r   r   r   r  r  r8   r2   r0   r  r  (  sf    7/  [[_IJ,J, [[_JK,K,r2   r  c                       e Zd Zd Zy)TestTruncexponc                     ddg}ddg}ddg}t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d	       y )
Nr  ra   g_93@gBX@g,M<gǃ@֫5gLa㧝=r   r  )r   r6   
truncexponr   r  )rY   r/   r_   rz  s       r0   r  zTestTruncexpon.test_sf_isf\  s`     I	"%'=>((++Aq13WE((,,S!4aeDr2   N)r   r   r   r  r8   r2   r0   r*  r*  Z  s    Er2   r*  c                       e Zd Zd Zy)TestExponpowc                     t        t        j                  j                  dd      d       t        t        j                  j	                  t        j                  j                  dd      d      d       y )Nr|  r}   r  r   r   )r   r6   exponpowrp   r  r   rX   s    r0   r  zTestExponpow.test_tailg  sL    ENN..ub95AENN..u~~/@/@B/GL	r2   N)r   r   r   r  r8   r2   r0   r.  r.  f  s    r2   r.  c                       e Zd Zd Zd Zd Zy)TestSkellamc                     t        j                  dd      }d\  }}t        j                  g d      }t        t        j
                  j                  |||      |d       y )Nrb  r4  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~?rL  )rT   r  r   r   r6   skellamrE  )rY   r\   mu1mu2skpmfRs        r0   r_  zTestSkellam.test_pmfn  sO    IIc2S-. 	EMM--ac:FBOr2   c                     t        j                  dd      }d\  }}t        j                  g d      }t        t        j
                  j                  |||      |d       y )Nrb  r4  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   rL  )rT   r  r   r   r6   r4  rp   )rY   r\   r5  r6  skcdfRs        r0   rQ  zTestSkellam.test_cdf  sO    IIc2S-. 	EMM--ac:FANr2   c                     d\  }}}t        t        j                  j                  |||      dd       t        t        j                  j	                  |||      dd       y )N)r   r   gs1Cr   rx  r   r   )r   r6   r4  rE  rp   )rY   r_   r5  r6  s       r0   test_extreme_mu2zTestSkellam.test_extreme_mu2  sK    .3))!S#6F))!S#6Fr2   N)r   r   r   r_  rQ  r;  r8   r2   r0   r2  r2  m  s    P*O*Gr2   r2  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)Nrh  r   ry   r   r   )r~   g~r?g e3E?)rl  rm  rn  ro  r6   r"  ri   r   rY   ri   s     r0   rG  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?rC   )r   r6   r"  r   r  rT   r  r  )rY   rg  rT  sigmas       r0   r  zTestLognorm.test_logcdf  s    *B((B%(8

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

((2u)<=	?r2   r  r  c                 @    t         j                  j                  d      S r  r  rX   s    r0   rW   zTestLognorm.rng  r  r2   r   r]   rg   r   )r   r   rg   r0  )rF  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 )Nra   )r   rD   rf   re   r   r   r   r   r   T)r6   r"  r   r   r  s
             r0   r   z'TestLognorm.test_fit_MLE_comp_optimizer  su     }}  cYi%,3 ! @ "DJ"DL&DN 	&emmT 	<T 	<6:	<r2   c                 p    d}g d}g d}t        t        j                  j                  ||      |d       y )NgI+?)r]   绽|=gҶOɃ;gk3;9"7)g?y+@g~K8ax@gƶ@g9]Ar  r   )r   r6   r"  r  )rY   rD   rt  rz  s       r0   r  zTestLognorm.test_isf  s2    
 &#))!Q/5Ar2   N)r   r   r   rG  r  r   r  rW   r   r   r%   rT   r  r   r  )r  es   00r0   r=  r=    s    J? V^^*%+ &+ [[[2q'2[[Y
3[[[*5[[<)0q)I -A!&!   -. R[["< #. 6 4 3<$	B+-s   Cr=  c                      e Zd Zd Zd Zd Zd Zej                  j                  e
d      d        Zej                  j                  e
d      d        Zej                  j                  e
d      d	        Zd
 Z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d Zy) TestBetac                     t         j                  j                  ddd      }t        |d       t         j                  j                  ddd      }t        |t        j
                         y )Nr   r   ry   g;B.)r6   r  r   r   rT   r  rY   r   s     r0   r  zTestBeta.test_logpdf  sJ    ""1a-FN3""1c1-FBFF+r2   c                 4   d\  }}t        j                  g d      }t        j                  ||      }t	        |j                  |      j                         d       t	        |j                  |      t        j                  |j                  |                   y )Ni  i  rF  ry   rx  gƒ)	rT   r   r6   r  r   r   rb  ri   r   rY   r  r  r_   r/   s        r0   test_logpdf_ticket_1866z TestBeta.test_logpdf_ticket_1866  sf    tHH_%JJud#)+=>a"&&!"56r2   c                 f    g d}t        t        t        j                  j                  |ddd       y )Nr]   ry   rx  r   r   r  )r   r   r  )rS  r  r6   r  r   r  s     r0   test_fit_bad_keyword_argsz"TestBeta.test_fit_bad_keyword_args  s$    i1$	&r2   c                 d    g d}t        t        t        j                  j                  |dd       y )NrS  ry   )fafix_a)rS  r  r6   r  r   r  s     r0   #test_fit_duplicated_fixed_parameterz,TestBeta.test_fit_duplicated_fixed_parameter  s!     j%**..!3Gr2   zOverflow, see gh-14901reasonc                 f    d\  }}}t        t        j                  j                  |||      d       y )N)g?rB  g   0xAgx)>)r   r6   r  r   )rY   rk  r.   r/   s       r0   test_issue_12635zTestBeta.test_issue_12635  s+     71a

q!Q/1FGr2   c                 0   t        j                  g d      }t        j                  g d      }d}t        j                  j	                  ||dz   d|z
        }t        ||       t        j                  j                  ||dz   d|z
        }t        ||       y )N)g@3@?g^?gNC?)r`   ra   r   r  r   r   )rT   r   r6   r  r  r   r   )rY   inv_R
count_listrk  invr   s         r0   test_issue_12794zTestBeta.test_issue_12794  s~      1 2 XXo.
jjnnQ
Q0CDU#jjmmCa*1DEQr2   c                     d}t        j                  dd      }d}d|z
  |dz   ||z
  }}}t        j                  j	                  |||      }t        j                  j                  |||      }t        |d|z
         y )Nh㈵>r   r  r   )rT   r  r6   r  r   rp   r   )	rY   alpha_2count_nobsrt  r.   r/   r`  r   s	            r0   test_issue_12796zTestBeta.test_issue_12796  sq     1b!g+vz4&=a1jjnnQ1%jjnnS!Q'Q[)r2   c                 h   d\  }}t        t        j                  j                  d||      t        j
                         d\  }}t        t        j                  j                  d||      t        j
                         d\  }}t        t        j                  j                  d||      d       t        t        j                  j                  d||      d       d\  }}t        t        j                  j                  d||      d       t        t        j                  j                  d	||      d       y )
Nr  r   )rF  r   r   )r   r   r   +ph  )r   r   rI  )r   r6   r  ri   rT   r  )rY   r.   r/   s      r0   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7r2   c                 R    d\  }}}t         j                  j                  |||       y )N)gףp=
?g   vH7B  @0B)r6   r  r   )rY   rt  r.   r/   s       r0   test_boost_eval_issue_14606z$TestBeta.test_boost_eval_issue_146064  s!    '1a

q!Qr2   r  a, b)ri        )@)rn  ri  c                 <    d}	  ||||       y # t         $ r Y y w xY w)Nr   )OverflowError)rY   r  r.   r/   rk  s        r0    test_beta_ppf_with_subnormal_a_bz)TestBeta.test_beta_ppf_with_subnormal_a_b8  s-    
 
	1aO 	 	s   
 	zx, a, b, ref)r  r  rx  g>׵NlIq)&.!>rw  rx  g'rOc                 b    t         j                  j                  |||      }t        ||d       y r  )r6   r  r  r   rY   r_   r.   r/   rz  r  s         r0   r  zTestBeta.test_logcdfQ  s(     ""1a+%0r2   )rr  r  rx  gp}^U)ri  rw  rx  g
1*c                 `    t         j                  j                  |||      }t        ||d       y )Nr  )r6   r  r  r   rY   r_   r.   r/   rz  r  s         r0   r  zTestBeta.test_logsfY  s(     

  Aq)sE*r2   rw  ))ry   ry   gο)r  r   g )r   r  g&׾k )r   r   g*)Mc                 `    t        t        j                  ||      j                         |       y rt   r   r6   r  r>   r  s       r0   rf  zTestBeta.test_entropyj  s"     	

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

1a(002CcBr2   c           
          t        j                  t         j                        }t        j                  g d      }t        j                  g d      } |||      j                         }t        j                   ||d   |d         j                          ||d   |d         j                          ||d   |d         j                          ||d   |d         j                         g      }t        ||       y )N)ry  ra   r  r`   )ry  r  ra   r  r  r   r   rg   r   )r6   make_distributionr  rT   r   r>   r   )rY   Betar.   r/   r   rz  s         r0   test_entropy_broadcastingz"TestBeta.test_entropy_broadcasting  s     &&uzz2JJ*+JJ*+Q!n$$&jj$11.66811.66811.66811.668: ; 	S!r2   N)r   r   r   r  rQ  rT  rX  r   r   skipifMACOS_INTELr\  ra  rg  r  rl  r   r6   r  r   r  rq  r  r  rf  r  r  r8   r2   r0   rJ  rJ    s   ,7&
H [[,DE	H F	H [[,DE  F " [[,DE	* F	*8.  [[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"r2   rJ  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;  r]   gPK?)r   r  r;  g%p?)r|  r;  r]   g#|/?)r|  r  r  gsM
<)r|  r;  r  $5Є*?)^ 9^;r;  r]   gompP?)r  r  r  g7j"!9)r  r;  r  z^J?)r  r;  r]   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 )NrN  rO  )rT   r   r6   r  r	   r:  r   r   r   ri   r   rP  s        r0   r  zTestBetaPrime.test_logpdf  sn    tHH_%OOE4(AHHQK(,,./a"&&!"56r2   c           	         t         j                  j                  ddd      }t        |d       d\  }}t	        j
                  g d      }t         j                  j                  |||      }t        t	        j                  |      j                                t         j                  j                  }|D cg c]  } |t         j                  |||       }}t        ||dd       y c c}w )	Nr   rF  rs  r~   rN  rO  -=rc  )r6   r  rp   r   rT   r   r	   r:  r   r<   _cdf_singler   )rY   r_   r  r  r  gen_cdfr>  cdfs_gs           r0   rQ  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))r{   r
  rx  gV)?)r  r
  rx  gWJB9*=)r,  r
  rx  gOG J<)r  ra        @gΣ01)      ?ra  r  g8ǘ`?)>q?r;  r]   gMDc                 b    t         j                  j                  |||      }t        ||d       y r  )r6   r  r   r   )rY   rk  r.   r/   rN   r_   s         r0   r  zTestBetaPrime.test_ppf  s(     OO1a(8%0r2   z
x, a, b, pc                 ^    t        t        j                  j                  |||      |d       y r	  )r   r6   r  r   )rY   r_   r.   r/   rk  s        r0   test_ppf_gh_17631zTestBetaPrime.test_ppf_gh_17631  s!    ++Aq!4aeDr2   c                     t        j                  d      }t        j                  d      }t        j                  d      }t        t        j                  j                  |||      dd       y )NrI  ry   r  r   )rT   r   r   r6   r  _ppf)rY   r.   r/   rk  s       r0   	test__ppfzTestBetaPrime.test__ppf  sH    HHSMHHSMHHSM,,Q15sGr2   zx, a, b, expected))r  r  r  r  )r  r;  r]   gV[?)r  r;  r]   r  c                 ^    t        t        j                  j                  |||      |d       y r  )r   r6   r  rp   )rY   r_   r.   r/   rN   s        r0   test_cdf_gh_17631zTestBetaPrime.test_cdf_gh_17631  s#     	++Aq!4hUKr2   )r=  r;  r]   g%?)r=  r  r;  goXr?c                 p    t         j                  j                  |||      }|dk  sJ t        ||d       y )NrI  gh㈵>r   )r6   r  rp   r   )rY   r_   r.   r/   rN   r%  s         r0   test_cdf_extreme_tailsz$TestBetaPrime.test_cdf_extreme_tails  s3     OO1a(3ww8$/r2   c                     g d}g d}g d}g d}t         j                  j                  |||      }t        ||d       y )N)r   r   rg   r;  r;  r;  r;  r  r  r;  r;  r;  r  r  )r   rg   r   r]   r]   r]   r]   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   )r6   r  r   r   )rY   r.   r/   r_   rz  	sf_valuess         r0   r  zTestBetaPrime.test_sf  sD    0;
 OO&&q!Q/		3U3r2   c                 r    d}d}d}d}t         j                  j                  |||      }t        ||d       y )Nrx   ry   rJ  gg%`ʼr  r   )r6   r  r  r   rt  s         r0   r  zTestBetaPrime.test_logcdf+  s:    $''1a0%0r2   c                 r    d}d}d}d}t         j                  j                  |||      }t        ||d       y )Nr!  r,  ry   g9;ЋVr  r   )r6   r  r  r   rv  s         r0   r  zTestBetaPrime.test_logsf3  s:    %%%aA.s/r2   c                     t         j                  j                  g ddd       t        j                  dd      j                  d       y )N)r]   ra  rs  r_  皙?r   r   r6  r  r  )r6   r  r   rX   s    r0   test_fit_stats_gh18274z$TestBetaPrime.test_fit_stats_gh18274<  s7     	6QqI!q!''/r2   c                     t         j                  dg}t        j                  dddg      j	                  d      }t        ||       y )NgooB?rg   r  gffffff@r   )rT   r  r6   r  r  r   )rY   rz  r   s      r0   test_moment_gh18634z!TestBetaPrime.test_moment_gh18634C  s<     vv()ooa#s,33A6S!r2   N)r   r   r   cdf_valsr  rQ  r   r   r   r  r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r    s    H 7:> [[	B11 [[\84E 5EH [[ 
 	
LL [[	.	/	120	204*100	"r2   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  rF  r  g
CTb?r   r`   gBΖ?)r6   r  ri   r   r@  s     r0   rG  zTestGamma.test_pdfP  sF    kkoob#To2C-kkooa4o0C+r2   c                 \    t         j                  j                  dd      }t        |d       y r  )r6   r  r   r   rL  s     r0   r  zTestGamma.test_logpdfX  s$     ##Aq)FA&r2   c                 d    g d}t        t        t        j                  j                  |dd       y )NrS  r   r  )r   r  )rS  r  r6   r  r   r  s     r0   rT  z#TestGamma.test_fit_bad_keyword_args^  s    i!!8Lr2   c                     t        j                  t        j                  j	                  dd      dd      sJ t        j                  t        j                  j	                  dd      dd	      sJ y )
Nr  r   gplC@r  r   r  ra   g1}t@r   )rT   iscloser6   r  r  rX   s    r0   r  zTestGamma.test_isfb  s\    " zz%++//%3+%9 	9 9zz%++//%5+%9 	9 9r2   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )NP   r  gޟ򑁺r  r   )r6   r  r  r   r  s        r0   r  zTestGamma.test_logcdfx  s3    $##Aq)%0r2   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr  r  gDmr  r   )r6   r  r  r   r  s        r0   r  zTestGamma.test_logsf  s3    %!!!Q's/r2   rf   rI  rJ  c                 r    t         j                  j                  |dz  |dz  d|      }t        |dd       y )N   r  r   r  g>S*r   r   )r6   r  r  r   rY   rf   rg  s      r0   r  zTestGamma.test_delta_cdf  s6     &&uSy%)Qe&L6UCr2   za, ref, rtol))r  gt.r   )rg   r  r   )ra   gX>k-־@r   )r  gwM7@r   )g NgmCg%og$6@r   )r  oܘ#]@r   c                 Z    t        t        j                  j                  |      ||       y r  )r   r6   r  r>   )rY   r.   rz  r   s       r0   rf  zTestGamma.test_entropy  s     	++A.$?r2   r.   )r{   r   r  re   )r{   r   r  rW  TFr   r2  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   ra   r5  rV  r   r   r   r   r  r  r  r  r   rg   )rT   rU   rV   r6   r  r   r  r   r   r  r   r   r   r  )rY   r.   re   rf   rW  r   r2  rW   r   r   r  r9  thetarJ   s                 r0   test_fit_mmzTestGamma.test_fit_mm  sW    ii##$78{{qcS,/  1 DJDL"DNCIA:MIz; ;:T:T:;:T:T:{{E"A:DIIK7A:DKKNBGGD!G,<=A:DKKNBGGD!G,<= ;s   #FFN)r   r   r   rG  r  rT  r  r  r  r   r   r   r  rf  r  r8   r2   r0   r  r  O  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>r2   r  c                      d} t        j                  d| dz  z  d| dz  z  dd      }t        |j                  d      d       y )	Nr  g;f?rg   r   r   rd   rI  gV{q@)r6   r  r   ri   )jitterZs     r0   test_pdf_overflow_gh19616r    sC     F6FAI-q619}!1MAAEE#J 12r2   c                       e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d	        Z	d
 Z
y)
TestDgammac                    t         j                  j                  d      }d}|j                  d|      }|j	                  d|      }t
        j                  j                  ||      }t
        j                  j                  t        j                  |      |      dz  }t        ||       t        j                  |      }t        |j                  |      |d       y )Nl   OP($ r`   rf   r   )r  r   rg   r  r   )rT   rU   rV   normalr  r6   dgammari   r  r   r   )rY   rW   r   r_   r.   r   rz  rJ   s           r0   rG  zTestDgamma.test_pdf  s    ii##$78JJRdJ+KKRdK+llq!$kkoobffQi+a/S!||ASu5r2   zx, a, expected))r  r   ggrU>)r  r   g$IC<)ir   g2Wj<)rn  g~)A.=)r   r   gf?c                 x   t         j                  j                  ||      }t        ||d       t         j                  j	                  ||      }t        ||d       t         j                  j                  | |      }t        ||d       t         j                  j                  ||      }t        || d       y r  )r6   r  rp   r   r   r   r  )rY   r_   r.   rN   rp   r   r   r  s           r0   test_cdf_ppf_sf_isf_tailz#TestDgamma.test_cdf_ppf_sf_isf_tail  s     llq!$XE2llx+QU+\\__aR#H51llx+aRe,r2   r  ))r  gmqn @)?g?)r  gx?c                 Z    t        t        j                  j                  |      |d       y r  r   r6   r  r>   r  s      r0   rf  zTestDgamma.test_entropy  s      	,,Q/5Ar2   ))r  r  )r|  g>_)r/  g5i)r  go@)r  g4Fa3@)r  grO]@c                 Z    t        t        j                  j                  |      |d       y r{  r  r  s      r0   test_entropy_entreme_valuesz&TestDgamma.test_entropy_entreme_values  s    " 	,,Q/5Ar2   c                     t        j                  g d      }t        j                  j	                  |      }t        t        |            D ],  }||   t        j                  j	                  ||         k(  r,J  y )N)r   r   r  r/  )rT   r   r6   r  r>   r  r  )rY   r_   r%  r  s       r0   test_entropy_array_inputz#TestDgamma.test_entropy_array_input!  sa    HH'(LL  #s1v 	6AQ45<<//!5555	6r2   N)r   r   r   rG  r   r   r   r  rf  r  r  r8   r2   r0   r  r    s    6, [[-:;-;- [[X89B	9B [[X:;
B;
B6r2   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!  rL  ra   g6:֜?r   r6   chi2ri   rX   s    r0   r  zTestChi2.test_precision+  s@    EJJNN468N$&	(EJJNN346J$&	(r2   rA  ))g     p@r   g~#e)g      ^@r4  gtA)r  r  gzĀ׿c                 `    t         j                  j                  ||      }t        ||d       y r  )r6   r  r  r   )rY   r_   r  rz  r  s        r0   r  zTestChi2.test_logcdf2  s&     ""1b)%0r2   ))r  r4  r  )r  rr  gc)r  r`   g]3c                 `    t         j                  j                  ||      }t        ||d       y r  )r6   r  r  r   )rY   r_   r  rz  r  s        r0   r  zTestChi2.test_logsf=  s&     

  B's/r2   c                 |   d}t         j                  j                  d|      }t        |dd       t         j                  j                  d|      }t        |dd       d}t         j                  j                  d	|      }t        |d
d       t         j                  j                  d|      }t        |dd       y )Nr1  gλm:=6g'bd5 <r|  r   ry   gQ8@r  gܐ؆0guu[9=r]   g8-*@)r6   r  r   r   )rY   r  r_   s      r0   r  zTestChi2.test_ppfG  s    JJNN5"%<5IJJNN3#7eDJJNN5"%:GJJNN3#8uEr2   r  ))r  gܫ>)r   gƯʉ?)ra   gn>@)   g͔v0@)r  g9:3@c                 b    t        t        j                  |      j                         |d       y r   )r   r6   r  r>   r  s      r0   rf  zTestChi2.test_entropy_  s!     	

2..0#EBr2   c                 Z    t        t        j                  j                  dd      dd       y )Nr~   rg   ry   r!  r  rX   s    r0   test_regression_ticket_1326z$TestChi2.test_regression_ticket_1326h  s    EJJNN32C<r2   N)r   r   r   r  r   r   r   r  r  r  rf  r  r8   r2   r0   r  r  (  s    ( [[	+11
 [[	+00F0 [[Y:;C;C=r2   r  c                   l    e Zd Zd Zd Zd Zd Zej                  j                  dddg      d        Z
y	)
TestGumbelLc                 L    t         j                  j                  d      | _        y )Nl   >S rS   rX   s    r0   rZ   zTestGumbelL.setup_methodn  r[   r2   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y Nr  r  )rT   rN  r6   r  rp   r   r   rW  s       r0   r  zTestGumbelL.test_cdf_ppfr  sD    KKb!NNq!^^"2r2   c                    t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        j                  |      }t        j                  |       }t        ||       y r  )
rT   rN  r6   r  r  r  r   r   expm1r   )rY   r_   r%  r  ur  s         r0   r  zTestGumbelL.test_logcdf_logsfx  sb    KKb!NN!!!$NN  #FF1I]]11r2   c                     t        j                  dd      }t        j                  j	                  |      }t        j                  j                  |      }t        ||       y )Nr  r   )rT   rN  r6   r  r   r  r   rW  s       r0   r  zTestGumbelL.test_sf_isf  sD    KKQNNa ^^"2r2   re   r   r   c                     t         j                  j                  d|| j                        }t         j                  j	                  ||      \  }}t        ||       y )Nra   r   r   )r6   r  r   rW   r   r   )rY   re   r   
fitted_locr   s        r0   test_fit_fixed_paramz TestGumbelL.test_fit_fixed_param  sJ     ~~!!s$((!K**4c*:
AZ%r2   N)r   r   r   rZ   r  r  r  r   r   r   r  r8   r2   r0   r  r  m  s?    5 [[URG,& -&r2   r  c                       e Zd Zd Zd Zy)TestGumbelRc                 Z    t        t        j                  j                  d      dd       y )Nr2  ?~T}%m;r  r   )r   r6   r  r   rX   s    r0   r  zTestGumbelR.test_sf  s#     	))"-/E"	$r2   c                 Z    t        t        j                  j                  d      dd       y )Nr  r  r  r   )r   r6   r  r  rX   s    r0   r  zTestGumbelR.test_isf  s#     	**513D"	$r2   N)r   r   r   r  r  r8   r2   r0   r  r    s    $$r2   r  c                   
   e Zd Zd Z ej
                  d      d        Zej
                  d        Zej
                  d        Zej
                  d        Z	ej                  j                  ej                  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j0                  d,d-d.       ej0                  d/dd0      ej                  j                        g      d1               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j0                  d,d-d.       ej0                  d/dd0      ej                  j                        g      d2        Zej                  j                  d3d4dg      ej                  j                  d5d6d7g      d8               Zej                  j                  d9d:d;gd<d;gg      d=        Zej                  j                  d>d?d4ej:                  ej<                  ej<                  fgd@dAgg      dB        Zej                  j                  dCg dD      ej                  j                  dEe jB                  jD                  dF ej0                  dGd4dH      dIfe jB                  jF                  dF ej0                  dGd4dH      dIfe jB                  jD                  dJ ej0                  d4dKdH      dFfe jB                  jF                  dJ ej0                  d4dKdH      dIfg      dL               Z$ej                  j                  dMg dN      dO        Z%ej                  j$                  ej                  j                  dMg dP      dQ               Z&ej
                  dR        Z'dS Z(dT Z)yU)VTestLevyStablec                 L    t         j                  j                  d      | _        y )Nl   Y rS   rX   s    r0   rZ   zTestLevyStable.setup_method  r[   r2   T)autousec                     dt         j                  _        dt         j                  _        dt         j                  _        t         j
                  j                  t         j                  _        y)z2Setup default parameters for levy_stable generatorS1	piecewiseN)r6   r  parameterizationcdf_default_methodpdf_default_method_levy_stable	_QUAD_EPSquad_epsrX   s    r0   reset_levy_stable_paramsz'TestLevyStable.reset_levy_stable_params  sH     .2*/:,/:,%*%7%7%A%A"r2   c                     t        j                  t        t              j                  dz        }t         j
                  j                  |j                  d      }|S )a  Sample data points for pdf computed with Nolan's stablec

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

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

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

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

        Typically inputs for stablec:

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

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

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

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

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

        and the equivalent for the right tail

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

        Typically inputs for stablec:

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

        Data extracted in similar way to pdf/cdf above using
        Nolan's stablec but set to an arbitrary location scale of
        (2, 3) for various important parameters alpha, beta and for
        parameterisations S0 and S1.
        z1data/levy_stable/stable-loc-scale-sample-data.npy)rT   r  r   r  r  rp  s     r0   nolan_loc_scale_sample_dataz*TestLevyStable.nolan_loc_scale_sample_data  s/     wwN!!?@
 r2   sample_sizer2  r:  marksr  S0r  z
alpha,beta))rI  r   )rI  r   )r  r   )r  ry   zgamma,deltar   r   rf  c                     |t         j                  _        t        j                  ||||      }t        j                  |j	                  || j
                        |j                        \  }}	|	dkD  sJ y )N)r  r  rf   re   r   r;  )r6   r  r  r>  r   rW   rp   )
rY   r  r  r  r  rg  r  lsr   rk  s
             r0   r?  zTestLevyStable.test_rvs  sf    ( .>*d%U
 ||FF$((F;RVV
1 4xxr2   r  ry   r   c                     d}d}d}t         j                  j                  ||||d| j                        }t        j                  |d||||f      \  }}|dkD  sJ y	)
z3Additional test cases for rvs for alpha equal to 1.rI  ry   r  r  r5  r  rQ  r{   N)r6   r  r   rW   r>  )rY   r  r  re   rf   r_   statrk  s           r0   test_rvs_alpha1zTestLevyStable.test_rvs_alpha1*  sm     !!%3e'+$(( " D,,q-%*D#u$=?a4xxr2   c                 z   g d}t         j                  j                  |      \  }}}}t        |ddd       t	        |dd       t	        |dd	       t	        |d
d       |g dz   }t         j                  j                  |      \  }}}	}
t        |d       t        |d       t	        |
dd	       t	        |	dd	       y )N)wgr  r~   r~   r~   r~   羼 u?r  r  r  r  67',?r  r  r  r  tA}˜.?r  r  r  r  Gz?r   r{   r[  )\(̿rg   gۧ1?r   g9]c?)r  r  r  r  r  r   gv?r  )r6   r  rh  r   r   r   rY   r_   alpha1beta1loc1scale1rg  alpha2beta2r  r  s              r0   rm  zTestLevyStable.test_fit7  s    

 ',&7&7&A&A!&D#tV148E4+FGQ/'1	

 99&+&7&7&A&A"&E#tVVQUBFFA.D&!,r2   zUnknown problem with fitstart.rY  zalpha,beta,delta,gamma)r  r  rg   r   )rI  r  rg   r   parametrizationc                    |t         j                  _        t         j                  j                  ||||d| j                        }t         j                  j                  |      }|\  }}	}
}t        ||||g||	|
|gd       y)z7Test that fit agrees with rvs for each parametrization.r  r5  r{   r   N)r6   r  r  r   rW   rh  r   )rY   r  r  rg  r  r  r   r   	alpha_obsbeta_obs	delta_obs	gamma_obss               r0   test_fit_rvszTestLevyStable.test_fit_rvsO  s     -<)  $$4U%e$(( % 
 ))$/471	8Y	D%')Y7	
r2   c                 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   r`   r`   r`   r0  r0  ra   ra   r   r   )rT   r   r6   r  rh  r   r   )
rY   r_   r  r  r  r  r  r  r  r  s
             r0   test_fit_beta_flipz!TestLevyStable.test_fit_beta_fliph  s    HH?@&+&7&7&A&A!&D#tV&+&7&7&A&A1"&E#tVUAqyyFF+EE6*D4%(FF+r2   c                 6   d}t        j                  g d      }t        j                  j	                  |       \  }}}}t        j                  j	                  | |z         \  }}}	}
t        ||       t        ||       t        |	||z          t        |
|       y )Nr   r&  )rT   r   r6   r  rh  r   )rY   SHIFTr_   r  r  r  r  r  r  r  r  s              r0   test_fit_delta_shiftz#TestLevyStable.test_fit_delta_shiftt  s    HH?@&+&7&7&A&A1"&E#tV&+&7&7&A&A1"u*&M#tVFF+E5)D$,/FF+r2   c                 p   g d}t         j                  j                  |      \  }}}}|dk  s
J d|        |t        |      k  sJ dt        |       d|        g d}t         j                  j                  |      \  }}}	}
|dkD  s
J d|        |	t	        |      kD  sJ dt	        |       d|	        y )	N)r   r   r   r   r`   r`   r`   r0  r0     r,  r   zExpected alpha < 1, got zExpected loc < z, got )r   r   r   r   r`   r`   r`   r0  r0     r-  zExpected alpha > 1, got zExpected loc > )r6   r  rh  r  r  r  s              r0   test_fit_loc_extrapz"TestLevyStable.test_fit_loc_extrap  s    6&+&7&7&A&A!&D#tVz>5fX>>zc!f}DAxvdVDD}7&+&7&7&A&A"&E#tVz>5fX>>zc"g~FR	vFF~r2   z pct_range,alpha_range,beta_range)r{   ry   r  )r]   r   rg   )r   r   r   )r{   r;  ry   r5  r  )r]   ry   r   r  rg   )gr   r   rs  rx  r   )r{   r;  r]   ra  ffffff?ry   ?r   r   r5  r  r]   rg   r  r   r  c                 r   |}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 ]j  \  }	\  }
}}|
t        j                  _	        || ||         n|}d}t        j                         5  t        j                  d|t               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       m y# 1 sw Y   nxY w# 1 sw Y   x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   ry   r   r  r  r{   r  rs  r;  r5  rF  r]   ra  r   )ry   rx  ry  r/  r0  )gٿ333333ӿrs  r  ry   r8  rI  r]   rF  rs  r  )r   r   rI  r  r  )rT   isinr   r}  alpha_range
beta_range	pct_ranges    r0   rE   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s   GGAeHi0GGAgJ45GGAfIz23
 vY!^uX_. vY#-wZ3.0uX_. wZ3.GGAeHsCj9: wZ3.GGAeHsCj9:$ wZ3.GGAeHr2h78%, wZ3.GGAeHsCj9:GGBFF1V9$5|DE-6 wZ3.GGAeHrd34GGBFF1V9$5t<=7@ wZ3.GGAeHsCj9:GGBFF1V9$57MNOA#J wZ3.vY#-/uX-/K(T wZ3.vY$.0uX-/U-^ wZ3.vY#-/uX-/_2h wZ2-GGAeHrd34GGBFF1V9$57GHIi7r wZ2-GGAeHsCj9:GGBFF1V9$5|DEs<| wZ2-GGAeHsCj9:GGBFF1V9$5RyAB}AF 7s*GC,EH r2   r  r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk7  z  S )Nr7  r  r  rF  rI  rT   r:  r;  s    r0   rE   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  sn    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ2%	' r2   c                     | d   dk(   z  t        j                  | d         z  dv z  t        j                  | d         z  S )Nr  rI  r7  r  r@  )r}  r<  r=  is_linux_32r>  s    r0   rE   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s]    wZ2%$_&GGAeHi01 ;&( GGAfIz2	3 r2   g&.=c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dk  z  S )Nr7  r  r  rF  r@  r;  s    r0   rE   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>  s[    GGAeHi0GGAgJ45GGAfIz23 wZ3&( r2   fft-simpsonr/  c                     | d   dk\  t        j                  | d         z  t        j                  | d         z  t        j                  | d         z  S )Nr  r  r7  r  r@  r;  s    r0   rE   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>   s[    wZ3&GGAeHi01GGAgJ45 GGAfIz23 r2   rk  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr7  r  r  r   r  r@  r;  s    r0   rE   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>(  sm    GGAeHi0GGAgJ45GGAfIz23 wZ!^% wZ#%	' r2   Nz0Density calculations experimental for FFT methodr  r_   r  r  r   r   rf   re   r  calcabserrrelerrrk  rK  z	pdf test  failed with method 'z' [platform: z]

Ferr_msgverbose)platformunamesystemmachinejoin	processorr^  r6   r  r  rl  rm  r  ro  ri   rT   r  r   r   isnanr   r  r   )rY   r  r>  r<  r=  r   rR  platform_desctestsixdefault_methodr   filter_funcsubdatar,   rk  subdata2failuresmessagerB  s     ```              @r0   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 DC((* "''#~F%%))CLG$FO *  [[h/ 	04FF1ws|#34FF1ws|#34rvvgcl7KK H	 $H%-((1+
  t#88H I""/HNN4H4H3IH:W   CL#!9" "(	 	 	" "s'   6AH,AH 3A!H, H)%H,,H6	c                    |}ddfdgddfdgddfdgdd	fd
gddfdgddfdgg}t        |      D ]e  \  }\  }}	}
|t        j                  _        |
| |
|         n|}t	        j
                         5  t	        j                  ddt               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       h y# 1 sw Y   kxY w# 1 sw Y   x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 	Nr7  r  r  rI  )r8  r  r  r{   r]   rF  rs  r  r@  r;  s    r0   rE   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>~  s    GGAeHi0GGAgJ45GGAfIz23
 wZ2-GGAfI/ABCuX-/
 wZ2-GGAfI?@uX-/	 r2   r;  c                 V   t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dk(  t        j                  | d   g d      z  | d   dk(  z  z  | d   dk(  t        j                  | d   g d      z  | d   dk(  z  z  S rd  r@  r;  s    r0   rE   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  s    GGAeHi0GGAgJ45GGAfIz23 7r)&	+=>?5T)+	 7r)&	?;<5T)+ r2   rD  r/  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  S )Nr7  r  r  333333?r@  r;  s    r0   rE   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  s[    GGAeHi0GGAgJ45GGAfIz23 wZ#%' r2   r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr7  r  r  r  rh  r@  r;  s    r0   rE   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  n    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ3&	( r2   r  c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr7  r  r  r  r  r@  r;  s    r0   rE   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  rj  r2   r{   c                     t        j                  | d         t        j                  | d         z  t        j                  | d         z  | d   dkD  z  | d   dk  z  S )Nr7  r  r  rI  r  r@  r;  s    r0   rE   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  rj  r2   Nr  zZCumulative density calculations experimental for FFT method. Use piecewise method instead.r_   r  r  r   r   rG  r  rH  rk  rK  z	cdf test rL  z'
rM  FrN  )r^  r6   r  r  rl  rm  r  ro  rp   rT   r  r   r   rW  r   r  r   )rY   r  r>  r<  r=  r   rY  rZ  r[  r   r\  r]  rk  r^  r_  r`  s     ```           r0   test_cdf_nolan_samplesz%TestLevyStable.test_cdf_nolan_samplesa  s2   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F?+AF3	AF?3F<8F??G		r  r   r  ri   rp   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
        r2  32bitr   ri   z4Test unstable on some platforms; see gh-17839, 17859r  r  S)ri   rp   r_   r  r  rg   r   rG  r/  N)rQ  rR  rS  architecturer   r   r6   r  r  r  r  ri   rp   r   )
rY   r  r  r  rR  rB  r   r]  r  rB  s
             r0   test_location_scalez"TestLevyStable.test_location_scale  s     llg-W'X=R=R=TUV=W2W 45=KKNO* 0;,/:,tG}-./0[*~%%%%)U]E!!8I8I8M8M 	 CL''*GFO1!
 	GDM40r2   zmethod,decimal_placesr5  r   r  c           	         t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  d      5  t        j                         5  t        j
                  dt        d       |t        j                  _	        t        j                  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   rg   rg   rg   rg   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   ra  ry   r   r   ra  ry   r   r   ra  ry   r   r   ra  ry   r   r   ra  ry   r   r  r   zDensity calculation unstable.*)categoryr`  r   r   rG  N)rT   r   r  rl  rm  r  ro  r6   r  r  ri   r   )rY   r  decimal_placesxsdensitybetasri   s          r0   'test_pdf_alpha_equals_one_beta_non_zeroz6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zero  s     XXH
 ((
 
 [[X& 
	(?(?(A 
	##H'8 4:E0##''AuA1'ECWnf
	 
	 
	 
	 
	 
	s%   C21A$C&C2&C/	+C22C;zparams,expected)r  r  r   r   )rg   r   r`   r  )r`   r,  r   r   c                 |    t         j                  j                  |d   |d   |d   |d   d      }t        ||       y )Nr   r   rg   r   r  r8  )r6   r  r   )rY   r  rN   observeds       r0   r  zTestLevyStable.test_stats;  sG     $$**1IvayfQivay + 
 	Hh/r2   r  )ra  ry   r   zfunction,beta,points,expectedrI  r  r`   r~   r  rz  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   rT   r  r  )rY   r  r  r  r  rN   s         r0   !test_distribution_outside_supportz0TestLevyStable.test_distribution_outside_supportI  s@    P 5}1}}}V5t4GGCK*	
r2   zx,alpha,beta,expected))r   /iZ?s0?gz5F?)r   ~H?|/mg>m?)r   .d5?L,ٿg깃\?)r   >?ЀjoؿgA]4?)r   pa2?Յ пgqQ?c                     dt         j                  _        t        t         j                  j	                  |||      |       y)a  Test pdf for x equal to zeta.

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

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

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

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

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

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

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

        Reference values taken from MATLAB
        https://www.mathworks.com/help/stats/stable-distribution.html
        r  r~  Nr  r  s        r0   test_x_near_zetazTestLevyStable.test_x_near_zeta  s9    D &-"!!!5t!<	
r2   c                 *    t        j                         S rt   )	threadingLockrX   s    r0   levy_stable_lockzTestLevyStable.levy_stable_lock  s    ~~r2   c           	      B   t         j                  j                  }t        dddd      }t        j
                  }t	        j
                  di |}|5  d|_        d|_         |j                  di |d |d	      d
}|j                  d |d	      
      }t        j                  ||k(        rJ d|_        d|_         |j                  di |d |d	      d
}|j                  d |d	      
      }	t        |	|       t        ||       d d d        y # 1 sw Y   y xY w)Nr  r]   r~   rI  r  r  re   rf   r	  r  r`   
r   r8   )
rT   rU   rV   r  r6   r  r  r   r   r   
rY   r  rW   r
  unfrozenfrozen
unfrozen_afrozen_a
unfrozen_bfrozen_bs
             r0   $test_frozen_parameterization_gh20821z3TestLevyStable.test_frozen_parameterization_gh20821  s    ii##Ccs#>$$"",V, 	/(,H%&*F#%UURc)nUJzzrIzGHvvh*4555(,H%&*F#%UURc)nUJzzrIzGH:.X.	/ 	/ 	/s   B;DDc           	         t         j                  j                  }t        dddd      }t        j
                  }|5  d|_        t	        j
                  di |} |j                  di |d |d      d	}|j                  d |d      	      }t        ||       d
|_        t	        j
                  di |} |j                  di |d |d      d	}|j                  d |d      	      }	t        |	|       d d d        y # 1 sw Y   y xY w)Nr  r]   r~   rI  r  r	  r`   r  r   r  r8   )	rT   rU   rV   r  r6   r  r  r   r   r  s
             r0   %test_frozen_parameterization_gh20821bz4TestLevyStable.test_frozen_parameterization_gh20821b  s     ii##Ccs#>$$ 	/(,H%&&00F%UURc)nUJzzrIzGH:.(,H%&&00F%UURc)nUJzzrIzGH:.	/ 	/ 	/s   B=DDN)*r   r   r   rZ   r   r  r  r  r  r  r   r   r   r  r?  r   r  rm  xfailr$  r'  r*  r.  rT   rN  ra  rm  rr  rz  r  r  r  r6   r  rp   ri   r  r  r  r  r  r  r8   r2   r0   r  r    s   5 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''	-
*~+ ,~@ [[*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 ^^   /./r2   r  c                       e Zd Zd Zd Zy)TestArrayArgumentc                 L    t         j                  j                  d      | _        y )Nl   4c rS   rX   s    r0   rZ   zTestArrayArgument.setup_method  r[   r2   c                     t         j                  j                  t        j                  d      t        j
                  d      d| j                        }t        |j                  d       y )Nr   r  r5  )	r6   r  r   rT   r  r  rW   r   r7  r  s     r0   test_noexceptionz"TestArrayArgument.test_noexception  sE    jjnn"))A,rwwqz")  BSYY(r2   N)r   r   r   rZ   r  r8   r2   r0   r  r    s    5)r2   r  c                       e Zd Zd Zd Zy)TestDocstringc                 :   t         j                  j                  3t        dt         j                  j                  j	                         v        t         j
                  j                  4t        dt         j
                  j                  j	                         v        y y )Nr%  r  )r6   r%  r  r	   lowerr  rX   s    r0   test_docstringszTestDocstring.test_docstrings  sg    >>!!-J%.."8"8">">"@@A??"".K5??#:#:#@#@#BBC /r2   c                 T    t        j                          t        j                          y rt   )r6   r<   r;   rX   s    r0   test_no_name_argzTestDocstring.test_no_name_arg  s    r2   N)r   r   r   r  r  r8   r2   r0   r  r    s    Dr2   r  c                     t        g d      } t        | dkD  | d      \  }}t        |g d       t        |dg       t        ddkD  | d      \  }}t        ||        t        |dgt        j                  |       z         t        | dkD  | d      \  }}t        ||        t        |dgt        j                  |       z         y )N)r   r   rg   r   rg   r   r   r   rg   )r   rg   rg   r   r   r   )r   r   r   rT   r   r.   r/   r  s      r0   test_args_reducer    s    #$Aa!eQ"DAqq/*q1#a!eQ"DAqq!q1#
*+a!eQ"DAqq!q1#
*+r2   c                   R   e Zd Zg dZd Zg dZej                  j                  de	      d        Z
d Zd Zd Zd	 Zd
 Zd Zd Zej                  j$                  ej                  j                  dddg      d               Zej                  j                  dddg      d        Zy)TestFitMethod)ncfr@  rA  	irwinhallc                 L    t         j                  j                  d      | _        y )Nl   = rS   rX   s    r0   rZ   zTestFitMethod.setup_method0  r[   r2   )rZ  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   ro  N)fitSkipNonFiniter   r   rT   r   r  r  r(  r6   rS  r  r   )rY   rJ   r*  r_   r%  distfuncs         r0   !test_fit_w_non_finite_data_valuesz/TestFitMethod.test_fit_w_non_finite_data_values6  s     4(((KK4& @ABHHfffffbffEFHHfffffbffEF5$'j(,,!<j(,,!<r2   c           
         t        j                  d      5  t        j                  j	                  dddd| j
                        }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)Nr  rt  ra  r~         4@r  r   rg   r   r6  r!  r   )rT   r  r6   r"  r   rW   r  r  r   r   r   r   )rY   r_   expected_shapes      r0   test_fix_fit_2args_lognormz(TestFitMethod.test_fix_fit_2args_lognormA  s    [[X& 	@!!$Dr!QAWWrvvay266":'=&A%G%G%IJNBHHU]]%6%6qq%6%LM+Q3$@	@ 	@ 	@s   CC""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   rg   r   ro  )rT   r  r6   r  r   r   r  r   rY   r_   re   rf   s       r0   test_fix_fit_normzTestFitMethod.test_fix_fit_normI  s    IIaOZZ^^A&
UC#E2771:.ZZ^^AA^.
US!UBGGAJ'ZZ^^Aa^0
UC#UAr2   c                 J   t        j                  dd      }t        j                  |      j                         }d}t        j
                  j                  ||      \  }}}t        j                  |j                               |z
  }t        t        j                  |      t        j                  |      z
  |d       t        ||       t        ||j                         |z  d       d}d}t        j
                  j                  |||      \  }}}t        ||       t        ||       t        ||j                         |z  d       d	}d}t        j
                  j                  |||      \  }}}t        ||       t        ||       t        ||j                         |z  d       d}d	}	t        j
                  j                  |||	
      \  }}}t        ||       t        ||	       |t        j                  |	      z
  }
t        t        j                  |      |
       y )Nr   r&  r   r   r   rL  r  r   r   rg   r6  )rT   r  r  r   r6   r  r   r   r   digammar   )rY   r_   meanlogr   r.   re   rf   rD   r   r   r  s              r0   test_fix_fit_gammaz TestFitMethod.test_fix_fit_gammaX  s   IIaO&&).." 53FF1668w&BFF1I(::AqIS$E1668A:q9
 bt<3QS$E1668A:q9bt<3QS$E1668A:q9 VD3S$UF#bffVn$GOOA.2r2   c           	         d }t        j                  g d      }t        j                  j	                  |dd      \  }}}}t        |d       t        |d       t         ||||      ddgd       t        j                  g d      }t        j                  j	                  |ddd	      \  }}}}t        |d       t        |d       t        |d        ||||      \  }}t        |dd
       d|z
  }	t        j                  j	                  |	ddd      \  }
}}}t        |d       t        |d       t        |d        ||
||	      \  }}t        |dd
       t        |
|       t        t        t        j                  j                  |dd       t        j                  g d      }t        t        t        j                  j                  |dd       t        t        t        j                  j                  |ddd       t        t        t        j                  j                  |ddd       t        t        t        j                  j                  |dddd       y )Nc                 Z   t        |      }t        j                  |      j                         }t        j                  d|z
        j                         }t	        j
                  | |z         }||| t	        j
                  |       z   z  z
  ||| t	        j
                  |      z   z  z
  g}|S r   )r  rT   r  rb  r   psi)r.   r/   r_   rj  s1r  psiabr   s           r0   mlefuncz0TestFitMethod.test_fix_fit_beta.<locals>.mlefunc  s     AAB!"BKKA&Eufw{{1~566ufw{{1~5668DKr2   )rn  ra  ry   r   r   r6  rk  r   rg   )r   r   r   r/  )r  r   r   ry   r?  )r   r   r   )r   r   r  r   )r   r  r   r   )
rT   r   r6   r  r   r   r   r   rS  r  )rY   r  r_   r.   r/   re   rf   dadbrg  r  b2r  r  r%  s                  r0   test_fix_fit_betazTestFitMethod.test_fix_fit_beta~  s   		 HH'( ::>>!!A>>1c5S!UA1a(1a&t< HH'( ::>>!!>D1c5QS!UAAq!BAD) U$zz~~bQQq~IBfRT1VQR$BAD)B" 	j%**..!#aHHHZ j%**..!!AFj%**..!!A!Lj%**..!!A!L 	j%**..!aQ	(r2   c                    t        j                  g d      }t        j                  j	                  |      \  }}t        |d       t        |d       t        j                  j	                  |d      \  }}t        |d       t        |d       t        j                  j	                  |d      \  }}t        |d       t        |d       y )N)rg   rg   r   r   r   r   r   r  rg   r   ro  r   r   r   )rT   r   r6   rZ  r   r   r  s       r0   test_expon_fitzTestFitMethod.test_expon_fit  s    HH-.[[__Q'
US!UA[[__Qq_1
US!UA[[__QQ_/
US!UAr2   c           	      @   t        j                  g d      }t        j                  |dz
        }t        j                  j                  |d      \  }}}t        ||j                         d       t        |d       t        |t        j                  |j                               d       t        j                  j                  |dd      \  }}}t        |t        j                  |t        j                  d      z
  dz  j                               d       t        |d       t        |d       t        j                  j                  |dd	
      \  }}}t        |d	       t        |d       t        |t        j                  |j                               d       y )N)r  r   r`   r4     r  r   r   r  r   r&  r6  rg   r   )r   fix_s)rT   r   r  r6   r"  r   r   rp  r   r   r   r  )rY   r_   lnxm1r7  re   rf   s         r0   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%@r2   c                    t        j                  g d      }t        j                  j	                  |      \  }}t        ||j                                t        |t        j                  |             t        j                  j	                  |d      \  }}t        |d       t        ||j                                t        j                  j	                  |d      \  }}t        |d       t        |d       t        t        t        j                  j                  |d       t        t        t        j                  j                  |d       y )N)rI  r  r_  r  r   r   r`   ro  r}   rJ  )rT   r   r6   r  r   r   r  r  r  rS  r  r  s       r0   test_uniform_fitzTestFitMethod.test_uniform_fit  s    HH)*]]&&q)
US!%%'"UBFF1I&]]&&qq&1
US!UAEEG$]]&&q&4
US!UBj%--"3"3QSAj%--"3"3QsCr2   r  MLEMMc           
      h   d\  }}t         j                  j                  ||d| j                        }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| j                        }t         j                  j	                  |||      \  }
}}t        |
|       y )N)r  r	  ra   r   r  )r   r  )rV  r  r  rc  )rW  r  r	  )r  r  )r  r  )r  r  r   rg   )rV  r   r  r   r   )rV  r  r   r   r  )rV  r   r   r  )r  r   r   )
r6   r  r   rW   r   r   rS  r  r   r  )rY   r  r.   r/   r_   res_1res_2res_3res_4res_5aabbr  ssr   s                  r0   test_fshapeszTestFitMethod.test_fshapes  s   
 1JJNN1acNA

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B[[__Ta_?
BRr2   c                     t         j                  }|j                  dd| j                        }t	        d      }t        t        |j                  |fi |d|i y )Nrg   ra   )r
  r   r   i)enikibenikir  )r6   r	  r   rW   r  rS  r  r   )rY   r  rJ   r   r)  s        r0   test_extra_paramszTestFitMethod.test_extra_params  sI     xx!#DHHx=t$i4F3FvFr2   N)r   r   r   r   rZ   r  r   r   r   r   r  r  r  r  r  r  r  r  r   r  r  r8   r2   r0   r  r  ,  s    1D5 A[[[(3= 4=@$3L5(nA(D$ [[[[Xt}5$ 6 $L [[Xt}5G 6Gr2   r  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)

TestFrozenc                    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  rd   r  ra  rg   )r6   r  ri   r   rp   r   r  r   r;  r   r4  rp  r>   r  r.   r/   )rY   rJ   r  result_fr  s        r0   r  zTestFrozen.test_norm!  s
   zzC0::d#$D4Xv&::d#$D4Xv&::d#$D4Xv&::d#$D4Xv&99T?4s3Xv&==?S1Xv&;;=t3/Xv&::<d#.Xv&::<d#.Xv&>>#$c2Xv&==#QD4Xv&VXXtvv&VXXtvv&r2   c                    d}t         j                  }t        j                  |      }|j                  d      }|j                  d|      }t        ||       |j	                  d      }|j	                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                  d      }|j                  d|      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                         }|j                  |      }t        ||       |j                  d      }|j                  d|      }t        ||       t        |j                  |j                  j                         t        |j                   |j                  j                          y )Nr}   r  ra  r  rg   )r6   r  ri   r   rp   r   r  r   r;  r   r4  rp  r>   r  r.   rJ   r/   )rY   r.   rJ   r  r  r  s         r0   
test_gammazTestFrozen.test_gammaT  s   {{Q::d#$"Xv&::d#$"Xv&::d#$"Xv&::d#$"Xv&99T?q!Xv&==?QXv&;;=1Xv&::<!Xv&::<!Xv&>>#aXv&==#Q"Xv&VXXv{{}}-VXXv{{}}-r2   c                     t        j                  d      }|j                  d      }|j                  d       |j                  d      }t        ||       y )Nr   rg   r  r  )r6   r"  r  r   )rY   r  m1rt  s       r0   test_regression_ticket_1293z&TestFrozen.test_regression_ticket_1293  sH    q!]]1V$ ]]1 	Rr2   c                    d}t        j                  |      }|j                  j                  |      \  }}t	        ||gddg       d}t         j                  j                  d|       t	        |j                  j                  |      dt        j                  g       d}t        j                  |      }|j                  j                  |      \  }}t	        ||gddg       d}t         j                  j                  d|       t	        |j                  j                  |j                  j                  ft         j                  j                  |             t        j                  d      }t        |j                  |j                  u       dD ]  }t        j                  |      }t        j                  |      }|j                  |j                  }}t	        |d       t        t        j                  |             t        j                  d      }t         j                  j                  |      \  }}t        ||gdd	g        y )
Nr  r  r~   r  r]   r   r  r  ry   )r6   r  rJ   r  r   ri   rT   r  r.   r/   r	   r   r  r   )rY   r  r  r.   r/   rv1s         r0   r  zTestFrozen.test_ab  s    __q!ww##A&1aVb#Y'A#RWW))!,q"&&k:__q!ww##A&1aVb#Y'Aq!bggii+U__-I-I!-LMoo$'(  
	/A

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

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


-r2   c                 T   t        j                  dd      }t        j                  d      }t        j                  g dg df      }|||fD ]  }d|_        |j                  d	       t        j                  |      }|j                  d	      }t        j                  |      }|j                  d	      }t        ||       |j                  d
      |j                  d
      g}	t        |	d   |	d          t        |j                  |	d         |j                  |	d                 y )Ngdsz@g@e?r  )r   r   rg   r   r9  rO  rN  r  r,  ry   r   r   )r6   r  ry  r;   r   r   pickledumpsloadsr   r   rp   )
rY   r  poissrH  distfnrD   r0	unpickledr1medianss
             r0   test_picklingzTestFrozen.test_pickling  s	    zz,.ABb!""<+?+A B UF+ 	4F"&FJJAJV$A#BQIA&BR  zz#	c(:;GWQZ0GAJ/"wqz24	4r2   c           
         d }t        j                  ddd      }t        j                  dd      5  |j	                  |ddd	
      }t         j                  j	                  |dddddd	      }d d d        t               t        j                  dd      }|j	                  |      }t         j                  j	                  |dd      }t        ||       y # 1 sw Y   lxY w)Nc                     | S rt   r8   r   s    r0   r   z$TestFrozen.test_expect.<locals>.func  s    Hr2   rg   r   r   r  r  )r  divider   T)r   ubconditionalrg   r*  re   rf   r   r	  r	  r  )r   r*  re   )r6   r  rT   r  r   r   ry  )rY   r   gmgm_val	gamma_valrk  p_valpoisson_vals           r0   test_expectzTestFrozen.test_expect  s    	 [[1!1-[[(; 	IYYtaTYBF**4d./A4 + II	I 		*MM!#mm**4d*B{+	I 	Is   <CC#N)r   r   r   r  r  r  r  r  r  r	  r	  r8   r2   r0   r  r    s-    1'f2.h*/X;.40,r2   r  c                   `    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)
TestExpectc                    t         j                  j                  d dd      }t        |dd       t         j                  j                  d dd      }t        |dd       t         j                  j	                  d	dd      }t         j                  j	                  d
dd      }t         j                  j                  d dd||      }t        |dd       t         j                  j                  d dd||d      }t        |dd       y )Nc                     | dz
  | dz
  z  S )Nr   r8   r   s    r0   rE   z&TestExpect.test_norm.<locals>.<lambda>  s    1qs r2   r   rg   rd   r   r!  rL  c                     | S rt   r8   r   s    r0   rE   z&TestExpect.test_norm.<locals>.<lambda>	  s     r2   r;  r5  c                      yr   r8   r   s    r0   rE   z&TestExpect.test_norm.<locals>.<lambda>  r   r2   re   rf   r   r	  r   c                      yr   r8   r   s    r0   rE   z&TestExpect.test_norm.<locals>.<lambda>  r   r2   Tre   rf   r   r	  r	  rI  )r6   r  r   r   r   )rY   r  r  r   r	  prob90prob90cs          r0   r  zTestExpect.test_norm  s    JJ3!DAq"-JJm!<Aq"-ZZ^^Daq^1ZZ^^Daq^1"";AQ2""MFC4**##KQaB204 $ 6GR4r2   c           	      0   t         j                  j                  d ddd      }t        |dd       t         j                  j                  d	 dd
d      }t        |dd       t         j                  j	                  ddddd      }t         j                  j	                  ddddd      }t         j                  j                  d dd
d||d      }t        |dd       t         j                  j                  d ddd||d      }t        |dd       y )Nc                     | dz
  | dz
  z  S )NUUUUUU@r8   r   s    r0   rE   z&TestExpect.test_beta.<locals>.<lambda>  s    51U7(; r2   r  r   rg   )r*  re   rf   qq?r  rL  c                     | S rt   r8   r   s    r0   rE   z&TestExpect.test_beta.<locals>.<lambda>  s     r2   rJ  r}   r#	  r5  r`   rd   r;  c                      y)NrI  r8   r   s    r0   rE   z&TestExpect.test_beta.<locals>.<lambda>   r   r2   )r`   r`   Fr	  r   c                      yr   r8   r   s    r0   rE   z&TestExpect.test_beta.<locals>.<lambda>$  r   r2   TrI  )r6   r  r   r   r   )rY   r  r  r	  r   r	  r 	  s          r0   	test_betazTestExpect.test_beta  s    JJ;'"#1  .Avr2JJkRrJAub1ZZ^^D"baq^9ZZ^^D"baq^9""<hB)+ru # NFC4**##KhA*+rt $ MGR4r2   c                    t         j                  j                  dddd      \  }}t         j                  j                  d dd      }t        ||d	
       t         j                  j                  d dd      }t        ||d
       t         j                  j                  d dddd	      }t        ||d
       dt         j                  j	                  dd	gdddd      j                         z
  }t         j                  j                  d dddd      }t        ||d	
       t         j                  j                  d ddddd      }t        |dd
       t         j                  j                  d ddd      }	t        |	dd	
       y )Nr  r`   r  rJ  r  c                     | S rt   r8   r   s    r0   rE   z+TestExpect.test_hypergeom.<locals>.<lambda>-      Q r2   )r  r`   r  r	  r  rL  c                     | dz
  dz  S Nr  rg   r8   r   s    r0   rE   z+TestExpect.test_hypergeom.<locals>.<lambda>0  s    adQY r2   r!  c                     | dz
  dz  S r-	  r8   r   s    r0   rE   z+TestExpect.test_hypergeom.<locals>.<lambda>5  s    QrTAI r2   r   )r*  re   r   r	  r   c                      yr   r8   r   s    r0   rE   z+TestExpect.test_hypergeom.<locals>.<lambda><  r   r2   r&  rK  c                      yr   r8   r   s    r0   rE   z+TestExpect.test_hypergeom.<locals>.<lambda>A  r   r2   T)r*  re   r   r	  r	  c                      yr   r8   r   s    r0   rE   z+TestExpect.test_hypergeom.<locals>.<lambda>F  r   r2   r   )r*  r   r	  )r6   r  r   r   rE  rb  )
rY   m_truev_truer  r  v_bounds	prob_trueprob_boundsprob_bcprob_bs
             r0   test_hypergeomzTestExpect.test_hypergeom(  sx    ..r2qb.AOO"";[b"IAvr2OO""#6[') # +Avr2 ??))*=/:.0Q2 * ? 	Hfb9 eoo))1b'2r1!)DHHJJ	oo,,[{13b - BKB? //((;B,-"$ ) HGQ3 ''++, ( 4FAr2r2   c                    t         j                  j                  d ddd      }dt         j                  j                  dd      z
  }t	        ||d	       t         j                  j                  d
 ddd      }t	        |dd	       y )Nc                      yr   r8   r   s    r0   rE   z)TestExpect.test_poisson.<locals>.<lambda>L  r   r2   r	  r   F)r*  r   r	  r   rg   r!  rL  c                      yr   r8   r   s    r0   rE   z)TestExpect.test_poisson.<locals>.<lambda>Q  r   r2   T)r6   ry  r   rp   r   )rY   r6	  prob_b_trueprob_lbs       r0   test_poissonzTestExpect.test_poissonJ  sy    mm**;Ta7< + >))!Q//KbA--&&{!37 ' 9GQ3r2   c                     t         j                  }|j                  d      }|j                  d       |j                  d      }t        ||d       y )N)r  rQ  )ry   r!  rL  )r6   genhalflogisticr   r   )rY   halflogr$  r(  s       r0   test_genhalflogisticzTestExpect.test_genhalflogisticU  sI     ''~~6~*F#~~6~*D$3r2   c                    t        t        j                  t        j                  j                  dd                   t        t        j                  t        j                  j                  d d                   t        t        j                  t        j                  j                  d d                   t        t        j                  t        j                  j                  d d                   y )Nrq  Gz?c                      yr   r8   r   s    r0   rE   z/TestExpect.test_rice_overflow.<locals>.<lambda>d  r   r2   )rE	  rQ  c                      yrr  r8   r   s    r0   rE   z/TestExpect.test_rice_overflow.<locals>.<lambda>e  r   r2   c                      yNr   r8   r   s    r0   rE   z/TestExpect.test_rice_overflow.<locals>.<lambda>f  r   r2   )r	   rT   r:  r6   riceri   r   rX   s    r0   test_rice_overflowzTestExpect.test_rice_overflow_  s     	EJJNN3567EJJ--k-HIJEJJ--k-HIJEJJ--k-HIJr2   c                    d\  }}t         j                  j                  d |f      }t        |||dz
  z  t	        j
                  d|z
        z  d       t         j                  j                  d |f|      }t        |||z   d       y )	N)rs  r   c                     | S rt   r8   r\   s    r0   rE   z(TestExpect.test_logser.<locals>.<lambda>k      a r2   rQ  rI  r   r   c                     | S rt   r8   rN	  s    r0   rE   z(TestExpect.test_logser.<locals>.<lambda>q  rO	  r2   r	  )r6   r  r   r   rT   r  )rY   rk  re   res_0res_ls        r0   test_logserzTestExpect.test_logserh  s~    3##Kqd#;QVrvvb1f~5E	C ##Kqd#Dus{7r2   c                     d\  }}t         j                  j                  d ||f      }t         j                  j                  d ||f      }t        |||z
  d       t        ||dz  z
  ||z   d       y )N)r  r  c                     | S rt   r8   r   s    r0   rE   z)TestExpect.test_skellam.<locals>.<lambda>x  s    A r2   rQ  c                     | dz  S rr  r8   r   s    r0   rE   z)TestExpect.test_skellam.<locals>.<lambda>y  rs  r2   r  r   rg   )r6   r4  r   r   )rY   r  p2r  rt  s        r0   test_skellamzTestExpect.test_skellamt  so     B]]!!+RH!=]]!!.Bx!@BG%0RU
BG%8r2   c           
          d\  }}t         j                  j                  d ||f      }t        |t	        d t        ||      D              ||z
  z  d       y )N)r   q   c                     | S rt   r8   r   s    r0   rE   z)TestExpect.test_randint.<locals>.<lambda>  r+	  r2   c              3       K   | ]  }|  y wrt   r8   r  r   s     r0   rp  z*TestExpect.test_randint.<locals>.<genexpr>  s     5!A5s   r   r   )r6   r6  r   r   rb  r  )rY   r%  r&  r   s       r0   test_randintzTestExpect.test_randint}  sQ     Bmm"";R95uR}55bA	Or2   c                     t        j                  t              5  t        j                  j                  d d       d d d        y # 1 sw Y   y xY w)Nc                     | dz  S rr  r8   r   s    r0   rE   z&TestExpect.test_zipf.<locals>.<lambda>  s
    1 r2   r	  )r   warnsro  r6   rf  r   rX   s    r0   	test_zipfzTestExpect.test_zipf  s7    \\.) 	4JJnd3	4 	4 	4s   "AAc                     t         j                  j                  d d      }t         j                  j                  d dddd      }t        ||d	
       y )Nc                      yr   r8   r   s    r0   rE   z/TestExpect.test_discrete_kwds.<locals>.<lambda>  r   r2   r	  rQ  c                      yr   r8   r   s    r0   rE   z/TestExpect.test_discrete_kwds.<locals>.<lambda>  r   r2   r      r!  )r*  maxcount	chunksize	tolerancer!  rL  )r6   ry  r   r   )rY   n0n1s      r0   test_discrete_kwdszTestExpect.test_discrete_kwds  sL    ]]!!+D!9]]!!+D+/2 " OBB/r2   c                     d }dD ]6  }t         j                  j                  d|      }t        | ||      d       8 y )Nc                 H    | dz  d| dz  z  z   d| dz  z  z   d| dz  z  z   | z   S )Nr   r`   r   rz  r   r4  rg   r8   r  s    r0   poiss_moment5z-TestExpect.test_moment.<locals>.poiss_moment5  s8    q52b!e8#bQh.BE9B>>r2   )r   r  r   r|  r   )r6   ry  r  r   )rY   ro	  rT  m5s       r0   test_momentzTestExpect.test_moment  s?    	?  	?B%%a,BBb 1>	?r2   c                    t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  d      d	       t        t        j
                  j                  d
      d
       y )NrA  rI  rd   rr  r`   r]   )   rQ  rs	  U   r  )r   r6   r  r   r  rV  rX   s    r0   test_challenging_cases_gh8928z(TestExpect.test_challenging_cases_gh8928  s     	

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

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

))b)<bA***7=--"-5r:r2   c           	         t         j                  }|j                  dd      }t        |j	                  dd      |       t        |j	                  dddd      |       t        |j	                  dddd      |d	z         t        |j	                  ddddd
      |       t        |j	                  dddd      d       t        |j	                  dddd      d       t        |j	                  ddddd
      d       y )Nr`   r   rd   r  rh  r	  r  r!  rx  Tr	  r  g433333@g433333rK  )r6   r  r   r   r   )rY   rJ   rz  s      r0   test_lb_ub_gh15855zTestExpect.test_lb_ub_gh15855  s    }}iiBai(!4c:!bA3G!rBCGL!r04 $ 67:	< 	!rBFK!rBGL!r04 $ 679	;r2   N)r   r   r   r  r(	  r9	  r?	  rC	  rK	  rS	  rX	  r^	  rb	  rl	  rq	  ru	  rw	  r8   r2   r0   r	  r	     sK    
5 5& 3D	44K
89O4
0?;;r2   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   ry   r   g K?r`   rL  )r6   nctr   rp   r   r  s     r0   test_nc_parameterzTestNct.test_nc_parameter  sI     YYq!_RVVAY$YYq"BFF1I~rBr2   c           	          t         j                  j                  dt        j                  dd      d d d f   t        j
                  ddd            }t        g dg dg dg      }t        ||d	
       y )Nr   r   r  r]   r   )gMp^j?g6].ftv?gȳ'ς?gu?)g!Y<a?g]d1p?go|?g?)gHdY?g2Ԥg?g}o/u?g .mr?r/  r   )r6   r{	  ri   rT   r  rN  r   r   )rY   r   rN   s      r0   test_broadcastingzTestNct.test_broadcasting  sc    iimmAryyAq$w7KKQ24JJJL M 	XD1r2   c                 d    t        j                  dd      }t        |j                         d       y )Nr   r   r}   )r6   r{	  r   r4  r  s     r0   test_variance_gh_issue_2401z#TestNct.test_variance_gh_issue_2401  s#    
 YYq!_RVVXs#r2   c                    t         j                  j                  ddd      \  }}}}t        ||||gt        j                  t        j                  t        j                  t        j                  g       t         j                  j                  ddd      \  }}}}t        t        j                  |             t        |||gt        j                  t        j                  t        j                  g       t         j                  j                  ddd      \  }}}}t        t        j                  |||g      j                                t        |t        j                         y )Nr   rs  r  )r  ncr  r  r  )r6   r{	  r   rT   r  r	   r:  r   r  s        r0   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r2   c                    t         j                  j                  dd      }t         j                  j                  dd      }ddg}t        ||d   d       t        ||d       t         j                  j                  dd      }t         j                  j                  dd      }d	d
g}t        ||d   d       t        ||d       y )Nr   rg   g@ @g*dn?r   r|  r   r   gqI  @gL) ?r  )r6   r{	  r   r   )rY   nct_mean_df_1000nct_stats_df_1000expected_stats_df_1000nct_mean	nct_statsr  s          r0   test_nct_stats_large_df_valuesz&TestNct.test_nct_stats_large_df_values  s     !99>>$2!IIOOD!4
 #56H!I(*@*C"	$)+A"	$ 99>>&!,IIOOFA.	,.@A."3%@	>=r2   c           	      l    t        t        j                  j                  ddt	        d            d       y )Nrg   i   r   )r   r6   r{	  rp   r   rX   s    r0   test_cdf_large_nczTestNct.test_cdf_large_nc  s!    		aE%L91=r2   zx, df, nc, expected)r  r`   rh  gAs69)rb  r  rh  gV1c                 ^    t        t        j                  j                  |||      |d       y r  )r   r6   r{	  ri   )rY   r_   r  r	  rN   s        r0   test_pdf_large_nczTestNct.test_pdf_large_nc  s!     			aR0(Gr2   N)r   r   r   r|	  r~	  r	  r	  r	  r	  r   r   r   r	  r8   r2   r0   ry	  ry	    sT    C2$ >,>6 [[2.+5
 H	Hr2   ry	  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   rx  r~   )r6   recipinvgaussri   r  s     r0   test_pdf_endpointz#TestRecipInvGauss.test_pdf_endpoint  s%    ##As+Cxxr2   c                 p    t         j                  j                  dd      }|t        j                   k(  sJ y )Nr   rx  )r6   r	  r   rT   r  r_  s     r0   test_logpdf_endpointz&TestRecipInvGauss.test_logpdf_endpoint   s,    ""))!S1wr2   c                 d    t         j                  j                  dd      }d}t        ||d       y )Nr;  ry   g9V9s;r  r   )r6   r	  rp   r   rY   rk  rN   s      r0   test_cdf_small_xz"TestRecipInvGauss.test_cdf_small_x$  s-      ##D#.(8%0r2   c                 b    t         j                  j                  dd      }d}t        ||d       y )Nr  ry   glH<r  )r6   r	  r   r   r	  s      r0   test_sf_large_xz!TestRecipInvGauss.test_sf_large_x8  s+    ""2s+(8U+r2   N)r   r   r   r	  r	  r	  r	  r8   r2   r0   r	  r	    s    1(,r2   r	  c                   $    e Zd Zd Zd Zd Zd Zy)TestRicec                 L    t         j                  j                  d      | _        y )Ni'rS   rX   s    r0   rZ   zTestRice.setup_method@  r  r2   c                 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)rF  rI  rJ  r~   )r/   )r]   r]   ry   r   r   r  r  r!  rc  )r	   rT   r:  r6   rJ	  ri   r   r   rp   r  r   r   )rY   r_   rt  r  r/   s        r0   test_rice_zero_bzTestRice.test_rice_zero_bC  sR   EJJNN1N3488:;EJJ--a2-67;;=>EJJNN1N3488:;EJJ--a2-67;;=> EJJNN1N3488:;zz62D!%%'(
 

q!,ejjnnQ.BQ	(r2   c                     t         j                  j                  }t         |d| j                        j
                  d       t         |dd| j                        j                  d       y )Nr  )r/   r   r   )r   r   )r/   r   r   )r6   rJ	  r   r   rW   r   r7  r  s     r0   test_rice_rvszTestRice.test_rice_rvsX  sG    jjnnS2DHH5::A>S2FBHH&Qr2   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 )Nr`      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?r]   r   g     @_@r   r  )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@ry      )gJ-$@g+f4@gce*D>@g$D@gnHGI@grN@g<
uQ@giff T@g9r[V@g3bXQ Y@gqxJ[@g`*DD ^@g@`@gdAa@)r6   rJ	  rp   rT   r  r   r   r5   )rY   rp   cdf_expprobabilitiesr   ppf_exps         r0   test_rice_gh9836zTestRice.test_rice_gh9836]  s     jjnnRYYr33RYYr35KLO
 	W%		#q#.jjnn]En;L 	W%kk""3		"c2(>?;
 	W%r2   N)r   r   r   rZ   r	  r	  r	  r8   r2   r0   r	  r	  ?  s    4(*R
'&r2   r	  c                       e Zd Zd Zd Zd Zy)
TestErlangc                 L    t         j                  j                  d      | _        y )Nl   IL rS   rX   s    r0   rZ   zTestErlang.setup_method  r[   r2   c           
         t        j                         5  t        j                  dt               t	        t        t
        j                  j                  dddd| j                         g d}t
        j                  j                  |d      }t
        j                  j                  |d      }t        ||d	
       d d d        y # 1 sw Y   y xY w)Nrh  r  r   r   r   r5  )ry   rI  r}   r	  r  r  r   )rl  rm  rn  ro  rS  r6   erlangr   rW   r   r  r   )rY   r   result_erlangresult_gammas       r0   test_erlang_runtimewarningz%TestErlang.test_erlang_runtimewarning  s     $$& 	D!!'>: .%,,*:*:CQ !B (D!LL,,Ta,8M ;;??4A?6LM<dC	D 	D 	Ds   B'CCc                     t        t        j                  j                  dddg      t        j                  j                  dddg             y )Nry   r   r   ri  )r   r6   r	  ri   r  rX   s    r0   test_gh_pr_10949_argcheckz$TestErlang.test_gh_pr_10949_argcheck  s<    U\\%%caW%5[[__SQG_4	6r2   N)r   r   r   rZ   r	  r	  r8   r2   r0   r	  r	    s    5D&6r2   r	  c                       e Zd Zd Zd Zd Zej                  j                  dddg      d        Z	ej                  j                  ddd	gd
dgg      d        Z
d Zd Zy)TestRayleighc                 L    t         j                  j                  d      | _        y )Nl   @X rS   rX   s    r0   rZ   zTestRayleigh.setup_method  r[   r2   c                 Z    t         j                  j                  d      }t        |d       y )Nr2  g)Zx)r6   r%  r   r   rY   r%  s     r0   r  zTestRayleigh.test_logpdf  s!    NN!!"%./r2   c                 Z    t         j                  j                  d      }t        |d       y )Nr2  i)r6   r%  r  r   r	  s     r0   r  zTestRayleigh.test_logsf  s     NN  $5!r2   r  )gB)Q?got|?)gS2P?g3?c                    t         j                  j                  d||| j                        }d } |||      }t         j                  j	                  ||      \  }}t        ||       t        ||       t         j                  j	                  |d      \  }}t        |d       t         j                  j	                  |      \  }}t        | |||             y )Nr  rb  c                 \    t        j                  | |z
  dz        dt        |       z  z  dz  S )Nrg   ry   )rT   rb  r  )r   r   s     r0   r  z(TestRayleigh.test_fit.<locals>.scale_mle  s,    FFD4KA-.!c$i-@RGGr2   r   rx  ro  )r6   r%  r   rW   r   r   )rY   r   r0  r   r  scale_expectre   rf   s           r0   rm  zTestRayleigh.test_fit  s     ~~!!s(1 " J	H !w/^^''7';
US'"UL) ^^''R'8
UUB
 ^^''-
UUIdC01r2   rE	  r{   g̡=E?g@1d?c                     t         j                  j                  d||| j                        }t	        t         j                  |       y )Nr  rb  )r6   r%  r   rW   r   )rY   r   r0  r   s       r0    test_fit_comparison_super_methodz-TestRayleigh.test_fit_comparison_super_method  s9    
 ~~!!s(1 " J%ennd;r2   c                 6    t        t        j                         y rt   )r  r6   r%  rX   s    r0   r  zTestRayleigh.test_fit_warnings  s    ENN+r2   c                    t         j                  j                  d      }d\  }}}t        j                  j                  ||||      }t        j                  j                  |      \  }}|t        j                  |      k  sJ t        j                  j                  ||      \  }}|t        j                  |      k  sJ ||k(  sJ y )Ni  )r2  r  r  r   ro  )rT   rU   rV   r6   r%  r   r   r  )	rY   rW   re   rf   r   r   r   r   r   s	            r0   test_fit_gh17088zTestRayleigh.test_fit_gh17088  s     ii##C('UDnn  e$S I^^'',
$$$"^^//E/B$$$E!!!r2   N)r   r   r   rZ   r  r  r   r   r   rm  r	  r  r	  r8   r2   r0   r	  r	    s    50" [[03K3K3M N2N20 [[0D$<4>
3K3M N<N<,
"r2   r	  c                   >   e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	ej                  j                  dg d      d	        Z
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 )Nr]   rI  r  g:23W+g~`9k)r6   	exponweibri   r   r   )rY   r_   r.   r  rk  r  s         r0   test_pdf_logpdfzTestExponWeib.test_pdf_logpdf  sY    OO1a(%%aA.D	/1DE	Gr2   c                 n   t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  ||      }t        ||       t        j                  j                  |||      }t        j
                  j                  ||      }t        ||       y )Nr  r   r   r   ra   )rT   r  r6   r	  ri   weibull_minr   r   rY   r_   r.   r  rk  rN   r  s          r0   test_a_is_1zTestExponWeib.test_a_is_1  s     KKB"OO1a($$((A.8$%%aA.$$++Aq1h'r2   c                 j   t        j                  ddd      }d}d}t        j                  j	                  |||      }t        j
                  j	                  |      }t        ||       t        j                  j                  |||      }t        j
                  j                  |      }t        ||       y )Nr  r   r`   )rT   r  r6   r	  ri   rZ  r   r   r	  s          r0   test_a_is_1_c_is_1z TestExponWeib.test_a_is_1_c_is_1   s    KKAr"OO1a(;;??1%8$%%aA.;;%%a(h'r2   zx, a, c, ref))r   rx  r   g=J ?)r2  rx  r   g$+PR>)r  rx  r   g><)r  rx  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  )r6   r	  r   r   )rY   r_   r.   r  rz  r   s         r0   r  zTestExponWeib.test_sf  s(     __1a(Ce,r2   zp, a, c, ref))ra  rx  r   g;y$(@)gMg<rx  r   gdbq^@)r  r   rg   gE@)gvIh%L=r	  r   g/7@)rE  r  r  gTWTOc                 b    t         j                  j                  |||      }t        ||d       y rG  )r6   r	  r  r   )rY   rk  r.   r  rz  r  s         r0   r  zTestExponWeib.test_isf>  s(     oo!!!Q*Su-r2   )rg   r   r  g)r   ry   r   gl̇կc                 b    t         j                  j                  |||      }t        ||d       y r  )r6   r	  r  r   )rY   r_   r.   r  rz  r  s         r0   r  zTestExponWeib.test_logcdfK  s(     ''1a0%0r2   )gR]jp2r  r
  gr)rG  rg   r`   gN~c                 b    t         j                  j                  |||      }t        ||d       y r  )r6   r	  r  r   )rY   r_   r.   r  rz  r  s         r0   r  zTestExponWeib.test_logsfS  s(     %%aA.s/r2   N)r   r   r   r	  r	  r	  r   r   r   r  r  r  r  r8   r2   r0   r	  r	    s    	G( (> [[	5	-	-* [[	4..
 [[^AGIJ1J1
 [[^IFHI0I0r2   r	  c                       e Zd Zd Zd Zy)TestFatigueLifec                 `    t         j                  j                  dd      }t        |dd       y )Nrk  rx  X9r   r   )r6   r  r   r   r  s     r0   test_sf_tailzTestFatigueLife.test_sf_tail]  s)       ,0u=r2   c                 d    d}t         j                  j                  |d      }t        |dd       y )Nr	  rx  rk  r   r   )r6   r  r  r   )rY   rk  rt  s      r0   test_isf_tailzTestFatigueLife.test_isf_tailk  s+    !!!!S)5u-r2   N)r   r   r   r	  r	  r8   r2   r0   r	  r	  [  s    >.r2   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  )r6   r	  r   r   r	  s     r0   r  zTestWeibull.test_logpdft  s$    $$Q*Qr2   c                 X   d}d}d}t         j                  j                  |||      }t        |t	        j
                  d      dz         t         j                  j                  |||      }t        |dt	        j                  d      z
         t         j                  j                  |||      }t        |t        j                  d              t         j                  j                  |||      }t        |t	        j                  t        j                  d                    t         j                  j                  |||      }t        |t	        j
                  d             t         j                  j                  |||      }	t        |	d       t         j                  j                  ddd      }t        |t	        j
                  d	             t         j                  j                  ddd      }	t        |	d	       d
}t         j                  j                  |||      }t        |t	        j
                  d      dz         t         j                  j                  |||      }t        |dt	        j                  d      z
         t         j                  j                  |||      }t        |t	        j
                  d             t         j                  j                  |||      }t        |d       t         j                  j                  |||      }t        |t        j                  d              t         j                  j                  |||      }	t        |	t	        j                  t        j                  d                    t         j                  j                  ddd      }t        |t        j                  d              t         j                  j                  ddd      }	t        |	t	        j                  t        j                  d                    y )Nr  r}   r  r  r  r   r0  rg   r  rM  g&.gCe )r6   r	  ri   r   rT   r   r   r  rp   r   r  r  r   r  weibull_max)
rY   r_   r.   r/   rk  r*  r  lcrD   r  s
             r0   test_with_maxima_distribz$TestWeibull.test_with_maxima_distriby  s?   .  !!!Qa!0266%=?+%%a!%4EBFF1I-.!!!Qa!0GMM%001%%a!%4BFFGMM%$8#89:  AQ /266%=)$$Q$3E"   Qa 0266$<($$R!$4D! !!!Qa!0266%=?+%%a!%4EBFF1I-.!!!Qa!0266%=)%%a!%4E"  AQ /GMM%001$$Q$3BFFGMM%$8#89:    3GMM*@AAB$$UAQ$7BFFGMM2H$I#IJKr2   rf   rI  r]   c                 n    t         j                  j                  |dz  |dz  d|      }t        |d       y )Nr  r  r   r  g>)r6   r	  r  r   r  s      r0   r  zTestWeibull.test_delta_cdf  s;    " !!,,U3Ya38 - :56r2   c                    t         j                  j                  d      }d\  }}}t        j                  |||      }|j                  d|      }t        j                  j                  |dd      \  }}}	t        j                  j                  |dd      \  }
}}||cxk(  rdk(  sJ  J ||
k7  sJ t        j                  j                  |ddd	
      \  }}}|dk(  sJ t        j                  |||      }|j                  d      }t        j                  |      t        j                  |      f}t        ||       y )Nl   > )rg   r.  ry   ra   r   r  r   r   r  r  r  r  r  )
rT   rU   rV   r6   r	  r   r   r   r5  r   )rY   rW   r  re   rf   rJ   r   c2r  r  c3r  r  c4r  r  r  r   rz  s                      r0   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!r2   r   )r2  r   r  )r   r   gq뮕qH)c                     t        t        j                  j                  ||      |d       t        t        j                  j	                  ||      |d       y rG  )r   r6   r	  r   r  r$  s       r0   r  zTestWeibull.test_sf_isf   sB     	)),,Q2CeD))--c15quEr2   N)r   r   r   r  r	  r   r   r   r  r	  r  r8   r2   r0   r	  r	  r  su    
RLh [[WsCj17 27("< [[[+J,D+E FFFFr2   r	  c                       e Zd Zd Zd Zy)TestDweibullc                 2   t         j                  j                  d      }d|j                  dd      z  }t        j
                  j                  |      }t        j                  j                  |      t        j                  d      z
  }t        ||d       y )N   q>~). r`   ra   r  ry   r   r   )
rT   rU   rV   r  r6   dweibullr>   r	  r  r   )rY   rW   r  r   rz  s        r0   rf  zTestDweibull.test_entropy	  ss     ii##$78

2
..nn$$Q'''*RVVC[8Su-r2   c                 6   t         j                  j                  d      }d|j                  dd      z  }d|j	                         z  }t
        j                  j                  ||      }dt
        j                  j                  ||      z  }t        ||d       y )Nr	  r`   r   r  ry   r   r   )
rT   rU   rV   r  r  r6   r	  r   r	  r   )rY   rW   r  r_   r   rz  s         r0   r  zTestDweibull.test_sf  s     ii##$78


,,nn1%E%%((A..Su-r2   N)r   r   r   rf  r  r8   r2   r0   r	  r	    s    ..r2   r	  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestTruncWeibullc                 h    t         j                  j                  ddgddd      }t        |ddg       y )Nr]   r}   g)\(?gףp=
?r~   )r6   truncweibull_minri   r   r	  s     r0   test_pdf_boundsz TestTruncWeibull.test_pdf_bounds#  s0    ""&&Sz3dCQc
#r2   c                     t         j                  j                  dddt        j                        }t        |d       t         j                  j                  dddd      }t        |d       y )Nr}   rI  r~   r	  g~?)r6   r	  r   rT   r  r   r   r	  s     r0   r  zTestTruncWeibull.test_logpdf(  sU    ""))#sC@Q ""))#sC=./r2   c                 h    t         j                  j                  ddgddd      }t        |ddg       y )Nr~   rI  r}   r]   )r6   r	  r   r   r	  s     r0   test_ppf_boundsz TestTruncWeibull.test_ppf_bounds0  s0    ""&&Sz3SAQc
#r2   c                     g d}t         j                  j                  |ddd      }t         j                  j                  |ddd      }t	        ||       y N)r~   r]   ra  ry   r   r   rI  r}   r~   r  )r6   r	  r   rp   r   rY   rt  r_   q_outs       r0   test_cdf_to_ppfz TestTruncWeibull.test_cdf_to_ppf5  sI    0""&&q"b"5&&**1b"b95!r2   c                     g d}t         j                  j                  |ddd      }t         j                  j                  |ddd      }t	        ||       y r	  )r6   r	  r  r   r   r	  s       r0   test_sf_to_isfzTestTruncWeibull.test_sf_to_isf;  sI    0""&&q"b"5&&))!RR85!r2   c                    dddfdt         j                  j                  d      }t        |d       t         j                  j                  d      }t	        fd      \  }}t        ||       t         j                  j                  d      }t	        fd	      \  }}t        ||       t         j                  j                  d
      }t	        fd      \  }}t        ||       t         j                  j                  d      }	t	        fd      \  }
}t        |	|
       y )Nr}   rI  r  c                 T    | |z  t         j                  j                  |       z  S rt   )r6   r	  ri   )r_   rj  r.   r/   r  s     r0   xnpdfz)TestTruncWeibull.test_munp.<locals>.xnpdfF  s)    a4..221aA>>>r2   r   r   c                      | d      S r   r8   r_   r	  s    r0   rE   z,TestTruncWeibull.test_munp.<locals>.<lambda>M      a r2   rg   c                      | d      S rr  r8   r	  s    r0   rE   z,TestTruncWeibull.test_munp.<locals>.<lambda>Q  r 
  r2   r   c                      | d      S rI	  r8   r	  s    r0   rE   z,TestTruncWeibull.test_munp.<locals>.<lambda>U  r 
  r2   r   c                      | d      S )Nr   r8   r	  s    r0   rE   z,TestTruncWeibull.test_munp.<locals>.<lambda>Y  r 
  r2   )r6   r	  r  r   r   r   )rY   r  r  m1_expectedr   rt  m2_expectedm3m3_expectedru  m4_expectedr.   r/   r  r	  s              @@@@r0   	test_munpzTestTruncWeibull.test_munpA  s#   	? ##**1aA6R##**1aA63Q:QK(##**1aA63Q:QK(##**1aA63Q:QK(##**1aA63Q:QK(r2   c                 8   d}d}d}t        j                  dt        j                  dt        j                  dt        j                  d      z          z         z
        }t        j
                  j                  ||||      }t        |d       t        j
                  j                  ||||      }t        |t        j                  d              t        j
                  j                  d|||      }t        ||       t        j
                  j                  ||||      }t        |d       t        j
                  j                  ||||      }	t        |	t        j                  d              t        j
                  j                  d|||      }
t        |
|       y )NrI  r  r}   r   ry   r  )rT   r  r  r   r6   r	  rp   r   r  r   r   r  r  )rY   r.   r/   r  x_medrp   r	  r   r   r  r  s              r0   test_reference_valuesz&TestTruncWeibull.test_reference_values\  sB   BFF3"rvvbz/0B)C#CDDE$$((1a8S!##**5!Q:RVVBZK($$((aA6U###&&uaA6C ##))%Aq9RVVBZK($$((aA6U#r2   c                    d}d}d}t         j                  }d}t        j                  j	                  |||      }t        j
                  j	                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }	t        ||	       t        j                  j                  |||      }
t        j
                  j                  |||||      }t        |
|       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j                  j                  |||      }t        j
                  j                  |||||      }t        ||       t        j
                  j                  dd||d      }t        |t        j                  d	             t        j
                  j                  dd||d      }t        |d	       y )
Nr  r}   r~   r  r  r0  rg   r   r  )rT   r  r6   r	  ri   r	  r   r   rp   r  r   r  r   )rY   r_   r  r.   r/   rf   rk  p_truncr*  lp_truncrp   	cdf_truncr	  lc_truncrD   s_truncr  ls_truncs                     r0   test_compare_weibull_minz)TestTruncWeibull.test_compare_weibull_mint  s1    FF!!!Qe!4((,,Q1au,E7#%%a%%8))00Aq!50IH%##Aq#6**..q!Q.G	Y'%%a%%8))00Aq!50IH%  AU 3((++Aq!Qe+D7#$$Q$7))//1a%/HH% ""%%b!Q%;266$<(##))"aAQ)?D!r2   c                    d\  }}}t        j                  ||d      }t        j                  j	                  ||||      }t        j                  j                  ||||      }t        j                  j                  ||      t        j                  j                  ||      z
  }t        j                  j	                  ||      |z  }t        j                  j                  ||      t        j                  j                  ||      z
  |z  }	t         j                  j                  ||       t         j                  j                  ||	       y )N)rx  ra  r
  ra   )	rT   rN  r6   r	  ri   rp   r	  r  r   )
rY   r  r.   r/   r_   r  rk  r  r  rm  s
             r0   test_compare_weibull_min2z*TestTruncWeibull.test_compare_weibull_min2  s    "1aKK1c"%%))!Q15%%))!Q15  $$Q*U->->-B-B1a-HH  $$Q*T1!!%%a+e.?.?.C.CAq.II4O


""4.


""4.r2   N)r   r   r   r	  r  r	  r	  r	  r	
  r
  r
  r
  r8   r2   r0   r	  r	  !  s0    $
0$
"")6$0'"R/r2   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   rL  )r6   rdistr   rp   r   )rY   r	  rI  s      r0   test_rdist_cdf_gh1285zTestRdist.test_rdist_cdf_gh1285  s5    $FJJvzz&%'@%H"A	/r2   c                     t        j                  ddd      }d}t        dt        j                  |dz  |dz        j                  |dz   dz        z  t        j                  |      j                  |             y )NgGzr  r`   g@ry   rg   r   )rT   rN  r   r6   r  ri   r
  )rY   r_   r  s      r0   test_rdist_betazTestRdist.test_rdist_beta  sd    KKtR(C

1Q3! 4 8 8!a% CC!KKN..q1	3r2   r   ))r  i  g?)r]      g;|bZ?)ry   i  g79)r   iU  g޻S/c                 \    t        t        j                  j                  ||      |d       y rG  )r   r6   r
  r   r$  s       r0   test_rdist_sfzTestRdist.test_rdist_sf  s     	q!,c>r2   N)	r   r   r   r
  r
  r   r   r   r 
  r8   r2   r0   r
  r
    s7    /3 [[	
??r2   r
  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestTrapezoidc                 H   g d}|D ]  }d|dg}t        t        j                  j                  |||      t        j                  j                  ||             t        t        j                  j                  |||      t        j                  j                  ||              y )N)r   rs  ry   r   r   r   )r   r6   r   ri   triangrp   )rY   modesmoder_   s       r0   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;		;r2   c                 R   t        j                  ddd      }t        t        j                  j                  |dd      t        j                  j                  |             t        t        j                  j                  |dd      t        j                  j                  |             y )Nr   r   r`   )rT   rN  r   r6   r   ri   r  rp   r  s     r0   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Or2   c                    t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d       t        t        j                  j                  d	dd      d
       t        t        j                  j                  ddd      d       t        t        j                  j                  ddd      d
       t        t        j                  j	                  d	dd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       t        t        j                  j	                  ddd      d       y )Nr   rg   r   ry   r   r  rF  rI  r]   g      ?r
  r   r	  rn  g      ?)r   r6   r   ri   rp   rX   s    r0   
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#>Dr2   c                 V  	
 d\  	

	z
  	z
  z  	z
  	z
  z  		z
  f\  }}}}dz   
z
  	z
  z  	
fd} |d      } |d      |dz  z
  }dz
  
z   	z
  z  z   
z
  	z
  z  t        j                  dz   
z
  	z
  z        z   }t        t        j                  j                  ||||      |d       t        t        j                  j                  ||||      |d       t        t        j                  j                  ||||      |d       t        t        j                  j                  ddd	d
      dd       t        t        j                  j                  ddd	d
      dd       t        t        j                  j                  ddd	d
      dd       y )N)r  r   rg   r   rg   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 )Nrg   r   r8   )rj  r.   r/   r  dre  s    r0   r  z6TestTrapezoid.test_moments_and_entropy.<locals>.moment  sn    !ac(Q1X-!A#6!Hq1Q3x/AaC89 :qSqS" #r2   r   ry   r  rL  r   r  r&  r   r   )rT   r  r   r6   r   r   r4  r>   )rY   r  rW	  re   rf   r  r   r4  r>   r.   r/   r  r.
  re  s            @@@@@r0   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Lr2   c                    t        j                  g d      }t        j                  ddg      d d d f   }t        j                  g d      }t        j                  j	                  |||      }t        j
                  |||      \  }}}t        j                  |j                  |j                        }t        j                  |j                        }	t        |	|j                         |j                         |j                               D ]+  \  }
}}}t        j                  j	                  |||      ||
<   - t        ||j                  |j                        d       t        j                  t        j                  j                  ||d	            }t        j
                  ||      \  }}t        j                  |j                  d
f      }t        j                  |j                        }	t        |	|j                         |j                               D ]+  \  }
}}t        j                  j                  ||d	      ||
<   - t        ||j                   j                  |j                        d       y )Nre  ry   rx  )rR  ra  r   r*  r   r   r  r  r   )rT   r   r6   r   ri   broadcast_arraysemptyr   r   r  r  ravelr   r2  r7  r   r   )rY   r  r.
  r_   r  ccddr  r   indr  rf  c1d1s                 r0   test_trapezoid_vectz!TestTrapezoid.test_trapezoid_vect  s   HH_%HHc3Z D)HH&'OO1a(((Aq1
Bhhrwwbhh/ii  bhhj"((*bhhjI 	5MAr2r__((R4CF	5 	3;;qww/e< JJu,,Q6,BC$$Q*Bhh|$ii S"((*bhhj9 	CIAr2__**2r6*BCF	C 	355==1>r2   c                    t         j                  j                  d      }d}t        j                  | }|j                  d|      }t        j                  j                  |      }|d d \  }}t        j                  |dd      rJ t        j                  |dd      rJ t        j                  j                  ||      }t        j                  j                  ||      }	|	|k  sJ y )	Nl   \"MW )rs  ry  r   rg   r   r   rg   r   r]   r   )	rT   rU   rV   r6   r   r   r   r   r   )
rY   rW   	true_args	true_distr_   fitted_argsfitted_cfitted_dtrue_llf
fitted_llfs
             r0   &test_trapezoid_fit_convergence_gh23503z4TestTrapezoid.test_trapezoid_fit_convergence_gh23503)  s     ii##$89#	OOY/	MM$SM1 oo))!, )!_(;;x555;;x555 ??''	15__))+q9
H$$$r2   N)	r   r   r   r'
  r)
  r+
  r/
  r9
  rB
  r8   r2   r0   r"
  r"
    s#    ;P
E(M6?4%r2   r"
  c                       e Zd Zd Zy)
TestTriangc                 J   t        j                  d      5  t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d	       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d
       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       t        t        j                  j                  dd      d       d d d        y # 1 sw Y   y xY w)Nraisert  r   r}   ry   rI  r   r~   rg   r   ra  )rT   r  r   r6   r$
  ri   rp   rX   s    r0   test_edge_caseszTestTriang.test_edge_casesC  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   rG
  r8   r2   r0   rD
  rD
  B  s    6r2   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	y
)TestMaxwellr  )r  gCR5&.)r{   g7q?c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   maxwellr   r.  s      r0   r  zTestMaxwell.test_sf[  s     	((+Su=r2   rI  ))r  g1!@)g    ?g?)g      <gCuJ!@c                 Z    t        t        j                  j                  |      |d       y r   )r   r6   rK
  r  rL  s      r0   r  zTestMaxwell.test_isfd  s    
 	))!,c>r2   c                 b    d}t         j                  j                  d      }t        ||d       y )Ngi6ur  r  r   )r6   rK
  r  r   )rY   rz  r  s      r0   r  zTestMaxwell.test_logcdfk  s'    %%%a(%0r2   c                 b    d}t         j                  j                  d      }t        ||d       y )Ng_OԺr!  r  r   )r6   rK
  r  r   )rY   rz  r  s      r0   r  zTestMaxwell.test_logsfq  s'    %##D)s/r2   N)
r   r   r   r   r   r   r  r  r  r  r8   r2   r0   rI
  rI
  V  sf    
 [[X::<=>=> [[X:;?	;?10r2   rI
  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   rI  r  )r   r6   mielker  rT   r  r	   r:  )rY   r\   rD   s      r0   r  zTestMielke.test_momentsy  sz    1U\\!Q'..q1266:U\\!S)003RVV<ELLD188;<=r2   c                     t        j                  ddd      }d\  }}t        t        j                  j                  ||||z        t        j                  j                  |||             y )Nr{   ra   r2  )g@gHzG@)rT   rN  r   r6   burrri   rR
  )rY   r_   r\   rD   s       r0   test_burr_equivalencez TestMielke.test_burr_equivalence  sO    KKc2&1

q!QqS15<<3C3CAq!3LMr2   N)r   r   r   r  rU
  r8   r2   r0   rP
  rP
  x  s    >Nr2   rP
  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   )ry   rg   )r   r   )rg   ry   r  ry   rI  )r   rg   r}   )
r6   fiskrT
  burr12ri   r.   r   r   rT   r  )rY   r   r  r  r   r  r  r	  s           r0   test_endpoints_7491zTestBurr.test_endpoints_7491  s7    ZZq!ZZ1%ZZ#ZZ1%\\8S)\\63'\\63') 9===E1vrvvbdd#U#==9=>>!5UI9>>!#w/;?@@<2uayryy&&@@AEFF)=UI266)$FF!#w/ >> AFs   (D?9E(E Ec                     d\  }}t        j                  ||      j                         \  }}d\  }}t        ||       t        ||       y )N)rJ  r   )g4U?g&MI?)r6   rT
  r   )rY   r  r.
  r   variancemean_hcvariance_hcs          r0   test_burr_stats_9544zTestBurr.test_burr_stats_9544  sI    1Aq)//1h  Gg&+.r2   c                 <   d\  }}t        j                  ||      j                         \  }}t        t        j                  |             t        t        j                  |             d\  }}t        j                  ||      j                         \  }}t        t        j
                  |             t        t        j                  |             d\  }}t         j                  j                  t        j                  g d      ||      \  }}}}t        t        j                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             t        t        j                  |             d\  }}t         j                  j                  g d||      \  }}}}t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             t        t        j
                  |             y )N)ry   r   )r  r   r  )rx  r   )r.  r   )r,  r   )r6   rT
  r	   rT   rW  r:  r  r   )	rY   r  r.
  r   r]
  e1e2e3e4s	            r0   test_burr_nan_mean_var_9544z$TestBurr.test_burr_nan_mean_var_9544  s   1Aq)//1h"#1Aq)//1hD!""#1))"((<*@!QGBB1)),1=BBB 1)),1=BBB B 1)),1=BBB B B 1)),1=BBB B B B r2   c                 x    d\  }}g d}g d}t        t        j                  j                  |||      |d       y )N)rJ  r  )r]   r|  r  r+  )g+&?gI$_@gKT@gؗVAr  r   )r   r6   rT
  r  )rY   r  r.
  rt  rz  s        r0   test_burr_isfzTestBurr.test_burr_isf  s6     1&#

q!Q/5Ar2   N)r   r   r   r[
  r`
  rf
  rh
  r8   r2   r0   rW
  rW
    s    0(	/(!TBr2   rW
  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)rI  gd~)r.  gR톇T c                 h    t         j                  j                  dddd|      }t        ||d       y )Ng     jAg     jAr   r  r  r   r   )r6   rZ
  r  r   )rY   rf   rN   rg  s       r0   r  zTestBurr12.test_delta_cdf  s/    ( ''S!Qe'Dxe4r2   c                 0   d\  }}t         j                  dz  }dt         j                  dz  dz  z
  }t         j                  dz  d|dz  z  z  }t         j                  }||||g}t        j                  ||      j                  d	      }t        ||d
       y )Nrd  r   r   rg   rh  r   rf	  r  r  r  r   )rT   rj   r  r6   rZ
  r   )	rY   r  r.
  r   r4  r5  r  rz  r   s	            r0   test_moments_edgezTestBurr12.test_moments_edge  s    
 1uuQw"%%(2+ouuaxCH%66S$)ll1a &&v.Su-r2   zp, c, d, ref))r  r  ry   ggx4/@)gҶOɃ;r  ry   gI8aS@)r  ra  #   gj\/ @)g#aMR/ra  rn
  g!GAc                 b    t         j                  j                  |||      }t        ||d       y r  )r6   rZ
  r  r   )rY   rk  r  r.
  rz  r_   s         r0   test_isf_near_zerozTestBurr12.test_isf_near_zero   s(     LLQ1%3U+r2   N)	r   r   r   r   r   r   r  rm
  rp
  r8   r2   r0   rj
  rj
    sa    [[.<;=>5>5(.  [[	0,,r2   rj
  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/ݤ@)r5  r  r  r   r   r`   r  x   )rg   r  r!  r  )r]   r   i)#  gupm1f?)r   r`   r   g?<-=A?gv"?r   gd暕?ga-A?c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )Nr  r   )r   r6   studentized_rangerp   r   )rY   pvkrt  
p_expectedr  r\   res_ps          r0   test_cdf_against_tablesz,TestStudentizedRange.test_cdf_against_tables;   sK    ii 	:FC"J1++//1a8EE:D9	:r2   c                     | j                   D ]:  \  }}|\  }}}t        j                  j                  |||      }t	        ||d       < y )Nr  r   )r   r6   ru
  r   r   )rY   rv
  
q_expectedrk  r  r\   res_qs          r0   test_ppf_against_tablesz,TestStudentizedRange.test_ppf_against_tablesB   sJ    #yy 	:OCGAq!++//1a8EE:D9	:r2   z&data/studentized_range_mpmath_ref.jsonNcase_resultcdf_datac                     |d   }|d   }|d   |d   |d   f}t        j                  j                  | }t        |||d   |d          y 	Nsrc_case	mp_resultrt  r\   r  expected_atolexpected_rtolrc  )r6   ru
  rp   r   rY   r~
  r
  r
  qkvr   s         r0   test_cdf_against_mpz(TestStudentizedRange.test_cdf_against_mpN   `    z*,	smXc]HSM9%%))3/Y%o6%o6	8r2   pdf_datac                     |d   }|d   }|d   |d   |d   f}t        j                  j                  | }t        |||d   |d          y r
  )r6   ru
  ri   r   r
  s         r0   test_pdf_against_mpz(TestStudentizedRange.test_pdf_against_mpY   r
  r2   z+intermittent RuntimeWarning: invalid value.moment_datac                     |d   }|d   }|d   |d   |d   f}t        j                  d      5  t        j                  j                  | }d d d        t        ||d   |d	   
       y # 1 sw Y   xY w)Nr
  r
  r  r\   r  r  r  r
  r
  rc  )rT   r  r6   ru
  r  r   )rY   r~
  r
  r
  mkvr   s         r0   test_moment_against_mpz+TestStudentizedRange.test_moment_against_mpd   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   r`   r   rQ  r   )r   r6   ru
  ri   rT   r  r   )rY   r\   r  r   s       r0   test_pdf_integrationz)TestStudentizedRange.test_pdf_integrationu   s=    15**..266AGA"r2   c                     d\  }}t        j                  ddd      }t        j                  j	                  |||      dd  }t        j                  j                  |||      }t        ||      }t        ||d       y )	Nr
  r   r`   r{   )stepr   r  r   )rT   r  r6   ru
  rp   ri   r   r   )rY   r\   r  r_   y_cdf	y_pdf_rawy_pdf_cumulatives          r0   test_pdf_against_cdfz)TestStudentizedRange.test_pdf_against_cdf|   sv    1
 IIa$'''++Aq!4QR8++//1a8	/	1= 	(%d;r2   r_case_resultc                     |\  }}}}t        j                  d      5  t        j                  j	                  |||      }d d d        t        |       y # 1 sw Y   xY w)Nr  r  )rT   r  r6   ru
  rp   r   )rY   r
  rt  r\   r  r_resr   s          r0   test_cdf_against_rz'TestStudentizedRange.test_cdf_against_r   sV     '1a[[* 	7))--aA6C	7U#	7 	7s   "AAc                 ~   t        j                  d      5  t        j                  j	                  ddgddgddg      }d d d        t        j                  d	       t        j                  t        d
      5  t        j                  j	                  dddgg d       d d d        y # 1 sw Y   ixY w# 1 sw Y   y xY w)Nr  r  r   rg   r   r   r`   r  r	  z...could not be broadcast...r  )r`   r  rK  )
rT   r  r6   ru
  r  r   r7  r   r   r  r  s     r0   test_moment_vectorizationz.TestStudentizedRange.test_moment_vectorization   s     [[* 	H''--q!fq!fr2hGA	H 	&]]:-KL 	C##))!aV\B	C 	C	H 	H
	C 	Cs   (B'8&B3'B03B<c                 ~   t        j                         5  t        j                  d      5  t        j                  d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  )rl  rm  rT   r  rn  r   r6   ru
  rh  r	   	_argcheck)rY   r\   r  r   s       r0   test_fitstart_validz(TestStudentizedRange.test_fitstart_valid   s    $$& 	GH(E 	G!!(,>?11;;IFKAr1a	G 	G 	''11!R89		G 	G 	G 	Gs#   B3AB'-B3'B0	,B33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   r`   韆 r  rc  )r6   ru
  ri   rT   r  r   rp   )rY   r   
res_finites      r0   test_infinite_dfz%TestStudentizedRange.test_infinite_df   s     %%))!R8,,00B>
Zd>%%))!R8,,00B>
Zd>r2   c                 0   t         j                  j                  ddd      }t         j                  j                  ddd      }t         j                  j                  ddd      }t        t        t
        ||dd       t        ||dd       t         j                  j                  ddd      }t         j                  j                  ddd      }t         j                  j                  ddd      }t        t        t
        ||dd       t        ||dd       y )Nr   r`   r   r
  i rk  rc  )r6   ru
  ri   rS  AssertionErrorr   rp   )rY   r   r
  
res_sanitys       r0   test_df_cutoffz#TestStudentizedRange.test_df_cutoff   s     %%))!R8,,00B>
,,00B>
nosJd	,
JTE%%))!R8,,00B>
,,00B>
nosJd	,
JTEr2   c                 |    d\  }}}t         j                  j                  |||      }t        |dd       |dk\  sJ y )N)gaRA@r   iS  r   r|  r   )r6   ru
  r   r   )rY   rt  r\   r  rk  s        r0   test_clippingz"TestStudentizedRange.test_clipping   s@     .1a##&&q!Q/15)Avvr2   )1r   r   r   q05q01q001rT   rj  qspsr  vskslistr  r%   r   r_datar   r   r   ry
  r   r}
  ospathdirnamer  path_prefixrelative_pathopenrU  filejsonr  pregenerated_datar   r
  r
  xfail_on_32bitr
  r
  r
  r
  r
  r
  r
  r
  r
  r8   r2   r0   rr
  rr
     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rr
  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  rJ  r^   r~   )rT   rN  r6   r(   ri   r:  r   )rY   r  r_   rk  s       r0   test_pdf_nonpositive_lambdaz+TestTukeyLambda.test_pdf_nonpositive_lambda   sZ     KKc3'!!!S){{1~!!###C}}r2   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  rJ  r^   r  r~   r}   rg   )	rT   rN  r   r6   r(   ri   r:  r   r   )rY   r_   r  rk  s       r0   test_pdf_mixed_lambdaz%TestTukeyLambda.test_pdf_mixed_lambda   s    KKc3'hhu-.!!!S){{1~!!### "1  """ !s
!!!!  """r2   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~   ra  ry   r}   r   rg   ry   )rT   r   r6   r(   supportr  r   )rY   r  r.   r/   
expected_bs        r0   r+  zTestTukeyLambda.test_support   sh    hh9:  ((-1XXrvvrvvrvvq!SAB
Q
#Q$r2   c                 d    t         j                  j                  ddgd      }t        |ddg       y )Nr  r}   ry   r~   )r6   r(   ri   r   r  s     r0   test_pdf_support_boundaryz)TestTukeyLambda.test_pdf_support_boundary   s.     !!4+s3Qc
#r2   c                 b   t         j                  j                  dd      }dt        j                  dz  dz  ddg}t	        ||d       t         j                  j                  d	d      }g d
}t	        ||d       t         j                  j                  dd      }g d}t	        ||d       y )Nr   r  r  rg   r   r_  r`   rL  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r6   r(   rT   rj   r   )rY   r  rN   s      r0   "test_tukeylambda_stats_ticket_1545z2TestTukeyLambda.test_tukeylambda_stats_ticket_1545!  s     $$Q$7ruuaxz1c*B"5$$T6$:GB"5$$T6$:GB"5r2   N)r   r   r   r   r   r   rT   r   r
  r
  r+  r
  r
  r8   r2   r0   r
  r
     s^    [[	dD("((TFSED6#:;<	#%$6r2   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   rI  ry   r]   r{   r  )g~V1?r'  gba"?g܄4ťY?r(  g$%+Ir|  r   r   )rT   r   r6   r   rp   r   r   )rY   r_   rN   r%  r  s        r0   test_levy_cdf_ppfzTestLevy.test_levy_cdf_ppf!  sf    HH78 88 5 6 JJNN18%0 ZZ^^H%AE*r2   c                     t        j                  g d      }t        j                  g d      }t        j                  j	                  |      }t        ||d       y )N)r  r  gMraB3Gr=  )gep[>g}XEQ=gѭEG<g?_%~:r  r   )rT   r   r6   r   r   r   )rY   r_   rN   r%  s       r0   test_levy_sfzTestLevy.test_levy_sf0!  sD    HH-.88 4 5 JJMM!8%0r2   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   )r6   r   r  r   )rY   rk  expected_isfr_   s       r0   test_levy_isfzTestLevy.test_levy_isfF!  s"     JJNN1<e4r2   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Nr=  g?_%~r  r   )r6   r   r  r   rN  s       r0   test_levy_logcdfzTestLevy.test_levy_logcdfQ!  s,    $""1%%0r2   c                 f    d}d}t         j                  j                  |      }t        ||d       y )Nr  gޢاr  r   )r6   r   r  r   rP  s       r0   test_levy_logsfzTestLevy.test_levy_logsfW!  s,    %

  #s/r2   N)r   r   r   r
  r
  r   r   r   r
  r
  r
  r8   r2   r0   r
  r
  !  sD    +.	1, [[.JK5K510r2   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?r`   test_540_567)rM  rO  g2gk?g;B.?gͣh?gHŎ*?rd   g.y?)r   r6   r  rp   r8   r2   r0   r
  r
  ^!  sk    

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

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

}.-; ' =+ "N<r2   zdocstrings strippedrY  c                      t        dt        j                  j                  v       t        dt        j                  j                  v        y )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r	   r6   ry  r  r8   r2   r0   test_regression_ticket_1421r
  j!  s1    (0E0EEFH---.r2   c            	      	   t        j                  d      5  t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j
                  j                  dt         j                                     t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j!                  t         j                  d                   t        t        j                  t        j                  j#                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   t        t        j                  t        j                  j                  t         j                  d                   d d d        y # 1 sw Y   y xY w)Nr  r  r   ry   )rT   r  r	   rW  r6   r  r  r  rp   r  r   ri   r   r   r  r  rE  r/  r8   r2   r0    test_nan_arguments_gh_issue_1362r
  p!  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.  )ra  r~   ry   r   r   rg   ra   r   r  )r
	  r~   r   rL  ry   )r   re   ra  )r   re   r  r   r}   r   )rT   rU   rV   r   r6   r"  r   r  r   r   r  r  r   )rW   truer_   r  re   r   rN   s          r0   test_frozen_fit_ticket_1536r
  !  s   
))


%C88O$D$q'47DG#CPA	H	% 9%--++AB+789 a0XXemm''#1'=>Fa0XXemm''d':;Fa0XXemm''d';<Fa0
))


%C
CD

sBSs;AXXejjnnQTn23Fxxrww4!'9'9';<=>H!4)9 9s   :5IIc                      t         j                  j                  d      } t        j                  j                  d|       }t        j                  j                  |      }d}t        ||d       y )Ni	 ra   r   )g
ףp=
?gʡE?r   rL  )rT   rU   rV   r6   r  r   r   r   )rW   r   r  rN   s       r0   test_regression_ticket_1530r
  !  sT    
))


'C
,,

#

6C\\c"FH!4r2   c                      t         j                  j                  d      } | j                  d      }dD ]C  }t        j
                  j                  ||z         \  }}t        ||d       t        |dd       E y )NrN  r  )r  g   6ArI  r   rx  )rT   rU   r  randnr6   r  r   r   )rW   r_   offsetre   rf   s        r0   test_gh_pr_4806r
  !  sf    
))


%C		"A' .\\%%a&j1
UV#.s-.r2   c                  |    t        t        j                  t        j                  j                  dd                   y )Nr:  rF  )r	   rT   r:  r6   ry  r/  r8   r2   r0   test_poisson_logpmf_ticket_1436r
  !  s$    BKK,,T3789r2   c                  z    ddg} | D ]2  \  }}t         j                  j                  |d      }t        ||       4 y)a  Test the powerlaw stats function.

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

    The exact values are:
    mean:
        mu = a / (a + 1)
    variance:
        sigma**2 = a / ((a + 2) * (a + 1) ** 2)
    skewness:
        One formula (see https://en.wikipedia.org/wiki/Skewness) is
            gamma_1 = (E[X**3] - 3*mu*E[X**2] + 2*mu**3) / sigma**3
        A short calculation shows that E[X**k] is a / (a + k), so gamma_1
        can be implemented as
            n = a/(a+3) - 3*(a/(a+1))*a/(a+2) + 2*(a/(a+1))**3
            d = sqrt(a/((a+2)*(a+1)**2)) ** 3
            gamma_1 = n/d
        Either by simplifying, or by a direct calculation of mu_3 / sigma**3,
        one gets the more concise formula:
            gamma_1 = -2.0 * ((a - 1) / (a + 3)) * sqrt((a + 2) / a)
    kurtosis: (See https://en.wikipedia.org/wiki/Kurtosis)
        The excess kurtosis is
            gamma_2 = mu_4 / sigma**4 - 3
        A bit of calculus and algebra (sympy helps) shows that
            mu_4 = 3*a*(3*a**2 - a + 2) / ((a+1)**4 * (a+2) * (a+3) * (a+4))
        so
            gamma_2 = 3*(3*a**2 - a + 2) * (a+2) / (a*(a+3)*(a+4)) - 3
        which can be rearranged to
            gamma_2 = 6 * (a**3 - a**2 - 6*a + 2) / (a*(a+3)*(a+4))
    )rI  )ry   r  r~   r  )r}   )gUUUUUU?r$	  g^cQg333333r  r  N)r6   r  r   )rM  r.   
exact_mvskr  s       r0   test_powerlaw_statsr
  !  sG    > ,=?E 4:~~##Av#6!$
34r2   c                  \    t         j                  j                  dd      } t        | d       y )Nr   r   r~   )r6   r  r   r   rk  s    r0   test_powerlaw_edger
  !  s"    a#ACr2   c                  v   t         j                  j                  dd      } t        | d       t         j                  j	                  dg d      } t        | t
        j                  ddg       t         j                  j                  dg d      } t        | t
        j                  dt
        j                   g       y )Nr   r   r~   )ra  rI  r  rI  )r6   r0  r   r   ri   rT   r  r
  s    r0   test_exponpow_edger
  !  s    a#AC 	1./ARVVS#&'a!12ARVVS266'*+r2   c                  ^    t         j                  j                  ddd      } t        | d       y )Nr   r   rI  )r6   gengammari   r   r
  s    r0   test_gengamma_edger
  !  s$    1a#ACr2   za, c, ref, tol))g    `6Ar   g2j!@r   )r  r   ggA@r   )r  r   r  r   )r  r   g #@r   )g    `FAr  gI~mr   )gl$W}Lr  g.I#Ur   c                 \    t        t        j                  j                  | |      ||       y r  )r   r6   r
  r>   )r.   r  rz  rJ  s       r0   test_gengamma_extreme_entropyr
  !  s!    " ENN**1a0#C@r2   c                      t         j                  j                  ddd      } | dk(  sJ t         j                  j                  ddd      }|t        j
                   k(  sJ y )Nr   r   r   r~   )r6   r
  ri   r   rT   r  )rk  r  s     r0   !test_gengamma_endpoint_with_neg_cr
  
"  sO    1a$A8O8>>  Ar*DBFF7??r2   c                      t         j                  j                  ddd      } t        | d       t         j                  j                  ddd      } t        | d       y )Nr   rF  rI  g>r`   gqq?)r6   r
  r  r   r
  s    r0   test_gengamma_munpr
  "  sF    Rb)A:&RR(A6"r2   c                     t        j                  g d      } t        j                  d      5  t        j                         5  t        j
                  ddt               t        j
                  ddt               t        j                  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)rT   r   r  rl  rm  r  r   ro  r6   r@  r   )r.
  s    r0   test_ksone_fit_freezer
  "  s    
		/
	0A 
X	& $$& 	##L"
 ##?
 KKOOA	 	 	 s$   B6AB*B6*B3	/B66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   rs
  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|  )rT   r   r
  r  r   r6   r  r  realimagr   r   )r_   rN   derivderiv_expecteds       r0   test_norm_logcdfr  7"  s     
Dq#q)*	++A0H EJJL''*H4@ EJJL''F
388(N ZZq6z*5066EVVEJJ--a05::3D3DQ3GGHNE>6r2   c                      t        j                  g d      } t        j                  g d      }t        j                  j	                  |       }t        ||d       y )N)gMb{Gzg{Gztg~jtX)g#]<gOul2;gޢا6g̅7=!r   r   )rT   r   r6   r!  r   r   )r_   rN   r%  s      r0   test_levy_l_sfr  P"  sD    
12Axx 1 2H 	AAxe,r2   c                      t        j                  g d      } t        j                  j	                  |       }t        j                  j                  |      }t        || d       y )N)g [n<ra  r  rE  r   )rT   r   r6   r!  r  r   r   )rk  r_   rt  s      r0   test_levy_l_isfr  \"  sC    
&'AAAAqu%r2   c                     t        t        j                  j                  dddd      d       t        t        j                  j                  dddd      d       t        t        j                  j                  dddd      d       t        t        j                  j	                  d	d
d
d      d       t        t        j                  j	                  dd
d
d      d       y )Nr5  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@r  ra   r  r   )r   r6   r  r7  r   r8   r2   r0   test_hypergeom_interval_1802r  d"  s    ))#vucB!))$sC! ))#vucB! $$T3Q7;$$QS!4a8r2   c                  "	   t         j                  j                  d      } t        j                  ddd      }t	        t
        t        j                  j                  |ddd	       t	        t
        t        j                  j                  |ddd
d	       t	        t
        t        j                  j                  |ddd
d       t	        t
        t        j                  j                  |dddd       t	        t
        t        j                  j                  dddd|        t	        t
        t        j                  j                  |dddd       t	        t
        t        j                  j                  |dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  dddd       t	        t
        t        j                  j                  |dddd       t        j                  j                  |dd       t        j                  j                  |ddd
       t        j                  j                  dd       t        j                  j                  ddd
       t        j                  j                  ddd
d       t        j                  j                  ddd
d|        t        j                  j                  t        j                  j                  dd|       d       t        j                  j                  |dd	       t	        t
        t        j                  j                  |ddd
       t	        t
        t        j                  j                  |ddd
	       t	        t
        t        j                   j                  |dd	       t	        t
        t        j"                  j                  |dd
dd	       t	        t
        t        j"                  j                  |dd
ddd       t	        t
        t        j$                  j                  |dd
ddd	       t	        t
        t        j$                  j                  |dd
dddd	       t        j$                  j                  |dd
ddd       y )Nl   ?wH r]   ry  r   numrg   r   rI  r  r   ry   rd   r}   )re   rf   r   r  r   r  r   r&  r  )rT   rU   rV   rN  rS  r  r6   r  ri   r   rp   r   r>   r   r  rE  rZ  r	  r  )rW   r_   s     r0   test_distribution_too_many_argsr  s"  s   
))



+C 	C!$A)U[[__aA3?)U[[__aAqcB)U[[__aAq!<)U[[__aA3cJ)U[[__b!C"$)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1acO2	KKOOEKKOOBQSOA2F 
JJNN1aQN)UZZ^^Q1a8)UZZ^^Q1!< )U[[__a<)U__00!Q1#F)U__00!Q1c3G)UYY]]Aq!QsC)UYY]]Aq!Q3cJ	IIMM!Q1a%r2   c                      t         j                  j                  t        j                  ddd      dd      } t         j                  j                  t        j                  ddd      dd      }t        | |dd       y )	Nr  rz  rF  rg   gYZ@r  r   r[  )r6   ncx2rp   rT   r  _cdfvecr   r  s     r0   test_ncx2_tails_ticket_955r  "  sZ     	

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

299RS11nEAAqt!,r2   c            
         t        j                         5  t        j                  dt               t	        t
        j                  j                  dt        j                  dd      d      d       t
        j                  j                  dt        j                  dd      d      } d d d        t        t        j                         j                                t        j                         5  t        j                  dt               t	        t
        j                  j                  ddd	      d       t        t
        j                  j                  ddd	      d
       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nrh  r   iT  i^  rg   r   r  r   rK  gsq6)rl  rm  rn  ro  r   r6   r  ri   rT   r  r   r	   r  r   r   )logvals    r0   test_ncx2_tails_pdfr  "  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, expectedrp   gu%>g	;Q=ri   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 )Nr]   r   r   r`   )r	  r  r   r   )r(  r6   r  r   )r  rN   r  s      r0   test_ncx2_zero_ncr  "  s/      )WUZZ(!QB?FFH51r2   c                      t         j                  j                  ddd      } t         j                  j                  dd      }t	        | |d       y )Nr`   r   r   )r  r	  r   )r  r   r   r   )r6   r  r   r  r   )r  rN   s     r0   test_ncx2_zero_nc_rvsr  "  s>     ZZ^^raa^8Fzz~~!~4HFH51r2   c                      dt        j                  dd      z  } t        t        j                  j                  dd|       d       y )Nr`   r   r  r   r  r	  r   )rT   r  r   r6   r  rp   )r	  s    r0   test_ncx2_gh12731r  "  s4    	RYYq"	Bb115r2   c                      t        j                  g d      } d\  }}t        j                  j	                  | ||      }g d}t        ||d       y )N)gю]	@gj%@gb	y/7@g H@gIZ@gXl@g'/2?8@gݰmА@gU@gy]`'@g@g*\@g48c@)r  gh ?8@r  )rI  rI  rI  rI  rI  g?gy[qD?r~   r~   r~   r~   r~   r~   r  r   )rT   r   r6   r  r   r   )r_   nur  r   sf_expecteds        r0   test_ncx2_gh8665r!  "  sM    
 " 	#A
 %GB	qRC	(B'K
 B%0r2   c            	         d} d}t        j                  t        j                  j	                  d| |      t        j                  j	                  d| |      d      }t        j                  j                  || |      }t        j                  j                  || |z   t        j                  d| z  d|z  z               }t        ||d	
       y )Ni,  i  r  r  r  r  rg   r   r  r   )	rT   rN  r6   r  r   ri   r  r  r   )r  r	  r_   ncx2_pdfgauss_approxs        r0   test_ncx2_gh11777r%  "  s    
 
B	B
EJJNN5"b1JJNN5"b1u	>Azz~~aR(H::>>!R"Wbgga"fq2vo.FGLHl6r2   zx, c, expected))rg   r   g|1q?)rg   rg   g~?)rk  r   V<3T1=) 7yQCr   u	lY<)rk  g   vHGBg^b!*1=)rn  rF  gS?c                 ^    t         j                  j                  | |      }t        ||d       y Nrv  )r6   
foldcauchyr   r   r_   r  rN   r   s       r0   test_foldcauchy_sfr-  #  s(     
				Q	"BB%(r2   r  ))rg   g?)rk  r&  )r'  r(  )g6ްPg8R#/c                 \    t         j                  j                  |       }t        ||d       y r*  )r6   rA  r   r   )r_   rN   r   s      r0   test_halfcauchy_sfr/  #  s&     
				Q	BB%(r2   zp, expected))g?g*wӄZ>)333333?gN9?)ry   rI  )r{   g8<,O@)r  g:B)gl ׶w/gMb}[Pc                 Z    t         j                  j                  |       }t        ||       y rt   )r6   rA  r  r   )rk  rN   r_   s      r0   test_halfcauchy_isfr2  (#  s$     	QAAx r2   c                  h    t        j                  dd      } t        | j                  d      d       y )Nr   r   r  )r6   r#  r   rp   )r  s    r0   test_foldnorm_zeror4  4#  s$    		#BAr2   ))rg   r   gwo{?)r  r   gGd-P/)r`   r4  gof?)rz  r4  gOul";c                 ^    t         j                  j                  | |      }t        ||d       y )Nr  )r6   r#  r   r   r,  s       r0   test_foldnorm_sfr6  H#  s&     
		1a	 BB%(r2   c                     t         j                  j                  g ddd      } t         j                  j                  ddgdd      }t        d |D              }t        ||        t         j                  j                  g d      } t         j                  j                  ddg      }t        d	 |D              }t        ||        y )
N)r~   ry   rI  r   ry   rI  c              3   b   K   | ]'  }t         j                  t         j                  |f    ) y wrt   rT   rC  r  r]	  s     r0   rp  z-test_stats_shapes_argcheck.<locals>.<genexpr>W#  s!     8q"%%	*8   -/)rg   r0  r   rg   r0  c              3   b   K   | ]'  }t         j                  |t         j                  f    ) y wrt   r9  r]	  s     r0   rp  z-test_stats_shapes_argcheck.<locals>.<genexpr>]#  s!     8q"%%266	*8r:  )r6   r  tupler   r"  )mv3mv2mv2_augmenteds      r0   test_stats_shapes_argcheckr@  R#  s     ..

3
7C
..

Sz1c
2C8C88M$ --

l
+C
--

q#h
'C8C88M$r2   c                       e Zd Zd Zy)
_distr_genc                      yNr  r8   rY   r_   r.   s      r0   _pdfz_distr_gen._pdfh#  s    r2   Nr   r   r   rF  r8   r2   r0   rB  rB  g#  s    r2   rB  c                       e Zd Zd Zy)_distr2_genc                     d|z  |z   S rD  r8   rE  s      r0   _cdfz_distr2_gen._cdfm#      Avzr2   N)r   r   r   rK  r8   r2   r0   rI  rI  l#  s    r2   rI  c                       e Zd Zd Zd Zy)_distr3_genc                     ||z   S rt   r8   rY   r_   r.   r/   s       r0   rF  z_distr3_gen._pdfr#  s    1ur2   c                     d|z  |z   S rD  r8   rE  s      r0   rK  z_distr3_gen._cdfu#  s     Avzr2   Nr   r   r   rF  rK  r8   r2   r0   rN  rN  q#  s    r2   rN  c                       e Zd Zd Zd Zy)_distr6_genc                     ||z  |z   S rt   r8   rP  s       r0   rF  z_distr6_gen._pdf}#  s    sQwr2   c                     d|z  |z   S rD  r8   rP  s       r0   rK  z_distr6_gen._cdf#  rL  r2   NrR  r8   r2   r0   rT  rT  {#  s    r2   rT  c                   r    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)TestSubclassingExplicitShapesc                 X    t        dd      }t        |j                  dd      d       y )Ndummyr.   r  r
  r   ri  r  rB  r   ri   rY   dummy_distrs     r0   test_correct_shapesz1TestSubclassingExplicitShapes.test_correct_shapes#  s%     gc:[__Q!_,b1r2   c                 j    t        dd      }t        t        |j                  dfi t	        d       y )NrZ  Ar[  r   ri  )rB  rS  r  ri   r  r]  s     r0   test_wrong_shapes_1z1TestSubclassingExplicitShapes.test_wrong_shapes_1#  s'     gc:i!AtayAr2   c                 r    t        dd      }t        ddd      }t        t        |j                  dfi | y )NrZ  za, b, cr[  r   rg   r   r  )rB  r  rS  r  ri   )rY   r^  r)  s      r0   test_wrong_shapes_2z1TestSubclassingExplicitShapes.test_wrong_shapes_2#  s1     gi@Q!q!i!;s;r2   c                 H    t        dd      }t        t        t        fi | y )NrZ  r  r[  )r  rS  r  rB  rY   r)  s     r0   test_shapes_stringz0TestSubclassingExplicitShapes.test_shapes_string#  s    +i3s3r2   c                 H    t        dd      }t        t        t        fi | y )NrZ  z(!)r[  r  rS  SyntaxErrorrB  rf  s     r0   test_shapes_identifiers_1z7TestSubclassingExplicitShapes.test_shapes_identifiers_1#  s    .k:55r2   c                 H    t        dd      }t        t        t        fi | y )NrZ  4chanr[  ri  rf  s     r0   test_shapes_identifiers_2z7TestSubclassingExplicitShapes.test_shapes_identifiers_2#      0k:55r2   c                 H    t        dd      }t        t        t        fi | y )NrZ  zm(fti)r[  ri  rf  s     r0   test_shapes_identifiers_3z7TestSubclassingExplicitShapes.test_shapes_identifiers_3#  s    1k:55r2   c                 H    t        dd      }t        t        t        fi | y )NrZ  za=2r[  ri  rf  s     r0   "test_shapes_identifiers_nodefaultsz@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaults#  s    .k:55r2   c                 H    t        dd      }t        t        t        fi | y )NrZ  z*argsr[  ri  rf  s     r0   test_shapes_argsz.TestSubclassingExplicitShapes.test_shapes_args#  ro  r2   c                 H    t        dd      }t        t        t        fi | y )NrZ  z**kwargsr[  ri  rf  s     r0   test_shapes_kwargsz0TestSubclassingExplicitShapes.test_shapes_kwargs#  s    
3k:55r2   c                 H    t        dd      }t        t        t        fi | y )NrZ  za, b, c, lambdar[  ri  rf  s     r0   test_shapes_keywordsz2TestSubclassingExplicitShapes.test_shapes_keywords#  s    (9:k:55r2   c                      G d dt         j                        } |d      }t        |j                  dd      t         j                  j                  d      dz         y )Nc                       e Zd Zd Zy)FTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_genc                 F    t         j                  j                  |      |z  S rt   r6   r  rF  rE  s      r0   rF  zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdf#      zzq)A--r2   NrG  r8   r2   r0   	_dist_genr|  #      .r2   r  r.   r
  ry   rg   ri  r6   r<   r   ri   r  rY   r  rJ   s      r0   test_shapes_signaturez3TestSubclassingExplicitShapes.test_shapes_signature#  sI    	.++ 	. $TXXcQX')<Q)>?r2   c                      G d dt         j                        } |d      }t        t        |j                  dfi t        dd       y )	Nc                       e Zd Zd Zy)STestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_genc                 F    t         j                  j                  |      |z  S rt   r~  rE  s      r0   rF  zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdf#  r  r2   NrG  r8   r2   r0   r  r  #  r  r2   r  rm  r  ry   r   rg   r  )r6   r<   rS  r  ri   r  r  s      r0   "test_shapes_signature_inconsistentz@TestSubclassingExplicitShapes.test_shapes_signature_inconsistent#  s;    	.++ 	. 'i3A$a.Ar2   c                     G d dt         j                        } |d      }t        |j                  dd      t         j                  j                  d      dz         t        |j                  dd      t         j                  j                  d      dz         t        t        |j                  dfi t        d       y )	Nc                       e Zd Zd Zy)?TestSubclassingExplicitShapes.test_star_args.<locals>._dist_genc                 P    |d   }t         j                  j                  |      |z  S Nr   r~  )rY   r_   r*  extra_kwargs       r0   rF  zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdf#  s#    "1gzzq)K77r2   NrG  r8   r2   r0   r  r  #  s    8r2   r  r  r  ry   !   r  )xxx)r6   r<   r   ri   r  rS  r  r  r  s      r0   test_star_argsz,TestSubclassingExplicitShapes.test_star_args#  s    	8++ 	8
 .TXXcrX2EJJNN34G4JKTXXc2&

s(;B(>?i3?$2,?r2   c                 J    G d dt         j                        } |d      }t        |j                  ddd      t         j                  j                  d      dz  dz          t        |j                  ddd      t         j                  j                  d      dz  dz          y )	Nc                       e Zd Zd Zy)ATestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_genc                 V    |d   }t         j                  j                  |      |z  |z   S r  r~  )rY   r_   r
  r*  r  s        r0   rF  zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf#  s(    "1gzzq)K7&@@r2   NrG  r8   r2   r0   r  r  #  s    Ar2   r  zoffset, extra_kwargr  ry   o   r  )r
  r  r  r  s      r0   test_star_args_2z.TestSubclassingExplicitShapes.test_star_args_2#  s    	A++ 	A
  56TXXc#2X>ZZ^^C(+c1	3TXXc3+ZZ^^C(+c1	3r2   c                      G d dt         j                        } |d      }t        |j                  dd      t         j                  j                  d             y )Nc                       e Zd Zd Zy)BTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_genc                 j    |j                  dd      }t        j                  j                  |      |z  S )Nr  r   )popr6   r  rF  )rY   r_   r*  kwargsr  s        r0   rF  zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf#  s,     %jj:zzq)K77r2   NrG  r8   r2   r0   rB  r  #  s    8r2   rB  r  r  r   r   r  r  )rY   rB  rJ   s      r0   test_extra_kwargz.TestSubclassingExplicitShapes.test_extra_kwarg#  sD    	8,, 	8 /TXXaQX/1BCr2   c                      G d dt         j                        } |d      }t        |j                  d      t         j                  j                  d             y )Nc                       e Zd Zd Zy)ITestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_genc                 @    t         j                  j                  |      S rt   )r6   r  ri   r  s     r0   rF  zNTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdf#  s    zz~~a((r2   NrG  r8   r2   r0   r  r  #  s    )r2   r   r  ry   r  r  s      r0   test_shapes_empty_stringz6TestSubclassingExplicitShapes.test_shapes_empty_string#  s?    	)++ 	) #TXXc]EJJNN3$78r2   N)r   r   r   r_  rb  rd  rg  rk  rn  rq  rs  ru  rw  ry  r  r  r  r  r  r  r8   r2   r0   rX  rX  #  s\    2B<
4
6
666666
@B@3D9r2   rX  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 )NrZ  r  r   ri  r  r\  r]  s     r0   test_only__pdfz&TestSubclassingNoShapes.test_only__pdf#  s#     g.[__Q!_,b1r2   c                 V    t        d      }t        |j                  dd      d       y )NrZ  r  r   ri  )rI  r   ri   r]  s     r0   test_only__cdfz&TestSubclassingNoShapes.test_only__cdf$  s#    !w/KOOAO3Q7r2   docstring strippedrY  c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )NrZ  r  r   r.   zlogpdf\(x, a, loc=0, scale=1\))	rB  r   numargsr
  refindallr  r	   r  rY   r^  r   s      r0   test_signature_inspectionz1TestSubclassingNoShapes.test_signature_inspection$  sX     !g.[((!,[''-jj:$,,.CAr2   c                     t        d      }t        |j                  d       t        |j                  d       t	        j
                  d|j                        }t        t        |      dk(         y )NrZ  r  rg   rm  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	rT  r   r  r
  r  r  r  r	   r  r  s      r0   test_signature_inspection_2argsz7TestSubclassingNoShapes.test_signature_inspection_2args$  sX     "w/[((!,[''0jj=$,,.CAr2   c                 0    t        t        t        d       y )NrZ  r  )rS  r  rN  rX   s    r0   0test_signature_inspection_2args_incorrect_shapeszHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapes$  s    i7;r2   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd ZddZy)>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genc                      yrD  r8   rE  s      r0   rF  zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdf$$      r2   N)r  rG  r8   r2   r0   r  r  #$  s    r2   r  rZ  r  r6   r<   rS  r  r  rY   r  s     r0   test_defaults_raisez+TestSubclassingNoShapes.test_defaults_raise!$  *    	++ 	 	iAd.@Ar2   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd Zd Zy)>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_genc                      yrD  r8   )rY   r_   r.   r*  s       r0   rF  zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdf+$  r  r2   NrG  r8   r2   r0   r  r  *$      r2   r  rZ  r  r  r  s     r0   test_starargs_raisez+TestSubclassingNoShapes.test_starargs_raise($  r  r2   c                 l     G d dt         j                        }t        t        |fi t	        d       y )Nc                       e Zd Zd Zy)<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_genc                      yrD  r8   )rY   r_   r.   r  s       r0   rF  zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdf2$  r  r2   NrG  r8   r2   r0   r  r  1$  r  r2   r  rZ  r  r  r  s     r0   test_kwargs_raisez)TestSubclassingNoShapes.test_kwargs_raise/$  r  r2   N)r   r   r   r  r  r   r   r  DOCSTRINGS_STRIPPEDr  r  r  r  r  r  r8   r2   r0   r  r  #  sy    28
 [[+4HI J [[+4HI J<BBBr2   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*:)
r6   rG   r(  r9  r;   r<   r	   r  searchr  )badonesdistnamerJ   regexs       r0   r  r  7$  sp    -GMM @uh'dU..1D1DDF  @		%6$>?@@r2   c                      t        t        j                  j                  t        j
                  dd      d       t        t        j                  j                  t        j
                  dd      d       y )Nr`   r  r   r  r]   r   )r   r6   r4  r   rT   r  r  rK  r8   r2   r0   test_infinite_inputr  A$  sB    ((R8!<

37;r2   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | d       y r  )r6   lomaxr   rp   r   r
  s    r0   test_lomax_accuracyr  F$  s/    2A6AAvr2   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | d       y r  )r6   r,  r   rp   r   r
  s    r0   test_truncexpon_accuracyr  L$  s7    U--11&!<a@AAvr2   c                      t         j                  j                  t         j                  j                  dd      d      } t	        | dd       y )Nr  r   r  r4  rL  )r6   r%  r  r   r   r
  s    r0   test_rayleigh_accuracyr  R$  s5    5>>,,Q2A6A3+r2   c                     t        j                  d      5 } t        j                  d       t        j                  j                  dd       t        j                  j                  dd       t        j                  j                  dd       t        j                  j                  t        j                   d       t        |       }t        |d       ddd       y# 1 sw Y   yxY w)zregression test for gh-6219T)recordalwaysry   r   r~   N)rl  rm  rn  r6   r!  rp   ri   r   r   rT   r  r  r   )ro  number_of_warnings_throwns     r0    test_genextreme_give_no_warningsr  X$  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   rM  r  r  rg   r&  rK  r   r0  r   )r   r   r   r&  r   r  r   )rT   r   r6   r!  r  euler_gammarj   r  r   zetar   r   )	r   r   r4  r5  r6  ref_0ref_1ref_3ref_2s	            r0   test_moments_gh22400r  f$  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"r2   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  rg   r   r  r   r   rI  r  r`   r  r   r  rb  r  )r6   r!  r>   r   r   rT   r  )r  re  s     r0   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+~)6r2   c                      d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        d} t         j                  j                  | d      }t        |d       t         j                  j	                  |d      }t        ||        y )	Nr   rp  g'b%4gQ@rn  gؗҜ;r   g.l6?)r6   r!  r   r   r  )r_   rD   rg  s      r0   test_genextreme_sf_isfr  $  s    2 	AAv&AA-.					a	(BBAAu%AA()					a	'BBAAq!AA-.					a	#BBr2   c                  b    d} t         j                  j                  | dd      }t        |d       y )Nrx  rg   r   gH&8>)r6   rZ
  r   r   )probr  s     r0   test_burr12_ppf_small_argr  $  s,    D||a+H H45r2   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       r0   r  z&test_invweibull_fit.<locals>.optimizer$  s    D"4dUKKr2   )r   r
  rg   rx  rh  r   r  r   r   r  r`   rK  @   c   )r   r  g`?rc  r   g [@N)r8   r   )rT   r   r6   r  r   r   )r  r_   r  re   rf   s        r0   test_invweibull_fitr  $  s_    .L 	HIA$$((i(HMAsEAxd+!8O8E8$/r2   ))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   )r6   r  r   r   )r_   r  rN   r7  s       r0   test_invweibull_sfr  $  s(     ""1a(HHhU3r2   zp, c, expected)ry   rx  g9?)geK<r   g@c                 `    t         j                  j                  | |      }t        ||d       y r   )r6   r  r  r   )rk  r  rN   r7  s       r0   test_invweibull_isfr  $  s(     ##Aq)HHhU3r2   z	df1,df2,x)r   rF  rI  r9  r   r  r  rt  r`  c                 L   d}t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       t         j                  j                  || |      }t         j                  j                  || ||      }t	        ||d       y )Nr   r  r   rk  )r6   r  rp   r  r   ri   )df1df2r_   r	  expected_cdfcalculated_cdfr   calculated_pdfs           r0   test_ncf_edge_caser  %  s     
B77;;q#s+LYY]]1c33NL.u= 77;;q#s+LYY]]1c33NL.t<r2   c                  b    t         j                  j                  ddd      } t        | dd       y )Nrg   r&  r   g     `E@r  r   )r6   r  r4  r   )r  s    r0   test_ncf_variancer  %  s&     			aAAAu5)r2   c                      t         j                  j                  dddd      } d}t        |t	        j
                  | d             y )Nr  r&  r  gffffff>@g&4I,)?)decimals)r6   r  rp   r   rT   round)	scipy_val	check_vals     r0   test_ncf_cdf_spotcheckr  #%  s6    
 		b!R.IIIrxx	A>?r2   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  rx  )r]   rg   r   r   r   )rT   rN  r6   r  r   r   )r_   parrt  xiq0s        r0   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                 n   t         j                  j                  d      | _        t        j                  g dd      }t        j                  |      | _        t
        j                  j                  ddd| j                        }t        j                  |d	      }t        j                  |      | _
        y )
Nl   &' )r   rg   rg   r   r   r   r   r   r   r   r   r   r   r   r   r&  r&  r&  r&  r  r  r  r  r  r  r  binsrI  rx  r  r5  r2  )rT   rU   rV   rW   	histogramr6   r=   templater  r   norm_template)rY   r  r   norm_histograms       r0   rZ   zTestHistogram.setup_method8%  s    99((4 LL "@FGI	**95zz~~#Su488~Td4"//?r2   c                    t        j                  g d      }t        j                  g d      }t        | j                  j                  |      |       t        | j                  j                  d      d       t        | j                  j                  d      d       t        | j                  j                  d      d       t        | j                  j                  d      d       t        j                  d	d
d      }t        | j                  j                  |      t        j                  j                  |dd      d       y )Nr~   ry   rI  r  r}   rx  r  r.  r	  r,  rJ        @r  r  r  r  r        !@r  r&  )r~   r~   rB  rB  {Gz?r  Q?r   {Gz?r!  rF  rF  r!  r!  r   r   r   r   r~   r~   r  r   r  r  r~   r  r   rg   r`   rI  rx  rd   r]   r   )rT   r   r   r   r  ri   r   rN  r  r6   r  )rY   rI  
pdf_valuesr_   s       r0   rG  zTestHistogram.test_pdfH%  s     M NZZ !I J

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

qc=C	Ir2   c                    t        j                  g d      }t        j                  g d      }t        | j                  j                  |      |       t        | j                  j                  |dd       |dd        t        j                  ddd      }t        | j                  j                  | j                  j                  |            |       t        j                  ddd      }t        | j                  j                  | j                  j                  |            |       t        j                  d	dd
      }t        | j                  j                  |      t        j                  j                  |dd      d       y )Nr  )r~   r~   r~   r  rB  r  r   
ףp=
?Q?{Gz?r  ry   rx  (\?RQ?=
ףp=?)\(?r
  rI  rI  rg   r   rI  r  ra   r~   r   r`   rx  rd   r]   r   )rT   r   r   r   r  rp   r   rN  r  r6   r  )rY   rI  
cdf_valuesr_   s       r0   r  zTestHistogram.test_cdf_ppfb%  s)    M NZZ !M N

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

qc=C	Ir2   c                    d}| j                   j                  || j                        }t        t	        j
                  |dk        d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |d	k        d
|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d|z  d       t        t	        j
                  |dk        d |z  d       t        t	        j
                  |d!k        d"|z  d       t        t	        j
                  |d#k        d$|z  d       t        t	        j
                  |d%k        d|z  d       t        t	        j
                  |d%k        d|z  d       t        t	        j
                  |d%kD        d       y )&Nr  r   rI  r~   r}   rB  rF  r   rx  r  r  r   r]   r.  r$  r	  r%  r,  r&  rJ  r  r;  r  ry   r  rx  r  r'  r  r(  r  r)  r  r*  r  r
  r  )r  r   rW   r   rT   rb  r   )rY   r'  rH  s      r0   r?  zTestHistogram.test_rvsx%  s"   """ARVVFSL)3/v}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4HRVVFSL)3/r2   c                     t        d      D ]L  }t        | j                  j                  |      t	        j
                  dd      j                  |      d       N y )Nr   rI  rx  r;  r   )r  r   r  r  r6   r  r  ru  s     r0   r	
  zTestHistogram.test_munp%  sN    q 	GAD..44Q7!JJsC077:G	Gr2   c                     t        | j                  j                         t        j                  j                  dd      d       y )NrI  rx  rd   r;  r   )r   r  r>   r6   r  rX   s    r0   rf  zTestHistogram.test_entropy%  s5    **224

**s#*>T	Kr2   N)	r   r   r   rZ   rG  r  r?  r	
  rf  r8   r2   r0   r  r  7%  s%    @ I4I,0,G
Kr2   r  c                     ddgg d}} t        j                  | |fd      }t        j                  j	                  |j                  ddg      ddg       |j                         dk(  sJ t        j                  | |fd      }t        j                  j	                  |j                  ddg      d	       |j                         d
k(  sJ d}t        j                  t        |      5  t        j                  | |f      }|j                         d
k(  sJ 	 d d d        t        j                  | g df      }|j                         dk(  sJ y # 1 sw Y   8xY w)Nr   )r   r   r  F)rx  ry   rF  r  Tg'^P?g     H@z(Bin widths are not constant. Assuming...r  r1  )
r6   r=   rT   r  r   ri   r;  r   ra	  ro  )countsr  rJ   r`  s       r0   test_histogram_non_uniformr1  %  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   r`   r  r  iL  r   )rT   rU   rV   r6   
loguniformr   
reciprocalr   r  log10r  r  r   r;  )rY   rW   r  r   rv2r   r=  r   s           r0   
test_aliaszTestLogUniform.test_alias%  s     ii##K0h0ff%cf2ii##K0x1wwEw4c",,rxx}26adhhj6DHHJ6$66666vvbiio,-333r2   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 )	Nr5  r]   r   r   r   r  rg   r  )rT   rU   rV   r6   r6  r   r   )rY   r  rW   r   r.   r/   re   rf   s           r0   test_fit_overridez TestLogUniform.test_fit_override%  s     ii##K0""33"G ++//F/C1c5zz ++//Af/M1c5zzr2   c                    t         j                  j                  d      }d\  }}t        j                  ||      }|j                  ddd      }t        |j                  |j                  |            |       |j                  d|      }t        |j                  |j                  |            |       dt        j                  d	d
      z  }|j                  |      }t        |d d |dd  z  d       ||z
  t        j                  |      t        j                  |      z
  z  }	t        |j                         |	       y )Nl   eVi
P )gN~hr  r   r   r   r,  r   r  i8rF  r   r`   )rT   rU   rV   r6   r6  r  r   rp   r   r   r  ri   r  r   )
rY   rW   r.   r/   rJ   rp   r   r_   ri   r   s
             r0   test_overflowzTestLogUniform.test_overflow%  s    ii##$7811% kk!QTk*#/5hhDsh3#/5 4%%hhqkCRQR("- Aq	BFF1I-.		T*r2   N)	r   r   r   r:  r   r   r   r<  r>  r8   r2   r0   r3  r3  %  s5    4" [[Xt}5
 6
+r2   r3  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 )Nr2  r  E  r   r   rL  )r6   argusr   r   r   r  s     r0   test_argus_rvs_large_chiz"TestArgus.test_argus_rvs_large_chi%  s=    KKOOBSsO;EKKO002AFFHaHr2   zchi, random_stater]   rB  r     r.     c                     t         j                  j                  |d|      }t        j                  |d|f      \  }}t	        |dkD         y )Nr  r   rC  r;  r6   rC  r   r>  r	   )rY   r  r   r_   r   rk  s         r0   r?  zTestArgus.test_rvs%  s@     KKOOCcOE||Aw01Dr2   r  r  rk  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   rg   r  r8   r   s    r0   rE   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>%  s    a!Q$h#->)> r2   r;  rH  )rY   r  r}  r   rk  s        r0   test_rvs_small_chizTestArgus.test_rvs_small_chi%  s=    
 KKOOCcO?||A>?1Dr2   zchi, expected_mean))r   g щi?)r`   g.憃?)rr  g\paP?)rs  g	?)r  g,6?c                 b    t         j                  j                  |d      }t        ||d       y )Nr   r  r   r   )r6   rC  r   r   )rY   r  expected_meanr  s       r0   r  zTestArgus.test_mean%  s)     KKS*=u5r2   zchi, expected_var, rtol))r   gLH'B?r   )r`   go$?r  )rr  g
=>r!  )rs  g2W>r!  )r  gb~P>r!  c                 b    t         j                  j                  |d      }t        |||       y )Nr   r  r   )r6   rC  r4  r   )rY   r  expected_varr   r  s        r0   r  zTestArgus.test_var
&  s&     KKOOCqO)<d3r2   zchi, expected, rtol))r   gwM?r  )ry   gj?r  )r]   gHEA`!?r  )r{   gcف>r   )r  gF=r  )r  g߹Q#B=r  )rk  g0ޟ<r  )r  g*W%:r   c                 2    t        t        |      ||       y r  )r   r!   )rY   r  rN   r   s       r0   test_argus_phi_small_chiz"TestArgus.test_argus_phi_small_chi&  s     	
3=r2   zchi, expected))ry   )g-\/?g+p7c?g5Ϧ\?)rF  )g
f?gi{?ٸ?gZ@7?)r]   )gB	?g]?gR{?)r{   )glͅw?g,?g[Z=?)r  )gz,?g]?gѪ1?)r  )g8<?gE-?gI?)rk  )g~7?g7B.?g9?)r  )g;?g9B.?g}5?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )Nr]   ry   r   r   r   )rT   r   r   r6   rC  ri   rY   r  rN   r_   s       r0   test_pdf_small_chizTestArgus.test_pdf_small_chi"&  -     HH_%3/Fr2   ))ry   )gQ߹?e?grJ,?g򺗄?)rF  )gΎd?g?gh?)r]   )g|
o?gvb?g+@?)r{   )g̈́On?ge?gC|[3?)r  )g!?m?g{jiH?gu53?)r  )g~m?g0-.?g3?)rk  )g~m?g7;B.?gŗ3?)r  )g~m?g9B.?gŗ3?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrS  r  r   )rT   r   r   r6   rC  r   rT  s       r0   test_sf_small_chizTestArgus.test_sf_small_chi1&  s-     HH_%q#.uEr2   zx, chi, expected))P?ra  g;=)rY  r  g[$7>)rJ  rx  g=~L]=)rJ  r  gD,G
'=c                 `    t         j                  j                  ||      }t        ||d       y r  )r6   rC  r   r   )rY   r_   r  rN   r   s        r0   test_sf_near_1zTestArgus.test_sf_near_1@&  s$     [[^^As#H51r2   ))ry   )g+&?gk?gμm/?)rF  )g?CL\f?g^N?g]AͭR?)r]   )ga>$?g;Lf?gaW?)r{   )gx?g 43n?gwY?)r  )go7🤎?g
+-oGn?gIQ9Y?)r  )gT?gGn?g@̋Y?)rk  )gU?g{Gn?giG͋Y?)r  )gDU?g {Gn?gH͋Y?c                     t        j                  g d      }t        t        j                  j                  ||      |d       y )NrS  r  r   )rT   r   r   r6   rC  rp   rT  s       r0   test_cdf_small_chizTestArgus.test_cdf_small_chiK&  rV  r2   ))ry   )gQ)?g6{?r  )gB`"۹?)g?g8%?r  )r]   )g388?gV%?r   )r{   )g*j?gRS%?r   )r  )g!|?gZ%?r   )r  )gy[|?gG%?r   )rk  )g"3|?gW%?r   )r  )g!3|?gW%?r   c                 b    t         j                  j                  |d      }t        |||       y )Nr  r  r   )r6   rC  r   )rY   r  rN   r   r>  s        r0   test_stats_small_chizTestArgus.test_stats_small_chiZ&  s)     kkT2XD1r2   N)r   r   r   rD  r   r   r   r?  rK  r  r  rQ  rU  rX  r[  r]  r_  r8   r2   r0   r@  r@  %  s   I
 [[0#J#J#J3
 


 [[UT4L1 2 [[189696
 [[6BC4C4
 [[2DE>E> [[	M	NG	NG
 [[	N	OF	OF
 [[	67272
 [[	P	QG	QG
 [[	C	D2	D2r2   r@  c                      e Zd 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                 L    t         j                  j                  d      | _        y )Nl   i{ rS   rX   s    r0   rZ   zTestNakagami.setup_methodj&  r[   r2   c                 d    d}d}t         j                  j                  ||      }t        |d       y )Nrx  rz  gM+)r6   nakagamir   r   )rY   r  r_   r  s       r0   r  zTestNakagami.test_logpdfm&  s/     ~~$$Q+12r2   c                     d}d}t         j                  j                  ||      }t        |dd       t         j                  j	                  ||      }t        ||d       y )Nrx  rJ  g"S+:r   r   )r6   rd  r   r   r  )rY   r  r  r   rf  s        r0   r  zTestNakagami.test_sf_isf~&  sS     ^^r2&1>^^B'BU+r2   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr  ry   gUiּr  r   )r6   rd  r  r   )rY   r_   r  rz  r  s        r0   r  zTestNakagami.test_logcdf&  s3    %&&q"-%0r2   c                 l    d}d}d}t         j                  j                  ||      }t        ||d       y )Nr;  rK  gD&`Ur  r   )r6   rd  r  r   )rY   r_   r  rz  r  s        r0   r  zTestNakagami.test_logsf&  s3    %$$Q+s/r2   zm, ref))r   g|Bd븿)ry   r  )r`   g/ۿc                 Z    t        t        j                  j                  |      |d       y )Ng^~z=r   r   r6   rd  r>   rY   r  rz  s      r0   rf  zTestNakagami.test_entropy&  s      	..q13WEr2   ))r  g}Ô%I)r|  gq_)g    ScAgB4U)g    cAgu1U)r  gb>%)r  gWҙ\c                 V    t        t        j                  j                  |      |       y rt   ri  rj  s      r0   test_extreme_nuzTestNakagami.test_extreme_nu&  s    
 	..q137r2   c                     t        j                  t        j                  j	                  d            sJ t        j                  t        j                  j	                  d            sJ y )Nr  r  )rT   r:  r6   rd  _entropyrX   s    r0   test_entropy_overflowz"TestNakagami.test_entropy_overflow&  sD    {{5>>2259:::{{5>>226:;;;r2   znu, ref))r  g2H?)r  g:U?)r|  g>c                 Z    t        t        j                  j                  |      |d       y r  )r   r6   rd  r   )rY   r  rz  s      r0   r  zTestNakagami.test_mean&  s     	++B/5Ar2   z+Fit of nakagami not reliable, see gh-10908.rY  r  )r  rx  r  re   )r|   r`   rn
  rf   )r  r   r  c                   
 d
t         j                  j                  
|||| j                        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 )Nra   r   r  re   rf   r   rF  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   rg   rT   rb  )r  re   rf   rM  s      r0   	dlogl_dnuz(TestNakagami.test_fit.<locals>.dlogl_dnu&  sP    UQY"&&GcM):";;d5!8mbffWs]&;;< =r2   c                     dt        j                  |       z   t        d|       z
  z  dt        j                  t        j                  |z
  |z              z  z   t        j                  |z
  |z  dz        z
  S )Nr   r   rg   )rT   r  r   rb  r  re   rf   r'  rM  s      r0   
dlogl_dlocz)TestNakagami.test_fit.<locals>.dlogl_dloc&  sp    RVVBZ)Ar*::;rvvw}&=>??@ffw}59:; <r2   c                 j    dz  | z  |z  d| z  |dz  z  t        j                  |z
  dz        z  z   S )Nr   rg   r   rt  rw  s      r0   dlogl_dscalez+TestNakagami.test_fit.<locals>.dlogl_dscale&  sF    !GbL5("fuz)BFFGcMa3G,HHI Jr2   r   r  r   )r6   rd  r   rW   r   r   )rY   r  re   rf   nu_estloc_est	scale_estru  rx  rz  r'  rM  s             @@r0   rm  zTestNakagami.test_fit&  s     ..$$!+0txx % I%*^^%7%7%@"-3/	5s3	=	<
	J 		&'9=qtL
67I>MVWi@!$Or2   c                    d}d}t         j                  j                  ||||| j                        }t         j                  j	                  ||      \  }}}t        j                  |      }	t        j                  t        j                  ||z
  dz              }
t        ||d       t        ||	d       t        ||
d       y )Nry   ra   rr  r  rg   r"  r   )
r6   rd  r   rW   r   rT   r  r  r   r   )rY   re   rf   r  rj  rM  r{  r|  r}  loc_theo
scale_theos              r0   test_fit_nuzTestNakagami.test_fit_nu&  s    
 ..$$!+0txx % I%*^^%7%7B%7%G" 66'?WWRWWg&7A%=>?
.5	:D9r2   N)r   r   r   rZ   r  r  r  r  r   r   r   rf  rl  ro  r  r  rm  r  r8   r2   r0   ra  ra  i&  sX   5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:r2   ra  c                   X   e Zd Zd Zd Zd Zd Zej                  j                  dddg      ej                  j                  dd	d
e
j                  z  e
j                   de
j                  de
j                  z  dg      ej                  j                  dg d      d                      Zy)TestWrapCauchyc                 L    t         j                  j                  d      | _        y )Nl   3R" rS   rX   s    r0   rZ   zTestWrapCauchy.setup_method&  r[   r2   c                    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?ra  ry   r   rI  r	  rd  r   r   )	rT   r   r6   
wrapcauchyrp   r7  nditerr   r3
  )rY   r  r_   rk  rf  r7
  scalar_valuess          r0   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 )Nr  ry   r  r   )r6   r  rp   rT   rj   r   r  s     r0   test_cdf_centerzTestWrapCauchy.test_cdf_center'  s*      -3U+r2   c                    d}d}d}t         j                  j                  ||g|      }d|z   d|z
  z  }t        |d   t	        j
                  |t	        j                  |dz        z        t        j                  z         t        |d   dt	        j
                  |t	        j                  t        j                  |dz  z
        z        t        j                  z  z
         y )NrI  r	  r   r   r   rg   )r6   r  rp   r   rT   arctantanrj   )rY   rf  rg  r  rk  crs         r0   rQ  zTestWrapCauchy.test_cdf'  s      "b1-!ea!e_!bii266"Q$<8>?!a"))Brvvbeebdl/C,C"DRUU"JJKr2   r  r|  r]   re   r  r   r   rg   ra   rf   )r|  r   r  c                     t         j                  j                  |||d| j                        }t	        j
                  |dk\        sJ t	        j
                  |dt        j                  z  k        sJ y )Nr   )r  re   rf   r   r   r   rg   )r6   r  r   rW   rT   r   rj   )rY   r  re   rf   r_   s        r0   test_rvs_lie_on_circlez%TestWrapCauchy.test_rvs_lie_on_circle'  sa    
   1#U&* ! Cvva1f~~vva1ruu9n%%%r2   N)r   r   r   rZ   r  r  rQ  r   r   r   rT   rj   r  r8   r2   r0   r  r  &  s    5
>,L [[S5$-0[[UT2bee8beeVQqwPS$TU[[W&67& 8 V 1&r2   r  c                       G d dt         j                        }  | d      }t        j                  j	                  d      }t        t        d      5  |j                  |       d d d        y # 1 sw Y   y xY w)	Nc                       e Zd Zd Zy)/test_rvs_no_size_error.<locals>.rvs_no_size_genc                      yr   r8   rX   s    r0   _rvsz4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvs)'  s    r2   N)r   r   r   r  r8   r2   r0   rvs_no_size_genr  ('  s    	r2   r  rvs_no_sizer  i_Oz_rvs\(\) got (an|\d) unexpectedr  r   )r6   r<   rT   rU   rV   rS  r  r   )r  r  rW   s      r0   test_rvs_no_size_errorr  &'  sb    %--  "}5K
))



+C	y(J	K *S)* * *s   A//A8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(  r6   r9  r<   r  r
  r   rT   r  )r  r*  rJ   a0b0r  r  a1b1r.   r/   s              r0   test_support_gh13294_regressionr  2'  s    77 $$,:Q0 	15(#D$++,t9>!T\\4(FBRVV$RVV$
 f2t2T262BR R t||T"1QQr2   c                     t         j                  j                  g dg d      \  } }t        j                  t        j
                   t        j
                   t        j
                   t        j                  g      }t        j                  t        j
                  t        j
                  t        j
                  t        j                  g      }t        | |       t        ||       | j                  |j                  k(  sJ |j                  |j                  k(  sJ t         j                  j                  g g       \  }}t        j                  g       t        j                  g       }}t        ||       t        ||       |j                  |j                  k(  sJ |j                  |j                  k(  sJ t         j                  j                  g ddg      \  }}	t        j                  dt        j                  gz        }
t        j                  dt        j                  gz        }t        ||
       t        |	|       |j                  |
j                  k(  sJ |	j                  |j                  k(  sJ y )N)r   r   r   r   )r   r   r   r   r   r   )	r6   r  r
  rT   r   r  r  r   r7  )r  r  ex_a0ex_b0r  r  ex_a1ex_b1r  r  ex_a2ex_b2s               r0   ,test_support_broadcasting_gh13294_regressionr  M'  s   ZZm<FBHHrvvgw89EHHbffbffbffbff56EUU88u{{"""88u{{"""ZZB'FB88B<"5EUU88u{{"""88u{{"""ZZrd3FBHHQxZ EHHQxZ EUU88u{{"""88u{{"""r2   c                  4   ddg} dgdgdgg}t        t        j                  j                  | |      ddgddgddgg       t	        j
                  d      } t	        j
                  d      }t        j                  j                  | |      j                  dk(  sJ y )	Nr~   rI  r}   r  r	  r  )r   r
  )r   r6   r  r4  rT   r2
  r7  rd   s     r0   *test_stats_broadcasting_gh14953_regressionr  f'  s    r(CTB4"EU+r2hR2r(-KL
((5/CHHVE::>>#u%++v555r2   )gn!	g:I"<)gQ	@gE?c                     t        t        j                  j                  |       |       t        t        j                  j	                  |        |       y rt   )r   r6   cosinerp   r   )r_   rN   s     r0   test_cosine_cdf_sfr  t'  s6     ELL$$Q'2ELLOOQB'2r2   ))rk  gkM6O)r  g0ӭ!	)r0  g;'u(@c                     t        t        j                  j                  |       |       t        t        j                  j	                  |       |        y rt   )r   r6   r  r   r  )rk  rN   s     r0   test_cosine_ppf_isfr  |'  s8    
 ELL$$Q'2ELL$$Q'(3r2   c                      t         j                  j                  t        j                   t        j                  g      } t        | d       y )NgrB)r6   r  r   rT   rj   r
   )r  s    r0   test_cosine_logpdf_endpointsr  '  s1    <</D d./r2   c                  0   t         D  ch c]  \  } }t        | t              r|  }} }t        D  ch c]  \  } }| 	 }} }||k(  sJ t        D  ch c]  \  } }| 	 }} }t
        D  ch c]  \  } }| 	 }} }||k(  sJ y c c}} w c c}} w c c}} w c c}} w rt   )r   r9  rA   r   r   r   )r  r   discrete_distnamesinvdiscrete_distnamescont_distnamesinvcont_distnamess         r0   test_distr_params_listsr  '  s     /; 474'c2  4 41@AgdATAA!6666*23wtQd3N3-89'$99....4A 49s   B BB)Bc                      t         j                  j                  dd       t         j                  j                  dd      dk(  sJ t         j                  j	                  dd      dk(  sJ y )Nr   r\   rk  r   )r  r.   r  )r6   r  _statsr  r  r8   r2   r0   test_moment_order_4r  '  s`     
NNAs+ >>  qA .#555 >>1%,,,r2   c                   &   e Zd Zej                  d        Zej                  j                  dg d      d        Zej                  j                  dg d      d        Z	ej                  j                  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  rp  s     r0   ROOT_pdf_sample_dataz'TestRelativisticBW.ROOT_pdf_sample_data'  sL     wwN!!;<
 vv  /@ Ar2   zrho,gamma,rtol))qVEB@gj+@rE  )FC@Gz @r  )ND@_LU?r  c                     ||d   |k(  |d   |k(  z     }|d   |d   }}t        |t        j                  j                  |||      |       y )Nrhor  r_   ri   r  r   )r   r6   rel_breitwignerri   )rY   r  r  r  r   r   r_   ri   s           r0   test_pdf_against_ROOTz(TestRelativisticBW.test_pdf_against_ROOT'  sg     $!%(C/#G,57
 cDK3&&**1c*?d	
r2   zrho, Gamma, rtol))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 rr  )rT   r  rj   )Er  Gammar  r\   s        r0   ri   zFTestRelativisticBW.test_pdf_against_simple_implementation.<locals>.pdf'  s    GGAqDAqD5!8O45ERWWQZ!#e+e3EEBGGAqD5L113AA1q(1a4q=899r2   r;  r5  r`   r  r   )rT   rN  r6   r  r   ri   r   )	rY   r  r  r   ri   rk  r_   r   rz  s	            r0   &test_pdf_against_simple_implementationz9TestRelativisticBW.test_pdf_against_simple_implementation'  ss    	: KKdB'!!%%aE%:##''3e'<!SY&St,r2   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   rg   rF  r   r   r6  r{   N)rT   rU   rV   r6   r  r   r   r   )rY   r  r  r   rW   r   r   s          r0   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:---r2   N)r   r   r   r   r  r  r   r   r  r  r   r  r   r  r8   r2   r0   r  r  '  s   ^^ $ [[ 


 [[/ 2 -- [[[[FLL"F&++2B2B FLL!50A0A FLL &0A0A

. .r2   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   )r6   rH  r   )rY   r  r   s      r0   test_moment_gh18071z!TestJohnsonSU.test_moment_gh18071	(  s5     oo##T"1X>v>T!"XE2r2   N)r   r   r   r   r   r   r  r8   r2   r0   r  r  (  s9    [[VOJ&K L
3L
3r2   r  c                   &   e Zd 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  )rT   rN  r6   truncparetori   r  rp   r   )rY   r/   r  r_   r   rz  s         r0   rG  zTestTruncPareto.test_pdf(  sr    1KKS!1%))!,ll1o!!!$u||A':':1'==S!r2   c           
      r   d\  }}}t        j                  ||      }|||z  ||z  z
  z  }|||dz
  z  z  }| }||z  }|}	d}
t        j                  |||
|	      }t	        |j                  |      |       t	        |j                  |      t        j                  |j                  |                   t	        |j                  |dd        t        j                  |j                  |dd                     t	        |j                  |d d       t        j                  |j                  |d d                    y )N)r   r   r   r   r   r   )rT   rN  r6   r  r   ri   r   r  r  rp   r  r   )rY   r.   xminxmaxr_   Crz  r/   r  rf   re   r  s               r0   test_pdf_negativez!TestTruncPareto.test_pdf_negative!(  s     4KKd# TQY&'!A, B4KaC/a#&RVVAEE!H%5612ae)=>#2QsV)=>r2   r   TFr2  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   rx  rd   r  r   r   r   r   r  r  r  )rT   rU   rV   r6   r  r   r   r   r  r   r   )rY   r   r2  r  r  rW   r/   r  re   rf   rJ   r   r   r`  s                 r0   rm  zTestTruncPareto.test_fit8(  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   rG  r  r   r   r   rm  r8   r2   r0   r  r  (  s    "?. [[Yu6[[[4-8[[WtUm4[[WtUm4K 5 5 9 7Kr2   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   ry   g     j@)r6   kappa3rp   r   r   )rY   sf0rl  s      r0   r  zTestKappa3.test_sfV(  s=     %,,""3,,llooc3'S!r2   N)r   r   r   r  r8   r2   r0   r  r  U(  s    "r2   r  c                       e Zd Z ej                  dd      Z ej                  d      Z ej                  d      Zd Z	d Z
d Zd Zd Zd	 Zd
 Zd Zd Zy)TestIrwinHallr   r   r`   c                 N    t        | j                  j                  d      d       y )Nr  )r   g?r   gQ)r   ih10r6   rX   s    r0   test_stats_ih10zTestIrwinHall.test_stats_ih10d(  s     	TYY__V46JKr2   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   r2  g2⍚H)r  r  r  r  r   )rY   r=  rj  r  m50	m50_exacts         r0   test_moments_ih10zTestIrwinHall.test_moments_ih10j(  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   ra   r`   maxulp)rT   rN  unifri   ih1r   )rY   ptspdf_unifpdf_ih1s       r0   test_pdf_ih1_unifzTestIrwinHall.test_pdf_ih1_unifx(  sF     kk!Q$99==%((,,s#Whr:r2   c                     t        j                  d      }d}t        j                  dd|      }t        j                  dd|      }d||dz   dz  d  z
  ||dz   dz  d  |j	                  |      }t        ||d       y )Nrg   r^   r   r   r`   r  )r6   r  rT   rN  ri   r   )rY   ih2nptsr  rN   pdf_ih2s         r0   test_pdf_ih2_trianglez#TestIrwinHall.test_pdf_ih2_triangle(  s|    ooa kk!Q%;;q!T*%&4!8/2B)C%C$(q!"''#,Whr:r2   c                     t        j                  ddd      }| j                  j                  |      }| j                  j                  |      }t        ||d       y r  )rT   rN  r  rp   r  r   )rY   r  cdf_unifcdf_ih1s       r0   test_cdf_ih1_unifzTestIrwinHall.test_cdf_ih1_unif(  sD    kk!Q$99==%((,,s#Whr:r2   c                     t        j                  dd      }t        j                  |      }|j	                  |dz        }t        j
                  dt        |            }t        ||d       y )Nr   r`   rg   ry   r  )rT   r  r6   r  rp   r  r  r   )rY   rj  ihih_cdfexacts        r0   rQ  zTestIrwinHall.test_cdf(  sQ    IIa__QA		#s1v&VU26r2   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{Ȇ?ry   g&M?g׈Y?gB?gDl?r   r  r`   r  r]   g+|<rI  g#@)r   r  rp   rT   r  r3  s      r0   test_cdf_ih10_exactz!TestIrwinHall.test_cdf_ih10_exact(  sd    ( 	TYY]]299R=94KTYY]]402EbQ1TYY]]513rBr2   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  r`   r  )r   r  ri   rT   r  r  s     r0   test_pdf_ih10_exactz!TestIrwinHall.test_pdf_ih10_exact(  sD     J$tt*,,TYY]]299R=94Kr2   c           	      $   t        | j                  j                  t        j                  d            d| j                  j                  t        j                  d            z
         d}t        | j                  j                  d      |d       y )Nr  r   rI  r]   r`   r  )r   r  r   rT   r  rp   r   )rY   rz  s     r0   test_sf_ih10_exactz TestIrwinHall.test_sf_ih10_exact(  s\    		RYYr]3QryyQS}9U5UV 2TYY\\$/R@r2   N)r   r   r   r6   r  r  r  r  r  r  r  r  r  r  rQ  r  r
  r  r8   r2   r0   r  r  _(  se    5==AD
%//!
C5??2DL-
;;;7C LAr2   r  c                       e Zd Zd Zy)TestDParetoLognormc                     d\  }}}}}t        j                  ||||      }t        j                  j	                  |j                  |      d       t        j                  j	                  |j                  |      d       y )N)r  r   r_  r  rg   g6Z?g@#
?)r6   dpareto_lognormrT   r  r   ri   rp   )rY   r_   r  rD   r.   r/   rJ   s          r0   test_against_Rz!TestDParetoLognorm.test_against_R(  sc     ,1aA$$Q1a0


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


""488A;0CDr2   N)r   r   r   r  r8   r2   r0   r  r  (  s    Er2   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 )	Nry   iir   r  rc  r   r  )
rT   r8  r(  r6   r  r   r  r   r  r   )r  r  lp1lp2r   r   lpmrJ   r  dist_frozenrz  r   s               r0   test_sf_isf_overridesr  (  s     &*"Hc3d
((3-C
+C
*C91D=5D5(#D(^H%F-K ++c3
C
..-
.CC4d3 bkk#sB'
'C
..-
.CC4d3r2   rt   )NF(  r  rl  r  r  r  r  pathlibr   r
  r
  rQ  numpy.testingr   r   r   r   r   r	   r
   r   r   r   rS  numpyrT   r   r   numpy.lib.recfunctionsr   r5   r   scipy._lib._utilr   r!  r   r   r   r   scipy.statsr6   !scipy.stats._distn_infrastructurer   scipy.stats._constantsr   scipy.stats.distributionsscipy.specialr   r   r   scipy.stats._distr_paramsr   r   test_discrete_basicr   r   scipy.stats._continuous_distnsr    r!   scipy.optimizer"   r#   r$   	itertoolsr%   flagsoptimizer  rT  r  r  r1   r9   rO   rQ   r   r  r   r   r+  r-  rS  r  r  r  r  r  r  r*  r6  r^  r  r  r  r  r  r  r  r  r&  r?  rD  rW  ra  ru  r  r  r  rD  rO  rR  r  r  r  r  r   r  r.  r<  rc  rm  rz  r  r  r  r  r  r  r  r  r  rE  rx  r  r  rj   r  r  r  r  r  r  r  r*  r.  r2  r=  rJ  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  ry	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r"
  rD
  rI
  rP
  rW
  rj
  rr
  r
  r
  r
  r  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r  r  r  r  r  r  r  r  r  r!  r%  r-  r/  r2  r4  r6  r@  r<   rB  rI  rN  rT  rX  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r1  r3  r@  ra  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8   r2   r0   <module>r)     s1    	 
    	  D D D  *  " 4  /3 3  8 (   0 0 ; > C = =  ii((1,  ||x'M.>h.>.>.@H.L )6z'B $$8
J@ J@Z4D.. >?

6?

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