
    doi,d                    `   S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKrSSK	r	SSK
r
SSKJrJrJrJrJrJrJrJr  SSKrSSKJr  SSKrSSKJrJr  SSKJr  SSKJr  SS	KJ r   SS
K!J"r"J#r#J$r$J%r%  SSK&J'r'  SSK(J)r)  SSK*J+r+  SSK,rSSK-J.r.J/r/J0r0  SSK1J2r2J3r3  SSK4J5r5J6r6  SSK7J8r8J9r9  SSK:J;r;J<r<J=r=  SSK>J?r?  \R                  R                  S:  rB\R                  S:H  =(       a    \
R                  " 5       S:H  rDSS/rEGSS jrFS rGS rH " S S5      rIGSS jrJS rK\R                  R                  S/ S Q5      S! 5       rN " S" S#5      rO " S$ S%5      rP " S& S'5      rQ " S( S)5      rR " S* S+5      rS " S, S-5      rT " S. S/5      rU " S0 S15      rV " S2 S35      rW " S4 S55      rX " S6 S75      rY " S8 S95      rZ " S: S;5      r[ " S< S=5      r\ " S> S?5      r] " S@ SA5      r^ " SB SC5      r_ " SD SE5      r` " SF SG5      ra " SH SI5      rb " SJ SK5      rc " SL SM5      rd " SN SO5      re " SP SQ5      rf " SR SS5      rg " ST SU5      rh " SV SW5      ri " SX SY5      rj " SZ S[5      rk " S\ S]5      rl " S^ S_5      rm " S` Sa5      rn " Sb Sc5      ro " Sd Se5      rp " Sf Sg5      rq " Sh Si5      rr " Sj Sk5      rs " Sl Sm5      rt " Sn So5      ru " Sp Sq5      rv " Sr Ss5      rw " St Su5      rx " Sv Sw5      ry " Sx Sy5      rz " Sz S{5      r{ " S| S}5      r| " S~ S5      r} " S S5      r~ " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rSS\GR
                  " SS\GR                  -  -  5      -  SS\GR
                  " SS\GR                  -  -  5      -  SS\GR
                  " SS\GR                  -  -  5      -  SS\GR
                  " SS\GR                  -  -  5      -  SS\GR
                  " SS\GR                  -  -  5      -  /	4S\GR
                  " SS\GR                  -  -  5      SS\GR
                  " SS\GR                  -  -  5      -  SS\GR
                  " SS\GR                  -  -  5      -  S-  SS\GR
                  " SS\GR                  -  -  5      -  S-  SS\GR
                  " SS\GR                  -  -  5      -  S-  /	4SS\GR
                  " S\GR                  -  5      -  SSS\GR
                  " S\GR                  -  5      -  -  SSS\GR
                  " S\GR                  -  5      -  -  SSS\GR
                  " S\GR                  -  5      -  -  SSS\GR
                  " S\GR                  -  5      -  -  SSS\GR
                  " S\GR                  -  5      -  -  SSS\GR
                  " S\GR                  -  5      -  -  S/4/r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rS r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rS r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " GS  GS5      r " GS GS5      r " GS GS5      r " GS GS5      rGS r\R                  GRm                  \BGS	GS
9GS 5       rGS rGS rGS rGS rGS rGS rGS rGS rGS r\R                  R                  GS/ GSQ5      GS 5       rGS rGS rGS rGS rGS rGS rGS rGS rGS  rGS! r\R                  R                  GS"GS#\R4                  " GS$GS%/5      4GS&\R4                  " GS'GS(/5      4GS)\R4                  " GS*GS+/5      4GS,\R4                  " GS-GS./5      4/5      GS/ 5       rGS0 rGS1 rGS2 rGS3 r\R                  R                  GS4/ GS5Q5      GS6 5       r\R                  R                  GS7/ GS8Q5      GS9 5       r\R                  R                  GS:/ GS;Q5      GS< 5       rGS= r\R                  R                  GS4/ GS>Q5      GS? 5       rGS@ r " GSA GSB\'GR                  5      r " GSC GSD\'GR                  5      r " GSE GSF\'GR                  5      r " GSG GSH\'GR                  5      r " GSI GSJ5      r " GSK GSL5      r\R                  GRm                  \BGSMGS
9GSN 5       rGSO rGSP rGSQ rGSR rGSS rGST rGSU rGSV rGSW rGSX r\R                  R                  GS4/ GSYQ5      GSZ 5       r\R                  R                  GS[GS\GS]/5      GS^ 5       r\R                  R                  GS_SS/ GS`Q4GSaGSb/ GS`Q4GScGSd/ GSeQ4/5      GSf 5       rGSg rGSh rGSi r " GSj GSk5      rGSl r " GSm GSn5      r " GSo GSp5      r " GSq GSr5      r " GSs GSt5      rGSu r\R                  R                  GSv\6\3-   5      GSw 5       rGSx rGSy r\R                  R                  GS7GSzGS{/5      GS| 5       r\R                  R                  GS:/ GS}Q5      GS~ 5       rGS rGS rGS r " GS GS5      r " GS GS5      r " GS GS5      Gr  " GS GS5      Gr " GS GS5      Gr " GS GS5      Gr\R                  R                  GS/ GSQ5      GS 5       Grg(  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                 >    Uc  U  SU 3n[        [        X5      US9  g )Nz does not have attribute msg)r	   hasattr)abr,   s      `/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattrr1   5   s&    
{,QC0GAMs#    c                  L    [        [        R                  R                  S5        g )Nf_gen)r1   scipystatsdistributions r2   r0   test_api_regressionr9   ;   s    EKK--w7r2   c                  "   [        [        R                  R                  R                  5      n [
         Vs/ s H  oS   PM	     nn[         Vs/ s H  oS   PM	     nn/ SQnX#-   U-   n[        [        S U5      5      nX:X  d   eg s  snf s  snf )Nr   )rv_discreterv_continuousrv_histogramentropyc                 @    [        U 5      R                  S5      (       + $ )N<)str
startswithss    r0   <lambda>.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_submodulerP   @   s    **223F&./hdq'hJ/$01LDQLH1E$u,H 6>IJH 01s   BBc            	          \ rS rSrS r\R                  R                  S/ SQ5      \R                  R                  SSS\R                  SS	/5      S
 5       5       r
S rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       rS r\R                  R                  S/ SQ5      S 5       rS r\R                  R$                  \R                  R                  SSS/5      \R                  R                  S/ SQ5      \R                  R                  SSS/5      \R                  R                  SSS/5      S  5       5       5       5       5       r\R                  R(                  S! 5       r\R                  R                  S"S#S/5      S$ 5       rS% rS& rS' rS(rg))*TestVonMisesO   c                 L    [         R                  R                  S5      U l        g )Nl   Exq nprandomdefault_rngrngselfs    r0   setup_methodTestVonMises.setup_methodP       99((4r2   k)皙?r   e   xr   r   
   d   c                     S nS nU" USSU5        U" USSU5        U" USSU5        U" USSU5        U" USSU5        U" USSU5        g )Nc                     [         R                  " XUS9n[        UR                  U5      UR                  US[        R
                  -  U-  -  5      5        g )Nlocscale   )r6   vonmisesr   pdfrV   pir_   LrD   rb   vms        r0   check_vonmises_pdf_periodicHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicV   s>    2Bq	266!q255y1}2E+FGr2   c                     [         R                  " XUS9n[        UR                  U5      S-  UR                  US[        R
                  -  U-  -  5      S-  5        g )Nrg   r   rj   )r6   rk   r   cdfrV   rm   rn   s        r0   check_vonmises_cdf_periodicHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicZ   sK    2Bq	A "qAIM': ;a ?Ar2   r   r   rc   r8   )r[   r_   rb   rq   ru   s        r0   test_vonmises_periodic#TestVonMises.test_vonmises_periodicS   sd    	H	A
 	$Aq!Q/#Aq!Q/#Aq"a0#Aq!Q/#Aq!Q/#Aq"a0r2   c                     [        [        R                  R                  [        R
                  * 5        [        [        R                  R                  [        R
                  5        g N)r   r6   vonmises_liner.   rV   rm   r/   rZ   s    r0   test_vonmises_line_support'TestVonMises.test_vonmises_line_supportg   s8    U((**RUUF3U((**BEE2r2   c                 f    [         R                  " S5      n[        UR                  S5      S5        g )N   r         ?)r6   rk   r   rt   )r[   rp   s     r0   test_vonmises_numerical$TestVonMises.test_vonmises_numericalk   s"    ^^C BFF1Is+r2   zx, kappa, expected_pdf))r`   {Gz?g|65?)r`         9@g?U?)r`   r   g"?)       @r   gDfI?)r   r   g1<)r   r           c                 V    [         R                  R                  X5      n[        XCSS9  g NV瞯<rtol)r6   rk   rl   r   )r[   rb   kappaexpected_pdfrl   s        r0   test_vonmises_pdfTestVonMises.test_vonmises_pdfy   s"     nn  *6r2   zkappa, expected_entropy))r   gA	?)   g,eޞ?)rd   gBb9d22)  g
G )  gc                 V    [         R                  R                  U5      n[        X2SS9  g NvIh%<=r   )r6   rk   r>   r   )r[   r   expected_entropyr>   s       r0   test_vonmises_entropy"TestVonMises.test_vonmises_entropy   s"     ..((/>r2   c                    Sn[         R                  R                  U5      n[         R                  R                  U5      n[         R                  R                  U5      n[        R                  " SSSS9R                  US9n[        R                  " SS[         R                  -  SS9R                  US9n[        R                  " SSS[         R                  -  [        U5      -  S-   S9R                  US9n[        XVSS9  [        XWSS9  g )	Ni@}r   r   rg   random_staterj   r   atol)	rV   rW   rX   r6   rk   rvsrm   absr   )r[   seedrng1rng2rng3rvs1rvs2rvs3s           r0   test_vonmises_rvs_gh4598%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 	//r2   zx, kappa, expected_logpdf))r`   r   gEJ?)r`   r   goι?)r`   r   g0,)r   r   gdty)r   r   gʹw[A)r   r   gc                 V    [         R                  R                  X5      n[        XCSS9  g r   )r6   rk   logpdfr   )r[   rb   r   expected_logpdfr   s        r0   test_vonmises_logpdf!TestVonMises.test_vonmises_logpdf   s"     &&q0e<r2   c                    [         R                  R                  S5      nUR                  S5      S-  u  p#n[        R                  " X#S9R                  S 5      n[        US5        [         R                  " UR                  [         R                  5      (       d   eXDS[         R                  -  -   4n[        R                  " X#S9R
                  " S /UQ76 n[        US5        [         R                  " UR                  [         R                  5      (       d   eXDS[         R                  -  -   4n[        R                  " X#S9R
                  " S	 /UQ7S
S06n[        [         R                  " U5      US[         R                  -  -  5        [         R                  " UR                  [         R                  5      (       d   eg)z
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    rc   rh   r   c                     gNr   r8   rb   s    r0   rE   3TestVonMises.test_vonmises_expect.<locals>.<lambda>       Ar2   r   rj   c                     gr   r8   r   s    r0   rE   r      r   r2   c                 4    [         R                  " SU -  5      $ )Ny              ?)rV   expr   s    r0   rE   r      s    BFF2a4Lr2   complex_funcN)rV   rW   rX   r6   rk   expectr   
issubdtypedtypefloatingrm   anglecomplexfloating)r[   rY   rh   r   lbresboundss          r0   test_vonmises_expect!TestVonMises.test_vonmises_expect   sN    ii##$78A+Bnn299+FQ}}SYY4444!bee)^#nn299+OOQ}}SYY4444!bee)^#nn299:P S;ASPQSsag7}}SYY(:(:;;;;r2   rvs_locrj   	rvs_shape)r   rd       חAfix_locTF	fix_shapec                 f   U(       a  U(       a  [         R                  " S5        [        R                  R	                  S5      n[
        R                  R                  USUUS9nSS0nU(       a  XS'   U(       a  X'S'   [        [
        R                  U[
        R                  R                  40 UD6  g )	NzNothing to fit.r   r   sizerh   r   fscaler   flocf0)
pytestskiprV   rW   rX   r6   rk   r   _assert_less_or_close_loglikennlf)r[   r   r   r   r   rY   datakwdss           r0   test_fit_MLE_comp_optimizer(TestVonMises.test_fit_MLE_comp_optimizer   s     KK)*ii##$78~~!!)$G/2 " 4 !}"L"J%ennd&+nn&9&9	C=A	Cr2   c                 X   / SQn[         R                  " U5      nS[         R                  -  n[        R                  R                  XS9u  p4nU[         R                  " [        5      R                  :X  d   e[        [        R                  U[        R                  R                  SUS9  g )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   )rV   asarrayrm   r6   rk   fitfinfofloattinyr   r   )r[   r   rh   	kappa_fitloc_fit	scale_fits         r0   test_vonmises_fit_bad_floc'TestVonMises.test_vonmises_fit_bad_floc   s    M zz$RUUl(-(:(:4(:(J%	IBHHUO00000%ennd&+nn&9&9!#	Or2   signc                    [         R                  R                  S5      n[        R                  " US-  [         R
                  -  SS9R                  SUS9nUS[         R
                  -  -   n[        R                  R                  U5      u  pVn[        R                  R                  U5      u  pn
[        Xi5        [        XX5        US:X  d   e[         R
                  * Us=:  a  [         R
                  :  d   e   eg )	Nr   r   rc   r   順 r      r   )	rV   rW   rX   r6   rk   rm   r   r   r   )r[   r   rY   r   shifted_datar   r   r   kappa_fit_shiftedloc_fit_shifted_s              r0    test_vonmises_fit_unwrapped_data-TestVonMises.test_vonmises_fit_unwrapped_data   s    ii##$78~~$s(255.;??MP @ Rag~(-(:(:4(@%	I050B0B<0P-A1	5A~~v'"%%'''''r2   c           	         [         R                  " S5      n[        UR                  S5      SS[        R
                  -  -  SS9  [        UR                  [        R
                  S-  5      SSS9  [        UR                  [        R
                  * S-  5      SSS9  [        UR                  S5      [        R
                  S-  SS9  [        UR                  5       SSS	9  [        UR                  5       SSS	9  [        R                  " [        R                  " UR                  S
U R                  S95      [        R
                  :*  5      (       d   eg )Nr   r   rj   r   r         ??皙?r   rc   r   r   )r6   rk   r   rl   rV   rm   rt   sfppfmeanr   allr   r   rY   )r[   rK   s     r0   test_vonmises_kappa_0_gh18166*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PPr2   c                 r    [         R                  R                  S/5      u  pnUS:X  a  US:X  a  US:X  d   eg )Nr   g 7yACr   )r6   rk   r   )r[   r   rh   ri   s       r0   test_vonmises_fit_equal_data)TestVonMises.test_vonmises_fit_equal_data	  s8    !NN..s3E}eqj88jr2   c                     [         R                  R                  R                  SS/SS9  [         R                  R                  R                  [        R
                  S-  S-  /SS9  g )Nr   gl=c>r   rj   gd?)r5   r6   rk   r   rV   rm   rZ   s    r0   test_vonmises_fit_bounds%TestVonMises.test_vonmises_fit_bounds  sT     	  !WA 6 	  "%%'9"5!6Q ?r2   rY   N)__name__
__module____qualname____firstlineno__r\   r   markparametrizerV   rm   rw   r|   r   r   r   r   r   r   xslowr   slowr   r   r   r   r   __static_attributes__r8   r2   r0   rR   rR   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   rR   c                 |   Uc  U R                   nU R                  " U40 UD6n[        [        U 5      U ]  " U40 UD6nU(       d  [        R
                  " XV:g  5      (       d   eU" XQ5      nU" Xa5      nXx::  d  [        R                  " XxSS9(       d   eSU;   a  US   US   :X  d   eSU;   a  US   US   :X  d   egg)aF  
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typerV   anyallclose)	rK   r   funcmaybe_identicalr   mle_analyticalnumerical_optll_mle_analyticalll_numerical_opts	            r0   r   r     s     |yyXXd+d+N$t*d/==M
 vvn56666^2M01KK)%HJ I
 ~b!T&\1114b!T(^333 r2   c           
         SS/nU R                   (       a.  [        U R                   R                  S5      5      nU/ SQS U -  n[        [	        U[
        R                  " [        U5      5      5      5      n/ SQn[        R                  " [        SS9   U R                  " U40 UD6  S S S 5        [        R                  " [        SS9   U R                  [
        R                  /5        S S S 5        [        R                  " [        SS9   U R                  [
        R                  /5        S S S 5        [        R                  " [        S	S9   U R                  US
S9  S S S 5        [        R                  " [        SS9   U R                  " U/S/[        U5      S-
  -  Q76   S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   ,)r   f1f2r   rj   r   3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:rj   )extra_keywordzToo many positional arguments.r   )shapeslensplitdictziprV   aranger   r   RuntimeErrorr   
ValueErrornaninf	TypeError)rK   paramnshapes	all_fixedr   s        r0   assert_fit_warningsr/  >  sy   XE{{dkk'',-#HW--S		#e* 567ID	|&
' 	##
' 
zB
D"&&
D 
zB
D"&&
D 
y(D	EQ' 
F	y(H	I-SZ!^,- 
J	I
' 
'
D 
D
D 
D 
F	E	I	Is<   F+!F=
!GG>$G0+
F:=
G
G
G-0
G>rK   )alpha	betaprimefatiguelifeinvgammainvgauss
invweibull	johnsonsblevylevy_llognormgibratpowerlognormrayleighwaldc                    [        [        5      nX   n[        [        U 5      n [	        U R
                  " U R                  /UQ76 S5        [        U R                  " U R                  /UQ76 [        R                  * 5        [	        U R
                  " U R                  /UQ76 S5        [        U R                  " U R                  /UQ76 [        R                  * 5        g)zgh-6235r   N)r$  r   getattrr6   r   rl   r.   r   r   rV   r*  r/   )rK   dctargss      r0   test_supportrB  U  s     x.C9D5$D/$/3TVV+d+bffW5/$/3TVV+d+bffW5r2   c                   ,    \ rS rSrS rS rS rS rSrg)TestRandIntig  c                 L    [         R                  R                  S5      U l        g )Nl   {2 rU   rZ   s    r0   r\   TestRandInt.setup_methodh  r^   r2   c                 z   [         R                  R                  SSSU R                  S9n[	        [
        R                  " US:  5      [
        R                  " US:  5      -  5        [	        [        U5      S:H  5        [         R                  R                  SSSU R                  S9n[	        [
        R                  " U5      S:H  5        [	        UR                  R                  [        S   ;   5        [         R                  R                  SSU R                  S	9n[	        US:  US:  -  5        [	        [        U[
        R                  5      [        [        U5      5      S
9  [         R                  " SS5      R                  SU R                  S	9n[	        UR                  R                  [        S   ;   5        g )Nr      rd   r   rj   2   
AllInteger   .   r   r+   r   )r6   randintr   rY   r	   rV   r   r"  shaper   charr   
isinstance
ScalarTypereprr  r[   valsvals      r0   test_rvs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                     [         R                  SS n[         R                  " US:  US:  -  SS5      n[        R                  R                  USS5      n[        X25        g )Nr   $   r   rH  {Gz?)rV   r_wherer6   rN  pmfr   )r[   r_   outrU  s       r0   test_pdfTestRandInt.test_pdfx  sP    EE!BKhhQ1r6*J:}}  Ar*!$,r2   c                    [         R                  " SSS5      n[         R                  " U5      n[         R                  " US:  US:  /SUS-
  S-   S	-  /S5      n[        R
                  R                  USS5      n[        XCS
S9  g )Nr   rZ  rd   rH  r         ?      @r   r      decimal)rV   linspacefloorselectr6   rN  rt   r   )r[   rb   r_   r_  rU  s        r0   test_cdfTestRandInt.test_cdf~  st    KK2s#HHQKiib!q&)C!C%'F1C+DaH}}  Ar*!$R8r2   r  N)	r  r  r  r  r\   rW  r`  rk  r  r8   r2   r0   rD  rD  g  s    5;-9r2   rD  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)	TestBinomi  c                 L    [         R                  R                  S5      U l        g )Ni&8jrU   rZ   s    r0   r\   TestBinom.setup_method  r^   r2   c                    [         R                  R                  SSSU R                  S9n[	        [
        R                  " US:  5      [
        R                  " US:*  5      -  5        [	        [
        R                  " U5      S:H  5        [	        UR                  R                  [        S   ;   5        [         R                  R                  SSU R                  S9n[	        [        U[        5      5        [         R                  " SS5      R                  SU R                  S9n[	        [        U[
        R                  5      5        [	        UR                  R                  [        S   ;   5        g 	Nrc   r   rI  r   r   rK  r   r   )r6   binomr   rY   r	   rV   r   rO  r   rP  r   rQ  intndarrayrT  s      r0   rW  TestBinom.test_rvs  s    {{r4gDHHMtqy!BFF42:$667')*

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

+,		)L"99:r2   c                     [         R                  R                  SSS5      n[         R                  R                  SSS5      n[        USSSS9  [        USSSS9  g )Nrd   r   r   rc  r   r   r   r6   rs  r^  r   )r[   vals1vals2s      r0   test_pmfTestBinom.test_pmf  sJ    S!,3*sQ7sQ7r2   c                    [         R                  " SS5      n[        R                  " / SQ5      n[	        [        X"5      5      * nUR                  5       n[        XC5        [         R                  " SS5      nUR                  5       n[        US5        [         R                  " SS5      nUR                  5       n[        US5        g )Nrj   r   )      ?r   r  r   rc  )	r6   rs  rV   r   sumr   r>   r   r   )r[   r/   
expected_p
expected_hhs        r0   test_entropyTestBinom.test_entropy  s    KK3XX/0
%
788
IIK&KK3IIKQKK3IIKQr2   c                 L   [         R                  " 5          [         R                  " S[        5        [	        [
        R                  " SSS9R                  5       S5        [	        [
        R                  " SSS9R                  5       S5        S S S 5        g ! , (       d  f       g = f)Nerrorrj   r   np)	warningscatch_warningssimplefilterRuntimeWarningr   r6   rs  r   stdrZ   s    r0   test_warns_p0TestBinom.test_warns_p0  sf    $$&!!'>:qA.335q9qA.224a8 '&&s   A6B
B#c                 R    Sn[         R                  R                  SUSS9U:X  d   eg )Nr   333333?rc  )qr  r  )r6   rs  r   r[   r  s     r0   test_ppf_p1TestBinom.test_ppf_p1  s(    {{S1Q666r2   c                     SnSn[         R                  " S5      n[        R                  R	                  X1US9n[        R
                  R	                  X1U-  5      n[        XESS9  g )NglyCgq]\	T3<r   r  缉ؗҜ<r   )rV   r&  r6   rs  r^  poissonr   )r[   r  r  rb   r   refs         r0   test_pmf_poissonTestBinom.test_pmf_poisson  sQ    "IIaLkkooao*mmq5)u-r2   c                     SnSnSn[         R                  R                  X1U5      n[         R                  R                  X1U5      n[	        XESS9  g )NgJ-DgO
;r   r  r   )r6   rs  r^  rt   r   )r[   r  r  rr   r  s         r0   test_pmf_cdfTestBinom.test_pmf_cdf  sC    kkooaA&kkooaA&u-r2   c                 \    [         R                  R                  SSS5      n[        USSS9  g )Nr   r   +?r   r  r   ry  )r[   r   s     r0   test_pmf_gh15101TestBinom.test_pmf_gh15101  s$    kkooau-QU+r2   r  N)r  r  r  r  r\   rW  r|  r  r  r  r  r  r  r  r8   r2   r0   rn  rn    s/    5	;8 97
..,r2   rn  c                       \ rS rSrS rSrg)TestArcsinei  c                     [         R                  R                  SS/5      n[        U[        R
                  [        R
                  /5        g Nr   r   )r6   arcsinerl   r   rV   r*  r[   r  s     r0   test_endpointsTestArcsine.test_endpoints  s3     MMq!f%Q()r2   r8   N)r  r  r  r  r  r  r8   r2   r0   r  r    s    *r2   r  c                   &    \ rS rSrS rS rS rSrg)TestBernoullii  c                 L    [         R                  R                  S5      U l        g )Nl   u7& rU   rZ   s    r0   r\   TestBernoulli.setup_method  r^   r2   c                    [         R                  R                  SSU R                  S9n[	        [
        R                  " US:  5      [
        R                  " US:*  5      -  5        [	        [
        R                  " U5      S:H  5        [	        UR                  R                  [        S   ;   5        [         R                  R                  SU R                  S9n[	        [        U[        5      5        [         R                  " S5      R                  SU R                  S9n[	        [        U[
        R                  5      5        [	        UR                  R                  [        S   ;   5        g )	Nr   rI  r   r   r   rK  r   r   )r6   	bernoullir   rY   r	   rV   r   rO  r   rP  r   rQ  rt  ru  rT  s      r0   rW  TestBernoulli.test_rvs  s    ""4gDHH"Mtqy!BFF419$556')*

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

+,		)L"99:r2   c                    [         R                  " S5      nS[        R                  " S5      -  S[        R                  " S5      -  -
  nUR	                  5       n[        X25        [         R                  " S5      nUR	                  5       n[        US5        [         R                  " S5      nUR	                  5       n[        US5        g )Nr        пr   r   rc  )r6   r  rV   logr>   r   r   )r[   r/   r  r  s       r0   r  TestBernoulli.test_entropy  s    OOD!266$<'$rvvd|*;;
IIK&OOC IIKQOOC IIKQr2   r  N)r  r  r  r  r\   rW  r  r  r8   r2   r0   r  r    s    5	;r2   r  c                       \ rS rSrS rSrg)TestBradfordi  c                     Sn[         R                  " SS5      n[        R                  R	                  X!5      n[        R                  R                  X15      n[        X$5        g )Nr`   )rV   logspacer6   bradfordrt   r   r   )r[   crb   r  xxs        r0   test_cdf_ppfTestBradford.test_cdf_ppf  sG    KKR NNq$^^%r2   r8   N)r  r  r  r  r  r  r8   r2   r0   r  r    s    r2   r  c                      \ rS rSrS r\R                  R                  SSSSSSS	S
SSS\S4/5      S 5       r	\R                  R                  S/ SQ5      \R                  R                  S\
R                  R                  S4\
R                  R                  S4/5      S 5       5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      \R                  R                  S\
R                  R                   S4\
R                  R"                  S4/5      S 5       5       rSrg)
TestCauchyi  c                 R    [         R                  R                  S5      nUS:X  d   eg )NZbtir   )r6   cauchyrl   r  s     r0   test_pdf_no_overflow_warning'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                 ^    [         R                  R                  X* /5      n[        X2U/SS9  g r   )r6   r  r   r   )r[   rb   r  logps       r0   test_logpdfTestCauchy.test_logpdf  s*     ||""Ar7+Cju5r2   ))g 7y1gu	lY<)g^?)r   r  )r   r   )r   r   )r   g)nE?)g 7y1C?zmethod, sgnr   r   c                 ,    U" XA-  5      n[        XRSS9  g r   r   )r[   rb   r  methodsgnr  s         r0   test_cdf_sfTestCauchy.test_cdf_sf  s      35MU+r2   ))gRyXsg!;v+͋)(,* EgjLҳ)      $@g
 )r   9B.)g      $gCį)g:@sgg>Z)g 5g*\Bc                     [         R                  R                  U5      n[        X2SS9  [         R                  R	                  U* 5      n[        XBSS9  g N+<r   )r6   r  logcdfr   logsfr[   rb   r  r  r  s        r0   test_logcdf_logsfTestCauchy.test_logcdf_logsf2  sB     $$Q'%0""A2&/r2   zp, ref))#B;g8)&.>g/)r        )r   r   )r   rc  )!?gqmA)g?gqJRBc                 ,    XC" U5      -  n[        XRSS9  g r   r  )r[   r  r  r  r  rb   s         r0   test_ppf_isfTestCauchy.test_ppf_isfA  s     q	MU+r2   r8   N)r  r  r  r  r  r   r  r  r   r  r6   r  rt   r   r  r  r   isfr  r  r8   r2   r0   r  r    sa    [[	#	&	%	'	$	#	#	#	#	$
$	%
	'(6(6
 [[	%	 [[
,,

A	
,,//2		 
,	,
 [[X;<0<0 [[	/	 [[
,,

A	
,,

B		!",	"	,r2   r  c                       \ rS rSrSrSrS rS rS rS r	\
R                  R                  SS	\4S
/5      S 5       r\
R                  R                  S/ SQ5      S 5       rSrg)TestChiiT  gnT9;g2 >h?@c                 l    [         R                  R                  SS5      n[        XR                  SS9  g )Nrc   r   r   r   )r6   chir   r   CHI_SF_10_4r[   rD   s     r0   test_sfTestChi.test_sf]  s&    IILLQ++%8r2   c                 n    [         R                  R                  U R                  S5      n[	        USSS9  g )Nr   rc   r   r   )r6   r  r  r  r   r[   rb   s     r0   test_isfTestChi.test_isfa  s(    IIMM$**A.2E*r2   c                 `    SnSn[         R                  R                  X5      n[        USSS9  g )Nr  rL  gar  r   )r6   r  r  r   )r[   rb   dfr  s       r0   test_logcdfTestChi.test_logcdfe  s-    !!!( 6UCr2   c                 `    SnSn[         R                  R                  X5      n[        USSS9  g )Nr   rL  @y`r  r   )r6   r  r  r   )r[   rb   r  r  s       r0   
test_logsfTestChi.test_logsfl  s+    		&5EBr2   df, ref     @@)g  ļBgcAc                 T    [        [        R                  R                  U5      USS9  g N-q=r   )r   r6   r  r   r[   r  r  s      r0   	test_meanTestChi.test_meany  s     			r*Ce<r2   ))-C6?gQ(݂)r   ńjɮ9?)r  gWr4'?)    _Bgr$h(?)}Ô%ITgs$h(?c                 ^    [        [        R                  " U5      R                  5       USS9  g r   )r   r6   r  r>   r  s      r0   r  TestChi.test_entropy  s!     			"--/5Ar2   r8   N)r  r  r  r  r  CHI_MEAN_1000r  r  r  r  r   r  r  r	  r  r  r8   r2   r0   r  r  T  s     'K $M9+DC [[Y"M279:=:= [[Y;<B<Br2   r  c                   t    \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	S r
S rS	rg
)TestCrystalBalli  c                    [         R                  " SSS5      SS n[        R                  R	                  USSS9n[         R
                  " / S	Q5      n[        X2S
S9  [        R                  R	                  USSS9n[         R
                  " / SQ5      n[        X2S
S9  [        R                  R	                  USSSSS9n[         R
                  " / SQ5      n[        X2S
S9  g)
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.
      rd     Nr   rc  r   betam)gF6Ɣ?g9nZ丘?g9b?g"i"w?g|^?g>?gG6ƴ?g9b?|^?߈܁r ?gTC?r  r  gm?gFZۤ?g
HB?gTXek?g?bȓE?gLZ;x?gJ>+=r         @)g2c}`?g>t\f?g˂q?gg'T){?gmw?g>t\?h'T)?7-h	J?u8n?A#?g:Q?r"  r!  r   r  gZrԢ?g߄q?g)aL?gr'O<!?g99{-w>r   r  r  rh   ri   )g3c}?g>t\?g˂?f'T)?#n?5-h	J??u8n?vL1??#?||P?g:Q?r+  r*  r)  r(  r'  r&  r%  r$  )rV   rh  r6   crystalballrl   r   r   r[   X
calculatedrO   s       r0   r`  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                    [         R                  " SSS5      SS n[        R                  R	                  USSS9n[         R
                  " / S	Q5      n[        X2S
S9  [        R                  R	                  USSS9n[         R
                  " / SQ5      n[        X2S
S9  [        R                  R	                  USSSSS9n[         R
                  " / SQ5      n[        X2S
S9  g)r  r  rd  r  Nr   rc  r   r  )ghQ|
)?gj,,?gd}9?gH6?g|^?gEv?glQ|
)?gd}9?g|^?go[?gsX?g&Ռ?g~M+?gZRc?gtE_s?gi?gB?gEg?gvP
?gx훟?r   r   r  )g pr?g t\v?ge}?gݠn^?gCȘU?at\?ݠn^?~[n|D?gS4s/?2s?`qfhG?IgL?荩s?rA?IH?guk?ghi"?gP ?g.q?gs?r   r#  )go?r2  ge?r3  gPU,?r4  gjݗ	?r5  g?r6  g_!Y?r7  ga?r8  gR?r9  g(?r:  g܉x?r;  )rV   rh  r6   r,  rt   r   r   r-  s       r0   rk  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))      (@rc  r   gI9)      "@      @      ?gy
 <)   r`   gjt?g+,)g      r   r  gGA*?)g      >r   rd  g^v'?)gd~Qr  皙?g眭?c                 T    [         R                  R                  XUS9n[        XTSS9  g )Nr  r   r   )r6   r,  r   r   )r[   rb   r  r  rootrefr   s         r0   r  TestCrystalBall.test_sf  s)     !!!!!4%0r2   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  R	                  SX5      n[        X4SS9  [         R                  " / SQ5      n[         R                  " SS	[         R                  S
S/5      nXe-  n[        R                  R	                  SX5      n[        XxSS9  [         R                  " [         R                  [         R                  [         R                  SS/5      nXe-  n	[        R                  R	                  SX5      n
[        XSS9  [         R                  " [         R                  [         R                  [         R                  [         R                  S/5      nXe-  n[        R                  R	                  SX5      n[        XSS9  [         R                  " [         R                  [         R                  [         R                  [         R                  S/5      nXe-  n[        R                  R	                  SX5      n[        XSS9  [         R                  " [         R                  [         R                  [         R                  [         R                  S/5      nXe-  n[        R                  R	                  SX5      n[        UUSS9  g)z[
All values are calculated using the pdf formula and the integrate function
of Mathematica
)r   rc  r  r   r  )r  r  r   r?  r>  )rc  rc  rc  rc  rc  r   MbP?r   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr   g
@gn(@rj   g?Җ)r   gMg'#@r   g('UHr   N)rV   r   r6   r,  _munpr   r*  )r[   r  r  expected_0th_momentcalculated_0th_momentnormr.   expected_1th_momentcalculated_1th_momentexpected_2th_momentcalculated_2th_momentexpected_3th_momentcalculated_3th_momentexpected_4th_momentcalculated_4th_momentexpected_5th_momentcalculated_5th_moments                    r0   test_momentsTestCrystalBall.test_moments"  s    xx12HH./ !hh'@A % 1 1 7 74 C+O xxHIHHh"&&)YGHh % 1 1 7 74 C+OHHbffbffbfffh?@h % 1 1 7 74 C+OHHbffbffbffbffjABh % 1 1 7 74 C+OHHbffbffbffbffg>?h % 1 1 7 74 C+OHHbffbffbffbffh?@h % 1 1 7 74 C+-BOr2   c                     [         R                  " SS5      nUR                  5       nSu  p4n[        R                  " X4U5      n[        [        UR                  U5      5      U5      n[        X'SS9  g )Nrj   r   )irH  @ Hz>r   )	r6   r,  r>   rV   rh  r   r   rl   r   )r[   cbres1lohiNrb   res2s           r0   r  TestCrystalBall.test_entropyO  sZ    q!$zz|&	KK"bffQi!,.r2   r8   N)r  r  r  r  r`  rk  r   r  r  r  rV  r  r  r8   r2   r0   r  r    sE    <:|<:D [[	011+PZ/r2   r  c                   ,    \ rS rSrS rS rS rS rSrg)
TestNBinomiZ  c                 L    [         R                  R                  S5      U l        g )Nl   \: rU   rZ   s    r0   r\   TestNBinom.setup_method[  r^   r2   c                    [         R                  R                  SSSU R                  S9n[	        [
        R                  " US:  5      5        [	        [
        R                  " U5      S:H  5        [	        UR                  R                  [        S   ;   5        [         R                  R                  SSU R                  S9n[	        [        U[        5      5        [         R                  " SS5      R                  SU R                  S9n[	        [        U[
        R                  5      5        [	        UR                  R                  [        S   ;   5        g rr  )r6   nbinomr   rY   r	   rV   r   rO  r   rP  r   rQ  rt  ru  rT  s      r0   rW  TestNBinom.test_rvs^  s    ||DwTXXNtqy!"')*

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

+,		)L"99:r2   c           	      .   [        [        R                  " [        R                  R                  SSS5      5      [        R                  R                  SSS5      5        [        R                  R                  R                  SSS5      n[        US5        g )Ni  i  gp=
ף?r   r   )	r   rV   r   r6   rg  logpmfr^  r5   r   )r[   rV  s     r0   r|  TestNBinom.test_pmfi  sh    u||223TBC((c48	: kk  ''1a0S!r2   c                     [         R                  R                  / SQSSS9n[        R                  " [         R                  R                  / SQSSS95      n[        X5        g )N)r   r   r   r   333333@?r  )r6   rg  r  rV   r  rt   r   r[   rU  r  s      r0   test_logcdf_gh16159TestNBinom.test_logcdf_gh16159q  sI    ||""<3$"?ffU\\%%lcT%BC"r2   r  N)	r  r  r  r  r\   rW  r|  rp  r  r8   r2   r0   rc  rc  Z  s    5	;#r2   rc  c                      \ rS rSrS r\R                  R                  S 5       r\R                  R                  S 5       r	\R                  R                  S 5       r
\R                  R                  S 5       rS rS rS	 rS
 rSrg)TestGenInvGaussix  c                 L    [         R                  R                  S5      U l        g )Nl   n rU   rZ   s    r0   r\   TestGenInvGauss.setup_methody  r^   r2   c                     [         R                  " SS5      n[         R                  " UR                  SU R                  S9UR
                  5      u  p#[        US:  S5        g )Nffffff@r    r   皙?Tr6   geninvgausskstestr   rY   rt   r   r[   gigr   r  s       r0   test_rvs_with_mode_shift(TestGenInvGauss.test_rvs_with_mode_shift|  K     S)||CGGDHHGEswwOQXt$r2   c                     [         R                  " SS5      n[         R                  " UR                  SU R                  S9UR
                  5      u  p#[        US:  S5        g )Nr   r   rx  r   ry  Trz  r}  s       r0   test_rvs_without_mode_shift+TestGenInvGauss.test_rvs_without_mode_shift  sK     T*||CGGDHHGEswwOQXt$r2   c                     [         R                  " SS5      n[         R                  " UR                  SU R                  S9UR
                  5      u  p#[        US:  S5        g )Nr`   皙?rx  r   ry  Trz  r}  s       r0   test_rvs_new_method#TestGenInvGauss.test_rvs_new_method  r  r2   c                    ^  U 4S jn[        U" SS5      S5        [        U" SS5      S5        [        U" SS5      S5        g )Nc                    > [         R                  " X5      nUR                  STR                  S9n[         R                  " X2R
                  5      S   S:  $ )Nrx  r   r   ry  )r6   r{  r   rY   r|  rt   )r  r/   r~  r   r[   s       r0   my_ks_check4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_check  sF    ##A)C''t$((';C<<WW-a0477r2   r   r  Tr   r  )r   )r[   r  s   ` r0   test_rvs_p_zeroTestGenInvGauss.test_rvs_p_zero  s=    	8
 	[C($/[C($/[C($/r2   c           	          [        [        R                  " SS5      R                  SSS9S[        R                  " SS5      R                  SSS9-  5        g )N      rj   rc     r   r   r  )r   r6   r{  r   rZ   s    r0   test_rvs_negative_p#TestGenInvGauss.test_rvs_negative_p  sP    !!$*..BT.JE%%c1-11r1MM	Or2   c                    [         R                  R                  SSSSS9n[        [         R                  " USS/S9S   S:  S	5        S
[
        R                  " SSS5      p2[         R                  R                  USSU-  US9n[        U[         R                  " U5      R                  U5      5        [         R                  R                  USSU-  US9n[        U[         R                  " U5      R                  U5      5        g )Nrx  r   r   iFPW)r   r  r/   r   r4  rA  333333?Trd   r   rc   )r  r/   ri   )r6   r{  r   r   r|  rV   rh  rl   r   r4  rt   )r[   igmurb   pdf_igcdf_igs         r0   test_invgauss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                     [         R                  " / SQ5      n[         R                  " SSS5      n[        U[        R
                  R                  USS5      5        g )N)
g;g8y8?g\}Z?ghܲ<?g&Khdd?g7!L?g	Cf?g_诱?g>0|?gRq?r   r   rc   r   r   )rV   r   rh  r   r6   r{  rl   )r[   vals_Rrb   s      r0   
test_pdf_RTestGenInvGauss.test_pdf_R  sJ      , - KKa$ 1 1 5 5aa @Ar2   c                     [        [        R                  R                  SSS5      S5        [        [        R                  R                  SSS5      S5        g )Nr   r   g    >ArJ  rj   )r   r6   r{  rl   rZ   s    r0   test_pdf_zeroTestGenInvGauss.test_pdf_zero  sB    U&&**1c37; 	U&&**3A6:r2   r  N)r  r  r  r  r\   r   r  r
  r  r  r  r  r  r  r  r  r  r8   r2   r0   rs  rs  x  s    5 [[% % [[% % [[% % [[0 0O	;	B;r2   rs  c                       \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ SQ5      S 5       r
S	 rS
 rS rS rS rS rSrg)TestGenHyperbolici  c                     [         R                  " / SQ5      nSu  p#nSu  pVX#U-  XF-  4n[        R                  " XuUS.6n[         R                  " SSS5      n	[        UR                  U	5      USSS	9  g )
N)
gF^T=g{X'=gNunƢsy>g7!t?gɫzI?g̸?g?gq6.?gmPZz?g:PgN?rj   rj   r   r   r  rg   rc   r   r   r   r   )rV   r   r6   genhyperbolicrh  r   rl   
r[   r  lmbdar0  r  r  deltarA  ghrb   s
             r0   
test_pdf_rTestGenHyperbolic.test_pdf_r  st        %d	U{DJ/  $e<KKR$q	6>r2   c                     [         R                  " / SQ5      nSu  p#nSu  pVX#U-  XF-  4n[        R                  " XuUS.6n[         R                  " SSS5      n	[        UR                  U	5      USSS	9  g )
N)
g=R0W<=gEB=g#Nb>g_PG>g! 1Or?gUM?g u./?gfy?gl5\?gkV?r  r  rg   r  rc   r   ư>r  )rV   r   r6   r  rh  r   rt   r  s
             r0   
test_cdf_rTestGenHyperbolic.test_cdf_r  st        %d	U{DJ/  $e<KKR$q	6=r2   zx, p, a, b, loc, scale, ref)
)rj   r   r  r   r  g8ɹvF(;)r  rc   r  r  r   r   g[Ϡ?)r  rc   r  g      ?r   r   g ✝`D;)r        ?r  ):?r   r   gdL;)r   r  r  r  r   r   gzK^7?)r         r  r  r   r   gj?)r   r  r     r   r   ga=vG:)rA  r  r   r  r   r   g?)(   r  r   r  r   r   g1bV?)<   r  r   r  r   r   g?c           	      V    [         R                  R                  XX4XVS9n[        XSS9  g Nrg   dy=r   )r6   r  rt   r   )	r[   rb   r  r.   r/   rh   ri   r  rt   s	            r0   test_cdf_mpmath!TestGenHyperbolic.test_cdf_mpmath  s+     !!%%aAc%Gu-r2   ))r   r  re  r   r   r   gC!,?)r   r         @      @r   r   g,Ћf?)r  r   r  r  r   r   rc  )   rj   r   r  r   r  gm"چ>),  rc   r  r  r   r   g:;)r  r  r   r  r   r   gw=)K   r  r   r  r   r   g3Z0&K<c           	      V    [         R                  R                  XX4XVS9n[        XSS9  g r  )r6   r  r   r   )	r[   rb   r  r.   r/   rh   ri   r  r   s	            r0   test_sf_mpmath TestGenHyperbolic.test_sf_mpmath  s+       ##A!C#Ee,r2   c           	          / SQnSu  p#nSu  pVX#U-  XF-  4n[        SS5       Vs/ s H(  n[        R                  " XuUS.6R                  U5      PM*     n	n[	        XSSS	9  g s  snf )
N)g@쐧@g@쐧 @g܊B@gvGăi@r  r  r   r   rg   r   r   r  )ranger6   r  momentr   )
r[   r  r  r0  r  r  r  rA  ivals_uss
             r0   test_moments_r TestGenHyperbolic.test_moments_r  s    5 %d	U{DJ/ 1a[  U;BB1E  	 
 	ae<s   /A"c                     Su  pnSu  pEXU-  X5-  4n[         R                  " XdUS.6n[         R                  " UR                  SSS9UR                  5      u  p[        U	S:  S5        g )	Nr  r  rg   rx  r  r   ry  T)r6   r  r|  r   rt   r   )
r[   r  r0  r  r  r  rA  r  r   r  s
             r0   rW  TestGenHyperbolic.test_rvs,  sh     %d	U{DJ/  $e<||BFF4F@"&&IQXt$r2   c                 2   [         R                  " SSS5      n[         R                  " US5      [         R                  " [         R                  5      R
                  -  Sp2S[         R                  " U5      pTU* S-  X#4n[        R                  " XdUS.6n[         R                  " UR                  S5      UR                  S5      S	5      S S 2[         R                  4   n[        UR                  U5      [        R                  R                  X5      SS
S9  g )Nr   rH  rc   rj   r   rg   r   Gz?rJ  r  r  )rV   rh  float_powerr   float32epssqrtr6   r  r   newaxisr   rl   t)	r[   r  r0  r  r  r  rA  r  rb   s	            r0   
test_pdf_tTestGenHyperbolic.test_pdf_t9  s    [[B# nnR+BHHRZZ,@,D,DDatrwwr{EAu#  $e<KKtbffTlB72::FFF1Iuww{{1)	r2   c                    S[         R                  " [         R                  5      R                  Sp2nSu  pEXU4n[        R
                  " XdUS.6n[         R                  " UR                  S5      UR                  S5      S5      S S 2[         R                  4   n[        UR                  U5      [        R                  R                  U5      SSS	9  g )
Nr   r   )r   r   rg   r   r  rJ  r  r  )rV   r   r  r  r6   r  rh  r   r  r   rl   r  )	r[   r  r0  r  r  r  rA  r  rb   s	            r0   test_pdf_cauchy!TestGenHyperbolic.test_pdf_cauchyK  s    
 "288BJJ#7#;#;Qd	d#  $e<KKtbffTlB72::FFF1Iu||''*	r2   c           	         [         R                  " SSS5      n[         R                  " [         R                  5      R                  nSu  p4nX4U-  XR-  4n[
        R                  " XaUS.6n[         R                  " SSS5      S S 2[         R                  4   n[        UR                  U5      [
        R                  R                  XSS9S	S
S9  g )Nr  rc   )r   r   r   rg   r  rA  rJ  r   r   dy=r  )rV   rh  r   r  r  r6   r  r  r   rl   laplace)	r[   rh   r  r  r0  r  rA  r  rb   s	            r0   test_pdf_laplace"TestGenHyperbolic.test_pdf_laplace\  s    kk#r2& $(($dU{DJ/   $u=KKR$Q

]3FF1Iu}}((1(=	r2   c                 P   [         R                  " SSS5      [         R                  " SSS5      [         R                  " S[        S5      5      -  [         R                  " SSS5      [         R                  " SSS5      4u  pp4S	nXQU-  X#-  4n[        R
                  " XdUS
.6n[         R                  " UR                  S5      UR                  S5      S5      S S 2[         R                  4   n[        UR                  U5      [        R                  R                  XX$US9SSS9  g )Nr   rA  rc   r      r   rd   r   rg   r   r  rJ  )r.   r/   rh   ri   r   r  )rV   rh  r  r  r6   r  r   r  r   rl   norminvgauss)	r[   r0  r  r  r  r  rA  r  rb   s	            r0   test_pdf_norminvgauss'TestGenHyperbolic.test_pdf_norminvgaussq  s     Ar2&Ar2&r~~b%)'DDAq"%D#r*	"U u}dl3  $e<KKtbffTlB72::FFF1Iu))--d% . 9	r2   r8   N)r  r  r  r  r  r  r   r  r  r  r  r  rW  r  r  r  r  r  r8   r2   r0   r  r    s    ?,>4 [[%		<.. [[%	@	-	-=.%$"*r2   r  c                       \ rS rSr\R
                  R                  SSS/5      S 5       r\R
                  R                  SSS/5      S	 5       rS
 r	Sr
g)TestHypSecanti  zx, reference)rH  gA0=)rJ  g!b;c                 V    [         R                  R                  U5      n[        X2SS9  g r  )r6   	hypsecantr   r   )r[   rb   	referencer   s       r0   r  TestHypSecant.test_sf  s"     __"E2r2   zp, reference)r  g9bT*@)r  gTW-;@c                 V    [         R                  R                  U5      n[        X2SS9  g r  )r6   r  r  r   )r[   r  r  rb   s       r0   r  TestHypSecant.test_isf  s"     OO"51r2   c                     SnSn[         R                  R                  U5      n[        X2SS9  [         R                  R	                  U* 5      n[        XBSS9  g )N      I@g!br  r   )r6   r  r  r   r  r  s        r0   r  TestHypSecant.test_logcdf_logsf  sJ    %''*%0%%qb)/r2   r8   N)r  r  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                       \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	S r
S rS	 rS
 rSrg)TestNormInvGaussi  c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  R	                  USSS9n[        X1SS9  g )N)gp~٧>g @X>g}e?g{)߳?gwH?ir  r      rL  r   r   r.   r/   r  r   )rV   r   r6   r  rt   r   )r[   r_cdfx_testvals_cdfs       r0   
test_cdf_RTestNormInvGauss.test_cdf_R  sM      < =,-%%))&A)=d3r2   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  R	                  USSS9n[        X1SS9  g )N)gp϶>g\H55$?geСt&?go NiH?g]u>r  r   r   r  r  r   )rV   r   r6   r  rl   r   )r[   r_pdfr  vals_pdfs       r0   r  TestNormInvGauss.test_pdf_R  sK     < =,-%%))&A)=d3r2   zx, a, b, sf, rtol))r   r   r   !7?r   )r  r   r   ?=r  )r   r   r  gy5`?r  )rc   r   r  gMLC9r  c                     [         R                  R                  XU5      n[        XdUS9  [         R                  R	                  XBU5      n[        XqUS9  g Nr   r6   r  r   r   r  )r[   rb   r.   r/   r   r   rD   r  s           r0   test_sf_isf_mpmath#TestNormInvGauss.test_sf_isf_mpmath  sH     !!!*D)""2!,4(r2   c                     SS/nSS/nSnSS/n[         R                  R                  XU5      n[        XTSSS	9  [         R                  R	                  XBU5      n[        XaS
S9  g )Nr   r  r   r   r  r  r   r  rx  r  r   r	  )r[   rb   r.   r/   r   rD   r  s          r0   test_sf_isf_mpmath_vectorized.TestNormInvGauss.test_sf_isf_mpmath_vectorized  sj    HF "89!!!*E6""2!,4(r2   c                     [         R                  " SS5      n[        R                  " SSS5      nUR	                  U5      nUR                  U5      n[        XB5        g )Nr   r   rA  rj   )r6   r  rV   r&  r   r  r   )r[   dstrb   r   r  s        r0   test_gh8718TestNormInvGauss.test_gh8718  sH      A&IIaQVVAYggbkr2   c           	          Su  p[         R                  " US-  US-  -
  5      nX#-  US-  US-  -  SU-  U[         R                  " U5      -  -  SSSUS-  -  US-  -  -   -  U-  4n[        U[        R                  R                  XSS95        g )	Nr   r   rj   r   r  r   r   mvskmoments)rV   r  r   r6   r  )r[   r.   r/   gammav_statss        r0   
test_statsTestNormInvGauss.test_stats  s    1q!t$9adUAXosQw!bggen:L/M!a!Q$hAo-.68We0066qV6LMr2   c                     Su  p[         R                  " / SQ5      n[        R                  R	                  X1U5      n[        U[        R                  R                  XAU5      5        g )Nr  rG  r   r  )rV   r   r6   r  r   r   rt   )r[   r.   r/   r  rU  s        r0   test_ppfTestNormInvGauss.test_ppf  sM    -.!!%%f3 2 2 6 6t BCr2   r8   N)r  r  r  r  r  r  r   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                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestGeomi  c                 L    [         R                  R                  S5      U l        g )Nl   y rU   rZ   s    r0   r\   TestGeom.setup_method  r^   r2   c                    [         R                  R                  SSU R                  S9n[	        [
        R                  " US:  5      5        [	        [
        R                  " U5      S:H  5        [	        UR                  R                  [        S   ;   5        [         R                  R                  SU R                  S9n[	        [        U[        5      5        [         R                  " S5      R                  SU R                  S9n[	        [        U[
        R                  5      5        [	        UR                  R                  [        S   ;   5        g )Nr   rI  r   r   rK  r   r   )r6   geomr   rY   r	   rV   r   rO  r   rP  r   rQ  rt  ru  rT  s      r0   rW  TestGeom.test_rvs  s    zz~~dtxx~Htqy!"')*

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

+,		)L"99:r2   c                 V   [         R                  R                  [        R                  " S5      SU R
                  S9nUR                  [        R                  :X  d   e[        R                  " U[        R                  " [        R                  5      R                  :  5      (       d   eg )Nir   r   )r6   r%  r   rV   r   rY   r   int64r   iinfoint32maxr[   r   s     r0   test_rvs_9313TestGeom.test_rvs_9313  sk     jjnnRVVC[qtxxnHyyBHH$$$vvcBHHRXX.2223333r2   c                 d    [         R                  R                  / SQS5      n[        U/ SQ5        g )Nr  r   )r   r  r  )r6   r%  r^  r   r[   rU  s     r0   r|  TestGeom.test_pmf  s!    zz~~i-!$(:;r2   c                 "   [         R                  " [        R                  R	                  / SQS5      5      n[        R                  R                  / SQS5      n[        XSSS9  [        R                  R                  SS5      n[        US5        g )Nr  r   r   r   rx  r   r   )rV   r  r6   r%  r^  rj  r   r   )r[   rz  r{  rV  s       r0   test_logpmfTestGeom.test_logpmf  sc    uzz~~i56

!!)S15q9 jj1%S#r2   c                     [         R                  R                  / SQS5      n[         R                  R                  / SQS5      n[	        / SQ5      n[        X5        [        USU-
  5        g )Nr  r   r   r         ?r   )r6   r%  rt   r   r   r   r[   rU  vals_sfrO   s       r0   r  TestGeom.test_cdf_sf  sK    zz~~i-**--	3/+,!$1!'1X:6r2   c                 (   [         R                  R                  / SQS5      n[         R                  R                  / SQS5      n[	        / SQ5      n[        U[        R                  " U5      5        [        U[        R                  " U* 5      5        g )Nr  r   r6  )	r6   r%  r  r  r   r   rV   r  log1pr8  s       r0   r  TestGeom.test_logcdf_logsf  sa    zz  C0**""9c2+,!$x(89!'288XI+>?r2   c                 x    [         R                  R                  / SQS5      n[        / SQ5      n[	        X5        g )Nr6  r   )rc  r   r  )r6   r%  r   r   r   r[   rU  rO   s      r0   r  TestGeom.test_ppf  s)    zz~~0#6)!$1r2   c                 V    [        [        R                  R                  SS5      SSS9  g )Nr  rc  r  r   )r   r6   r%  r   rZ   s    r0   test_ppf_underflowTestGeom.test_ppf_underflow#  s    

ue4cFr2   c                 b    [         R                  " S5      R                  5       n[        USSS9  g )Ng<,Ԛ?g۩@r   r   )r6   r%  r>   r   )r[   r  s     r0   test_entropy_gh18226TestGeom.test_entropy_gh18226'  s(     JJv&&(,59r2   c                     [         R                  R                  S5      n[        R                  R                  SSUS9S:  R                  5       (       d   eg )NiKH9rc   r   r   )rV   rW   RandomStater6   r%  r   r   )r[   r   s     r0   test_rvs_gh18372TestGeom.test_rvs_gh18372-  sE     yy,,Y7

u2LIAMRRTTTTr2   r  N)r  r  r  r  r\   rW  r-  r|  r3  r  r  r  rB  rE  rJ  r  r8   r2   r0   r!  r!    s<    5	;4<7@2
G:Ur2   r!  c                        \ rS rSrS rS rSrg)
TestPlancki5  c                 x    [         R                  R                  / SQS5      n[        / SQ5      n[	        X5        g )Nr  rd  )g|dy?g8'\>ggrU!>)r6   planckr   r   r   r?  s      r0   r  TestPlanck.test_sf7  s/    ||y"- 2 3 	"$1r2   c                 x    [         R                  R                  / SQS5      n[        / SQ5      n[	        X5        g )N)r       @@     p@r  )g    P.g    h>g    TF)r6   rO  r  r   r   r?  s      r0   r  TestPlanck.test_logsf>  s,    ||!!"7?:;!$1r2   r8   N)r  r  r  r  r  r  r  r8   r2   r0   rM  rM  5  s    22r2   rM  c                   ,    \ rS rSrS rS rS rS rSrg)TestGennormiD  c                     / SQn[         R                  R                  US5      n[         R                  R                  U5      n[	        X#5        g Nr  r   )r6   gennormrl   r  r   r[   pointspdf1pdf2s       r0   test_laplaceTestGennorm.test_laplaceE  s9    }}  +}}  (D'r2   c                     / SQn[         R                  R                  US5      n[         R                  R                  USS9n[	        X#5        g Nr  rj   g;f?ri   )r6   rY  rl   rK  r   rZ  s       r0   	test_normTestGennorm.test_normL  s;    }}  +zz~~fF~3D'r2   c                    [         R                  " S5      n[        R                  R	                  S5      nUR                  SUS9n[         R                  " X1R                  5      R                  S:  d   e[         R                  " S5      nUR                  SUS9n[         R                  R                  SUS9n[         R                  " X45      R                  S:  d   e[         R                  " S5      nX!l        UR                  SUS9n[         R                  R                  SSUS	9n[         R                  " X55      R                  S:  d   eg )
Nr       r   r   r`   r   rj   g;f?ri   r   r   )r6   rY  rV   rW   rX   r   r|  rt   pvaluer  ks_2sampr   rK  )r[   rK   rY   r   rvs_laplacervs_norms         r0   rW  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~~c,33c999r2   c                    [         R                  " SS/SS//5      n[        R                  R	                  S5      nUR                  / SQUS9n[         R                  " US S 2SS4   [         R                  " S5      R                  5      S	   S
:  d   e[         R                  " US S 2SS	4   [         R                  " S5      R                  5      S	   S
:  d   e[         R                  " US S 2S	S4   [         R                  " S5      R                  5      S	   S
:  d   e[         R                  " US S 2S	S	4   [         R                  " S5      R                  5      S	   S
:  d   eg )Nr   rc  r   rd  rf  )r   rj   rj   r   r   r   r`   )r6   rY  rV   rW   rX   r   r|  rt   )r[   rK   rY   r   s       r0   test_rvs_broadcasting!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   r8   N)	r  r  r  r  r^  rc  rW  rn  r  r8   r2   r0   rV  rV  D  s    ((:$Kr2   rV  c                   \    \ rS rSr\R
                  R                  SSS/5      S 5       rSrg)
TestGibratio  x, sfx)r  gD.?)  gJ]b<c                     [        [        R                  R                  U5      USS9  [        [        R                  R	                  U5      USS9  g N+=r   )r   r6   r:  r   r  r[   rb   sfxs      r0   test_sf_isfTestGibrat.test_sf_isf}  s8     	*Ce<((-qu=r2   r8   N)	r  r  r  r  r   r  r  ry  r  r8   r2   r0   rq  rq  o  s5     [[X(A(E(G H>H>r2   rq  c                       \ rS rSrS r\R                  R                  S/ SQ5      S 5       rS r	S r
\R                  R                  S/ S	Q5      S
 5       rSrg)TestGompertzi  c                     [         R                  R                  [         R                  R                  SS5      S5      n[	        US5        g N0.++r   )r6   gompertzr   rt   r   r  s     r0   test_gompertz_accuracy#TestGompertz.test_gompertz_accuracy  s3    NNu~~11&!<a@6"r2   z	x, c, sfx))r   r  g|t?)r   r  g(fMr;)ry  r   g[?)      @r   gg[<c                     [        [        R                  R                  X5      USS9  [        [        R                  R	                  X25      USS9  g Nr  r   )r   r6   r  r   r  )r[   rb   r  rx  s       r0   ry  TestGompertz.test_sf_isf  s:    
 	))!/5A**32AEBr2   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )N       @r`   g_r  r   )r6   r  r  r   )r[   rb   r  r  r  s        r0   r  TestGompertz.test_logcdf  s/    %&&q,%0r2   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Ng"ul/re  gH7Wr  r   )r6   r  r  r   )r[   rb   r  r  r  s        r0   r  TestGompertz.test_logsf  s/    $$Q*/r2   c, ref))r  geUT8?)r   gtqq?)r   gs{)r  gN*6c                 T    [        [        R                  R                  U5      USS9  g r  )r   r6   r  r>   r[   r  r  s      r0   r  TestGompertz.test_entropy  s    
 	..q13UCr2   r8   N)r  r  r  r  r  r   r  r  ry  r  r  r  r  r8   r2   r0   r|  r|    so    #" [[[ +M NC	NC10 [[X (E FD	FDr2   r|  c                   \    \ rS rSr\R
                  R                  SSS/5      S 5       rSrg)TestFoldNormi  	x, c, ref)r  :0yE>g:0N<?)r  r  g:?c                 T    [        [        R                  R                  X5      USS9  g r   )r   r6   foldnormrt   r[   rb   r  r  s       r0   rk  TestFoldNorm.test_cdf  s     	**10#EBr2   r8   N)	r  r  r  r  r   r  r  rk  r  r8   r2   r0   r  r    s7     [[[+N+M+O PCPCr2   r  c                      \ rS rSr\R
                  R                  SSS/5      S 5       r\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S	S
S/5      \R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       5       5       r	S r
Srg)TestHalfNormi  rr  )r   |N?)rc   Oul2;c                     [        [        R                  R                  U5      USS9  [        [        R                  R	                  U5      USS9  g r  )r   r6   halfnormr   r  rw  s      r0   ry  TestHalfNorm.test_sf_isf  s:     	))!,c>**3/?r2   r  ))Ww'&l7g;G<^͛7)C]r2<gE~o-<)r  g?c                 T    [        [        R                  R                  U5      USS9  g r   )r   r6   r  rt   r[   rb   r  s      r0   rk  TestHalfNorm.test_cdf  s     	**1-s?r2   r   h㈵>r  	rvs_scaler   rd   r   r   TF	fix_scalec                    [         R                  R                  S5      n[        R                  R                  XSUS9nU(       aJ  U(       aC  Sn[        R                  " [        US9   [        R                  R                  XaUS9  S S S 5        g 0 nU(       a  XS'   U(       a  X(S'   [        [        R                  U40 UDS	S
0D6  g ! , (       d  f       g = fNr   r   rh   ri   r   r   r  r  r   r   r   r   r  T)rV   rW   rX   r6   r  r   r   r   r'  halflogisticr   r   	r[   r   r  r   r  rY   r   	error_msgr   s	            r0   r   (TestHalfNorm.test_fit_MLE_comp_optimizer  s     ii##$78~~!!gT/2 " 4 y%I|9=""&&t)&L >"L&N 	&ennd 	<d 	<6:	< >=s   (C
Cc                     [         R                  " [        5         [        R                  R                  / SQSS9  S S S 5        g ! , (       d  f       g = fNr  rj   r   )r   r   r    r6   r  r   rZ   s    r0   test_fit_errorTestHalfNorm.test_fit_error	  s1    ]]<(NNyq1 )((   !A
Ar8   N)r  r  r  r  r   r  r  ry  rk  r   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                   (   \ rS rSr\R
                  R                  SSS/5      \R
                  R                  SSS/5      \R
                  R                  SS	S
/5      \R
                  R                  SS	S
/5      S 5       5       5       5       rS rSr	g)TestHalfCauchyi  r   r  r  r  r   r   r   TFr  c                    [         R                  R                  S5      n[        R                  R                  XSUS9nU(       aJ  U(       aC  Sn[        R                  " [        US9   [        R                  R                  XaUS9  S S S 5        g 0 nU(       a  XS'   U(       a  X(S'   [        [        R                  U40 UD6  g ! , (       d  f       g = f)	Nr   r   r  r  r  r  r   r   )rV   rW   rX   r6   r  r   r   r   r'  
halfcauchyr   r   r  s	            r0   r   *TestHalfCauchy.test_fit_MLE_comp_optimizer  s     ii##$78~~!!gT/2 " 4 y%I|9=  $$T	$J >"L&N%e&6&6EE >=s   (C
Cc                     [         R                  " [        5         [        R                  R                  / SQSS9  S S S 5        g ! , (       d  f       g = fr  )r   r   r    r6   r  r   rZ   s    r0   r  TestHalfCauchy.test_fit_error+  s3    ]]<(   3 )((r  r8   N)
r  r  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                      \ rS rSr\R
                  R                  SSS/5      S 5       r\R
                  R                  S/ SQ5      S 5       rS	 r	S
 r
\R
                  R                  SSS/5      \R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S 5       5       5       5       rS rSrg)TestHalfLogistici1  r  )rd   ]6)   L-c                 T    [        [        R                  R                  U5      USS9  g r   )r   r6   r  r   r  s      r0   r  TestHalfLogistic.test_sf9  s!     	**--a0#EBr2   q, ref))r  rd   )r  r  )硏v?g   .!>)g?g      <c                 T    [        [        R                  R                  U5      USS9  g r   )r   r6   r  r  r[   r  r  s      r0   r  TestHalfLogistic.test_isfE  s!    
 	**..q13UCr2   c                 ^    SnSn[         R                  R                  U5      n[        X2SS9  g )Ng      >@guVJr  r   )r6   r  r  r   r[   rb   r  r  s       r0   r  TestHalfLogistic.test_logcdfL  s,    $##**1-%0r2   c                 ^    SnSn[         R                  R                  U5      n[        X2SS9  g )Nrv  g+r  r   )r6   r  r  r   r[   rb   r  r  s       r0   r  TestHalfLogistic.test_logsfS  s,    $""((+/r2   r   r  r  r  r  r   TFr  c                    [         R                  R                  S5      n[        R                  R                  XSUS9n0 nU(       aJ  U(       aC  Sn[        R                  " [        US9   [        R                  R                  XaUS9  S S S 5        g U(       a  XS'   U(       a  X'S'   [        [        R                  U40 UDS	S
0D6  g ! , (       d  f       g = fr  )rV   rW   rX   r6   r  r   r   r   r'  r   r   )	r[   r   r  r   r  rY   r   r   r  s	            r0   r   ,TestHalfLogistic.test_fit_MLE_comp_optimizerZ  s     ii##$78!!%%'36 & 8 y%I|9=""&&t)&L >"L&N 	&e&8&8$ 	<$ 	<6:	< >=s   *C
Cc                     Sn[        [        US9   [        R                  R	                  / SQSS9  S S S 5        g ! , (       d  f       g = f)Nz; Maximum likelihood estimation with 'halflogistic' requiresr  )r   rj   r   r   r   )assert_raisesr    r6   r  r   r[   r,   s     r0   test_fit_bad_floc"TestHalfLogistic.test_fit_bad_flocw  s6    L<s3""91"5 433s	   !;
A	r8   N)r  r  r  r  r   r  r  r  r  r  r  r   r  r  r8   r2   r0   r  r  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   r  c                   &    \ rS rSrS rS rS rSrg)TestHalfgennormi}  c                     / SQn[         R                  R                  US5      n[         R                  R                  U5      n[	        X#5        g rX  )r6   halfgennormrl   exponr   rZ  s       r0   
test_exponTestHalfgennorm.test_expon~  s9      $$VQ/{{v&D'r2   c                     / SQn[         R                  R                  US5      n[         R                  R                  USS9n[	        X#5        g ra  )r6   r  rl   r  r   rZ  s       r0   test_halfnormTestHalfgennorm.test_halfnorm  s@      $$VQ/~~!!&!7D'r2   c                     / SQn[         R                  R                  US5      n[         R                  R                  US5      n[	        USU-  5        g )Nr  g
(?rj   )r6   r  rl   rY  r   rZ  s       r0   test_gennormTestHalfgennorm.test_gennorm  sC      $$VW5}}  1D!D&)r2   r8   N)r  r  r  r  r  r  r  r  r8   r2   r0   r  r  }  s    ((*r2   r  c                   &    \ rS rSrS rS rS rSrg)TestLaplaceasymmetrici  c                     [         R                  " / SQ5      n[        R                  R	                  US5      n[        R
                  R	                  U5      n[        X#5        g rX  )rV   r   r6   laplace_asymmetricrl   r  r   rZ  s       r0   r^  "TestLaplaceasymmetric.test_laplace  sD    )$''++FA6}}  (#r2   c                     [         R                  " / SQ5      nSnSU-  n[        R                  R	                  X5      n[        R                  R	                  XS-  -  U5      n[        XE5        g )Nr  rj   r   )rV   r   r6   r  rl   r   )r[   r[  r   kapinvr\  r]  s         r0   test_asymmetric_laplace_pdf1TestLaplaceasymmetric.test_asymmetric_laplace_pdf  s[    )$5''++F:''++F1H,=vF#r2   c           
         [         R                  " [         R                  " S5      * [         R                  " S5      /5      nSn[        R                  R                  X5      n[        R                  R                  X5      n[        R                  R                  X5      n[         R                  " SS/5      n[         R                  " SS/5      n[         R                  " SS	/5      n[        R                  R                  Xr5      n	Un
[        R                  R                  X5      nUn[        [         R                  " X4XYU45      [         R                  " XgXU45      5        g )
N   rc   rj   r`   gMbp?r  V-?r   gMb`?)rV   r   r  r6   r  rl   rt   r   r   r  r   concatenate)r[   r[  r   r\  cdf1sf1r]  cdf2sf2ppf1ppf2isf1isf2s                r0   !test_asymmetric_laplace_log_10_167TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16  s	   BFF2J;r
34''++F:''++F:&&))&8xxu&xxi()hhU|$''++D8''++C7Ct'DECt'DE	Gr2   r8   N)r  r  r  r  r^  r  r  r  r8   r2   r0   r  r    s    $$Gr2   r  c                      \ rS rSrS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r	S r
S	 rS
 rS rS rS rS r/ SQ/ SQ/ SQ/ SQS\R$                  SSSS/\R$                  * SSSSS// SQ/ SQ/ SQ/	r\R(                  " \5      r\R                  R                  S\5      S 5       rS rS  rS! rS" rS# rS$ rS%rg&)'TestTruncnormi  c                 L    [         R                  R                  S5      U l        g )Nl   A$ rU   rZ   s    r0   r\   TestTruncnorm.setup_method  r^   r2   	a, b, ref))r   rd   r  )333333?ffffff?gܲl)r  g>g+c                 T    [        [        R                  R                  X5      USS9  g N绽|=r   r   r6   	truncnormr>   r[   r.   r/   r  s       r0   r  TestTruncnorm.test_entropy  s    $ 	//5sGr2   ))r  r  ghiɮ9?)r  r  r  )g0.+r  r  )}Ô%Ir  Z_2?c                 T    [        [        R                  R                  X5      USS9  g r  r  r  s       r0   test_extreme_entropy"TestTruncnorm.test_extreme_entropy  s      	//5sGr2   c           	          [         R                  R                  / SQSSS/S-  SS9n[        R                  " [        R
                  SS	SS
S[        R
                  /5      n[        X5        g )Nr   r   r  r   H.?r   rj   r  rc  r      rj   rg   r   fO?l@r   )r6   r  r   rV   r   r)  r   r?  s      r0   test_ppf_ticket1131!TestTruncnorm.test_ppf_ticket1131  Z    ""#EsB()s1uA # 788RVVQ
Az1bffMN!$1r2   c           	          [         R                  R                  / SQSSS/S-  SS9n[        R                  " [        R
                  SS	SS
S[        R
                  /5      n[        X5        g )Nr  r  rc  r   r  rj   rg   r   r  r  r   )r6   r  r  rV   r   r)  r   r?  s      r0   test_isf_ticket1131!TestTruncnorm.test_isf_ticket1131  r  r2   c           	         Su  p[         R                  R                  XSSSU R                  S9n[	        XR                  5       s=:  =(       a     UR                  5       s=:  =(       a    U:  Os  5        Su  p[         R                  R                  XSSSU R                  S9n[	        XR                  5       s=:  =(       a%    UR                  5       s=:  =(       a
    U:  5        g s  5        g )N)ir  r   r   rc   r   )rc      r6   r  r   rY   r	   minr+  r[   lowhighrb   s       r0   test_gh_2477_small_values'TestTruncnorm.test_gh_2477_small_values  s    	OO1abtxxPeeg....$./	OO1abtxxPeeg....$././r2   c           	         Su  p[         R                  R                  XSSSU R                  S9n[	        XR                  5       s=:*  =(       a     UR                  5       s=:*  =(       a    U:*  Os  5      [        XU/5      4  Su  p[         R                  R                  XSSSU R                  S9n[	        XR                  5       s=:  =(       a     UR                  5       s=:  =(       a    U:  Os  5        Su  p[         R                  R                  XSSSU R                  S9n[	        XR                  5       s=:  =(       a     UR                  5       s=:  =(       a    U:  Os  5        Su  p[         R                  R                  XSSSU R                  S9n[	        XR                  5       s=:  =(       a%    UR                  5       s=:  =(       a
    U:  5        g s  5        g )	N)rd   ra   r   r   rc   r   )r     )'  i'  )i)r6   r  r   rY   r	   r  r+  rA   r  s       r0   test_gh_2477_large_values'TestTruncnorm.test_gh_2477_large_values  s\   	OO1abtxxPuuw11!%%'11T12CA4GG 	OO1abtxxPeeg....$./ 	OO1abtxxPeeg....$./"	OO1abtxxPeeg....$././r2   c                    SS/SS/4 GH  u  p[         R                  " [         R                  * X[         R                  /5      nX!-   S-  n[        R                  R                  X1U5      n[        R                  R                  X1U5      n[        R                  R                  X1U5      n[         R                  " / SQ5      n[         R                  " / SQ5      n	[         R                  " / SQ5      n
US	:  a  [         R                  " / S
Q5      n
[        XX5        [        Xi5        [        Xz5        [        [         R                  " U
S   U
S   -  5      US-   5        [         R                  " / SQ5      n[        R                  R                  XU5      n[         R                  " U[         R                  " U5      S-  U/5      n[        X5        US	:  aU  [        [        R                  R                  XAU5      S5        [        [        R                  R                  XAU5      S5        OT[        [        R                  R                  XAU5      S5        [        [        R                  R                  XAU5      S5        [        R                  R                  XAU5      n[        [         R                  " XS   -  5      US-   S-  5        GM     g )Nr   r   r  r   r   r   r   r   rc  rc  r   r   )r   d._MT
@BKg?r   r   )r   r,  r+  r   r   rj   r   r   r   rc  gĖy	@gdv*?g,mj%V?r  )rV   r   r*  r6   r  rt   r   rl   r   r  r   r   )r[   r  r  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsrl   s                  r0   test_gh_9403_nontail_values)TestTruncnorm.test_gh_9403_nontail_values
  s   a&2r(+ICHHrvvgs"&&9:EHc>D??&&u48D//$$U6C??&&u48DHH\2M88$89LHH%ABMQw ")E F424}Q'7a8H'H I #c	+HH]+E??&&u48DHHc2773<	+A4%HIM4Qw#EOO$6$6t$$G$68#EOO$7$74$H$68 $EOO$7$74$H$68#EOO$6$6t$$G$68//%%d6Cs+;'; <tDy!mLA ,r2   c           	         SS/SS/4 GH  u  p[         R                  " [         R                  * X[         R                  /5      nX!-   S-  n[        R                  R                  X1U5      n[        R                  R                  X1U5      n[        R                  R                  X1U5      n[         R                  " / SQ5      n[         R                  " / SQ5      n	[         R                  " / SQ5      n
US	:  a  [         R                  " / S
Q5      n
[        XX5        [        Xi5        [        Xz5        [        [         R                  " U
S   U
S   -  5      US-   5        [         R                  " / SQ5      n[        R                  R                  XU5      n[         R                  " U[         R                  " U5      S-  U/5      n[        X5        [        R                  R                  XU5      n[        X[5        US	:  aU  [        [        R                  R                  XAU5      S5        [        [        R                  R                  XAU5      S5        OT[        [        R                  R                  XAU5      S5        [        [        R                  R                  XAU5      S5        [        R                  R                  XAU5      n[        [         R                  " XS   -  5      US-   S-  5        [         R                  " XS5      nUS S S2   * n[        [        R                  R                  X1U5      [        R                  R                  X* U* 5      S S S2   5        [        [        R                  R                  X1U5      [        R                  R                  X* U* 5      S S S2   5        [        [        R                  R                  X1U5      [        R                  R                  X* U* 5      S S S2   5        GM     g )N'   r  ir   r)  r*  )r   pGC@Ff<r   r   )r   r?  r>  r   r   rj   r   r-  gEC@g i?gspXio)>r  r  r   )rV   r   r*  r6   r  rt   r   rl   r   r  r   r   rh  )r[   r  r  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  rl   xvals2s                   r0   test_gh_9403_medium_tail_values-TestTruncnorm.test_gh_9403_medium_tail_values-  s   r(S#J/ICHHrvvgs"&&9:EHc>D??&&u48D//$$U6C??&&u48DHH\2M88$89LHH%KLMQw " *= !>424}Q'7a8H'H I #c	+HH]+E??&&u48DHHc2773<+CT%JKM4??&&t$7D,Qw#EOO$6$6t$$G$68#EOO$7$74$H$9; $EOO$7$74$H$68#EOO$6$6t$$G$9;//%%d6Cs+;'; <tDy!mLKK2.EDbDk\F 3 3E E % 2 2653$ G" MO 2 25t D % 3 3FEC4 H2 NP 3 3E E % 3 3FEC4 H2 NPW 0r2   c                     [        [        R                  " SS5      R                  S5      S5        [        [        R                  " S[        R
                  5      R                  S5      S5        g )Ng      *@      .@      ,@g T?r  g @gR?)r   r6   r  rt   rV   r*  rZ   s    r0   test_cdf_tail_15110_14753'TestTruncnorm.test_cdf_tail_15110_14753\  sN    
 	S155c:*	,266266s;*	,r2   )rH  r   rc  r   r   )r  rc   r   rc  r   gLFu)r(  r   r   gMFmz%?r   gſ)r  rj   r   ghI}?r   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r   r   gU*? bn?gnA??c3TXʿ)r(  r   gU*ҿrI  gnArJ  )r  g"$7"gOxr?gp7`g'>K@casec                 p    Uu  p#pEpg[         R                  R                  X#SS9u  pp[        XX/XEXg/SS9  g )Nr  r  FFg<r   )r6   r  r   )r[   rL  r.   r/   m0v0s0k0r  vrD   r_   s               r0   rV  TestTruncnorm.test_moments  s@    #bb__**1*@
aqrr&6UCr2   c                     [         R                  R                  S[        R                  SS9u  p[	        US5        [	        US5        g )Nr   mvr  g e3E?g:&A?)r6   r  rV   r*  r   )r[   r  rS  s      r0   test_9902_momentsTestTruncnorm.test_9902_moments  s7    $$Q$=Az*Az*r2   c           	          Su  p[         R                  R                  XSSSU R                  S9n[	        XR                  5       s=:  =(       a%    UR                  5       s=:  =(       a
    U:  5        g s  5        g )N)rc   rL  r   r   rc   r   r  r  s       r0   test_gh_1489_trac_962_rvs'TestTruncnorm.test_gh_1489_trac_962_rvs  sY    	OO1abtxxPeeg....$././r2   c                 V   SS[         R                  * S[         R                  * [         R                  * SSSSS/nSSS[         R                  SSSSS	[         R                  [         R                  /n[        R                  R	                  XS[        U5      4U R                  S
9n[         R                  " U5      S[        U5      4:X  d   e[        [         R                  " XR                  SS9:*  5      5        [        [         R                  " UR                  SS9U:*  5      5        g )Nr  rc   r  ir  r  r   r=  -   r   r   )axis)rV   r*  r6   r  r   r"  rY   rO  r	   r   r  r+  r  s       r0   test_gh_11299_rvsTestTruncnorm.test_gh_11299_rvs  s     BbffWrvvgsCS"MB2662sBRHOOCHDHHUxx{q#c(m+++seeem+,-quu!u},-.r2   c                     [        [        R                  S5      (       a+  [        R                  R                  SSSU R                  S9  g g )NrX   r  r  r   r   )r-   rV   rW   r6   r  r   rY   rZ   s    r0   test_rvs_Generator TestTruncnorm.test_rvs_Generator  s7    299m,,OORadhhG -r2   c                    [         R                  " [         R                  * [         R                  * S[         R                  * S/5      n[         R                  " [         R                  [         R                  SS[         R                  /5      n[         R                  " / SQ5      n/ SQn[        [        R
                  " X5      R                  U5      U5        [        [        R
                  " U* U* 5      R                  U* 5      U5        g )Nrc   r  )rc         @rf  	   rA  )gOul"gځ=!gL!g>EG	f g^K[X)rV   r   r*  r   r6   r  r  r  )r[   r.   r/   rb   rO   s        r0   test_logcdf_gh17064!TestTruncnorm.test_logcdf_gh17064  s    HHrvvgwRVVGR89HHbffbffaRVV45HH*++ 	-44Q7BQB/55qb98Dr2   c                 j    [         R                  " SS5      R                  S5      nSn[        X5        g )Nr  r   r   gl).0S?)r6   r  r  r   )r[   r   r  s      r0   test_moments_gh18634"TestTruncnorm.test_moments_gh18634  s.     oob!$++A.  !r2   r  N)r  r  r  r  r\   r   r  r  r  r
  r  r  r  r%  r9  rA  rF  rV   r*  _truncnorm_stats_datar   rV  rW  rZ  r_  rb  rh  rk  r  r8   r2   r0   r  r    sH   5 [[[BCH	CH  [[[DE
HE
H2200&!MF-P^,		1	=	<	
BFF						
 &&!						
	
	
	;"F HH%:;[[V%:;D <D
+
0/H
	E"r2   r  c                      \ rS rSr\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQ5      S 5       r\R
                  R                  SS	S
/5      S 5       r	\R
                  R                  SSS/5      S 5       r
\R
                  R                  SSS/5      S 5       r\R
                  R                  SSS/5      S 5       rSrg)TestGenLogistici  x, expected))ig4`n)ig4	ncg)r   gX
=)rd   gh@X)r   gh<c                 Z    Sn[         R                  R                  X5      n[        XBSS9  g )Nr  r   r   )r6   genlogisticr   r   )r[   rb   rO   r  r  s        r0   r  TestGenLogistic.test_logpdf  s)       ''-U3r2   r  ))r  gTKEl@)r  gJk$@)r   gsF<?)r  7~F<?c                 T    [        [        R                  R                  U5      USS9  g r  )r   r6   rr  r>   r  s      r0   r  TestGenLogistic.test_entropy  s!    
 	))11!4cFr2   r  )r  rc   g8.)  rA  gpT	oc                 T    [        [        R                  R                  X5      USS9  g r  )r   r6   rr  r   r  s       r0   r  TestGenLogistic.test_sf  s!     	)),,Q2CeDr2   	q, c, ref)r   r  g^ #@)rG  rj   gGFf@c                 T    [        [        R                  R                  X5      USS9  g NV瞯<r   )r   r6   rr  r  r[   r  r  r  s       r0   r  TestGenLogistic.test_isf  !     	))--a3SuEr2   )r   r  gİ@)r  rA  g1a@c                 T    [        [        R                  R                  X5      USS9  g r|  )r   r6   rr  r   r~  s       r0   r  TestGenLogistic.test_ppf  r  r2   )rd   {Gz?g(?)rJ  rA  g'Tn7c                 T    [        [        R                  R                  X5      USS9  g r   )r   r6   rr  r  r  s       r0   r  TestGenLogistic.test_logcdf  s!     	))006%Hr2   r8   N)r  r  r  r  r   r  r  r  r  r  r  r  r  r  r8   r2   r0   ro  ro    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   ro  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS r\R                  R                   S 5       rSrg)TestHypergeomi  c                 L    [         R                  R                  S5      U l        g )Ni~<irU   rZ   s    r0   r\   TestHypergeom.setup_method  r^   r2   c                    [         R                  R                  SSSSU R                  S9n[        R
                  " US:  5      [        R
                  " US:*  5      -  (       d   e[        R                  " U5      S:X  d   eUR                  R                  [        S   ;   d   e[         R                  R                  SSSU R                  S9n[        U[        5      (       d   e[         R                  " SSS5      R                  SU R                  S9n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   eg )	NrA  rc   r   rI  r   r   rK  r   )r6   	hypergeomr   rY   rV   r   rO  r   rP  r   rQ  rt  ru  rT  s      r0   rW  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                 t    SnSnSnUnUn[         R                  R                  SXEU5      n[        USS5        g )Ni	  rJ  rw  rj   gkㅒP?r  )r6   r  r^  r   )r[   Mr  r_  totgoodhgpmfs          r0   test_precisionTestHypergeom.test_precision  s@    ##As!4E#8"=r2   c                 l   [        [        R                  R                  SSSS5      SS5        [        [        R                  R                  SSSS5      SS5        [        [        R                  R                  SSSS5      SS5        [        [        R                  R                  SSSS5      SS5        g )Nr   rj   r   rc  r  r   )r   r6   r  r^  rZ   s    r0   	test_argsTestHypergeom.test_args  s     	EOO//1a;S"EEOO//1a;S"EEOO//1a;S"EEOO//1a;S"Er2   c           	          [        S[        R                  R                  SSSS5      s=:*  =(       a
    S:*  5        g s  5        g )Nr   rH  io i  if0  rc  )r	   r6   r  rt   rZ   s    r0   test_cdf_above_one TestHypergeom.test_cdf_above_one&  s2    U__((XtUCJJsJKJKr2   c           	      j   SnSn[         R                  " / SQ5      S-  nSnU Vs/ s H&  n[        R                  R	                  XAU-   X5      PM(     nn[         R                  " / SQ5      n[        XgSSS	9  / S
Qn[        R                  R	                  XU-   US5      n	/ SQn
[        XSSS	9  g s  snf )Ng    +@g     @)r   ffffff@333333@r   gffffff@@r        @     @)r   gpR(g㘍R2gJޱ p9g?Mf=
G?r   r   gƠ>r  )g     @r  g     @g     @g     @)r   r  g)9g"1)rV   r   r6   r  r   r   )r[   orangespearsfruits_eatenquantileeatenr   rO   	quantilesr`  	expected2s              r0   test_precision2TestHypergeom.test_precision2*  s     xx =>D(*(5 !!(eOWL( 	 *88 9 :AD9 0	!!)u_guM>	ad;*s   -B0c                 B   [         R                  " SSS5      nUR                  5       n[        R                  " SS/5      n[        R
                  " [        X35      5      * n[        X$5        [         R                  " SSS5      nUR                  5       n[        US5        g )Nr   r   r   r  r   )	r6   r  r>   rV   r   r  r   r   r   )r[   hgr  r  r  s        r0   r  TestHypergeom.test_entropy=  sv    __Q1%JJLXXtTl+
ffU::;;
&__Q1%JJLQr2   c                     SnSnSnSn[         R                  R                  XX45      nSn[        XVSS9  SnS	nS
nSn[         R                  R                  XX45      nSn[        XVSS9  g )Nr      cA    .A     j@gor   rf  r   @  X  r  g_7	j$rL  )r6   r  r  r   r[   r_   r  r  r_  resultrO   s          r0   r  TestHypergeom.test_logsfI  sv     &&qQ2Fa8&&qQ2 Fb9r2   c                    SnSnSnSn[         R                  R                  XX45      nSn[        XVSS9  SnS	nS
nSn[         R                  R                  XX45      nSn[        XVSS9  SnS	nSnSn[         R                  R                  XX45      nSn[        XVSS9  [        R
                  " / SQ5      nS	nS
nSn[         R                  R                  XX45      n[        R                  " SS5      n[        XVSS9  g )Nr   r  r  r  g)\Ur   rf  r  r  rJ  r  g*@VrL  }      rw  gר)r  r  r  )r6   r  r  r   rV   r   fullr  s          r0   r  TestHypergeom.test_logcdfa  s    ''a3Fa8 ''a3&Fb9''a3 Fb9
 HH\"''a377112Fb9r2   c                 t    SnSnSn[         R                  R                  XU5      nX!-  U-  n[        XE5        g )Nip iP i.  )r6   r  r   r   )r[   r  r  r_  hmrms         r0   test_mean_gh18511TestHypergeom.test_mean_gh18511  s<     __!!!*UQYr2   c                 4   SnSn[         R                  " SS5      nSU-  n[        R                  R	                  US-
  XBU5      n[         R
                  " US:  5      (       d   e[         R
                  " [         R                  " U5      S:  5      (       d   eg )Nrc   r   r   rL  r  r   r   )rV   r&  r6   r  r   r   diff)r[   r  r_  r  population_sizer  s         r0   test_sf_gh18506TestHypergeom.test_sf_gh18506  sz     IIaq&OOq1uo!<vva!e}}}vvbggaj1n%%%%r2   r  N)r  r  r  r  r\   rW  r  r  r  r  r  r  r  r  r   r  r	  r  r  r8   r2   r0   r  r    sU    5	9>FL<&
:0,:\	  [[	& 	&r2   r  c                   R   \ rS rSrS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r	S	 r
S
 rS rS r\R                  R                  SSS/5      S 5       r\R                  R                  S/ SQ5      S 5       rSrg)TestLoggammai  c                 L    [         R                  R                  S5      U l        g )Nl   L rU   rZ   s    r0   r\   TestLoggamma.setup_method  r^   r2   z	x, c, cdf))r   rj   g;Y%?)r      gRٲa6_<)gHrG  gi|e?)rG  g6l?)i+r`   g֬CCf9)ir   g ֺlc                     [         R                  R                  X5      n[        XCSS9  [         R                  R	                  X25      n[        XQSS9  g r   )r6   loggammart   r   r   )r[   rb   r  rt   r  ys         r0   r  TestLoggamma.test_cdf_ppf  s@     NNq$U+NNs&5)r2   zx, c, sf))r   r  gQOu3;)   rd   g\Z{0)r  rG  geɐ?)ig{Gzd?gr0T?c                     [         R                  R                  X5      n[        XCSS9  [         R                  R	                  X25      n[        XQSS9  g r   )r6   r  r   r   r  )r[   rb   r  r   rD   r  s         r0   ry  TestLoggamma.test_sf_isf  s@     NNa#E*NNr%5)r2   c                 Z    [         R                  R                  SS5      n[        USSS9  g )Nrj   g     @r  r   )r6   r  r   r   )r[   lps     r0   r  TestLoggamma.test_logpdf  s&    
 ^^""4+G%0r2   c                 b    SnSn[         R                  R                  X5      nSn[        X4SS9  g )Nr?        @gI.r  r   )r6   r  r  r   )r[   rb   r  r  r  s        r0   r  TestLoggamma.test_logcdf  s/    &&q,%%0r2   c                 b    SnSn[         R                  R                  X5      nSn[        X4SS9  g )Ng      9      @g!{1+ҷr  r   )r6   r  r  r   )r[   rb   r  r  r  s        r0   r  TestLoggamma.test_logsf  s/    $$Q*#/r2   c                     [         R                  " / SQ5      R                  SS5      nU H2  u  p#pEn[        R                  R                  USS9n[        XsXEU/SS9  M4     g )N)r   g"~jg46<@g oŏr?  rc  g	h"lxgQ?gZd;333333@r=  g{/L@g??gгYҿgh|?5?r   r   msvkr  r   rf  )rV   r   reshaper6   r  r   )r[   tabler  r   varskewkurtcomputeds           r0   r  TestLoggamma.test_stats  sg       
 wr1~ 	 ).$AS~~++Av+>H%hs$0G./1 ).r2   r  r`   rG  c                    [         R                  R                  USU R                  S9n[        R
                  " U5      R                  5       (       d   e[         R                  R                  U5      n[         R                  " [        R                  " X#:  5      [        U5      5      nUR                  SS9nUR                  Ss=:  a  UR                  :  d   e   eg )Nr   r   r  )confidence_levelr   )r6   r  r   rY   rV   isfiniter   median	binomtestcount_nonzeror"  proportion_cir  r  )r[   r  rb   medbtestcis         r0   rW  TestLoggamma.test_rvs  s     NNqvDHHE {{1~!!#### nn##A& 0 0 93q6B  % 8vv%bgg%%%%%r2   r  ))r  g3H໱k3@)r   rt  )r  g8,[H^}	)r  g90$)r  gtum\c                 T    [        [        R                  R                  U5      USS9  g r  )r   r6   r  r>   r  s      r0   r  TestLoggamma.test_entropy	  s     	..q13UCr2   r  N)r  r  r  r  r\   r   r  r  r  ry  r  r  r  r  rW  r  r  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                   `    \ rS rSr/ SQr\R                  R                  S\5      S 5       rSr	g)TestJohnsonsui	  ))r  r   r   g?r  )r   r   r   gH';vIh%,=)r   r   r   g?x7r  rL  c                     Uu  p#pEn[        [        R                  R                  X#U5      USS9  [        [        R                  R	                  XSU5      X&S9  g Nr  r   )r   r6   	johnsonsur   r  r[   rL  rb   r.   r/   r   tols          r0   ry  TestJohnsonsu.test_sf_isf#	  F    aS**13ReD++B15qCr2   r8   N
r  r  r  r  casesr   r  r  ry  r  r8   r2   r0   r  r  	  s0    ;E [[VU+D ,Dr2   r  c                   `    \ rS rSr/ SQr\R                  R                  S\5      S 5       rSr	g)TestJohnsonbi*	  ))r  r   r   r  rZ  )r  r   r   g0jA:r  )r  r   r   gQbF5r  rL  c                     Uu  p#pEn[        [        R                  R                  X#U5      USS9  [        [        R                  R	                  XSU5      X&S9  g )Nr  r   r   )r   r6   r6  r   r  r  s          r0   ry  TestJohnsonb.test_sf_isf9	  r  r2   r8   Nr  r8   r2   r0   r   r   *	  s0    =E [[VU+D ,Dr2   r   c                       \ rS rSrS rS rS rS rS rS r	\
R                  R                  SS	S
/5      S 5       rS r\
R                  R                  SSS/5      S 5       rS rSrg)TestLogistici@	  c                 L    [         R                  R                  S5      U l        g )Nl   }$N rU   rZ   s    r0   r\   TestLogistic.setup_methodA	  r^   r2   c                     [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[        X5        g Nr  rA  )rV   rh  r6   logisticrt   r   r   r[   rb   r  r  s       r0   r  TestLogistic.test_cdf_ppfE	  sB    KKR NNq!^^"r2   c                     [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[        X5        g r  )rV   rh  r6   r	  r   r  r   r
  s       r0   ry  TestLogistic.test_sf_isfK	  sB    KKR NNa ^^"r2   c                     SnSn[        [        R                  R                  SU-
  5      U5        [        [        R                  R	                  U5      U5        g )Ng      <gg|EA@r   )r   r6   r	  r   r  )r[   r  desireds      r0   test_extreme_values TestLogistic.test_extreme_valuesQ	  sB    !#**1q517;**1-w7r2   c                 b    [         R                  R                  / SQ5      n/ SQn[        XSS9  g )N)r  r   rc   )gm\  .g9B.gO& $r   r   )r6   r	  r   r   )r[   r  rO   s      r0   test_logpdf_basicTestLogistic.test_logpdf_basicX	  s)    ~~$$\2) 	U3r2   c                 b    [         R                  R                  SS/5      n[        USS/5        g )Nr   r  )r6   r	  r   r   r[   r  s     r0   test_logpdf_extreme_values'TestLogistic.test_logpdf_extreme_values`	  s*    ~~$$c4[1 	TD$<(r2   zloc_rvs,scale_rvs)g9x&?gi '?)gB"?gs^&?c                    [         R                  R                  SXU R                  S9nS n[	        U[         R                  R                  U5      U4S9R                  n[         R                  R                  U5      n[        XeSS9  g )Nrd   r   rh   ri   r   c                    U u  p#[        U5      n[        R                  " [        R                  " X-
  U-  5      S[        R                  " X-
  U-  5      -   -  5      US-  -
  n[        R                  " X-
  U-  [        R                  " X-
  U-  5      S-
  [        R                  " X-
  U-  5      S-   -  -  5      U-
  nXV4$ Nr   rj   )r"  rV   r  r   )inputr   r.   r/   r  x1x2s          r0   r  #TestLogistic.test_fit.<locals>.funcm	  s    DAD	AA~.RVVTXN335 689A>B$(a&&$(a014&&$(a01467 8:;<B 6Mr2   r  rH  r   )	r6   r	  r   rY   r"   	_fitstartrb   r   r   )r[   loc_rvs	scale_rvsr   r  expected_solution
fit_methods          r0   test_fitTestLogistic.test_fitf	  s}     ~~!!s/3xx " 9	 !u~~'?'?'EM A 	^^''-
 	
EBr2   c                     [         R                  R                  SSSU R                  S9n[	        [         R                  U5        [	        [         R                  USS9  [	        [         R                  USS9  g )Nrd   r   rj   r  r   r   r   )r6   r	  r   rY   r   r[   r   s     r0   test_fit_comp_optimizer$TestLogistic.test_fit_comp_optimizer	  sQ    ~~!!s1488!T%ennd;%enndC%ennd1Er2   
testlogcdfTFc                     [         R                  " / SQ5      nU(       a   [        R                  R	                  U5      nO [        R                  R                  U* 5      n/ SQn[        X4SS9  g )N)r$  r     rJ  rw  )     g      g%h9fg?~T}%mgCx^&ْV瞯<r   )rV   r   r6   r	  r  r  r   )r[   r-  rb   r  rO   s        r0   test_logcdfsf_tails TestLogistic.test_logcdfsf_tails	  sR     HH01%%a(A$$aR(AF%0r2   c                     [         R                  " / SQS/S-  -   S/S-  -   5      n[        [        R                  U5        g )N)	i5%   +   r]  r]  0   6   7   :   ;   r   =   rg  )rV   r   r   r6   r	  r*  s     r0   test_fit_gh_18176TestLogistic.test_fit_gh_18176	  sA     xx>$(#&(TAX. / 	&ennd;r2   r  N)r  r  r  r  r\   r  ry  r  r  r  r   r  r  r&  r+  r2  r=  r  r8   r2   r0   r  r  @	  s    584) [[03J3K3M NCNC.F [[\D%=91 :1<r2   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	
TestLogseri	  c                 L    [         R                  R                  S5      U l        g )Ni5-rU   rZ   s    r0   r\   TestLogser.setup_method	      99((3r2   c                 v   [         R                  R                  SSU R                  S9n[        R
                  " US:  5      (       d   e[        R                  " U5      S:X  d   eUR                  R                  [        S   ;   d   e[         R                  R                  SU R                  S9n[        U[        5      (       d   e[         R                  " S5      R                  SU R                  S9n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   eg )Nr   rI  r   r   rK  r   r   )r6   logserr   rY   rV   r   rO  r   rP  r   rQ  rt  ru  rT  s      r0   rW  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                 \    [         R                  R                  SS5      n[        US5        g )Nr   r  g&Y3)r6   rE  r^  r   r[   r  s     r0   test_pmf_small_pTestLogser.test_pmf_small_p	  s$    LLQ& 	7#r2   c                 Z    [         R                  R                  S5      n[        US5        g )Nr  gW  ?)r6   rE  r   r   rH  s     r0   test_mean_small_pTestLogser.test_mean_small_p	  s"    LLd# 	;'r2   c                     S/S/S//n/ SQn/ SQ/ SQ/ SQ/n[         R                  R                  X!5      n[        R                  R                  XCSS	9  g )
Nr   r  wJ?)r   rc   rd   r   )g5q?gD,t"?g02L9g@Y	 )g%Lӷ>gU5r   r   )g0gu8?g+?g㳒?g,nq?gYnr   )r6   rE  r   rV   testingr   )r[   r  r_   r  r   s        r0   r  TestLogser.test_sf	  sY    UTFXJ'A@89
 llooa#


""3&"9r2   r  N)
r  r  r  r  r\   rW  rI  rL  r  r  r8   r2   r0   r@  r@  	  s    4	9$(:r2   r@  c            	          \ rS rSr\R
                  " SS9S 5       r\R                  R                  S\	R                  \	R                  /5      \R                  R                  S/ SQ5      \R                  R                  S/ S	Q5      \R                  R                  S
SS/SS/45      S 5       5       5       5       r\R                  R                  S\	R                  S4\	R                  S4/5      S 5       rSrg)TestGumbel_r_li	  functionscopec                 @    [         R                  R                  S5      $ Nr  rV   rW   rX   rZ   s    r0   rY   TestGumbel_r_l.rng	      yy$$T**r2   rK   r"  r   r   r   r#  r`   r   r   zfix_loc, fix_scaleTFc                     UR                  SX#US9n[        5       nU(       a  US-  US'   U(       a  US-  US'   [        X40 UD6  g )Nrd   r  rj   r   r   )r   r$  r   )	r[   rK   r"  r#  r   r  rY   r   r   s	            r0   r+  &TestGumbel_r_l.test_fit_comp_optimizer	  sX     xxSg%(  * v "Q;DL&]DN 	&d9D9r2   z	dist, sgnr   r   c                     U[         R                  " / SQ5      -  nUR                  U5      u  pE[        XBS-  5        [        USSS9  g )N)r   r   r   r   r   r   r   gW  @g   @g3qtw>r  r   )rV   r   r   r   )r[   rK   r  zrh   ri   s         r0   r&  TestGumbel_r_l.test_fit	  sD     :;;XXa[
 	!3345DAr2   r8   N)r  r  r  r  r   fixturerY   r  r  r6   gumbel_rgumbel_lr+  r&  r  r8   r2   r0   rS  rS  	  s    ^^*%+ &+ [[Vennenn%EF[[Y
3[[[*5[[1#UmeT];=:= 6 4 G
:  [[[ENNA+>,1NNB+?+A BBBBr2   rS  c                      \ rS rSrS rS r\R                  R                  S5      \R                  R                  SSS/5      \R                  R                  SS	S/5      \R                  R                  S
SS/5      S 5       5       5       5       r
\R                  R                  SSS/5      \R                  R                  SS	S/5      \R                  R                  S
SS/5      \R                  R                  S\" SS/SS9 V Vs/ s H  nSU;   d  M  UPM     snn 5      \R                  " SS9S 5       5       5       5       5       r\R                  " SS9S 5       rS rS rSrgs  snn f )
TestParetoi	  c                 	   [         R                  " 5          [         R                  " S[        5        [        R
                  R	                  SSS9u  pp4[        U[        R                  5        [        U[        R                  5        [        U[        R                  5        [        U[        R                  5        [        R
                  R	                  SSS9u  pp4[        U[        R                  5        [        U[        R                  5        [        U[        R                  5        [        U[        R                  5        [        R
                  R	                  SSS9u  pp4[        US5        [        U[        R                  5        [        U[        R                  5        [        U[        R                  5        [        R
                  R	                  SSS9u  pp4[        US5        [        U[        R                  5        [        U[        R                  5        [        U[        R                  5        [        R
                  R	                  S	SS9u  pp4[        US
5        [        US5        [        U[        R                  5        [        U[        R                  5        [        R
                  R	                  SSS9u  pp4[        US5        [        US5        [        U[        R                  5        [        U[        R                  5        [        R
                  R	                  SSS9u  pp4[        US5        [        US5        [        US[        R                  " S5      -  5        [        U[        R                  5        [        R
                  R	                  SSS9u  pp4[        US5        [        US5        [        US[        R                  " S5      -  5        [        U[        R                  5        [        R
                  R	                  SSS9u  pp4[        US5        [        US5        [        US[        R                  " S5      -  5        [        US5        S S S 5        g ! , (       d  f       g = f)Nr  r   r  r  rc  r  r  r   r  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@)r  r  r  r  r6   paretor   rV   r*  r)  r   r  r[   r  rS  rD   r_   s        r0   r  TestPareto.test_stats	  s    $$&!!'>:++C+@JA!BFF#BFF#BFF#BFF#++C+@JA!BFF#BFF#BFF#BFF#++C+@JA!C BFF#BFF#BFF#++C+@JA!C BFF#BFF#BFF#++C+@JA!Ay)A23BFF#BFF#++C+@JA!As#At$BFF#BFF#++C+@JA!Ay)A23A	2777+;;<BFF#++C+@JA!Ay)Az*A0277;3GGHBFF#++C+@JA!Ay)A23A	RWWW-==>ALMo '&&s   QQ11
Q?c                 r    SnSnSn[         R                  R                  XSUS9nX1-  U-  n[        XE5        g )N    eArj   r  r   rg   )r6   rj  r   r   )r[   rb   r/   ri   r  rO   s         r0   r  TestPareto.test_sf4
  s<    LLOOAauO5Ga<$r2   z2ignore:invalid value encountered in double_scalarsr   r   rj   r   r   r  r   c                    [         R                  R                  S5      n[        R                  R                  SXX$S9n[        R                  R                  USSS9S   n[        R                  R                  USSS9S   n[        R                  R                  USSS9S   nXgs=:X  a  Us=:X  a  S:X  d   e   e[        R                  R                  SXUS	-   US9n[        R                  R                  US	S
9u  pn[        US	-   UR                  5       5        US	-
  nUR                  S   n[        U	U[         R                  " [         R                  " XR                  5       -  5      5      -  5        [        U
S	5        g )Nr  rd   r   r/   ri   rh   r   r   p=
ף?)r   r   )r   fix_b)r   fbrj   r   )rV   rW   rX   r6   rj  r   r   r   r  rO  r  r  )r[   r   r   r  rY   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r0   r&  TestPareto.test_fit<
  sv    ii##D)||SI$+   ? !& 0 0A$ 0 G J % 0 0AT 0 J1 M % 0 0A$ 0 G J% .%.)-. 	/ . 	/ . ||SI%,q[   E.3ll.>.>t!.>.L+[1_dhhj1AX
  #[RVVBFF:nn6F+F$GHH	JY"r2   r`   fix_shape, fix_loc, fix_scaleTFr   repeatignoreinvalidc                     [         R                  R                  S5      n[        R                  R                  SXX'S9n0 n	U(       a  XS'   U(       a  X)S'   U(       a  X9S'   [        [        R                  U40 U	D6  g )Nr  rd   rq  r   r   r   )rV   rW   rX   r6   rj  r   r   
r[   r   r   r  r   r   r  rY   r   r   s
             r0   r   &TestPareto.test_fit_MLE_comp_optimizerY
  sp     ii##D)||SI$+   ? "J"L&N%ellDADAr2   c           	          Su  pn[         R                  R                  XUS[        R                  R                  S5      S9n[        [         R                  U5        g )N)r   r   r   rd   ið& r   )r6   rj  r   rV   rW   rX   r   )r[   rO  locationri   r   s        r0   test_fit_known_bad_seed"TestPareto.test_fit_known_bad_seedp
  sN    
 ")||S-/YY-B-B7-K   M%ellD9r2   c                     [        [        R                  5        [        [        [        R                  R
                  / SQSS9  [        [        [        R                  R
                  / SQSSS9  g )Nr  rj   r   )r   rj   r   r   r   r  )r/  r6   rj  r  r    r   rZ   s    r0   test_fit_warningsTestPareto.test_fit_warningsz
  sC    ELL)lELL$4$4iaHlELL$4$4ia	 r2   c                     [         R                  R                  S5      n[        R                  R                  SSSUS9n[        US5        [        R                  R                  U5      ng )Nr  i~r   rd   )rh   r/   r   r   r   )rV   rW   rX   r6   rj  r   r
   r   )r[   rY   r   r   s       r0   test_negative_dataTestPareto.test_negative_data
  sS    ii##D)||DACcJ$"
 LLT"r2   r8   N)r  r  r  r  r  r  r   r  filterwarningsr  r&  r%   rV   errstater   r  r  r  r  .0r  s   00r0   rg  rg  	  sy   :Nx% [[ !1 2[[[1a&1[[YA/[[[1a&1# 2 0 22
#0 [[[2q'2[[YA/[[[1a&1[[<)0$q)I -)IA!&!  )I -. [["B #. 2 0 3B  [[": #: #K-s   

E*E*rg  c                   $   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 r\R                  R                  SS/ SQ4SSSS\R"                  " S5      -  \R$                  /4SSSS\R"                  " S5      -  S/4S/ SQ4/5      S 5       rS rSrg)TestGenparetoi
  c                 f   S He  n[         R                  " U5      n[        R                  R	                  U5      u  p#[        US5        [        [         R                  " U5      5        Mg     [         R                  " S5      n[        R                  R	                  U5      u  p#[        X#/SS/5        g )Nrc  r   r          r   )	rV   r   r6   	genpareto_get_supportr   r	   isposinfr   )r[   r  r.   r/   s       r0   test_abTestGenpareto.test_ab
  s~    A

1A??//2DABBKKN#	  JJsO++A.S	*r2   c                 L   [         R                  " SS9n[        R                  " SSS5      n[	        UR                  U5      [         R                  R                  U5      5        [	        UR                  U5      [         R                  R                  U5      5        [	        UR                  U5      [         R                  R                  U5      5        [        R                  " SSS5      n[	        UR                  U5      [         R                  R                  U5      5        g )Nr   r  r   r  rH  rc  rc   )
r6   r  rV   rh  r   rl   r  rt   r   r   r[   rvrb   r  s       r0   test_c0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                    [         R                  " SS9n[        R                  " SSS5      n[	        UR                  U5      [         R                  R                  U5      5        [	        UR                  U5      [         R                  R                  U5      5        [	        UR                  U5      [         R                  R                  U5      5        [        R                  " SSS5      n[	        UR                  U5      [         R                  R                  U5      5        [	        UR                  S	5      S5        g )
Nr  r  r   r  rH  r   rc  rc   r   )r6   r  rV   rh  r   rl   uniformrt   r   r   r   r  s       r0   test_cm1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                    [         R                  " SS9n[        UR                  [        R
                  5      UR                  [        R
                  5      /SS/5        [        [        R                  " UR                  [        R
                  5      5      5        [         R                  " SS9n[        UR                  [        R
                  5      UR                  [        R
                  5      /SS/5        [        [        R                  " UR                  [        R
                  5      5      5        [         R                  " SS9n[        UR                  [        R
                  5      UR                  [        R
                  5      /SS/5        [        [        R                  " UR                  [        R
                  5      5      5        g )Nr`   r  r   rc  r  )
r6   r  r   rl   rV   r*  rt   r	   isneginfr   r[   r  s     r0   
test_x_infTestGenpareto.test_x_inf
  s   __s#82r(CBIIbff-./__r"82r(CBIIbff-./__s#82r(CBIIbff-./r2   c                    [         R                  " SSS5      nS H  n[        R                  R	                  X5      nS H/  n[        R                  R	                  XU-   5      n[        X5SS9  M1     [        R                  R                  X5      nS H/  n[        R                  R                  XU-   5      n[        XgSS9  M1     M     g )	Nr   rc   rH  r   r   r  g+r  r   )r  r  )rV   rh  r6   r  rl   r   rt   )r[   rb   r  pdf0dcpdfccdf0cdfcs           r0   test_c_continuityTestGenpareto.test_c_continuity
  s    KK2r"A??&&q,D%**1"f57 & ??&&q,D$**1"f57 % r2   c           
      j   [         R                  [         R                  " SSSS9[         R                  " SSSSS9S	[         R                  " SSSS9-
  4   nS
 HW  n[        R
                  R                  X5      nS H/  n[        R
                  R                  XU-   5      n[        X5SS9  M1     MY     g Nr  r   r`   baser   rH  Fendpointrc  )r   r  r  r   )rV   r\  r  rh  r6   r  r   r   )r[   r  r  ppf0r  ppfcs         r0   test_c_continuity_ppf#TestGenpareto.test_c_continuity_ppf
      EE"++eT4++dArE:r{{5$S99: ; A??&&q,D%**1"f57 & r2   c           
      j   [         R                  [         R                  " SSSS9[         R                  " SSSSS9S	[         R                  " SSSS9-
  4   nS
 HW  n[        R
                  R                  X5      nS H/  n[        R
                  R                  XU-   5      n[        X5SS9  M1     MY     g r  )rV   r\  r  rh  r6   r  r  r   )r[   r  r  isf0r  isfcs         r0   test_c_continuity_isf#TestGenpareto.test_c_continuity_isf
  r  r2   c           
      N   [         R                  [         R                  " SSSS9[         R                  " SSSSS9S	[         R                  " SSSS9-
  4   nS
 HI  n[	        [
        R                  R                  [
        R                  R                  X5      U5      USS9  MK     g )Nr  r   r`   r  r   rH  Fr  rc  )r  gC]r2r   gV瞯Ҽr   r   )	rV   r\  r  rh  r   r6   r  rt   r   )r[   r  r  s      r0   test_cdf_ppf_roundtrip$TestGenpareto.test_cdf_ppf_roundtrip
  s    EE"++eT4++dArE:r{{5$S99: ; /AEOO//0C0CA0I1ME+ /r2   c                 `    [         R                  R                  SSSS5      n[        US5        g )Nr  r   r   r   gpEȜ)r6   r  r  r   r  s     r0   r  TestGenpareto.test_logsf
  s'    $$T31512r2   zc, expected_statsr   )r   r   rj   r  r  ri  gqq@rc   rj   gqq?g      ?g$I$	?rq?r  gll0@r   )r   UUUUUU?r   333333c                 V    [         R                  R                  USS9n[        X2SSS9  g )Nr  r  r   r   rx  )r6   r  r   )r[   r  expected_statsr  s       r0   r  TestGenpareto.test_stats
  s)     &&q&&9UGr2   c                 X    [         R                  R                  S5      n[        USSS9  g )Nr  gvǼ
  ?r   r   )r6   r  r  r   )r[   rS  s     r0   test_varTestGenpareto.test_var
  s#    OO%,59r2   r8   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  rV   r  r)  r  r  r  r8   r2   r0   r  r  
  s    +
7)0888+3 [[
\	
T2bggaj="&&1	2
]T2771:$5v>	?
"	#	%&H&H:r2   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestPearson3i  c                 L    [         R                  R                  S5      U l        g )Nl   TJ rU   rZ   s    r0   r\   TestPearson3.setup_method  r^   r2   c                 X   [         R                  R                  SSU R                  S9n[        R
                  " U5      S:X  d   eUR                  R                  [        S   ;   d   e[         R                  R                  SU R                  S9n[        U[        5      (       d   e[         R                  " S5      R                  SU R                  S9n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   e[        U5      S:X  d   eg )Nr`   rI  r   AllFloatr   r   r   )r6   r)   r   rY   rV   rO  r   rP  r   rQ  r   ru  r"  rT  s      r0   rW  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                    [         R                  R                  S/ SQ5      n[        U[        R
                  " / SQ5      SS9  [         R                  R                  SS5      n[        U[        R
                  " S/5      SS9  [         R                  R                  / S	QS5      n[        U[        R
                  " / S
Q5      SS9  g )Nrj   r   r`   r  )gtT?g+q?g?r  r   r(  r`   ND}i?r(  r  r   r   r   )r  gj?gdC?gs?g'M?)r6   r)   rl   r   rV   r   r0  s     r0   r`  TestPearson3.test_pdf  s    ~~!!!_5bhh'KL!	#~~!!"c*bhh
|44@~~!!"4c:bhh (@ AGK	Mr2   c                 @   [         R                  R                  S/ SQ5      n[        U[        R
                  " / SQ5      SS9  [         R                  R                  SS5      n[        US/SS9  [         R                  R                  / S	QS5      n[        U/ S
QSS9  g )Nrj   r  )grE?gTp]0?g~?r  r   r(  r`   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r6   r)   rt   r   rV   r   r0  s     r0   rk  TestPearson3.test_cdf  s    ~~!!!_5bhh'KL!	#~~!!"c*zl6~~!!"4c: ?EI	Kr2   c                     / SQnSnSn[         R                  R                  X!5      nU Vs/ s H0  n[        [         R                  " U5      R                  X25      S   PM2     nn[        XF5        g s  snf )Nr(  r   r   r   r   rH  r   )r6   r)   rt   r   rl   r   )r[   skewsx_evalneg_infr0  r  int_pdfss          r0   test_negative_cdf_bug_11186(TestPearson3.test_negative_cdf_bug_11186'  so     !~~!!&0 %' % -117CAF % 	 '''s   7A1c                 8   [         R                  R                  SS5      n[        US5        [	        U[
        R                  5      (       d   e[         R                  R                  SS5      n[        US5        [	        U[
        R                  5      (       d   eg )Nr   rj   r   r  )r6   r)   r  r   rQ  rV   number)r[   r  s     r0   test_return_array_bug_11746(TestPearson3.test_return_array_bug_117462  sr     &&q!,VQ&")),,,,&&q(3VQ&")),,,,r2   c                    / SQnSn[         R                  R                  [         R                  R                  X!5      U5      n[	        X25        [
        R                  " S/S//5      n[
        R                  " SS5      n[	        [         R                  R                  XT5      [         R                  R                  U* U* 5      5        [	        [         R                  R                  XT5      [         R                  R                  U* U* 5      5        [	        [         R                  R                  XT5      [         R                  R                  XT* 5      * 5        g )Nr  r   r   r  r  rj   )r6   r)   r   rt   r   rV   r   rh  rl   r   r  )r[   r  r  r   r  rb   s         r0   test_ppf_bug_17050TestPearson3.test_ppf_bug_17050=  s     !nn  !3!3F!BEJ$ xx$#(KKA**13**A2u5	7**13))1"te4	6**13++Au55	7r2   c                     / SQn/ SQn/ SQn[        [        R                  R                  X!5      USS9  [        [        R                  R                  US5      [        R                  R                  U5      SS9  g )N)r`   r   rc  皙)rd  r  r  r  )g7>g~׼=gp'+7g;rv  r   r   )r   r6   r)   r   rK  )r[   r  rb   r  s       r0   r  TestPearson3.test_sfP  sZ     %">))!2CeD))!Q/q1ANr2   r  N)r  r  r  r  r\   rW  r`  rk  r  r  r  r  r  r8   r2   r0   r  r    s-    5	MK	(	-7&	Or2   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)
TestKappa4i\  c                     / SQnSnS HN  n[         R                  R                  XU5      n[         R                  R                  X* 5      n[	        XE5        MP     g )N)r   r`   r  r   rc  )
gffffffr  r   皙ɿr  r`   r  r   rc  ffffff?)r6   kappa4rt   r  r   r[   rb   r  r_   rU  	vals_comps         r0   test_cdf_genparetoTestKappa4.test_cdf_genpareto]  sL     A<<##A!,D++Ar2ID,r2   c                     [         R                  " SSS5      nSn[         R                  " SSS5      n[        R                  R	                  XU5      n[        R
                  R	                  X5      n[        XE5        g )Nr  r   rc   r   r(  r   )rV   rh  r6   r  rt   
genextremer   r  s         r0   test_cdf_genextremeTestKappa4.test_cdf_genextremeh  s_    KKAr"KKAr"||a($$((.	(r2   c                     [         R                  " SSS5      nSnSn[        R                  R	                  XU5      n[        R
                  R	                  U5      n[        XE5        g )Nr   rc   rc  r   )rV   rh  r6   r  rt   r  r   r  s         r0   test_cdf_exponTestKappa4.test_cdf_exponq  sN    KK2r"||a(KKOOA&	(r2   c                     [         R                  " SSS5      nSnSn[        R                  R	                  XU5      n[        R
                  R	                  U5      n[        XE5        g )Nr  r   rc   r   )rV   rh  r6   r  rt   rd  r   r  s         r0   test_cdf_gumbel_rTestKappa4.test_cdf_gumbel_rz  sP    KKAr"||a(NN&&q)	(r2   c                     [         R                  " SSS5      nSnSn[        R                  R	                  XU5      n[        R
                  R	                  U5      n[        XE5        g )Nr  r   rc   r  r   )rV   rh  r6   r  rt   r	  r   r  s         r0   test_cdf_logisticTestKappa4.test_cdf_logistic  sP    KKAr"||a(NN&&q)	(r2   c                     [         R                  " SSS5      nSnSn[        R                  R	                  XU5      n[        R
                  R	                  U5      n[        XE5        g )Nr  r   rc   rc  )rV   rh  r6   r  rt   r  r   r  s         r0   test_cdf_uniformTestKappa4.test_cdf_uniform  sP    KKAr"||a(MM%%a(	(r2   c                 2    [         R                  " SS5        g r  )r6   r  rZ   s    r0   test_integers_ctorTestKappa4.test_integers_ctor  s     	Qr2   r8   N)r  r  r  r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r  \  s%    	-)))))r2   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestPoissoni  c                 L    [         R                  R                  S5      U l        g )Nl   ,	 rU   rZ   s    r0   r\   TestPoisson.setup_method  r^   r2   c                     [         R                  " S5      n[        R                  R	                  / SQU5      nSUS-  US-  S-  /n[        X#5        g )Nrj   r   r   rj   r   r   )rV   r  r6   r  r^  r   )r[   ln2rU  rO   s       r0   test_pmf_basicTestPoisson.test_pmf_basic  sE    ffQi}}  C0QQq)'r2   c                     [         R                  R                  / SQS5      n/ SQn[        X5        [         R                  R	                  SS5      n[        US5        g )Nr  r   )r   r   r   ffffff?r   r   )r6   r  r^  r   intervalr   )r[   rU  rO   r  s       r0   test_mu0TestPoisson.test_mu0  sE    }}  A.4*==))$2Xv&r2   c                 v   [         R                  R                  SSU R                  S9n[        R
                  " US:  5      (       d   e[        R                  " U5      S:X  d   eUR                  R                  [        S   ;   d   e[         R                  R                  SU R                  S9n[        U[        5      (       d   e[         R                  " S5      R                  SU R                  S9n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   eg )Nr   rI  r   r   rK  r   r   )r6   r  r   rY   rV   r   rO  r   rP  r   rQ  rt  ru  rT  s      r0   rW  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           	         Sn[         R                  R                  USS9n[        X!U[        R                  " SU-  5      SU-  /5        [        R
                  " / SQ5      n[         R                  R                  USS9nX[        R                  SS[        R                  " S5      -  /[        R                  SS/4n[        X#5        g )	Ng      0@r  r  rc  )r   rc  r   r   rj   r   )r6   r  r   rV   r  r   r*  )r[   r  r  rO   s       r0   r  TestPoisson.test_stats  s    $$R$8RR#b& ABXXo&$$R$8RVVQ"''!*537GH)r2   r  N)
r  r  r  r  r\   r  r   rW  r  r  r8   r2   r0   r  r    s    5('	9*r2   r  c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)	TestKSTwoi  c                    S H  n[         R                  " SSU-  SU-  SSSU-  -
  S/5      nSU-  U-  n[        R                  R	                  US-   5      nUS:w  a  [         R
                  " U5      OSn[         R                  " SSX5-  SS[        R                  R                  SU5      -  -
  [        SSU-  -
  S5      S/5      n[        R                  R                  X!5      n[        Xv5        M     g )Nr   rj   r   rc   rd   r   r   r   r   rc  rj   r   )rV   r   r5   r   gammalnr   r6   ksoner   r+  kstwort   r   )r[   r  rb   v1lgelgrO   r  s           r0   rk  TestKSTwo.test_cdf  s    )A !SUAaCaAgq9:Aa%!B&&qs+B!#q266":aCxxArx!"Qu{{~~c1'=%=!=!$Q2Xs!3!$!& 'H {{q,HH/# *r2   c                    [         R                  " SSS5      nS H  n[         R                  " SSU-  SU-  SSSU-  -
  S/5      nSU-  U-  n[        R                  R                  US-   5      nUS:w  a  [         R                  " U5      OSn[         R                  " SSSX5-  -
  S[        R                  R                  SU5      -  [        SU-  S5      S/5      n[        R                  R                  X5      n[        Xv5        M     g )Nr   r   r  r)  r   rc  rj   )rV   rh  r   r5   r   r*  r   r6   r+  r   r  r,  r   )r[   rb   r  r-  r.  r/  rO   r9  s           r0   r  TestKSTwo.test_sf  s    KK1b!)A!SUAaCaAgq9:Aa%!B&&qs+B!#q266":aCxxc!"RX!"5;;>>#q#9!9!$QrT3!4 5H kknnQ*GG. *r2   c                    [         R                  " SSS5      SS  n/ SQnU H]  nU[         R                  " U5      -  n[        R                  R                  XB5      n[         R                  " U5      n[        US5        M_     g )Nr   rj   r  r   )rJ  rd   r  i  r   r   r  )rV   rh  r  r6   r,  rt   r  r
   )r[   rb   ns_xxnprobsdiffss          r0   test_cdf_sqrtnTestKSTwo.test_cdf_sqrtn  sg    
 KK1b!!"%,Bbggbk!BKKOOB+EGGENEeT*	 r2   c                     [         R                  " SSS5      nS HP  n[        R                  R	                  X5      n[        R                  R                  X5      n[        USU-
  5        MR     g Nr   r   r  r)  )rV   rh  r6   r,  rt   r   r   )r[   rb   r  r  r9  s        r0   r  TestKSTwo.test_cdf_sf  sP    KK1b!)A{{q,HkknnQ*G%hG< *r2   c                    [         R                  " SSS5      nS Hi  nU[         R                  " U5      -  n[        R                  R                  X25      n[        R                  R                  X25      n[        USU-
  5        Mk     g r<  )rV   rh  r  r6   r,  rt   r   r   )r[   rb   r  r6  r  r9  s         r0   test_cdf_sf_sqrtnTestKSTwo.test_cdf_sf_sqrtn  sa    KK1b!)ARWWQZB{{r-HkknnR+G%hG<	 *r2   c                 
   [         R                  " SSS5      nS He  nXSU-  :     n[        R                  R	                  X25      nSU:  US:  -  n[        R                  R                  XB5      n[        Xe   X5   SS9  Mg     g )	Nr   r   r  r)  r   r  r  r   )rV   rh  r6   r,  rt   r   r   r[   rb   r  r6  r  condrU  s          r0   test_ppf_of_cdfTestKSTwo.test_ppf_of_cdf  ss    KK1b!)As1u9B{{r-HLX_5D;;??8/DDJt< *r2   c                 
   [         R                  " SSS5      nS He  nXSU-  :     n[        R                  R	                  X25      nSU:  US:  -  n[        R                  R                  XB5      n[        Xe   X5   SS9  Mg     g )	Nr   r   r  r)  r   rc  r  r   )rV   rh  r6   r,  r  r   r   )r[   rb   r  r6  vals_isfrC  rU  s          r0   test_isf_of_sfTestKSTwo.test_isf_of_sf  ss    KK1b!)As1u9B{{r-HLX^4D;;>>(.DDJt< *r2   c                 <   [         R                  " SSS5      nS H~  nU[         R                  " U5      -  USU-  :     n[        R                  R                  X25      nSU:  US:  -  n[        R                  R                  XB5      n[        Xe   X5   5        M     g )Nr   r   r  r)  r   rc  )rV   rh  r  r6   r,  rt   r   r   rB  s          r0   test_ppf_of_cdf_sqrtnTestKSTwo.test_ppf_of_cdf_sqrtn  s    KK1b!)Abggaj.!c!e),B{{r-HLX^4D;;??8/DDJ1 *r2   c                 <   [         R                  " SSS5      nS H~  nU[         R                  " U5      -  USU-  :     n[        R                  R                  X25      nSU:  US:  -  n[        R                  R                  XB5      n[        Xe   X5   5        M     g )Nr   r   r  r)  r   r  )rV   rh  r  r6   r,  r   r  r   )r[   rb   r  r6  r9  rC  rU  s          r0   test_isf_of_sf_sqrtnTestKSTwo.test_isf_of_sf_sqrtn"  s    KK1b!)Abggaj.!c!e),BkknnR+GKGdN3D;;??7.DDJ1 *r2   c                     [         R                  " SSS5      SS  nS HL  n[        R                  R	                  X5      n[        R                  R                  X25      n[        XA5        MN     g r<  )rV   rh  r6   r,  r   rt   r   )r[   r7  r  r6  r  s        r0   r  TestKSTwo.test_ppf,  sQ    Aq"%ab))A*B{{r-HH, *r2   c           	         / SQn[         R                  " / SQ5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        U5       Hu  u  pEU[         R                  " S	5      -  [         R                  " [         R
                  S	-  U-  5      -  n[        R                  R                  Xe5      n[        XsU   S
S9  Mw     g )N)rc   rJ  rd   r  rw  r   )r  gUUUUUU?r   r   rj   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?rj   r  r   )
rV   r   	enumerater  r  rm   r6   r,  rt   r   )r[   r4  ratiosrO   idxr  rb   r  s           r0   test_simard_lecuyer_table1$TestKSTwo.test_simard_lecuyer_table13  s     +8988------
   mFC"RWWRUU1WQY%77A{{q,HHsm$? $r2   r8   N)r  r  r  r  rk  r  r9  r  r?  rD  rH  rK  rN  r  rV  r  r8   r2   r0   r'  r'    s:    0(/+====22-@r2   r'  c                   &    \ rS rSrS rS rS rSrg)TestZipfiU  c                 L    [         R                  R                  S5      U l        g )Nl   p\# rU   rZ   s    r0   r\   TestZipf.setup_methodV  r^   r2   c                 v   [         R                  R                  SSU R                  S9n[        R
                  " US:  5      (       d   e[        R                  " U5      S:X  d   eUR                  R                  [        S   ;   d   e[         R                  R                  SU R                  S9n[        U[        5      (       d   e[         R                  " S5      R                  SU R                  S9n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   eg )Nr  rI  r   r   rK  r   r   )r6   zipfr   rY   rV   r   rO  r   rP  r   rQ  rt  ru  rT  s      r0   rW  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                 Z   [         R                  R                  SS9u  p[        [        R                  " U5      5        [        U[        R                  5        [         R                  R                  SSS9u  p4[        [        R                  " X4/5      R                  5       (       + 5        g )Nffffff@r.   rm  skr.   r  )r6   r]  r	   rV   r  r   r*  r   rk  s        r0   rV  TestZipf.test_momentsd  ss    zz#&AQzz#t4BKK'++--.r2   r  N)r  r  r  r  r\   rW  rV  r  r8   r2   r0   rY  rY  U  s    5	9/r2   rY  c                   ,    \ rS rSrS rS rS rS rSrg)TestDLaplacein  c                 L    [         R                  R                  S5      U l        g )Ni1qrU   rZ   s    r0   r\   TestDLaplace.setup_methodo  rC  r2   c                    [         R                  R                  SSU R                  S9n[        R
                  " U5      S:X  d   eUR                  R                  [        S   ;   d   e[         R                  R                  SU R                  S9n[        U[        5      (       d   e[         R                  " S5      R                  SU R                  S9n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   e[         R                  R                  SU R                  S9c   eg )Nr  rI  r   rK  r   r   r   )r6   dlaplacer   rY   rV   rO  r   rP  r   rQ  rt  ru  rT  s      r0   rW  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                 j   Sn[         R                  " U5      nUR                  S5      u  p4pVSn[        R                  " U* US-   5      nUR	                  U5      n	[        R
                  " XS-  -  5      [        R
                  " XS-  -  5      p[        X54S5        [        XF4XU
S-  -  S-
  4S	S
S9  g )Nrc  r  r5  r   rj   r   r  r  r  r  r  )r6   rj  rV   r&  r^  r  r   r   )r[   r.   dlr  rS  rD   r_   r_  r  ppm2m4s               r0   r  TestDLaplace.test_stats}  s    ^^AXXf%
aYYr1Q3VVBZq5!266"U(#3BaVV$AX] 3%dKr2   c                     [         R                  " S5      n[        R                  " U5      nUR                  S5      u  p4pV[	        X54S5        [        XF4S5        g )Nr   r  )r   r   )r?        
@)rV   r  r6   rj  r   r   )r[   r.   rm  r  rS  rD   r_   s          r0   test_stats2TestDLaplace.test_stats2  sG    FF2J^^AXXf%
aaVX&
+r2   r  N)	r  r  r  r  r\   rW  r  rt  r  r8   r2   r0   rf  rf  n  s    4	JL,r2   rf  c                     ^  \ rS rSrS r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      U 4S j5       r	S	 r
S
 rS r\R                  R                  S/ SQ5      S 5       rS rSrU =r$ )TestInvgaussi  c                 L    [         R                  R                  S5      U l        g )Nl   xs rU   rZ   s    r0   r\   TestInvgauss.setup_method  r^   r2   zrvs_mu,rvs_loc,rvs_scale)rj   r   r   )g
ףp=@g r@gʡE6@c                 @   [         R                  R                  SUX#U R                  S9n[         R                  R	                  XBS9u  pVnXB-
  n[
        R                  " U5      n[        U5      [
        R                  " US-  US-  -
  5      -  n	X-  n
[        XSSS9  [        XSSS9  [        Xb5        [         R                  R                  SUX#U R                  S9n[         R                  R	                  XBS-
  US-   S9u  pVn[        US-   U5        [        US-
  U5        [         R                  R	                  US	S
9S   n[         R                  R	                  US	S9S   n[         R                  R	                  US	S9S   nXs=:X  a  Us=:X  a  S	:X  d   e   eg )Nrd   r   r  rh   ri   r   r   r   r   r  r   r  rr  )fmur   )fix_mur   )r6   r4  r   rY   r   rV   r   r"  r  r   r   )r[   rvs_mur   r  r   r  rh   ri   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r0   r&  TestInvgauss.test_fit  s    ~~!!sv&-TXX " W ++D+?~''$-Ir
Wr](B!CD	" 	U;	u5AS"~~!!sv&-TXX " W ++D{3<q= , BY]E*Wq[#& ^^''$'7:
^^''T':1=
^^'''6q9
=:======r2   )gX9v>@g	@gGz@c                   > [         R                  R                  S5      n[        R                  R                  SUX#US9n[        [        [        R                  5      [        R                  ]"  nU" U5      n[        R                  R                  U5      n[        Xx5        U" USSS9n[        R                  R                  USSS9n[        Xx5        [        [        R                  XRS9  [         R                  " XRS-
  -
  S:  5      (       d   e[        [        R                  XRS-
  S9  [        [        R                  USS9  [        [        R                  XRU R                  R                  S5      S   S	9  g )
Nr  rd   r{  r   rj   )r   r|  r   r   r  )rV   rW   rI  r6   r4  r   r  r  r   r   r   r   rY   )
r[   r  r   r  rY   r   	super_fitsuper_fittedinvgauss_fit	__class__s
            r0   r   (TestInvgauss.test_fit_MLE_comp_optimizer  s.    ii##D)~~!!sv&-S " R $u~~.C	 ~~))$/\0 !A15~~))$QA)>\0 	&enndI vvt{+q01111%ennd1M 	&enndC 	&ennd-1XX__Q-?-B	Dr2   c                     [        [        R                  5        [        R                  " [
        5         [        R                  R                  / SQSS9  S S S 5        g ! , (       d  f       g = fr  )r/  r6   r4  r   r   r    r   rZ   s    r0   test_fit_raise_errors"TestInvgauss.test_fit_raise_errors  s=    ENN+]]<(NNyq1 )((s   !A
A,c                    / SQn/ SQn[         R                  R                  SUS9n[        X#5        [         R                  R                  SSS9n[	        US5        [         R                  R                  SSS9n[	        US	5        [         R                  R                  S
S5      n[	        US5        [         R                  R                  SS5      n[	        US5        g )N)g4wT;?gjdV&}?g{i\0>gDV_h?gqacX?)r   r   r   r   r   皙?r  rG  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r6   r4  rt   r   r   r   )r[   r  rO   rJ   
cdf_actual	sf_actuals         r0   r  TestInvgauss.test_cdf_sf  s    ."##CB#/X& ^^''$'7

$9:NN%%cd%3		#78 ##GV4 34 ##Hf5 12r2   c                 \   [         R                  R                  SSS9n[        US5        [         R                  R                  SS5      n[        US5        [         R                  R	                  SSS9n[        US5        [         R                  R	                  SS5      n[        US	5        g )
Nr  r  r  giJ.r  gr^ߺrG  gpgFgpQ^L)r6   r4  r  r   r  )r[   r  r  s      r0   r  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)rG  g%!)r   g40)r   gK'
@)r  g`p
@c                 T    [        [        R                  R                  U5      USS9  g r  )r   r6   r4  r>   )r[   r  r  s      r0   r  TestInvgauss.test_entropy  s     	..r2CeDr2   c                    [         R                  " [        R                  S9n[         R                  " SSS9nSu  p4[        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        g )Nr  r   rb  )rc  r   )r6   r4  rV   r*  r3  r   r   rl   r  rt   r  r   r   r  )r[   rK   dist0rb   r  s        r0   test_mu_inf_gh13666 TestInvgauss.test_mu_inf_gh13666!  s     ~~(s#.AQ8UYYq\2AQ8UYYq\2

1u{{1~6
EHHQK0UYYq\2UYYq\2r2   r  )r  r  r  r  r\   r   r  r  r&  r   r  r  r  r  r  r  __classcell__r  s   @r0   rw  rw    s    5 [[7')>?A>A>: [[7')>?A DA DD2!3F2. [[Y )D E
EE
E3 3r2   rw  c                   b    \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rSr	g)
TestLandaui2  name)rl   rt   r   r   r  c                    US;   a  [         R                  " SSS5      4nO[         R                  " SSS5      4n[        [        R                  U5      n[        [        R
                  U5      nU" U6 nU" / UQSPSP76 n[        XVSS	9  g )
N>   r  r   r`   r   r   r  rc   r   r  r   )rV   rh  r?  r6   landaulevy_stabler   )r[   r  rb   landau_methodlevy_methodr   r  s          r0   test_landau_levy_agreement%TestLandau.test_landau_levy_agreement3  s    
 >!Ca()AB2&'Ad3e//6Q#1#a##u-r2   c                     [        [        R                  R                  SS9[        R                  4S-  5        [        [        R                  R                  S5      [        R                  5        g )Nr  r  r   r   )r   r6   r  rV   r)  r  rZ   s    r0   rV  TestLandau.test_momentsC  sE    U\\'''7"&&1EU\\((+RVV4r2   r8   N)
r  r  r  r  r   r  r  r  rV  r  r8   r2   r0   r  r  2  s,    [[V%GH. I.5r2   r  c                     ^  \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  S/ SQ5      U 4S	 j5       rS
 r	S r
S rS rS rSrU =r$ )TestLaplaceiI  r   )r  r   r   rj   r  )r   rj   r   rc   c                    [         R                  R                  S5      n[        R                  R                  SXUS9n[         R                  " U5      n[         R                  " [         R                  " XE-
  5      5      [        U5      -  n[        R                  R                  U5      u  px[        XuSSS9  [        XSSS9  [        R                  R                  XES9u  px[        XSSS9  [        R                  R                  XFS9u  px[        Xu5        US-  n[         R                  " [         R                  " XG-
  5      5      [        U5      -  n[        R                  R                  XGS9u  px[        Xh5        [        R                  R                  XFS9u  px[        XW5        [        [        [        R                  R                  XEUS	9  [        [        [        R                  R                  [         R                   /5        [        [        [        R                  R                  [         R"                  /5        g )
Nr  rd   r  r   r  r   r)  rj   r  )rV   rW   rI  r6   r  r   r  r  r   r"  r   r   r   r  r'  r(  r)  r*  )	r[   r   r  rY   r   loc_mler  rh   ri   s	            r0   r&  TestLaplace.test_fitJ  s   
 ii##D)}}  cw.1 ! 3 ))D/FF266$.12SY>	 ]]&&t,
5u=u5A ]]&&t&:
u5A]]&&t&>
% kFF266$*-.T:	 ]]&&t&6
Y& ]]&&t&>
W" 	lEMM$5$5t&	( 	j%--"3"3bffX>j%--"3"3bffX>r2   rvs_loc,rvs_scale))r  rc   rc   r   )r   r  c                   > [         R                  R                  S5      n[        R                  R                  SXUS9nS n[        R                  R                  U5      u  pg[        [        [        R                  5      [        R                  ]  U5      u  pU" XgU5      n
U" XU5      nX:  d  [         R                  " XSSS9(       d   eg g )Nr  r   r  c           	          S[        U5      * [        R                  " SU-  5      -  SU-  [        R                  " [        R                  " X -
  5      5      -  -
  -  $ )Nr   rj   r   )r"  rV   r  r  r   )rh   ri   r   s      r0   ll3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.ll  sM    CI%8E'266"&&*<#==> ? ?r2   r   r  )
rV   rW   rI  r6   r  r   r   r  r  r  )r[   r   r  rY   r   r  rh   ri   loc_opt	scale_optll_mlell_optr  s               r0   r   'TestLaplace.test_fit_MLE_comp_optimizery  s     ii##D)}}  d.1 ! 3	? ]]&&t,
"4#6#(==66:) 	C%G-"++f38u#F 	F F #Fr2   c                     [         R                  " / SQ5      n[        R                  R	                  USS9u  p#[        USSSS9  [        R                  R	                  USS9u  p#[        USSSS9  g )N)rc  rc  r  rd  r  rE  r  r   r   r   r  r)  )rV   r   r6   r  r   r   )r[   r   rh   ri   s       r0   test_fit_simple_non_random_data+TestLaplace.test_fit_simple_non_random_data  sc    xx78]]&&t!&4
qu59]]&&tA&6
QU7r2   c                 D   Sn[         R                  R                  U* 5      nUS:X  d   e[         R                  R                  U5      nUS:X  d   e[         R                  R                  U5      nUS:X  d   e[         R                  R                  U* 5      nUS:X  d   eg )Nr   r   rc  )r6   r  rt   r   )r[   rb   p0p1s       r0   test_sf_cdf_extremes TestLaplace.test_sf_cdf_extremes  s    ]]r" Syy ]]q!Syy]]a  Syy ]]qb!Syyr2   c                     Sn[         R                  R                  U5      n[        U[        R
                  " U* 5      S-  SS9  g )Nr  rj   r   r   )r6   r  r   r   rV   r   )r[   rb   r  s      r0   r  TestLaplace.test_sf  s5    MMQ2661":a<e4r2   c                     Sn[         R                  R                  U5      n[        U[        R
                  " SU-  5      * SS9  g )Ng}:rj   r   r   )r6   r  r  r   rV   r  )r[   r  rb   s      r0   r  TestLaplace.test_isf  s5    MMa BFF1Q3K<e4r2   c                     SnSn[         R                  R                  U5      n[        X25        [         R                  R	                  U* 5      n[        XBSS9  g )Nr  g$ICr  r   )r6   r  r  r   r  r  s        r0   r  TestLaplace.test_logcdf_logsf  sH    %%%a($##QB'/r2   r8   )r  r  r  r  r   r  r  r&  r   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
0 0r2   r  c                   t   \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ SQ5      \R                  R                  S	S
/5      \R                  R                  SSS/5      \R                  R                  SSS/5      S 5       5       5       5       r
Srg)TestLogLaplacei  c                     [         R                  " / SQ5      n[         R                  " / SQ5      n/ SQn[        [        R                  R                  X!5      USS9  g )N)r   r  rd  )r  r    4&kC)g ?gKH9gXrL0r   r   )rV   r   r   r6   
loglaplacer   )r[   r  rb   r  s       r0   r  TestLogLaplace.test_sf  sC     HH_%HH'(+((++A13UCr2   c                 h    Sn/ SQn/ SQn[        [        R                  R                  X!5      USS9  g )Nrs  )r   r`   r  r  r  )gHhlh#?gH]9@?g"fj#@g11Ags!8wBr  r   )r   r6   r  r  )r[   r  r  r  s       r0   r  TestLogLaplace.test_isf  s2     +6((,,Q2CeDr2   r  r   rj   r   r   c           	      P   SUS-
     n[         R                  " SUS-   S5      n[        [        R                  R                  X5      [         R                  5        [         R                  " [         R                  " [        R                  R                  X2S95      5      (       a   eg )Nr  r   r   r  )	rV   r&  r   r6   r  r  r*  r  r  )r[   r  momr  s       r0   test_moments_stats!TestLogLaplace.test_moments_stats  s}    QUmIIc1s7C( 	((//5rvv> 66"++e&6&6&<&<Q&<&LMNNNNNr2   r  )r   rc  r   z
loc, scale)r  g@fix_cTFr  c                    [         R                  R                  S5      n[        R                  R                  XUSUS9nSU0nU(       a  XS'   U(       a  X8S'   S[        U5      -
  n	U	S:X  aL  S	n
[        R                  " [        [        4U
S
9   [        R                  R                  " U40 UD6  S S S 5        g [        [        R                  U40 UD6  g ! , (       d  f       g = f)Nr   rd   r  r   fcr   r   r   r  r  )rV   rW   rX   r6   r  r   r"  r   r   r'  r(  r   r   )r[   r  rh   ri   r  r  rY   r   r   nfreer  s              r0   test_fit_analytic_mle$TestLogLaplace.test_fit_analytic_mle  s     ii##$78##Ae#14 $ 6 }J"NCIA:MIj9K  $$T2T2 L%e&6&6EE	 LKs   "C
C$r8   N)r  r  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                      \ rS rSr\R
                  R                  SSS/5      S 5       r\R                  " SS9S 5       r	\R
                  R                  S	/ S
Q5      \R
                  R                  S/ SQ5      \R
                  R                  S/ SQ5      \R
                  R                  S\
" SS/SS9 V Vs/ s H  nSU;   d  M  UPM     snn 5      S 5       5       5       5       rS rS rS rSrgs  snn f )TestPowerlawi  zx, a, sf)r  r   g      ?)g     ?g      p?gSQ>c                 T    [        [        R                  R                  X5      USS9  g r   )r   r6   powerlawr   )r[   rb   r.   r   s       r0   r  TestPowerlaw.test_sf  s     	))!/%@r2   rT  rU  c                 @    [         R                  R                  S5      $ rX  rY  rZ   s    r0   rY   TestPowerlaw.rng  r[  r2   r   )r`   r   r   r   rj   r   r\  r  r]  r~  TFr   r  c                 <   [         R                  R                  SXX7S9n[        5       n	U(       a  XS'   U(       a7  [        R
                  " UR                  5       [        R                  * 5      U	S'   U(       a  X9S'   [        [         R                  U40 U	DSS0D6  g )Nr  )r   r.   rh   ri   r   r   r   r   r  T)	r6   r  r   r$  rV   	nextafterr  r*  r   r  s
             r0   r   (TestPowerlaw.test_fit_MLE_comp_optimizer	  s     ~~!!si(1 " E v"J<<
RVVG<DL&N 	&ennd 	<d 	<6:	<r2   c           	          SnSnSn[         R                  R                  XUS[        R                  R                  S5      S9nS[        R                  " U5      S-  0n[        [         R                  U40 UD6  g )	Ng`- @r   grߟA@rd   r   )r.   rh   ri   r   r   r   rj   )r6   r  r   rV   rW   rX   ptpr   )r[   r.   r  ri   r   r   s         r0   test_problem_caseTestPowerlaw.test_problem_case!  sq     #"~~!!A5s/1yy/D/DQ/G " I "&&,*+%enndCdCr2   c                    [        [        R                  5        Sn[        [        US9   [        R                  R                  / SQSSS9  S S S 5        Sn[        [        US9   [        R                  R                  / SQSS9  S S S 5        Sn[        [        US9   [        R                  R                  / SQS	S9  S S S 5        S
n[        [        US9   [        R                  R                  / SQSS9  S S S 5        Sn[        [        US9   [        R                  R                  / SQSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N{= f! , (       d  f       g = f)Nz7 Maximum likelihood estimation with 'powerlaw' requiresr  r   rj   r   r   r   r  rj   r   r   z$Negative or zero `fscale` is outsider(  r)  z0`fscale` must be greater than the range of data.)r/  r6   r  r  r    r   r(  r  s     r0   r  TestPowerlaw.test_fit_warnings/  s"   ENN+H<s3NNyq; 4 I<s3NNyq1 4 I<s3NNyq1 4 6:S1NNy4 2 B:S1NNy3 21) 43
 43
 43
 21
 21s;   "D9$!E
!E!E,!E=9
E

E
E),
E:=
Fc                     / SQn[         R                  n[        R                  " SS9   [	        X!5        S S S 5        g ! , (       d  f       g = f)N)r   r   rj   rj   r   r   r   r   r   r   r   r  r  over)r6   r  rV   r  r   )r[   r   rK   s      r0   test_minimum_data_zero_gh17801+TestPowerlaw.test_minimum_data_zero_gh17801J  s2     4~~[[h')$5 (''s	   >
Ar8   N)r  r  r  r  r   r  r  r  rc  rY   r%   r   r  r  r  r  r  s   00r0   r  r    s	    [[Z1HJKAKA ^^*%+ &+ [[[*=>[[Y
3[[[*5[[<)0$q)I -)IA!&!  )I -.<. 6 4 ?<$D466{-s   :
C4C4r  c                   4   \ rS rSr\R
                  R                  S/ SQ5      S 5       r\R
                  R                  SSS/5      S 5       r\R
                  R                  S/ S	Q5      S
 5       r	\R
                  R                  S/ SQ5      S 5       r
Srg)TestPowerLogNormiS  zx, c, s, ref))rd   rA  r   ga!R()rG  rA  r   g;?)rG  r  r   gE?)MDr  r   g=c                 V    [        [        R                  R                  XU5      USS9  g r   )r   r6   r;  r   r[   rb   r  rD   r  s        r0   r  TestPowerLogNorm.test_sfd  s#     	**--aA6%Hr2   zq, c, s, ref)g?r  r   r   )gR4-rA  r   r   c                 V    [        [        R                  R                  XU5      USS9  g )Ng|=r   )r   r6   r;  r  )r[   r  r  rD   r  s        r0   r  TestPowerLogNorm.test_isfn  s#     	**..qQ75Ir2   ))r  r  r   g?)r  r  r   gv6)r  r  r   g+	94|7)r  r  r   g?c                 V    [        [        R                  R                  XU5      USS9  g )Ngt =r   )r   r6   r;  rt   r  s        r0   rk  TestPowerLogNorm.test_cdft  s#     	**..qQ75Ir2   ))r  r  r   gS^Ռe9)@xDrG  r   g0g;)g\)c=HrG  r   g7H7c                 V    [        [        R                  R                  XU5      USS9  g )NgAfc=r   )r   r6   r;  rl   r  s        r0   r`  TestPowerLogNorm.test_pdf  s#    
 	**..qQ75Ir2   r8   N)r  r  r  r  r   r  r  r  r  rk  r`  r  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                       \ rS rSr\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQ5      S	 5       r	S
r
g)TestPowerNormi  r  ))rg  r   g| <)rA  rj   ge()rd   r  g%!@6)r  r   gT;-c                 T    [        [        R                  R                  X5      USS9  g r   )r   r6   	powernormr   r  s       r0   r  TestPowerNorm.test_sf  s     	**10#EBr2   rz  ))r  rA  gĿ)rO  rd   g!X)r  r  g缂U)ry  r  gͫ1@)r  rj   gD@)Jz5r   gU!zYr@c                 T    [        [        R                  R                  X5      USS9  g Nr  r   )r   r6   r  r  r~  s       r0   r  TestPowerNorm.test_isf  s     	++A13UCr2   ))irg  g.u	T9)rj   rg  ?)r  rg  gsK-)r  r  gk8>)r  r  g^u1-c                 T    [        [        R                  R                  X5      USS9  g r  )r   r6   r  rt   r  s       r0   rk  TestPowerNorm.test_cdf  s     	++A13UCr2   r8   N)r  r  r  r  r   r  r  r  r  rk  r  r8   r2   r0   r  r    s     [[[CD
CD
C [[[=>D>D [[[BCDCDr2   r  c                   z    \ rS rSrS rS rS rS rS r\	R                  R                  SSS	/5      S
 5       rSrg)TestInvGammai  c                    [         R                  " 5          [         R                  " S[        5        [        R
                  R	                  SSS9n/ SQn[        X5        / SQn[        R
                  R	                  USS9n/ SQ[        R                  SS	/[        R                  S
S/[        R                  [        R                  S/4n[        X5       H  u  pE[        XE5        M     S S S 5        g ! , (       d  f       g = f)Nr  g(\O3@r  rc  )g~?gCX&?g*7gS?gBqFq @)rB  @gffffff@)r  gEy?gў3oz?g^Yb?g,r?gOD@g2*Z@gFN8@)r  r  r  r  r6   r3  r   rV   r*  r)  r%  r   )r[   r  rO   r.   rb   r  s         r0   test_invgamma_inf_gh_1866&TestInvGamma.test_invgamma_inf_gh_1866  s     $$&!!'>:>>''%'@D%HD+A>>''!V'<D8}=k:57H D+#A) , '&&s   CC22
D c                     [         R                  " SS5      n[        R                  R	                  US5      n[        R                  R                  US5      n[        X5        g )Ngr   r   )rV   r  r6   r3  rt   r   r   r
  s       r0   r  TestInvGamma.test_cdf_ppf  sF    KKa NNq!$^^1%r2   c                    [         R                  S:  a  [        R                  " SS5      nO[        R                  " SS5      n[        R
                  R                  US5      n[        R
                  R                  US5      n[        XSS9  g )Nl        rj   rd      r   rc  r   )	sysmaxsizerV   r  r6   r3  r   r  r   r
  s       r0   ry  TestInvGamma.test_sf_isf  sf    ;;As#A Ar"ANNa#^^1%C(r2   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Nr  r  gM$r  r   )r6   r3  r  r   r[   rb   r.   r  r  s        r0   r  TestInvGamma.test_logcdf  s/    #&&q,%0r2   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Nr   r  grطr  r   )r6   r3  r  r   r[   rb   r.   r  r  s        r0   r  TestInvGamma.test_logsf  s/    $$$Q*/r2   a, ref)r   g70K6:)r  gVMOuc                 T    [        [        R                  R                  U5      USS9  g r   )r   r6   r3  r>   r[   r.   r  s      r0   test_large_entropyTestInvGamma.test_large_entropy  s     	..q13UCr2   r8   N)r  r  r  r  r  r  ry  r  r  r   r  r  r$  r  r8   r2   r0   r  r    sM    *&)10 [[X?:<=	D=	Dr2   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestFi	  c           	      F   [         R                  SS//nU H#  u  p#nUR                  " UR                  /UQ76 nM%     U VVVs/ s H"  u  p#obR                  " UR                  /UQ76 PM$     nnnnU VVVs/ s H  u  p#owPM	     nnnn[	        XX5        g s  snnnf s  snnnf )N)rj   r   rc  )r6   frl   r.   r   )	r[   r   _f_args_correctansr   	_correct_corrects	            r0   r  TestF.test_endpoints
  s    &#&'#'Bx&&&&C $( 9==1vvbdd#U#=9=>!5I9>!#/ >>s   )B7Bc                 J   [         R                  R                  SSSS9u  pp4[        [        R                  " U5      5        [        [        R                  " U5      5        [        [        R                  " U5      5        [        [        R                  " U5      (       + 5        g )Nr        @r  r  )r6   r)  r	   rV   r  rk  s        r0   test_f_momentsTestF.test_f_moments  sa    WW]]2sF];
aAAABKKN"#r2   c                     [         R                  " 5          [         R                  " S[        5        [        R
                  R	                  S/S-  / SQSS9  S S S 5        g ! , (       d  f       g = f)Nr  r  r   )rj   r   r  r  r  dfndfdr  )r  r  r  r  r6   r)  rZ   s    r0   test_moments_warningsTestF.test_moments_warnings  sF    $$&!!'>:GGMMrd1f,MG '&&s   AA  
A.c                 r   [         R                  " S/S//5      n[         R                  " SS/5      n[        R                  R                  XSS9u  p4pVX"S-
  -  /S-  n[	        X75        SUS-  -  X-   S-
  -  U-  US-
  S-  -  US-
  -  n[	        XH5        SU-  U-   S-
  [         R
                  " SUS-
  -  5      -  US	-
  [         R
                  " XU-   S-
  -  5      -  -  n	[	        XY5        SUS
U-  S-
  -  X-   S-
  -  US-
  US-
  S-  -  -   -  n
XS	-
  -  US-
  -  X-   S-
  -  nX-  n[	        Xl5        g )Nr   r  re  r  r6  rj   r   r  r  r      )rV   r   r6   r)  r   r  )r[   r7  r8  r  rS  rD   r_   ro  v2s2k2numk2denk2s                r0   test_stats_broadcastTestF.test_stats_broadcast"  sY   hhbT{#hhBx WW]]sV]D
a1Woq aZ39q=)C/37Q,>#'Jus{Q"''!S1W+"66a2773c	A#6779cQsURZ(CIM:Qw37Q,./ 0Qw37+sy1}=]r2   r8   N)	r  r  r  r  r  r3  r9  rB  r  r8   r2   r0   r'  r'  	  s    0$Hr2   r'  c                      \ rS rSrS rS rS r\R                  R                  SSS/5      S 5       r
\R                  R                  S	/ S
Q5      \R                  R                  SSS/SS/SS// SQ/ SQ/SS/SS//S/S///5      S 5       5       r\R                  R                  SSS/SS/SS// SQ/ SQ/SS/SS//S/S///5      S 5       rS r\R                  R                  S/ SQ5      S 5       rSrg)TestStudentTi4  c                 ^    [        [        R                  R                  SS/5      SS/5        g )Nr   r  g?g?)r   r6   r  r  rZ   s    r0   test_rvgeneric_stdTestStudentT.test_rvgeneric_std5  s"    !%''++q!f"5
J7OPr2   c                 n   [        [        R                  R                  SSS9[        R                  [        R
                  [        R
                  [        R
                  45        [        [        R                  R                  SSS9S[        R                  [        R
                  [        R
                  45        [        [        R                  R                  SSS9S[        R                  [        R
                  [        R
                  45        [        [        R                  R                  SSS9SS[        R
                  [        R                  45        [        [        R                  R                  S	S
S9[        R
                  [        R                  45        [        [        R                  R                  SS
S9S[        R                  45        [        [        R                  R                  SS
S9S[        R                  45        [        [        R                  R                  SS
S9SSS9  g )Nr   r  )r  r  )\(?r   rj   gGz @g     i@r   rb  gGz@r   g
ףp=
@)r   gq    @r  r   )r   r6   r  rV   r*  r)  r   rZ   s    r0   test_moments_t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                 d    / SQn/ SQn[        [        R                  R                  U5      USS9  g )N)r   rj   r  rd   )g?@gTM]?ggY?U?r   r   r   r6   r  r>   )r[   r  rO   s      r0   test_t_entropyTestStudentT.test_t_entropyI  s'    ;+XEBr2   zv, ref)rd   rN  )r  r  c                 T    [        [        R                  R                  U5      USS9  g r  rO  )r[   rS  r  s      r0   test_t_extreme_entropy#TestStudentT.test_t_extreme_entropyP  s     	*Ce<r2   methname)rl   r   rt   r   r   r  
df_infmaskr   r   )r   r   r   )r   r   r   c                 8   [         R                  " U[        S9n[         R                  R	                  S5      nUR                  SSUR                  S9nUR                  UR                  5      n[         R                  XB'   [        R                  " USSS9n[        R                  " XB)    SSS9n[        R                  " SSS	9n[        Xa5      n	[        Xq5      n
[        X5      nU	" U5      n[        X   U" XR   5      S
S9  [        X)    U
" XR)    5      5        g )Nr      S8 r   rc   r   r   r   r  rh   ri   rg   r  r   )rV   r   boolrW   rX   r  rO  standard_normalr*  r6   r  rK  r?  r   r   )r[   rU  rV  rY   r  rb   t_dist
t_dist_ref	norm_distt_meth
t_meth_ref	norm_methr   s                r0   test_t_inf_dfTestStudentT.test_t_inf_dfa  s     ZZ
$7
ii##J/[[BZ%5%5[6
 0 01BAQ/WW;Qa@
JJ1A.	*Z2
I0	Qi1=)ANS%z!K.'ABr2   c                    [         R                  " U[        S9n[         R                  R	                  S5      nUR                  SSUR                  S9n[         R                  X1'   [        R                  R                  USSSS	9n[        R                  R                  SSSS
9n[        R                  R                  X1)    SSSS	9n[        S5       H*  n[        XG   U   XW   5        [        XG   U)    Xg   5        M,     [        R                  R                  USSS9n[        R                  R                  SSS9n[        R                  R                  X1)    SSS9n[        XA   U5        [        XA)    U5        g )NrX  rY  r   rc   rZ  r   r   r  )r  rh   ri   r  rh   ri   r  r   r[  rg   )rV   r   r\  rW   rX   r  rO  r*  r6   r  rK  r  r   r>   )r[   rV  rY   r  r   
res_ex_infres_ex_noinfr  s           r0   test_t_inf_df_stats_entropy(TestStudentT.test_t_inf_df_stats_entropyw  sF   
 ZZ
$7
ii##J/[[BZ%5%5[6ggmmrq6mBZZ%%!1f%E
ww}};Qa,2 % 4qA
+Z];,lo>  ggoo!o4ZZ''AQ'7
ww"[/qJS_j1S%|4r2   c                     / SQn/ SQn/ SQn/ SQn[        [        R                  R                  X5      USS9  [        [        R                  R	                  X5      USS9  g )N)r   r  rc   r   )r  d~QJr  r   )gZ_2g9g!ǟuIgdg)g73?r   gմFhAW;gm0_?r  r   )r   r6   r  r   rl   )r[   rb   r  
logpdf_refpdf_refs        r0   test_logpdf_pdfTestStudentT.test_logpdf_pdf  sO     #@
>q-zFA*G%@r2   
x, df, ref))g     RrL  guSaG)r   rL  r  )     R@rL  gGn`?c                     [         R                  R                  X5      n[        XCSS9  [         R                  R	                  U* U5      n[        XSSS9  g r  )r6   r  r  r   r  )r[   rb   r  r  r  r  s         r0   r  TestStudentT.test_logcdf_logsf  s@    
 &%0qb"%/r2   r8   N)r  r  r  r  rG  rK  rP  r   r  r  rS  rd  rj  rp  r  r  r8   r2   r0   rE  rE  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   rE  c                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)TestRvDiscretei  c                 L    [         R                  R                  S5      U l        g )Ni}rU   rZ   s    r0   r\   TestRvDiscrete.setup_method  rC  r2   c                    / SQn/ SQnSn[         R                  " SX4S9nUR                  X0R                  S9n[	        U[
        R                  5      (       d   e[        X5       H0  u  pg[        [        XV:H  5      [        U5      -  U-
  5      S:  a  M0   e   UR                  U R                  S9n[
        R                  " [        U5      [
        R                  5      (       d   eg )	N)r   r   r   rj   r   r   )r   r  r  r   r  r   r   sample)r  valuesr   ry  r   )r6   r;   r   rY   rQ  rV   ru  r%  r   r  r   r   r  integer)r[   statesprobabilitysamplesr  rb   rD   r  s           r0   rW  TestRvDiscrete.test_rvs  s    $48V4IJEEwXXE6!RZZ((((,DAs16{5>1A56=== - EEtxxE(}}T!Wbjj1111r2   c                 0   [         R                  " / SQ5      n[        R                  " / SQU4S9n[	        [        X5      5      * nUR                  5       n[        XC5        [        R                  " / SQ/ SQ4S9nUR                  5       n[        US5        g )N)r  rn  r  r  r|  )rc  r   r   r   )	rV   r   r6   r;   r  r   r>   r   r   )r[   r6  r  r  r  s        r0   r  TestRvDiscrete.test_entropy  su    *+i%78%-..
IIK&i%=>IIKQr2   c                     / SQn/ SQn[         R                  " X4S9nSS/SS//n[        UR                  U5      SS	/S
S//SS9  g )Nr  r   r  r  r  rc  r?  r  rj   r   r  r   r  r  r   )r6   r;   r   r^  )r[   xkpkr  rb   s        r0   r|  TestRvDiscrete.test_pmf  s[    rh/"X!Wq	sc$*/	1r2   c                     / SQn/ SQn[         R                  " X4S9n/ SQn/ SQn[        UR                  U5      USS9  [        U Vs/ s H  ocR                  U5      PM     snUSS9  g s  snf )Nr  r  r  )r  rc  rB  r  r   r  r   r   )r   r   r   r   r   r   r   r   r  r   )r6   r;   r   rt   )r[   r  r  r  x_valuesrO   r  s          r0   rk  TestRvDiscrete.test_cdf  sf    rh/55x((? 	h7hh7 u	.7   	A+c                     / SQn/ SQn[         R                  " X4S9n/ SQn/ SQn[        UR                  U5      USS9  [        U Vs/ s H  ocR                  U5      PM     snUSS9  g s  snf )Nr  r  r  )r`   r   r  r   r   rc  )r   r   rj   rj   r   r   r  r   )r6   r;   r   r   )r[   r  r  r  q_valuesrO   r  s          r0   r  TestRvDiscrete.test_ppf  sf    rh/0%x((? 	H5HqH5 u	.5r  c           	          / SQ/ SQ4n[         R                  " US9n[        UR                  UR	                  UR
                  S S 5      S-   5      UR
                  SS  5        g )N)r   rj   r   r  r  )r`   r  r  r  r`   r  r   r  r   )r6   r;   r   r   rt   r  )r[   rU  r  s      r0   test_cdf_ppf_next TestRvDiscrete.test_cdf_ppf_next  sU    !:;d+266"&&s"4t";<559	&r2   c                 >   [         R                  " S5      R                  S5      n[         R                  " / SQ/ SQ/ SQ/5      n[        R
                  " X4S9n[        UR                  5       [         R                  " UR                  UR                  -  5      SS9  g )Nre  )r   r   )r`   r`   r  ry  )r`   r`   ry  ry  r  r  r   )rV   r&  r  r   r6   r;   r   r   r  r  r  r[   r  r  r  s       r0   test_multidimension"TestRvDiscrete.test_multidimension  sq    YYr]""6*XX---/ 0 rh/		RVVBEEBEEM%:Gr2   c                    / SQnSS/n[        [        [        R                  40 [	        X4S9D6  / SQn[        [        [        R                  40 [	        X4S9D6  / SQn/ SQn[        [        [        R                  40 [	        X4S9D6  / SQn/ SQn[        [        [        R                  40 [	        X4S9D6  SS/nSS/n[        [        [        R                  40 [	        X4S9D6  g )Nr  r   r  )r   333333?gffffff濩r   rj   r   r   r   )r  r  r  r  r  r   )r  r(  r6   r;   r$  r[   r  r  s      r0   test_bad_inputTestRvDiscrete.test_bad_input  s    3Zj%"3"3MtB87LMj%"3"3MtB87LMj%"3"3MtB87LM'j%"3"3MtB87LMV3Zj%"3"3MtB87LMr2   c                 ^   [         R                  " S5      R                  S5      [         R                  " SS5      p![	        [
        [        R                  40 [        X4S9D6  [         R                  " S5      R                  S5      [         R                  " SS5      p![	        [
        [        R                  40 [        X4S9D6  [         R                  " S5      R                  S5      [         R                  " SS5      p![        [        R                  " X4S9R                  S5      S5        g )	Nr   rj   rj   rj   r   gUUUUUU?r  r  r   rj   r   )rV   r&  r  r  r  r(  r6   r;   r$  r   r^  r  s      r0   test_shape_rv_sample#TestRvDiscrete.test_shape_rv_sample  s     1%%f-rwwvs/CBj%"3"3MtB87LM 1%%f-rwwvs/CBj%"3"3MtB87LM 1%%f-rwwvs/CBU&&rh7;;A>Dr2   c                     / SQn/ SQn[         R                  " X4S9n[        UR                  5       [        R
                  " UR                  UR                  -  5      SS9  g )N)r   rj   r   r  r  r  )r`   r  r  r  r  r`   r  r  r   )r6   r;   r   r   rV   r  r  r  r  s       r0   test_expect1TestRvDiscrete.test_expect1  sE     +rh/		RVVBEEBEEM%:Gr2   c           
      X   / SQn/ SQn[         R                  " X4S9n[        UR                  5       UR	                  5       SS9  [        UR                  5       [        S [        X5       5       5      SS9  [        UR                  S 5      [        S [        X5       5       5      SS9  g )	N)/g      i@g     r@g      y@g     @@g     @g     @      @g      @r  g     0@g     @g     P@g     @g     p@g      @g     @g      @g     @rR  g     h@g     0@g     @g     @g     @g     P@g     @g     @g     @rS  g     8@g      @g     ȩ@g     @g     X@g      @g     @g     @g     x@g     @@g     @g     h@g     ̰@g     0@g     @g     @g     \@g     @)/g-C6:?r   gF%uk?g:vz?r   r   g.nr?g|гY?r   r   r   g @6*? 4U0*C?g@+?gC6z?g nr?g ?gOjM?g n?g1w-!?g:pΈ?gףp=
?g _Le?r   g^)p?g~jtx?gJ4q?gGzt?g J4q?g Mb@?g@Psׂ?g@^)ˀ?r   r   g N@s?g 1w-!_?r  gൄ|г?r   gH}}?r   g
F%u?r   r   g ^)ˀ?g v?r   r  r  r   c              3   .   #    U  H  u  pX-  v   M     g 7frz   r8   r  rS  ws      r0   	<genexpr>.TestRvDiscrete.test_expect2.<locals>.<genexpr>E  s     9jdaAEjs   c                     U S-  $ Nrj   r8   r   s    r0   rE   -TestRvDiscrete.test_expect2.<locals>.<lambda>H      AqDr2   c              3   6   #    U  H  u  pUS -  U-  v   M     g7f)rj   Nr8   r  s      r0   r  r  I  s     <AqD1Hs   )r6   r;   r   r   r   r  r%  )r[   r  pyr  s       r0   test_expect2TestRvDiscrete.test_expect2&  s    =?  qg. 			RWWYU;		9c!j99	G 			.1<Q<<5	Jr2   r  N)r  r  r  r  r\   rW  r  r|  rk  r  r  r  r  r  r  r  r  r8   r2   r0   rw  rw    sC    42
	1..&HN(EH#Jr2   rw  c                        \ rS rSrS rS rSrg)TestSkewCauchyiL  c                    [         R                  " SSS5      n[        [        R                  R                  USS9[        R                  R                  U5      5        [        [        R                  R                  USS9[        R                  R                  U5      5        [        [        R                  R                  USS9[        R                  R                  U5      5        g Nr  r   rd   r   ra  )	rV   rh  r   r6   
skewcauchyrl   r  rt   r   r  s     r0   test_cauchy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                    [         R                  R                  S5      nUR                  S5      S-  S-
  nUR                  S5      S-  S-
  n/ SQn/ SQn[	        [
        R                  R                  X25      U5        [	        [
        R                  R                  X25      U5        [	        [
        R                  R                  XR5      U5        g )Nr   rc   rj   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?)
rV   rW   rI  randr   r6   r  rl   rt   r   )r[   rY   r.   rb   rl   rt   s         r0   test_skewcauchy_R TestSkewCauchy.test_skewcauchy_RV  s    & ii##A&HHRL1q HHRL2!%$ 	((,,Q2C8((,,Q2C8((,,S4a8r2   r8   N)r  r  r  r  r  r  r  r8   r2   r0   r  r  L  s    7 9r2   r  c                       \ rS rSrS r\R                  S 5       r\R                  R                  S/ SQ5      S 5       r
Srg)	TestJFSkewTiy  c                    S=pUS-  n/ SQn/ SQn[         R                  " X5      n[         R                  " U5      n[        UR	                  U5      UR	                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  S5      UR                  S5      5        g )Nr   rj   )r  r   rc  r   )r   r`   r  r   r   rc  r  )r6   	jf_skew_tr  r   rl   rt   r   )r[   r.   r/   r  rb   r  jfr  s           r0   test_compare_tTestJFSkewT.test_compare_tz  s     	U!-__Q"GGBKq	1558,q	1558,q	1558,(!''&/:r2   c                     [         R                  " [        [        5      R                  S-  5      n[         R
                  R                  USS9$ )at  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)rV   loadr   __file__parentrec
fromarraysr*  s     r0   gamlss_pdf_dataTestJFSkewT.gamlss_pdf_data  sA     wwN!!$HH
 vv  [ 99r2   za,b)r  )r  r   )re     c                     UUS   U:H  US   U:H  -     nUS   US   pe[        U[        R                  " X#5      R                  U5      SS9  g)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/   rb   rl   r  r   N)r   r6   r  rl   )r[   r  r.   r/   r   rb   rl   s          r0   test_compare_with_gamlss_r&TestJFSkewT.test_compare_with_gamlss_r  s[     S!Q&?3+?1+DE
 cDK3U__Q266q9Fr2   r8   N)r  r  r  r  r  r   rc  r  r  r  r  r  r8   r2   r0   r  r  y  sH    ;  ^^: : [[U$>?	G @	Gr2   r  rj   r   g@r   gףp=
1@rL  gRZ@i   gS㥛Ԋ@r`   ra   g&@iQ i'  i0ybi l   HO1Z i3r(  irc   ird   ikr  i1r   i  i4i N  i(  lEI. rY  i c                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	\5      S
 5       rS rS rS rSrg)TestSkewNormi  c                 $    [        S5      U l        g rX  )r   rY   rZ   s    r0   r\   TestSkewNorm.setup_method  s    %d+r2   c                     [         R                  " SSS5      n[        [        R                  R                  USS9[        R                  R                  U5      5        g r  )rV   rh  r   r6   skewnormrl   rK  r  s     r0   test_normalTestSkewNorm.test_normal  sB    KKAs#!%.."4"4Q!"4"<"'**.."3	5r2   c                     [        S5      nSn[        R                  R                  SX!S9n[	        X#R
                  5        [        R                  R                  SX!S9n[	        X#R
                  5        g )Nr  )r   r   r   r   )r.   r   r   r(  )r   r6   r  r   r   rO  )r[   rY   rO  rb   s       r0   rW  TestSkewNorm.test_rvs  s[     &NNEDUGG$NN%BUGG$r2   c                    [        S5      n[        R                  R                  S[	        S5      SSUS9n[
        R                  " U5      [
        R                  " U5      [        R                  " U5      [        R                  " U5      /n[        R                  R                  SSSSS9n[        XCSS	9  [        R                  R                  S
[	        S5      SSUS9n[
        R                  " U5      [
        R                  " U5      [        R                  " U5      [        R                  " U5      /n[        R                  R                  S
SSSS9n[        XCSS	9  g )Nr  r   r  r   rj   )r.   r   rh   ri   r   r  )r.   rh   ri   r  rf  r  )r   r6   r  r   rt  rV   r   r  r  kurtosisr   )r[   rY   r.  rO   r  s        r0   rV  TestSkewNorm.test_moments  s    &NNSq,/  1GGAJq	5::a=%..:KL>>''!!V'L!(a@NN#c(,/  1GGAJq	5::a=%..:KL>>''"!1f'M!(a@r2   c                     / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/nU H/  u  p#n[         R                  R                  X#5      n[        XTSS	9  M1     g )
N)r  r   gEAV)r  r   gV|@$a)r  r   g0rY)r  r   Zk)r=  r   r  )r  r  ļ)rj   g    cr  r  r   )r6   r  r   r   )r[   
logpdfvalsrb   r.   	logpdfvalr  s         r0   test_pdf_large_xTestSkewNorm.test_pdf_large_x  sN     2302455

  *OA)>>((.DD$7  *r2   c                     [         R                  R                  / SQS5      n[        U[        R
                  " S5      SS9  [         R                  R                  SS5      n[        USSS9  g )	N)rc   rA  rH  r   r   r  r   r  r  rc  )r6   r  rt   r   rV   onesr  s     r0   test_cdf_large_xTestSkewNorm.test_cdf_large_x  sP     NN|R02771:E2NNr3'3U+r2   c                     / SQ/ SQ/ SQ/ SQ/ SQ/nU H[  u  p#n[         R                  R                  X#5      n[        XTSS9  [         R                  R	                  U* U* 5      n[        XTSS9  M]     g )N)re  r   gzbLe9)r  rj   gn'/2;)r  r   g::)rK  r   g|<)r  r  r  r  r   )r6   r  rt   r   r   )r[   cdfvalsrb   r.   cdfvalr  s         r0   test_cdf_sf_small_values%TestSkewNorm.test_cdf_sf_small_values  sl     .+,./
 $LA&""1(AAD1!!1"qb)AAD1 $r2   z
a, momentsc                 |    [        USS9 H.  u  p4[        R                  R                  X15      n[	        XTSS9  M0     g )Nr   )startr  r   )rS  r6   r  r  r   )r[   r.   r  orderrO   r  s         r0   test_noncentral_moments$TestSkewNorm.test_noncentral_moments  s3    (:OE..''1CC6  ;r2   c           	      6   [         R                  R                  S5      nSu  p#n[        R                  " X#U5      nUR                  SUS9n[        R                  R                  USSS9u  pxn	[        R                  R                  USSS9u  pnXs=:X  a  S:X  d   e   eXz:w  d   e[        R                  R                  USSS	S
9u  pnUS:X  d   e[        R                  " XU5      nUR                  SS9n[         R                  " U5      [        R                  " U5      4n[        UU5        [        R                  R                  SSUS9n[        R                  R                  U5      n[         R                  " [         R                  " U5      5      (       d   e[        R                  R                  US	S9u  nnn[         R                  " U5      (       d   e[         R                  " U5      [         R                  " U5      nn[        UUU[         R                  " S[         R                   -  5      -  -   5        [        UUS-  SS[         R                   -  -
  -  5        [        R                  R                  USS9u  nnn[        R                  R                  U* SS9u  nnn[        UUU/U* U* U/5        [        R                  R                  US	S9u  nn n![        R                  R                  U* S	S9u  n"n#n$[        U"U#U$/U* U * U!/5        g )Nl   #ke )r  r  r   rd   r   r  r   r   gmmr   r  msr  r   r  rj   mle)rV   rW   rX   r6   r  r   r   r   r  r   rj  r   r  isinfr  r  rm   )%r[   rY   r.   rh   ri   rK   r   a2loc2scale2a3loc3scale3a4loc4scale4dist4r   r  r   a5loc5scale5r  rS  a6ploc6pscale6pa6mloc6mscale6ma7ploc7pscale7pa7mloc7mscale7ms%                                        r0   r&  TestSkewNorm.test_fit#  s   ii##$78$~~ae,hhCch2 !>>--c4a-@& >>--c4a-@& q     xx !>>--c1Qt-L&{{r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                 D  ^	 [         R                  " / SQSS/-  -   S/-   5      n[        R                  R	                  U5      n[        R                  R                  X!5      n[        R                  R	                  USS9n[        R                  R                  XA5      nX5S-
  :  d   e[         R                  R                  S5      m	S	S
SS.nU	4S jn[        R                  " [        R                  XUS9n[         R                  R                  X(R                  SS9  g )N)r  r   r  re  r   r   T)superfitr   l   y
ND )r  r   )r  rc   )r  rc   r.   rh   ri   c                    > [        XTS9$ )Nr  )r$   )funr   rY   s     r0   	optimizer0TestSkewNorm.test_fit_gh19332.<locals>.optimizerh  s    )#3??r2   )r   r  r   )rV   r   r6   r  r   r   rW   rX   rP  r   params)
r[   rb   r"  r   params_superr  r   r   
fit_resultrY   s
            @r0   test_fit_gh19332TestSkewNorm.test_fit_gh19332S  s    
 HH*R1#X5;<##A&nn!!&,
 ~~))!d);nn!!,23Y ii##$78y;G	@ YYu~~qIN



""6+<+<4"Hr2   c                 V    [        [        R                  R                  SS5      SSS9  g )Nr   rw  gi}#%?r   r   )r   r6   r  r   rZ   s    r0   r  TestSkewNorm.test_ppfn  s"     	**457HuUr2   r  N)r  r  r  r  r\   r  rW  rV  r  r  r  r   r  r  _skewnorm_noncentral_momentsr  r&  r%  r  r  r8   r2   r0   r  r    s`    ,5%A8 ,2" [[\+GH7 I7
.H`I6Vr2   r  c                   ,    \ rS rSrS rS rS rS rSrg)	TestExponiu  c                 V    [        [        R                  R                  S5      S5        g r  )r   r6   r  rl   rZ   s    r0   	test_zeroTestExpon.test_zerov  s    U[[__Q'+r2   c                     [        [        R                  R                  S5      S5        [        [        R                  R	                  [        R                  R                  S5      5      S5        g )Nr  r  )r   r6   r  rt   r  r   rZ   s    r0   	test_tailTestExpon.test_taily  s=    U[[__U+U3U[[__U[[^^B%78"=r2   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g No_?46@yX5ͻ@j+?UX@)rV   r   r)  r  r(  r6   r  r   r  s     r0   test_nan_raises_errorTestExpon.test_nan_raises_error}  5    HHfffffbffEFj%++//15r2   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r3  )rV   r   r*  r  r(  r6   r  r   r  s     r0   test_inf_raises_errorTestExpon.test_inf_raises_error  r;  r2   r8   N)	r  r  r  r  r-  r0  r9  r=  r  r8   r2   r0   r+  r+  u  s    ,>6
6r2   r+  c                   n    \ rS rSrS rS rS r\R                  R                  SSS/5      S 5       r
S	rg
)TestNormi  c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r3  )rV   r   r)  r  r(  r6   rK  r   r  s     r0   r9  TestNorm.test_nan_raises_error  5    HHfffffbffEFj%**..!4r2   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r3  )rV   r   r*  r  r(  r6   rK  r   r  s     r0   r=  TestNorm.test_inf_raises_error  rC  r2   c                 \    / SQn[        [        [        R                  R                  USS9  g )Nr  shrimp)plate)r  r+  r6   rK  r   r  s     r0   test_bad_keyword_argTestNorm.test_bad_keyword_arg  s    i(Cr2   rh   r   r   c                     Sn[         R                  R                  SU-   SU-   US9n[        X2SS9  [         R                  R                  SU-   * SU-   * U* S9n[        X2SS9  g )Ngg	{F.:r  re  rh   r   r   )r6   rK  
_delta_cdfr   )r[   rh   rO   r  s       r0   test_delta_cdfTestNorm.test_delta_cdf  si     )

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

%%3i2c6%Ee4r2   r8   N)r  r  r  r  r9  r=  rI  r   r  r  rN  r  r8   r2   r0   r@  r@    s;    5
5
D [[UQF+
5 ,
5r2   r@  c                   $    \ rS rSrSrS rS rSrg)TestUniformi  gh-10300c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r3  )rV   r   r)  r  r(  r6   r  r   r  s     r0   r9  !TestUniform.test_nan_raises_error  7    HHfffffbffEFj%--"3"3Q7r2   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r3  )rV   r   r*  r  r(  r6   r  r   r  s     r0   r=  !TestUniform.test_inf_raises_error  rU  r2   r8   N)r  r  r  r  __doc__r9  r=  r  r8   r2   r0   rQ  rQ    s    8
8r2   rQ  c            
       >   \ rS rSrS rS rS rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S	/ S
Q/ SQ/ SQ/ SQ/ SQ/5      S 5       r\R                  R                  S	/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      S 5       rSrg)TestExponNormi  c                    S nSu  p#nSXC-  -  n[         R                  R                  XRUSS9n[        Xa" XCU5      5        Su  p#nSXC-  -  n[         R                  R                  XRUSS9n[        Xa" XCU5      5        Su  p#nSXC-  -  n[         R                  R                  XRUSS9n[        Xa" XCU5      5        Su  p#nSXC-  -  n[         R                  R                  XRUSS9n[        Xa" XCU5      5        g )	Nc                     SSX-  S-  -  -   nSX-  S-  -  US-  -  nSSX-  S-  -   S-  -  nUSU -  -   X-  SX -  -  -   XE/$ )Nrc  r   rj   r   r        @r  r8   )lamsigr  opK2exp_skewexp_kurts         r0   get_moms,TestExponNorm.test_moments.<locals>.get_moms  sn     cg\))DCI>)D4L8Ha39q.0B77H3J#sw- 7LLr2   )r   r   r   rc  r  rg  )r(  rj   r`   )r   r   r   )r  r  r  )r6   	exponnormr   )r[   rc  r  r_  r^  Kstss          r0   rV  TestExponNorm.test_moments  s   	M 39oo##AS&#IC#B!78!39oo##AS&#IC#B!7839oo##AS&#IC#B!78"39oo##AS&#IC#B!78r2   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  USSS9  g 	Nr4  r5  r6  r7  r8  r   r   r  )rV   r   r)  r  r(  r6   re  r   r  s     r0   r9  #TestExponNorm.test_nan_raises_error  ;    HHfffffbffEFj%//"5"5qqKr2   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  USSS9  g rj  )rV   r   r*  r  r(  r6   re  r   r  s     r0   r=  #TestExponNorm.test_inf_raises_error  rl  r2   c                 T   [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        g )Ni|r   r     r   )r   r6   re  rl   rZ   s    r0   test_extremes_xTestExponNorm.test_extremes_x  sn    EOO//a8#>EOO//a8#>EOO//d;SAEOO//d;SAr2   zx, K, expected))rA  r   g6
N-)r   r   g՜n+H?)r   r   gi?)r  r   gbJI-)rc   r   gI8?)rc   r#  gQ3|-0?c                 T    [        [        R                  R                  X5      USS9  g r	  )r   r6   re  rl   )r[   rb   rf  rO   s       r0   test_std_pdfTestExponNorm.test_std_pdf  s     	++A18%Hr2   zx, K, scale, expected)r   r   r   gVAҤ?)r  {Gzt?r   g'^>)r0  r   rd   r   )r0  r   r   gbr ;)r   rG  r   gVMe?c                 r    [         R                  R                  XUS9nUS:X  a	  US:X  d   eg [        XTSS9  g )Nrb  r   r   r   )r6   re  rt   r   r[   rb   rf  ri   rO   r  s         r0   test_cdf_small_KTestExponNorm.test_cdf_small_K   s9     OOE2s?8O8Ae4r2   )rc   r   r   ghG}$;)rj   rv  r   g]fJ?)r   rv  r   g31"g#;)rc   rv  r   gf
+-)rA  rv  r   r   )r(  rG  r   ga9S?c                 r    [         R                  R                  XUS9nUS:X  a	  US:X  d   eg [        XTSS9  g )Nrb  r   -a=r   )r6   re  r   r   rx  s         r0   test_sf_small_KTestExponNorm.test_sf_small_K  s9     OOq51s?8O8Ae4r2   r8   N)r  r  r  r  rV  r9  r=  rq  r   r  r  rt  ry  r}  r  r8   r2   r0   rZ  rZ    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   rZ  c                       \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ SQ5      S 5       r
S	rg
)TestGenExponi(  c                     SSK Jn  [        R                  R	                  [
        R                  " SSS5      SSS5      n[        U" USS9SS5        g )	Nr   )simpsonrc   r   r   r   )dxr   )scipy.integrater  r6   genexponrl   rV   r&  r   )r[   r  r  s      r0   test_pdf_unity_area TestGenExpon.test_pdf_unity_area)  s?    +NNryyB5sCEGA$/A6r2   c                     [         R                  R                  [        R                  " SSS5      SSS5      n[        R
                  " SU:*  US:*  -  5      (       d   eg )Nr   rc   r   r   r   r   )r6   r  rt   rV   r&  r   )r[   rt   s     r0   test_cdf_boundsTestGenExpon.test_cdf_bounds/  sK    nn  1b$!7c3GvvqCxC1H-....r2   zx, p, a, b, c))rL  gM <r   rj   r  )r  g%DYY?r   rj   r   )r  gS4z?      #@rj   r   )r   ga^5?r  r  r   )rs  gs%)?r  r  r   )r  gdm?r  r   r   c                     [         R                  R                  XXE5      n[        XbSS9  [         R                  R	                  X#XE5      n[        XqSS9  g ru  )r6   r  r   r   r  )r[   rb   r  r.   r/   r  r   r  s           r0   ry  TestGenExpon.test_sf_isf?  sD     ^^qQ*E*nn  q,U+r2   ))r  g;\i?r   rj   r   )r  gu0?r  rj   r   )r   g-%I?r  r  r   )rs  g]d?r  r  r   )r  g泩'?r  r   r   c                     [         R                  R                  XXE5      n[        XbSS9  [         R                  R	                  X#XE5      n[        XqSS9  g ru  )r6   r  rt   r   r   )r[   rb   r  r.   r/   r  rt   r   s           r0   r  TestGenExpon.test_cdf_ppfM  sD     nn  q,U+nn  q,U+r2   r8   N)r  r  r  r  r  r  r   r  r  ry  r  r  r8   r2   r0   r  r  (  sf    7/  [[_IJ,J, [[_JK,K,r2   r  c                       \ rS rSrS rSrg)TestTruncexponiZ  c                     SS/nSS/nSS/n[        [        R                  R                  X!5      USS9  [        [        R                  R	                  X15      US	S9  g )
NrA  rd   g_93@gBX@g,M<gǃ@֫5gLa㧝=r   r  )r   r6   
truncexponr   r  )r[   r/   rb   r  s       r0   ry  TestTruncexpon.test_sf_isf\  s\     I	"%'=>((++A13WE((,,S4aeDr2   r8   N)r  r  r  r  ry  r  r8   r2   r0   r  r  Z  s    Er2   r  c                       \ rS rSrS rSrg)TestExponpowif  c                     [        [        R                  R                  SS5      S5        [        [        R                  R	                  [        R                  R                  SS5      S5      S5        g )Nr  r   r  r   r   )r   r6   exponpowrt   r  r   rZ   s    r0   r0  TestExponpow.test_tailg  sL    ENN..ub95AENN..u~~/@/@B/GL	r2   r8   N)r  r  r  r  r0  r  r8   r2   r0   r  r  f  s    r2   r  c                   &    \ rS rSrS rS rS rSrg)TestSkellamim  c                     [         R                  " SS5      nSu  p#[         R                  " / SQ5      n[        [        R
                  R                  XU5      USS9  g )Nr  rL  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~?rf  )rV   r&  r   r   r6   skellamr^  )r[   r_   mu1mu2skpmfRs        r0   r|  TestSkellam.test_pmfn  sK    IIc2-. 	EMM--ac:FBOr2   c                     [         R                  " SS5      nSu  p#[         R                  " / SQ5      n[        [        R
                  R                  XU5      USS9  g )Nr  rL  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   rf  )rV   r&  r   r   r6   r  rt   )r[   r_   r  r  skcdfRs        r0   rk  TestSkellam.test_cdf  sK    IIc2-. 	EMM--ac:FANr2   c                     Su  pn[        [        R                  R                  XU5      SSS9  [        [        R                  R	                  XU5      SSS9  g )N)r   r   gs1Cr   r  r   r   )r   r6   r  r^  rt   )r[   rb   r  r  s       r0   test_extreme_mu2TestSkellam.test_extreme_mu2  sE    .))!#6F))!#6Fr2   r8   N)r  r  r  r  r|  rk  r  r  r8   r2   r0   r  r  m  s    P*O*Gr2   r  c                      \ rS rSrS rS r\R                  " SS9S 5       r\R                  R                  SSS	/5      \R                  R                  S
/ SQ5      \R                  R                  S/ SQ5      \R                  R                  S\" SSS9 V Vs/ s H  nSU;   d  M  UPM     snn 5      \R                  " SS9S 5       5       5       5       5       rS rSrgs  snn f )TestLognormi  c                     [         R                  " 5          [         R                  " S[        5        [        R
                  R                  / SQS5      n[        U/ SQ5        S S S 5        g ! , (       d  f       g = f)Nr  r   r   r   r   )r   g~r?g e3E?)r  r  r  r  r6   r9  rl   r   r[   rl   s     r0   r`  TestLognorm.test_pdf  sM     $$&!!'>:--##K3C%c+HI '&&s   AA++
A9c           	         Su  pn[        [        R                  R                  X-
  US9[        R                  R                  [
        R                  " X-
  5      U-  5      5        [        [        R                  R                  X-
  US9[        R                  R                  [
        R                  " X-
  5      U-  5      5        g )N)g(\5i@   gOn?rC   )r   r6   r9  r   rK  rV   r  r  )r[   r  r  sigmas       r0   r  TestLognorm.test_logcdf  s    *((%(8

bffRUmE&9:	<++BEU+;

((u)<=	?r2   rT  rU  c                 @    [         R                  R                  S5      $ rX  rY  rZ   s    r0   rY   TestLognorm.rng  r[  r2   r   r`   rj   r   )r  r   rj   r  )r  r   r   r~  )FTr   r  Fr  r  c                     [         R                  R                  SXX'S9n0 n	U(       a  XS'   U(       a  X)S'   U(       a  X9S'   [        [         R                  U40 U	DSS0D6  g )Nrd   )r   rD   ri   rh   r   r   r   r   r  T)r6   r9  r   r   r  s
             r0   r   'TestLognorm.test_fit_MLE_comp_optimizer  sk     }}  cY%, ! @ "J"L&N 	&emmT 	<T 	<6:	<r2   c                 h    Sn/ SQn/ SQn[        [        R                  R                  X!5      USS9  g )NgI+?)r`   绽|=gҶOɃ;gk3;9"7)g?y+@g~K8ax@gƶ@g9]Ar  r   )r   r6   r9  r  )r[   rD   r  r  s       r0   r  TestLognorm.test_isf  s0    
 &#))!/5Ar2   r8   N)r  r  r  r  r`  r  r   rc  rY   r  r  r%   rV   r  r   r  r  )r  es   00r0   r  r    s    J? ^^*%+ &+ [[[2q'2[[Y
3[[[*5[[<)0q)I -)IA!&!  )I -. [["< #. 6 4 3<$	B+-s   
C!(C!r  c                      \ rS rSrS rS rS rS r\R                  R                  \SS9S 5       r\R                  R                  \SS9S	 5       r\R                  R                  \SS9S
 5       rS rS r\R                  R#                  S\R&                  R(                  \R&                  R*                  /5      \R                  R#                  SSS/5      S 5       5       r\R                  R#                  SSS/5      S 5       r\R                  R#                  SSS/5      S 5       r\R                  R#                  S/ SQ5      S 5       r\R                  R#                  S/ SQ5      S 5       rS rS rg!)"TestBetai  c                     [         R                  R                  SSS5      n[        US5        [         R                  R                  SSS5      n[        U[        R
                  5        g )Nr   r   r   g;B.)r6   r  r   r   rV   r*  r[   r   s     r0   r  TestBeta.test_logpdf  sJ    ""1a-FN3""1c1-FBFF+r2   c                 6   Su  p[         R                  " / SQ5      n[        R                  " X5      n[	        UR                  U5      R                  5       S5        [	        UR                  U5      [         R                  " UR                  U5      5      5        g )Ni  i  r  r   r  gƒ)	rV   r   r6   r  r   r   r  rl   r   r[   r0  r  rb   r/   s        r0   test_logpdf_ticket_1866 TestBeta.test_logpdf_ticket_1866  sb    HH_%JJu#)+=>a"&&!"56r2   c           	      `    / SQn[        [        [        R                  R                  USSSS9  g )Nr`   r   r  r   r   rG  )r   r   rH  )r  r+  r6   r  r   r  s     r0   test_fit_bad_keyword_args"TestBeta.test_fit_bad_keyword_args  s$    i1$	&r2   c                 ^    / SQn[        [        [        R                  R                  USSS9  g )Nr  r   )fafix_a)r  r(  r6   r  r   r  s     r0   #test_fit_duplicated_fixed_parameter,TestBeta.test_fit_duplicated_fixed_parameter  s!     j%**..!3Gr2   zOverflow, see gh-14901reasonc                 b    Su  pn[        [        R                  R                  XU5      S5        g )N)g?rs  g   0xAgx)>)r   r6   r  r   )r[   r  r.   r/   s       r0   test_issue_12635TestBeta.test_issue_12635  s'     7a

qQ/1FGr2   c                 ,   [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        R                  R	                  X2S-   SU-
  5      n[        XA5        [        R                  R                  XBS-   SU-
  5      n[        XS5        g )N)g@3@?g^?gNC?)rc   rd   r   r  r   r   )rV   r   r6   r  r  r   r   )r[   inv_R
count_listr  invr   s         r0   test_issue_12794TestBeta.test_issue_12794  sv      1 2 XXo.
jjnnQQ0CD#jjmmCa*1DEr2   c                     Sn[         R                  " SS5      nSnSU-
  US-   X2-
  pen[        R                  R	                  XEU5      n[        R                  R                  XuU5      n[        USU-
  5        g )Nh㈵>r   rA  r   )rV   r&  r6   r  r   rt   r   )	r[   alpha_2count_nobsr  r.   r/   r  r   s	            r0   test_issue_12796TestBeta.test_issue_12796  si     1b!g+vz4=ajjnnQ1%jjnnSQ'Q[)r2   c                 T   Su  p[        [        R                  R                  SX5      [        R
                  5        Su  p[        [        R                  R                  SX5      [        R
                  5        Su  p[        [        R                  R                  SX5      S5        [        [        R                  R                  SX5      S5        Su  p[        [        R                  R                  SX5      S5        [        [        R                  R                  S	X5      S5        g )
Nr  r   )r  r   r   )r   r   r   +ph  )r   r   rc  )r   r6   r  rl   rV   r*  )r[   r.   r/   s      r0   r  TestBeta.test_endpoints  s     UZZ^^Aq,bff5 UZZ^^Aq,bff5 UZZ^^Aq,a0UZZ^^FA115 UZZ^^Aq,a0UZZ^^Ha3Q7r2   c                 N    Su  pn[         R                  R                  XU5        g )N)gףp=
?g   vH7B  @0B)r6   r  r   )r[   r  r.   r/   s       r0   test_boost_eval_issue_14606$TestBeta.test_boost_eval_issue_146064  s    'a

qQr2   r  a, b)r        )@)r  r  c                 <    Sn U" XBU5        g ! [          a     g f = f)Nr   )OverflowError)r[   r  r.   r/   r  s        r0    test_beta_ppf_with_subnormal_a_b)TestBeta.test_beta_ppf_with_subnormal_a_b8  s+    
 
	1O 	 	s   	 
zx, a, b, ref)r  r  r  g>׵NlIq)&.!>rs  r  g'rOc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r6   r  r  r   r[   rb   r.   r/   r  r  s         r0   r  TestBeta.test_logcdfQ  s$     ""1+%0r2   )r  r  r  gp}^U)r  rs  r  g
1*c                 \    [         R                  R                  XU5      n[        XTS5        g )Nr  )r6   r  r  r   r[   rb   r.   r/   r  r  s         r0   r  TestBeta.test_logsfY  s$     

  q)E*r2   r  ))r   r   gο)rG  r   g )r   r#  g&׾k )r   r   g*)Mc                 `    [        [        R                  " X5      R                  5       U5        g rz   r   r6   r  r>   r  s       r0   r  TestBeta.test_entropyj  s      	

1(002C8r2   za, b, ref, tol))r   rc   gCpr  )rc   rA  g8EOr   )g    NAg    NAg(4Fr  )    SAg   SAg8TAUr  )r  g   _Bg[VVuD&r  )rm  rm  gR#Lr   )rj   r  g?r5r  )rj   r  <Fr  )rj   rm  guRTc\r  )r   r  gL4r  )r   r  6Er  )r   rm  g.fq>\r  )rc   r  gnQc}4r  )rc   r  g{C Er  )rc   rm  %\r  )r  rj   r  r  )r  r   r  r  )rm  rc   r  r  c                 \    [        [        R                  " X5      R                  5       X4S9  g r  r  )r[   r.   r/   r  r  s        r0   r
  TestBeta.test_extreme_entropyr  s!    H 	

1(002CBr2   c           
         [         R                  " [         R                  5      n[        R                  " / SQ5      n[        R                  " / SQ5      nU" X#S9R                  5       n[        R                  " U" US   US   S9R                  5       U" US   US   S9R                  5       U" US   US   S9R                  5       U" US   US   S9R                  5       /5      n[        XE5        g )N)r  rd   rn  rc   )r  rn  rd   rA  r  r   r   rj   r   )r6   make_distributionr  rV   r   r>   r   )r[   Betar.   r/   r   r  s         r0   test_entropy_broadcasting"TestBeta.test_entropy_broadcasting  s     &&uzz2JJ*+JJ*+Qn$$&jj$11.66811.66811.66811.668: ; 	!r2   r8   N)r  r  r  r  r  r  r  r  r   r  skipifMACOS_INTELr  r  r  r  r  r  r6   r  r   r  r  r  r  r  r
  r 	  r  r8   r2   r0   r  r    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   r  c                   n   \ rS rSr/ SQrS rS r\R                  R                  S/ SQ5      S 5       r
\R                  R                  S\5      S	 5       rS
 r\R                  R                  S\/ SQ-   5      S 5       r\R                  R                  SSS/5      S 5       rS rS rS rS rS rSrg)TestBetaPrimei  ))r        Y@ry  D>?)r  r	  ry  m嗽?)r   ry  r`   gPK?)r   r	  ry  g%p?)r  ry  r`   g#|/?)r  r  r  gsM
<)r  ry  r	  $5Є*?)^ 9^;ry  r`   gompP?)r
	  r  r  g7j"!9)r
	  ry  r	  z^J?)r  ry  r`   gܷ"+>)r  r  r  grNs: )r  ry  r	  gK>c                 \   Su  p[         R                  " / SQ5      n[        R                  " X5      n[	        [         R
                  " UR                  U5      5      R                  5       5        [        UR                  U5      [         R                  " UR                  U5      5      5        g )Nr  r  )rV   r   r6   r1  r	   r  r   r   r   rl   r   r  s        r0   r  TestBetaPrime.test_logpdf  sj    HH_%OOE(AHHQK(,,./a"&&!"56r2   c           	         [         R                  R                  SSS5      n[        US5        Su  p#[        R
                  " / SQ5      n[         R                  R                  XU5      n[        [        R                  " U5      R                  5       5        [         R                  R                  nU Vs/ s H  oe" [         R                  XbU5      PM     nn[        XGSSS9  g s  snf )	Nr   r  r  r   r  r  -=r  )r6   r1  rt   r   rV   r   r	   r  r   r<   _cdf_singler   )r[   rb   r0  r  r0  gen_cdfrV  cdfs_gs           r0   rk  TestBetaPrime.test_cdf  s     OO3,QHH_%""1T2D!%%'( %%11HIJ'%//3t<J159 Ks   5!C$zp, a, b, expected))r   r@  r  gV)?)r  r@  r  gWJB9*=)r  r@  r  gOG J<)rN  r        @gΣ01)      ?r  r	  g8ǘ`?)>q?ry  r`   gMDc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r6   r1  r   r   )r[   r  r.   r/   rO   rb   s         r0   r  TestBetaPrime.test_ppf  s$     OOa(%0r2   z
x, a, b, pc                 V    [        [        R                  R                  XBU5      USS9  g ru  )r   r6   r1  r   )r[   rb   r.   r/   r  s        r0   test_ppf_gh_17631TestBetaPrime.test_ppf_gh_17631  s    ++A!4aeDr2   c                     [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[        [        R                  R                  X1U5      SSS9  g )Nrc  r   r}  r   )rV   r   r   r6   r1  _ppf)r[   r.   r/   r  s       r0   	test__ppfTestBetaPrime.test__ppf  sF    HHSMHHSMHHSM,,Q15sGr2   zx, a, b, expected))r  r  r  r  )r  ry  r`   gV[?)r  ry  r`   r	  c                 V    [        [        R                  R                  XU5      USS9  g r  )r   r6   r1  rt   )r[   rb   r.   r/   rO   s        r0   test_cdf_gh_17631TestBetaPrime.test_cdf_gh_17631  s!     	++A!4hUKr2   )rm  ry  r`   g%?)rm  r	  ry  goXr?c                 h    [         R                  R                  XU5      nUS:  d   e[        XTSS9  g )Nrc  gh㈵>r   )r6   r1  rt   r   )r[   rb   r.   r/   rO   r  s         r0   test_cdf_extreme_tails$TestBetaPrime.test_cdf_extreme_tails  s/     OOa(3ww$/r2   c                 x    / SQn/ SQn/ SQn/ SQn[         R                  R                  X1U5      n[        XTSS9  g )N)r   r   rj   ry  ry  ry  ry  r	  r	  ry  ry  ry  r  r  )r   rj   r   r`   r`   r`   r`   ry  ry  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   r1  r   r   )r[   r.   r/   rb   r  	sf_valuess         r0   r  TestBetaPrime.test_sf  s@    0;
 OO&&qQ/		U3r2   c                 h    SnSnSnSn[         R                  R                  XU5      n[        XTSS9  g )Nr   r   rd  gg%`ʼr  r   )r6   r1  r  r   r  s         r0   r  TestBetaPrime.test_logcdf+  s6    $''a0%0r2   c                 h    SnSnSnSn[         R                  R                  XU5      n[        XTSS9  g )Nr  r  r   g9;ЋVr  r   )r6   r1  r  r   r  s         r0   r  TestBetaPrime.test_logsf3  s6    %%%aA./r2   c                     [         R                  R                  / SQSSS9  [         R                  " SSS9R                  S5        g )N)r`   r  r  r  皙?r   r   r  r  r  )r6   r1  r   rZ   s    r0   test_fit_stats_gh18274$TestBetaPrime.test_fit_stats_gh18274<  s7     	6QqI!q!''/r2   c                     [         R                  S/n[        R                  " SSS/5      R	                  S5      n[        X!5        g )NgooB?rj   r  gffffff@r   )rV   r*  r6   r1  r  r   )r[   r  r   s      r0   test_moment_gh18634!TestBetaPrime.test_moment_gh18634C  s:     vv()ooa#s,33A6!r2   r8   N)r  r  r  r  cdf_valsr  rk  r   r  r  r  r	  r	  r!	  r$	  r  r  r  r0	  r3	  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            
       Z   \ rS rSrS rS rS rS rS rS r	\
R                  R                  SS	S
/5      S 5       r\
R                  R                  S/ SQ5      S 5       r\
R                  R                  S/ SQ5      \
R                  R                  S/ SQ5      \
R                  R                  S/ SQ5      \
R                  R                  SSS/5      \
R                  R                  SSS/5      \
R                  R                  SSS/5      S 5       5       5       5       5       5       rSrg)	TestGammaiO  c                     [         R                  R                  SSSS9n[        US5        [         R                  R                  SSSS9n[        US5        g )	NZ   i  r  rb  g
CTb?r   rc   gBΖ?)r6   r  rl   r   r  s     r0   r`  TestGamma.test_pdfP  sF    kkoob#To2C-kkooa4o0C+r2   c                 \    [         R                  R                  SS5      n[        US5        g r  )r6   r  r   r   r  s     r0   r  TestGamma.test_logpdfX  s$     ##Aq)FA&r2   c                 ^    / SQn[        [        [        R                  R                  USSS9  g )Nr  r   rG  )r   rH  )r  r+  r6   r  r   r  s     r0   r  #TestGamma.test_fit_bad_keyword_args^  s    i!!8Lr2   c                     [         R                  " [        R                  R	                  SS5      SSS9(       d   e[         R                  " [        R                  R	                  SS5      SS	S9(       d   eg )
NrN  r   gplC@r  r   r  rd   g1}t@r   )rV   iscloser6   r  r  rZ   s    r0   r  TestGamma.test_isfb  s\    " zz%++//%3+%9 	9 9zz%++//%5+%9 	9 9r2   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )NP   r  gޟ򑁺r  r   )r6   r  r  r   r  s        r0   r  TestGamma.test_logcdfx  s/    $##A)%0r2   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )NrG  r  gDmr  r   )r6   r  r  r   r  s        r0   r  TestGamma.test_logsf  s/    %!!!'/r2   ri   rc  rd  c                 f    [         R                  R                  US-  US-  SUS9n[        USSS9  g )N   r  r   rb  g>S*r   r   )r6   r  rM  r   r[   ri   r  s      r0   rN  TestGamma.test_delta_cdf  s6     &&uSy%)Qe&L6UCr2   za, ref, rtol))r  gt.r   )rj   rt  r   )rd   gX>k-־@r   )r  gwM7@r   )g NgmCg%og$6@r   )r  oܘ#]@r   c                 R    [        [        R                  R                  U5      X#S9  g r  )r   r6   r  r>   )r[   r.   r  r   s       r0   r  TestGamma.test_entropy  s     	++A.?r2   r.   )r   r   r	  rh   )r   r   r	  r  TFr   r  c                 X   [         R                  R                  S5      n[        R                  R                  XUSUS9n0 n	U(       a  XS'   U(       a  X)S'   U(       a  X9S'   S[        U	5      -
  n
U
S:X  aH  S	n[        R                  " [        US
9   [        R                  R                  " U4SS0U	D6  S S S 5        g [        R                  R                  " U4SS0U	D6n[        R                  " U6 nU
S:  a.  [        UR                  5       [         R                  " U5      5        U
S:  a2  [        UR                  S5      [         R                  " US-  5      5        U
S:  a3  [        UR                  S5      [         R                  " US-  5      5        g g ! , (       d  f       g = f)Nr   rd   r  r  r   r   r   r   r  r  r  r  r   rj   )rV   rW   rX   r6   r  r   r"  r   r   r(  r   r   r   r  )r[   r.   rh   ri   r  r   r  rY   r   r   r  r  thetarK   s                 r0   test_fit_mmTestGamma.test_fit_mm  sM    ii##$78{{qS,/  1 JL"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)r8   N)r  r  r  r  r`  r  r  r  r  r  r   r  r  rN  r  rQ	  r  r8   r2   r0   r7	  r7	  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   r7	  c                      Sn [         R                  " SU S-  -  SU S-  -  SSS9n[        UR                  S5      S5        g )	NrG  g;f?rj   r   r   rg   rc  gV{q@)r6   r  r   rl   )jitterZs     r0   test_pdf_overflow_gh19616rV	    sC     F6FAI-q619}!1MAAEE#J 12r2   c                       \ rS rSrS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ S	Q5      S
 5       r
S rSrg)
TestDgammai  c                    [         R                  R                  S5      nSnUR                  SUS9nUR	                  SUS9n[
        R                  R                  X45      n[
        R                  R                  [         R                  " U5      U5      S-  n[        XV5        [
        R                  " U5      n[        UR                  U5      USS9  g )Nl   OP($ rc   ri   r   )r  r   rj   r}  r   )rV   rW   rX   normalr  r6   dgammarl   r  r   r   )r[   rY   r   rb   r.   r   r  rK   s           r0   r`  TestDgamma.test_pdf  s    ii##$78JJRdJ+KKRdK+llq$kkoobffQi+a/!||ASu5r2   zx, a, expected))r  r   ggrU>)r=  r   g$IC<)ir   g2Wj<)r  g~)A.=)r   r   gf?c                 R   [         R                  R                  X5      n[        XCSS9  [         R                  R	                  X25      n[        XQSS9  [         R                  R                  U* U5      n[        XcSS9  [         R                  R                  X25      n[        Xq* SS9  g r  )r6   r\	  rt   r   r   r   r  )r[   rb   r.   rO   rt   r   r   r  s           r0   test_cdf_ppf_sf_isf_tail#TestDgamma.test_cdf_ppf_sf_isf_tail  s     llq$E2llx+U+\\__aR#51llx+Re,r2   r!  ))r  gmqn @)?g?)rB  gx?c                 T    [        [        R                  R                  U5      USS9  g r  r   r6   r\	  r>   r#  s      r0   r  TestDgamma.test_entropy  s      	,,Q/5Ar2   ))r  r  )r  g>_)r  g5i)r  go@)r  g4Fa3@)r  grO]@c                 T    [        [        R                  R                  U5      USS9  g r  rd	  r#  s      r0   test_entropy_entreme_values&TestDgamma.test_entropy_entreme_values  s    " 	,,Q/5Ar2   c                     [         R                  " / SQ5      n[        R                  R	                  U5      n[        [        U5      5       H,  nX#   [        R                  R	                  X   5      :X  a  M,   e   g )N)r   r   r  r  )rV   r   r6   r\	  r>   r  r"  )r[   rb   r  r  s       r0   test_entropy_array_input#TestDgamma.test_entropy_array_input!  sX    HH'(LL  #s1vA45<<//5555 r2   r8   N)r  r  r  r  r`  r   r  r  r`	  r  rg	  rj	  r  r8   r2   r0   rX	  rX	    s    6, [[-:;-;- [[X89B	9B [[X:;
B;
B6r2   rX	  c                       \ rS rSrS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r	S r
\R                  R                  S	/ S
Q5      S 5       rS rSrg)TestChi2i(  c                     [        [        R                  R                  SS5      SSS9  [        [        R                  R                  SS5      SSS9  g )Nr   gޞw1D?r  rf  rd   g6:֜?r   r6   chi2rl   rZ   s    r0   r  TestChi2.test_precision+  s@    EJJNN468N$&	(EJJNN346J$&	(r2   rr  ))g     p@r   g~#e)g      ^@rL  gtA)rD  r  gzĀ׿c                 V    [         R                  R                  X5      n[        XCSS9  g r  )r6   rp	  r  r   )r[   rb   r  r  r  s        r0   r  TestChi2.test_logcdf2  s"     ""1)%0r2   ))r  rL  r   )r  r  gc)r  rc   g]3c                 V    [         R                  R                  X5      n[        XCSS9  g r  )r6   rp	  r  r   )r[   rb   r  r  r  s        r0   r  TestChi2.test_logsf=  s"     

  '/r2   c                 d   Sn[         R                  R                  SU5      n[        USSS9  [         R                  R                  SU5      n[        USSS9  Sn[         R                  R                  S	U5      n[        US
SS9  [         R                  R                  SU5      n[        USSS9  g )Nrm  gλm:=6g'bd5 <r  r   r   gQ8@r  gܐ؆0guu[9=r`   g8-*@)r6   rp	  r   r   )r[   r  rb   s      r0   r  TestChi2.test_ppfG  s    JJNN5"%<5IJJNN3#7eDJJNN5"%:GJJNN3#8uEr2   r  ))r  gܫ>)r   gƯʉ?)rd   gn>@)   g͔v0@)r  g9:3@c                 ^    [        [        R                  " U5      R                  5       USS9  g r   )r   r6   rp	  r>   r  s      r0   r  TestChi2.test_entropy_  s!     	

2..0#EBr2   c                 Z    [        [        R                  R                  SS5      SS5        g )Nr   rj   r   r  ro	  rZ   s    r0   test_regression_ticket_1326$TestChi2.test_regression_ticket_1326h  s    EJJNN32C<r2   r8   N)r  r  r  r  r  r   r  r  r  r  r  r  r|	  r  r8   r2   r0   rm	  rm	  (  s    ( [[	+11
 [[	+00F0 [[Y:;C;C=r2   rm	  c                   t    \ rS rSrS rS rS rS r\R                  R                  SSS/5      S	 5       rS
rg)TestGumbelLim  c                 L    [         R                  R                  S5      U l        g )Nl   >S rU   rZ   s    r0   r\   TestGumbelL.setup_methodn  r^   r2   c                     [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[        X5        g Nr  r  )rV   rh  r6   re  rt   r   r   r
  s       r0   r  TestGumbelL.test_cdf_ppfr  sB    KKb!NNq!^^"r2   c                    [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[         R                  " U5      n[        R                  " U5      * n[        XE5        g r	  )
rV   rh  r6   re  r  r  r   r   expm1r   )r[   rb   r  ra  urS  s         r0   r  TestGumbelL.test_logcdf_logsfx  s`    KKb!NN!!!$NN  #FF1I]]1r2   c                     [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[        X5        g )Nr  r   )rV   rh  r6   re  r   r  r   r
  s       r0   ry  TestGumbelL.test_sf_isf  sB    KKQNNa ^^"r2   rh   r   r   c                     [         R                  R                  SXR                  S9n[         R                  R	                  X!S9u  p4[        X15        g )Nrd   r   r   )r6   re  r   rY   r   r   )r[   rh   r   
fitted_locr   s        r0   test_fit_fixed_param TestGumbelL.test_fit_fixed_param  sB     ~~!!s((!K**4*:
Z%r2   r  N)r  r  r  r  r\   r  r  ry  r   r  r  r	  r  r8   r2   r0   r	  r	  m  s?    5 [[URG,& -&r2   r	  c                        \ rS rSrS rS rSrg)TestGumbelRi  c                 T    [        [        R                  R                  S5      SSS9  g )NrJ  ?~T}%m;r  r   )r   r6   rd  r   rZ   s    r0   r  TestGumbelR.test_sf  s#     	))"-/E"	$r2   c                 T    [        [        R                  R                  S5      SSS9  g )NrN  r@	  r  r   )r   r6   rd  r  rZ   s    r0   r  TestGumbelR.test_isf  s#     	**513D"	$r2   r8   N)r  r  r  r  r  r  r  r8   r2   r0   r	  r	    s    $$r2   r	  c                   
   \ rS rSrS r\R                  " SS9S 5       r\R                  S 5       r\R                  S 5       r	\R                  S 5       r
\R                  R                  \R                  R                  S	\R                  " S
5      \R                  " S\R                  R                  S9/5      \R                  R                  SSS/5      \R                  R                  S/ SQ5      \R                  R                  SSS/5      S 5       5       5       5       5       r\R                  R                   \R                  R                  SSS/5      S 5       5       rS r\R                  R'                  SS9\R                  R                  SSS/5      \R                  R                  S SS/5      S! 5       5       5       rS" rS# rS$ r\R                  R                  \R                  R                  S%\R                  " / S&Q/ S'Q/ S(Q5      \R                  " / S)Q/ S*Q/ S+Q\R                  R                  S9\R                  " / S,Q\R2                  " S-S.S/5      \R2                  " S0SS15      \R                  R                   S9/5      S2 5       5       r\R                  R                  S%\R                  " / S&Q/ S'Q/ S(Q5      \R                  " / S)Q/ S*Q/ S+Q\R                  R                  S9\R                  " / S,Q\R2                  " S-S.S/5      \R2                  " S0SS15      \R                  R                   S9/5      S3 5       r\R                  R                  S4S5S/5      \R                  R                  S6S7S8/5      S9 5       5       r\R                  R                  S:S;S</S=S<//5      S> 5       r\R                  R                  S?S@S5\R<                  \R>                  \R>                  4/SASB//5      SC 5       r \R                  R                  SD/ SEQ5      \R                  R                  SF\!RD                  RF                  SG\R2                  " SHS5SI5      SJ4\!RD                  RH                  SG\R2                  " SHS5SI5      SJ4\!RD                  RF                  SK\R2                  " S5SLSI5      SG4\!RD                  RH                  SK\R2                  " S5SLSI5      SJ4/5      SM 5       5       r%\R                  R                  SN/ SOQ5      SP 5       r&\R                  R&                  \R                  R                  SN/ SQQ5      SR 5       5       r'\R                  SS 5       r(ST r)SU r*SVr+gW)XTestLevyStablei  c                 L    [         R                  R                  S5      U l        g )Nl   Y rU   rZ   s    r0   r\   TestLevyStable.setup_method  r^   r2   T)autousec                     S[         R                  l        S[         R                  l        S[         R                  l        [         R
                  R                  [         R                  l        g)z2Setup default parameters for levy_stable generatorS1	piecewiseN)r6   r  parameterizationcdf_default_methodpdf_default_method_levy_stable	_QUAD_EPSquad_epsrZ   s    r0   reset_levy_stable_params'TestLevyStable.reset_levy_stable_params  sH     .2*/:,/:,%*%7%7%A%A"r2   c                     [         R                  " [        [        5      R                  S-  5      n[         R
                  R                  UR                  SS9nU$ )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  rV   r  r   r  r  r  r  Tr*  s     r0   nolan_pdf_sample_data$TestLevyStable.nolan_pdf_sample_data  sL    6 wwN!!<=
 vv  /C Dr2   c                     [         R                  " [        [        5      R                  S-  5      n[         R
                  R                  UR                  SS9nU$ )aS  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	  r*  s     r0   nolan_cdf_sample_data$TestLevyStable.nolan_cdf_sample_data  sM    J wwN!!<=
 vv  /C Dr2   c                 f    [         R                  " [        [        5      R                  S-  5      nU$ )zSample 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)rV   r  r   r  r  r*  s     r0   nolan_loc_scale_sample_data*TestLevyStable.nolan_loc_scale_sample_data  s/     wwN!!?@
 r2   sample_sizerJ  rx  marksr	  S0r	  z
alpha,beta))rc  r   )rc  r   )r  r   )r  r   zgamma,deltar   r   r  c                     U[         R                  l        [         R                  " X#XES9n[         R                  " UR	                  X`R
                  S9UR                  5      u  pU	S:  d   eg )N)r0  r  ri   rh   r   ry  )r6   r  r	  r|  r   rY   rt   )
r[   r	  r0  r  r  r  r	  lsr   r  s
             r0   rW  TestLevyStable.test_rvs  s^    ( .>*%
 ||FF((F;RVV
 4xxr2   r  r   r   c           	          SnSnSn[         R                  R                  X!X4SU R                  S9n[         R                  " USX!X44S9u  pgUS:  d   eg	)
z3Additional test cases for rvs for alpha equal to 1.rc  r   r  rs  r  r  r  r   N)r6   r  r   rY   r|  )r[   r  r0  rh   ri   rb   statr  s           r0   test_rvs_alpha1TestLevyStable.test_rvs_alpha1*  sc     !!%3'+$(( " D,,q-%*#$=?4xxr2   c                 l   / SQn[         R                  R                  U5      u  p#pE[        USSSS9  [	        USS5        [	        USS	5        [	        US
S5        U/ SQ-   n[         R                  R                  U5      u  pxp[        US5        [        US5        [	        U
SS	5        [	        U	SS	5        g )N)wgr	  r   r   r   r   羼 u?r	  r	  r	  r	  67',?r	  r	  r	  r	  tA}˜.?r	  r	  r	  r	  Gz?r   r   rx  )\(̿rj   gۧ1?r   g9]c?)r	  r	  r	  r	  r	  r   gv?r	  )r6   r  r!  r   r   r   r[   rb   alpha1beta1loc1scale1r  alpha2beta2r  r  s              r0   r&  TestLevyStable.test_fit7  s    

 ',&7&7&A&A!&D#t148E4+FGQ/'1	

 99&+&7&7&A&A"&E#tVQUBFFA.D&!,r2   zUnknown problem with fitstart.r  zalpha,beta,delta,gamma)r  r  rj   r   )rc  r  rj   r   parametrizationc           	          U[         R                  l        [         R                  R                  XX4SU R                  S9n[         R                  R                  U5      nUu  pp[        XX4/XX/SS9  g)z7Test that fit agrees with rvs for each parametrization.r#  r  r   r   N)r6   r  r	  r   rY   r!  r   )r[   r0  r  r  r  r	  r   r   	alpha_obsbeta_obs	delta_obs	gamma_obss               r0   test_fit_rvsTestLevyStable.test_fit_rvsO  sw     -<)  $$Ue$(( % 
 ))$/471	Y%')7	
r2   c                 B   [         R                  " / SQ5      n[        R                  R	                  U5      u  p#pE[        R                  R	                  U* 5      u  pgp[        US5        US:w  d   e[        Xb5        [        Xs* 5        [        X* 5        [        X5        g )Nr   r   r   r   rc   rc   rc   rH  rH  rd   rd   r   r   )rV   r   r6   r  r!  r   r   )
r[   rb   r	  r	  r	  r	  r	  r	  r  r  s
             r0   test_fit_beta_flip!TestLevyStable.test_fit_beta_fliph  s    HH?@&+&7&7&A&A!&D#t&+&7&7&A&A1"&E#tUAqyyF+E6*D%(F+r2   c                 (   Sn[         R                  " / SQ5      n[        R                  R	                  U* 5      u  p4pV[        R                  R	                  U* U-   5      u  pxp[        Xs5        [        X5        [        XU-   5        [        X5        g )Nr   r	  )rV   r   r6   r  r!  r   )r[   SHIFTrb   r	  r	  r	  r	  r	  r	  r  r  s              r0   test_fit_delta_shift#TestLevyStable.test_fit_delta_shiftt  sx    HH?@&+&7&7&A&A1"&E#t&+&7&7&A&A1"u*&M#tF+E)D,/F+r2   c                 p   / SQn[         R                  R                  U5      u  p#pEUS:  d
   SU 35       eU[        U5      :  d   S[        U5       SU 35       e/ SQn[         R                  R                  U5      u  pxpUS:  d
   SU 35       eU	[	        U5      :  d   S[	        U5       SU	 35       eg )	N)r   r   r   r   rc   rc   rc   rH  rH     r	  r   zExpected alpha < 1, got zExpected loc < z, got )r   r   r   r   rc   rc   rc   rH  rH     r	  zExpected alpha > 1, got zExpected loc > )r6   r  r!  r  r+  r	  s              r0   test_fit_loc_extrap"TestLevyStable.test_fit_loc_extrap  s    6&+&7&7&A&A!&D#tz>5fX>>zc!f}DAxvdVDD}7&+&7&7&A&A"&E#tz>5fX>>zc"g~FR	vFF~r2   z pct_range,alpha_range,beta_range)r   r   r  )r`   r   rj   )r   r   r   )r   ry  r   r  r  )r`   r   r   r  rj   )gr   r   r  r  r   )r   ry  r`   r  ffffff?r   ?r   r   r  r  r`   rj   rA  r   r  c                   ^^^^ Un[         R                  " 5       nUR                  S:H  =(       a    UR                  S:H  mSR	                  UR                  UR                  UR
                  /5      nSSUUU4S j/SSUUU4S	 j/SSUUUU4S
 j/SSUUU4S j/SSUUU4S j/SSUUU4S j//n[        U5       GHf  u  n	u  pnU
[        R                  l	        Ub
  X\" U5         OUnSn[        R                  " 5          [        R                  " SU[        5        [        R                  R                  US   US   US   SSS9n[        R                   " SS9   [#        U/ SQU[        R$                  " XS   -
  5      [        R$                  " XS   -
  5      [        R$                  " US   5      -  /5      nSSS5        WUS   U:  [        R&                  " U5      -     nSU	 S U
 S!U S"UR(                  R*                   S#U 3
n[-        UUS   UUS$S%9  SSS5        GMi     g! , (       d  f       Ns= f! , (       d  f       GM  = f)&z2Test pdf values against Nolan's stablec.exe outputLinuxi686/dnirZ  c           	        > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:H  U S   S:H  -  U S   S:  U S   S:  -  U S   S:H  -  -  U S   S:*  [         R                  " U S   S	S
/5      -  -  U S   S:*  [         R                  " U S   SS/5      -  -  U S   S:*  [         R                  " U S   SS/5      -  -  U S   S:H  [         R                  " U S   SS/5      -  [         R                  " [         R                  " U S   5      / SQ5      -  -  U S   S:H  [         R                  " U S   S/5      -  [         R                  " [         R                  " U S   5      S/5      -  -  U S   S:H  [         R                  " U S   SS/5      -  [         R                  " [         R                  " U S   5      / SQ5      -  -  U S   S:H  U S   S:H  -  U S   S:H  -  -  U S   S:H  U S   S:H  -  U S   S:H  -  -  U S   S:H  U S   S:H  -  U S   S:H  -  -  U S   S:H  [         R                  " U S   S/5      -  [         R                  " [         R                  " U S   5      / SQ5      -  -  U S   S:H  [         R                  " U S   SS/5      -  [         R                  " [         R                  " U S   5      / SQ5      -  -  U S   S:H  [         R                  " U S   S	S
/5      -  [         R                  " [         R                  " U S   5      SS/5      -  -  U S   S:  -  ) -  $ )Npctr0  r  r   r   r   r/	  r  r   r  r  ry  r  r  r`   r  r   )r   r  r  r	  r	  )gٿ333333ӿr  r  r   r	  rc  r`   r  r  r  )r   r   rc  r  rB  )rV   isinr   r  alpha_range
beta_range	pct_ranges    r0   rE   7TestLevyStable.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                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:g  -  $ )Nr	  r0  r  r  rc  rV   r	  r	  s    r0   rE   r	    si    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ2%	'r2   c                    > U S   S:H  T(       + -  [         R                  " U S   T5      -  ST;   -  [         R                  " U S   T5      -  $ )Nr0  rc  r	  r  r	  )r  r	  r	  is_linux_32r	  s    r0   rE   r	    sX    wZ2%$_&GGAeHi01 ;&( GGAfIz2	3r2   g&.=c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:*  -  $ )Nr	  r0  r  r  r	  r	  s    r0   rE   r	    sV    GGAeHi0GGAgJ45GGAfIz23 wZ3&(r2   fft-simpsonr  c                    > U S   S:  [         R                  " U S   T5      -  [         R                  " U S   T5      -  [         R                  " U S   T5      -  $ )Nr0  r  r	  r  r	  r	  s    r0   rE   r	     sV    wZ3&GGAeHi01GGAgJ45 GGAfIz23r2   r  c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:  -  $ )Nr	  r0  r  r   r  r	  r	  s    r0   rE   r	  (  sh    GGAeHi0GGAgJ45GGAfIz23 wZ!^% wZ#%	'r2   Nz0Density calculations experimental for FFT methodr  rb   r0  r  r   r   ri   rh   r  calcabserrrelerrr  r	  z	pdf test  failed with method 'z' [platform: z]

Ferr_msgverbose)platformunamesystemmachinejoin	processorrS  r6   r  r	  r  r  r  r  rl   rV   r  r   r   isnanr   r  r   )r[   r	  r	  r	  r	  r   r
  platform_desctestsixdefault_methodr   filter_funcsubdatar,   r  subdata2failuresmessager	  s     ```              @r0   test_pdf_nolan_samples%TestLevyStable.test_pdf_nolan_samples  ss   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FF1s|#34FF1s|#34rvvgcl7KK H 0 $H%-((1+
  t#88H I""/HNN4H4H3IH:W   CL#!9 +* "2 0/ +*s'   AH:AH)<AH:)
H73H::
I
	c                   ^^^ UnSSUUU4S j/SSUUU4S j/SSUUU4S j/SS	UUU4S
 j/SSUUU4S j/SSUUU4S j//n[        U5       GHa  u  nu  pn
U[        R                  l        U
b
  XZ" U5         OUn[        R
                  " 5          [        R                  " SS[        5        [        R                  R                  US   US   US   SSS9n[        R                  " SS9   [        U/ SQU[        R                  " XS   -
  5      [        R                  " XS   -
  5      [        R                  " US   5      -  /5      nSSS5        WUS   U	:  [        R                  " U5      -     nSU SU SUR                  R                   SU 3n[!        UUS   U	US S!9  SSS5        GMd     g! , (       d  f       Np= f! , (       d  f       GM  = f)"z3Test cdf values against Nolan's stablec.exe output.r	  r	  c                 b  > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:H  [         R                  " U S   / SQ5      -  U S   S:H  -  U S   S:H  [         R                  " U S   / SQ5      -  U S   S:H  -  -  ) -  $ 	Nr	  r0  r  rc  )r	  r  r  r   r`   r  r  r  r	  r	  s    r0   rE   7TestLevyStable.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   ry  c                 `  > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:H  [         R                  " U S   / SQ5      -  U S   S:H  -  -  U S   S:H  [         R                  " U S   / SQ5      -  U S   S:H  -  -  $ r
  r	  r	  s    r0   rE   r
    s    GGAeHi0GGAgJ45GGAfIz23 7r)&	+=>?5T)+	 7r)&	?;<5T)+r2   r	  r  c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  $ )Nr	  r0  r  333333?r	  r	  s    r0   rE   r
    sV    GGAeHi0GGAgJ45GGAfIz23 wZ#%'r2   r  c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:*  -  $ )Nr	  r0  r  r  r
  r	  r	  s    r0   rE   r
    i    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ3&	(r2   rG  c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:*  -  $ )Nr	  r0  r  rb	  r  r	  r	  s    r0   rE   r
    r 
  r2   r   c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:*  -  $ )Nr	  r0  r  rc  rb	  r	  r	  s    r0   rE   r
    r 
  r2   Nr  zZCumulative density calculations experimental for FFT method. Use piecewise method instead.rb   r0  r  r   r   r	  r  r	  r  r	  z	cdf test r 
  z'
r
  Fr
  )rS  r6   r  r	  r  r  r  r  rt   rV   r  r   r   r
  r   r  r   )r[   r	  r	  r	  r	  r   r
  r
  r
  r   r
  r
  r  r
  r
  r
  s     ```           r0   test_cdf_nolan_samples%TestLevyStable.test_cdf_nolan_samplesa  s   2 % U %, T $& t & t & t & t &GL
\ "+5!1B 3AE0 + 7 ;t, =A ((*''>"	$
 %%))CLG$FO *  [[h/04FF1s|#34FF1s|#34rvvgcl7KK H 0 $H%-((1+ 'rd*??Os&nn2232hZACL#!; +*	 "2" 0/ +*s'   AG-AF6AG6
G G
G	r,  r   rL  rl   rt   c                 :   [         R                  " 5       nUR                  S:H  =(       a    S[         R                  " 5       S   ;   nU(       a  US:X  a  [        R
                  " S5        UnS[        R                  l        S[        R                  l	        XfS   U:H     nSU 3[        R                  l
        US	;   d   eUS:X  a  [        R                  R                  O[        R                  R                  nU" US
   US   US   SSS9n	[        XU   S5        g)zGTests for pdf and cdf where loc, scale are different from 0, 1
        r	  32bitr   rl   z4Test unstable on some platforms; see gh-17839, 17859r	  r,  S)rl   rt   rb   r0  r  rj   r   r	  r  N)r
  r
  r
  architecturer   r   r6   r  r	  r	  r	  rl   rt   r   )
r[   r	  r,  rL  r
  r	  r   r
  rT  r-  s
             r0   test_location_scale"TestLevyStable.test_location_scale  s     llg-W'X=R=R=TUV=W2W 45=KKNO* 0;,/:,G}-./0[*~%%%%)U]E!!8I8I8M8M 	 CL''*GFO1!
 	DM40r2   zmethod,decimal_placesr	  r   r	  c           
         [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " SS9   [        R                  " 5          [        R
                  " S[        SS9  U[        R                  l	        [        R                  R                  USUSS	S
9n[        XdX!5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)zwsample 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   rj   rj   rj   rj   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   r  r   r   r   r  r   r   r   r  r   r   r   r  r   r   r   r  r   r   r  r   zDensity calculation unstable.*)categoryr
  r   r   r	  N)rV   r   r  r  r  r  r  r6   r  r	  rl   r   )r[   r  decimal_placesxsdensitybetasrl   s          r0   'test_pdf_alpha_equals_one_beta_non_zero6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zero  s     XXH
 ((
 
 [[X&(?(?(A##H'8 4:E0##''AuA1'ECn )B&&(A(A&&s%   C23AC!C2!
C/	+C22
D zparams,expected)r	  r	  r   r   )rj   r   rc   r  )rc   r  r   r   c                 t    [         R                  R                  US   US   US   US   SS9n[        X25        g )Nr   r   rj   r   r  rg  )r6   r  r   )r[   r"  rO   observeds       r0   r  TestLevyStable.test_stats;  sE     $$**1IvayfQivay + 
 	H/r2   r0  )r  r   r   zfunction,beta,points,expectedrc  r^	  rc   r   r  r  c                     SUs=:  a  S:  d   e   e[        U" XAUS9[        R                  " [        U5      U5      5        g)a4  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   r0  r  N)r   rV   r  r"  )r[   r0  rT  r  r[  rO   s         r0   !test_distribution_outside_support0TestLevyStable.test_distribution_outside_supportI  s>    P 5}1}}}Vt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                 ~    S[         R                  l        [        [         R                  R	                  XUS9U5        g)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=r8
  Nr6   r  r	  r   rl   r[   rb   r0  r  rO   s        r0   test_x_equal_zeta TestLevyStable.test_x_equal_zetaw  s7    Z &-"!!!t!<	
r2   )
)r  r;
  r<
  gz¶?)r  r=
  r>
  gV?)r  r?
  r@
  gRE)3\?)r  rA
  rB
  gB?)r  rC
  rD
  g/^?)-C6r;
  r<
  gH?)rK
  r=
  r>
  gn?)rK
  r?
  r@
  gx\?)rK
  rA
  rB
  gVM%?)rK
  rC
  rD
  gm?c                 ~    S[         R                  l        [        [         R                  R	                  XUS9U5        g)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
rF
  r8
  NrG
  rH
  s        r0   test_x_near_zetaTestLevyStable.test_x_near_zeta  s7    D &-"!!!t!<	
r2   c                 ,    [         R                  " 5       $ rz   )	threadingLockrZ   s    r0   levy_stable_lockTestLevyStable.levy_stable_lock  s    ~~r2   c           	      B   [         R                  R                  n[        SSSSS9n[        R
                  n[        R
                  " S0 UD6nU   SUl        SUl        UR                  " S0 UDSU" S	5      S
.D6nUR                  SU" S	5      S
9n[         R                  " Xv:H  5      (       a   eSUl        SUl        UR                  " S0 UDSU" S	5      S
.D6nUR                  SU" S	5      S
9n	[        X5        [        X5        S S S 5        g ! , (       d  f       g = f)Nr  r`   r   rc  r0  r  rh   ri   r	  r	  rc   
r   r8   )
rV   rW   rX   r$  r6   r  r	  r   r  r   
r[   rR
  rY   r!  unfrozenfrozen
unfrozen_afrozen_a
unfrozen_bfrozen_bs
             r0   $test_frozen_parameterization_gh208213TestLevyStable.test_frozen_parameterization_gh20821  s     ii##Ccs#>$$"",V,(,H%&*F#!UURc)nUJzzrIzGHvvh45555(,H%&*F#!UURc)nUJzzrIzGH.. s   B8D
Dc           	         [         R                  R                  n[        SSSSS9n[        R
                  nU   SUl        [        R
                  " S0 UD6nUR                  " S0 UDSU" S5      S	.D6nUR                  SU" S5      S	9n[        Xv5        S
Ul        [        R
                  " S0 UD6nUR                  " S0 UDSU" S5      S	.D6nUR                  SU" S5      S	9n	[        X5        S S S 5        g ! , (       d  f       g = f)Nr  r`   r   rc  rU
  r	  rc   rV
  r   r	  r8   )	rV   rW   rX   r$  r6   r  r	  r   r   rW
  s
             r0   %test_frozen_parameterization_gh20821b4TestLevyStable.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   B7C99
Dr  N),r  r  r  r  r\   r   rc  r	  r	  r	  r	  r  r
  r  r,  rW  r	  r	  r&  xfailr	  r	  r	  r	  rV   rh  r
  r#
  r)
  r2
  r*  r)  r  r6   r  rt   rl   r9
  rI
  rM
  rR
  r^
  ra
  r  r8   r2   r0   r	  r	    s   5 ^^D!B "B ^^ B ^^) )V ^^  [[[[LLfll4v{{7G7GH

 [[/$>[[C [[]VV,<= > ? $ [[[[Vc1X.	 / 	-0 [[>?[[ 	
 [[D$<
 @

,	,
G [[[[*LL
 LL(#(kk&&	 LLDCB'B2&kk''	-
*~+ ,~@ [[*LL
 LL(#(kk&&	 LL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                        \ rS rSrS rS rSrg)TestArrayArgumenti  c                 L    [         R                  R                  S5      U l        g )Nl   4c rU   rZ   s    r0   r\   TestArrayArgument.setup_method  r^   r2   c                     [         R                  R                  [        R                  " S5      [        R
                  " S5      SU R                  S9n[        UR                  S5        g )Nr   r  r  )	r6   rK  r   rV   r&  r  rY   r   rO  r,  s     r0   test_noexception"TestArrayArgument.test_noexception  sE    jjnn"))A,rwwqz")  BSYY(r2   r  N)r  r  r  r  r\   ri
  r  r8   r2   r0   re
  re
    s    5)r2   re
  c                        \ rS rSrS rS rSrg)TestDocstringi  c                 B   [         R                  R                  b4  [        S[         R                  R                  R	                  5       ;   5        [         R
                  R                  b5  [        S[         R
                  R                  R	                  5       ;   5        g g )Nr<  r  )r6   r<  rX  r	   lowerr  rZ   s    r0   test_docstringsTestDocstring.test_docstrings  sg    >>!!-J%.."8"8">">"@@A??"".K5??#:#:#@#@#BBC /r2   c                 X    [         R                  " 5         [         R                  " 5         g rz   )r6   r<   r;   rZ   s    r0   test_no_name_argTestDocstring.test_no_name_arg  s    r2   r8   N)r  r  r  r  ro
  rr
  r  r8   r2   r0   rl
  rl
    s    Dr2   rl
  c                  |   [        / SQ5      n [        U S:  U S5      u  p[        U/ SQ5        [        US/5        [        SS:  U S5      u  p[        X5        [        US/[        R                  " U 5      -  5        [        U S:  U S5      u  p[        X5        [        US/[        R                  " U 5      -  5        g )N)r   r   rj   r   rj   r   r   r   rj   )r   rj   rj   r   r   r   )r   r   r   rV   r   r.   r/   r  s      r0   test_args_reducerv
    s    #$Aa!eQ"DAq/*q1#a!eQ"DAqq1#
*+a!eQ"DAqq1#
*+r2   c                   Z   \ rS rSr/ SQrS r/ SQr\R                  R                  S\
5      S 5       rS rS rS	 rS
 rS rS rS r\R                  R&                  \R                  R                  SSS/5      S 5       5       r\R                  R                  SSS/5      S 5       rSrg)TestFitMethodi,  )ncfr+  r,  	irwinhallc                 L    [         R                  R                  S5      U l        g )Nl   = rU   rZ   s    r0   r\   TestFitMethod.setup_method0  r^   r2   )r  rK  r  rz
  z	dist,argsc                    XR                   ;   a  [        R                  " U S35        [        R                  " SSSSS[        R
                  /5      n[        R                  " SSSSS[        R                  /5      n[        [        U5      n[        [        UR                  USS9  [        [        UR                  USS9  g	)
rR  z  fit known to fail or deprecatedr4  r5  r6  r7  r8  r   r)  N)fitSkipNonFiniter   r   rV   r   r)  r*  r?  r6   r  r(  r   )r[   rK   rA  rb   r  distfuncs         r0   !test_fit_w_non_finite_data_values/TestFitMethod.test_fit_w_non_finite_data_values6  s     (((KK4& @ABHHfffffbffEFHHfffffbffEF5$'j(,,!<j(,,!<r2   c                    [         R                  " SS9   [        R                  R	                  SSSSU R
                  S9n[         R                  " [         R                  " U5      [         R                  " S5      -
  S-  R                  5       5      n[        [         R                  " [        R                  R                  US	SS
95      US	S/SS9  S S S 5        g ! , (       d  f       g = f)Nr  r,
  r  r         4@rA  r   rj   r   r  r  r   )rV   r  r6   r9  r   rY   r  r  r   r   r   r   )r[   rb   expected_shapes      r0   test_fix_fit_2args_lognorm(TestFitMethod.test_fix_fit_2args_lognormA  s    [[X&!!$Dr!QAWWrvvay266":'=&A%G%G%IJNBHHU]]%6%6qq%6%LM+Q3$@ '&&   B=C
C)c                    [         R                  " SS5      n[        R                  R	                  U5      u  p#[        US5        [        U[         R                  " S5      5        [        R                  R	                  USS9u  p#[        US5        [        U[         R                  " S5      5        [        R                  R	                  USS9u  p#[        US5        [        US5        g )Nr   r  r   rj   r   r)  )rV   r&  r6   rK  r   r   r  r   r[   rb   rh   ri   s       r0   test_fix_fit_normTestFitMethod.test_fix_fit_normI  s    IIaOZZ^^A&
C#E2771:.ZZ^^AA^.
S!UBGGAJ'ZZ^^Aa^0
C#UAr2   c                    [         R                  " SS5      n[         R                  " U5      R                  5       nSn[        R
                  R                  XS9u  pEn[         R                  " UR                  5       5      U-
  n[        [         R                  " U5      [        R                  " U5      -
  USS9  [        XS5        [        XaR                  5       U-  SS9  SnSn[        R
                  R                  XUS9u  pEn[        XH5        [        XS5        [        XaR                  5       U-  SS9  S	nSn[        R
                  R                  XUS9u  pEn[        XH5        [        XS5        [        XaR                  5       U-  SS9  SnS	n	[        R
                  R                  XU	S
9u  pEn[        XS5        [        Xi5        U[         R                  " U	5      -
  n
[        [        R                  " U5      U
5        g )Nr   r  r   r   r   rf  r  r   r   rj   r  )rV   r&  r  r   r6   r  r   r   r   digammar   )r[   rb   meanlogr   r.   rh   ri   rD   r   r   r  s              r0   test_fix_fit_gamma TestFitMethod.test_fix_fit_gammaX  s   IIaO&&).." 5FF1668w&BFF1I(::AqISE668A:q9
 t<QSE668A:q9t<QSE668A:q9 VDSU#bffVn$GOOA.2r2   c           
      l   S n[         R                  " / SQ5      n[        R                  R	                  USSS9u  p4pV[        US5        [        US5        [        U" X4U5      SS/SS9  [         R                  " / SQ5      n[        R                  R	                  USSSS	9u  p4pV[        US5        [        US5        [        US5        U" X4U5      u  px[        USS
S9  SU-
  n	[        R                  R	                  U	SSSS9u  pp[        US5        [        US5        [        US5        U" XU	5      u  px[        USS
S9  [        X5        [        [        [        R                  R                  USSS9  [         R                  " / SQ5      n[        [        [        R                  R                  USSS9  [        [        [        R                  R                  USSSS9  [        [        [        R                  R                  USSSS9  [        [        [        R                  R                  USSSSS9  g )Nc                 ^   [        U5      n[        R                  " U5      R                  5       n[        R                  " SU-
  5      R                  5       n[        R
                  " X-   5      nXCU* [        R
                  " U 5      -   -  -
  XSU* [        R
                  " U5      -   -  -
  /nU$ r   )r"  rV   r  r  r   psi)r.   r/   rb   r  s1r>  psiabr  s           r0   mlefunc0TestFitMethod.test_fix_fit_beta.<locals>.mlefunc  s     AAB!"BKK&Eufw{{1~566ufw{{1~5668DKr2   )r  r  r   r   r   r  r  r   rj   )r   r   r   r  )r  r   r   r   r  )r   r   r   )r   r   r  r   )r   r  r   r   )
rV   r   r6   r  r   r   r   r   r  r(  )r[   r
  rb   r.   r/   rh   ri   dadbr  r  b2r  r  r  s                  r0   test_fix_fit_betaTestFitMethod.test_fix_fit_beta~  s   		 HH'( ::>>!!A>>cS!UAa(1a&t< HH'( ::>>!!>DcQS!UAq!AD) U$zz~~bQQq~IRT1VQ$AD)B" 	j%**..!#aHHHZ j%**..!!AFj%**..!!A!Lj%**..!!A!L 	j%**..!aQ	(r2   c                    [         R                  " / SQ5      n[        R                  R	                  U5      u  p#[        US5        [        US5        [        R                  R	                  USS9u  p#[        US5        [        US5        [        R                  R	                  USS9u  p#[        US5        [        US5        g )N)rj   rj   r   r   r   r   r   r  rj   r   r)  r   r   r   )rV   r   r6   r  r   r   r
  s       r0   test_expon_fitTestFitMethod.test_expon_fit  s    HH-.[[__Q'
S!UA[[__Qq_1
S!UA[[__QQ_/
S!UAr2   c           	         [         R                  " / SQ5      n[         R                  " US-
  5      n[        R                  R                  USS9u  p4n[        X2R                  5       SS9  [        US5        [        U[         R                  " UR                  5       5      SS9  [        R                  R                  USSS9u  p4n[        U[         R                  " U[         R                  " S5      -
  S-  R                  5       5      SS9  [        US5        [        US5        [        R                  R                  USS	S
9u  p4n[        US	5        [        US5        [        U[         R                  " UR                  5       5      SS9  g )N)r  r   rc   rL     r;  r   r   r  r   r  r  rj   r   )r   fix_s)rV   r   r  r6   r9  r   r   r  r   r   r   r  )r[   rb   lnxm1rO  rh   ri   s         r0   test_lognorm_fitTestFitMethod.test_lognorm_fit  s+   HH-.q1u!MM--aa-8Eyy{7S!rvvejjl3%@!MM--aa-BErww):Q(>'D'D'FG"	$S!UA!MM--aat-DEUD!S!rvvejjl3%@r2   c                    [         R                  " / SQ5      n[        R                  R	                  U5      u  p#[        X!R                  5       5        [        U[         R                  " U5      5        [        R                  R	                  USS9u  p#[        US5        [        X1R                  5       5        [        R                  R	                  USS9u  p#[        US5        [        US5        [        [        [        R                  R                  USS9  [        [        [        R                  R                  USS9  g )N)rc  rB  r  r>  r   r   rc   r)  r   rd  )rV   r   r6   r  r   r   r  r  r+  r  r(  r
  s       r0   test_uniform_fitTestFitMethod.test_uniform_fit  s    HH)*]]&&q)
S%%'"UBFF1I&]]&&qq&1
S!UEEG$]]&&q&4
S!UBj%--"3"3QSAj%--"3"3QsCr2   r  MLEMMc                    Su  p#[         R                  R                  X#SU R                  S9n[         R                  R	                  USUS9n[         R                  R	                  USUS9n[        XVSSS9  [         R                  R	                  USUS	9n[        XVSSS9  [         R                  R	                  US
US9n[         R                  R	                  US
US9n[        XxSSS9  [         R                  R	                  US
US9n[        XxSSS9  [        [        [         R                  R                  USSUS9  [        [        [         R                  R                  USSSSUS9  [         R                  R	                  USSSUS9n	U	u  pp[        XU// SQ5        Sn[         R                  R                  USU R                  S9n[         R                  R	                  XUS9u  pn[        X5        g )N)r  r?  rd   r   r  )r   r  )r  r  r  r  )r  r  r?  )r  r  )rt  r  )rs  r  r   rj   )r  r   r  r   r   )r  r  r   r   r  )r  r   r   r  )r  r   r   )
r6   r  r   rY   r   r   r  r(  r   r  )r[   r  r.   r/   rb   res_1res_2res_3res_4res_5aabbr  ssr   s                  r0   test_fshapesTestFitMethod.test_fshapes  s   
 JJNN1cNA

qR7

qR75u=

q6:5u=

qR7

qR75u=

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

qRa&Ibb\:. {{qsB[[__T_?
Rr2   c                     [         R                  nUR                  SSU R                  S9n[	        SS9n[        [        UR                  U40 UDSU0D6  g )Nrj   rd   )rf  r   r   i)enikibenikir  )r6   re  r   rY   r$  r  r+  r   )r[   r  rK   r   r@  s        r0   test_extra_paramsTestFitMethod.test_extra_params  sI     xx!#DHHx=t$i4F3FvFr2   r  N)r  r  r  r  r   r\   r~
  r   r  r  r   r
  r
  r
  r
  r
  r
  r
  r
  r	  r
  r
  r  r8   r2   r0   rx
  rx
  ,  s    1D5 A[[[(3= 4=@$3L5(nA(D$ [[[[Xt}5$ 6 $L [[Xt}5G 6Gr2   rx
  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)
TestFrozeni  c                    [         R                  n[         R                  " SSS9nUR                  S5      nUR                  SSSS9n[        X45        UR	                  S5      nUR	                  SSSS9n[        X45        UR                  S5      nUR                  SSSS9n[        X45        UR                  S5      nUR                  SSSS9n[        X45        UR                  S5      nUR                  SSSS9n[        X45        UR                  5       nUR                  SSS9n[        X45        UR                  5       nUR                  SSS9n[        X45        UR                  5       nUR                  SSS9n[        X45        UR                  5       nUR                  SSS9n[        X45        UR                  5       nUR                  SSS9n[        X45        UR                  S5      nUR                  SSSS9n[        X45        [        UR                  UR                  5        [        UR                  UR                  5        g )Nr  r  rg   r
  r  rj   )r6   rK  rl   r   rt   r   r  r   r  r   r  r  r>   r  r.   r/   )r[   rK   rY
  result_fr  s        r0   rc  TestFrozen.test_norm!  s   zzC0::d#$D4X&::d#$D4X&::d#$D4X&::d#$D4X&99T?4s3X&==?S1X&;;=t3/X&::<d#.X&::<d#.X&>>#$c2X&==#QD4X&VXXtvv&VXXtvv&r2   c                    Sn[         R                  n[         R                  " U5      nUR                  S5      nUR                  SU5      n[        XE5        UR	                  S5      nUR	                  SU5      n[        XE5        UR                  S5      nUR                  SU5      n[        XE5        UR                  S5      nUR                  SU5      n[        XE5        UR                  S5      nUR                  SU5      n[        XE5        UR                  5       nUR                  U5      n[        XE5        UR                  5       nUR                  U5      n[        XE5        UR                  5       nUR                  U5      n[        XE5        UR                  5       nUR                  U5      n[        XE5        UR                  5       nUR                  U5      n[        XE5        UR                  S5      nUR                  SU5      n[        XE5        [        UR                  UR                  R                  5        [        UR                   UR                  R                   5        g )Nr   r
  r  r  rj   )r6   r  rl   r   rt   r   r  r   r  r   r  r  r>   r  r.   rK   r/   )r[   r.   rK   rY
  r
  r  s         r0   
test_gammaTestFrozen.test_gammaT  s   {{Q::d#$"X&::d#$"X&::d#$"X&::d#$"X&99T?q!X&==?QX&;;=1X&::<!X&::<!X&>>#aX&==#Q"X&VXXv{{}}-VXXv{{}}-r2   c                     [         R                  " S5      nUR                  S5      nUR                  SS9  UR                  S5      n[        X#5        g )Nr   rj   r  r  )r6   r9  r  r   )r[   rY
  m1ro  s       r0   test_regression_ticket_1293&TestFrozen.test_regression_ticket_1293  sF    q!]]1V$ ]]1 	Rr2   c                    Sn[         R                  " US9nUR                  R                  U5      u  p4[	        X4/SS/5        Sn[         R                  R                  SUS9  [	        UR                  R                  U5      S[        R                  /5        Sn[         R                  " US9nUR                  R                  U5      u  p4[	        X4/SS/5        Sn[         R                  R                  SU5        [	        UR                  R                  UR                  R                  4[         R                  R                  U5      5        [         R                  " SS9n[        UR                  UR                  L5        S H  n[        R                  " U5      n[         R                  " US9nUR                  UR                  pC[	        US5        [        [        R                  " U5      5        [        R                  " S5      n[         R                  R                  U5      u  p4[        X4/SS	/5        M     g )
Nr  r  r   r  r`   r   r  r  r   )r6   r  rK   r  r   rl   rV   r*  r.   r/   r	   r   r  r   )r[   r  r  r.   r/   rv1s         r0   r  TestFrozen.test_ab  s    __q!ww##A&aVb#Y'A#RWW))!,q"&&k:__q!ww##A&aVb#Y'Aq!bggii+U__-I-I!-LMoo$'( A

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

3A??//2DAQFRI. r2   c                 J    [        [        [        R                  S5      5        g )N	rv_frozen)r	   r-   r6   r7   rZ   s    r0   test_rv_frozen_in_namespace&TestFrozen.test_rv_frozen_in_namespace  s    ++[9:r2   c                 b   [         R                  " 5       n[        [        US5      5        SUl        [        UR                  R                  5       [        R                  R                  S5      R                  5       5        [        R                  R                  S5      nUR                  SUS9  g )Nr   *   r  r  r   )r6   rK  r	   r-   r   r   	get_staterV   rW   rI  r   )r[   rY
  rndms      r0   test_random_stateTestFrozen.test_random_state  s    /0 !V((224YY**2.88:	< yy$$T*


-r2   c                 F   [         R                  " SS5      n[         R                  " S5      n[         R                  " / SQ/ SQ4S9nXU4 H  nSUl        UR                  SS	9  [        R                  " U5      nUR                  SS	9n[        R                  " U5      nUR                  SS	9n[        Xh5        UR                  S
5      UR                  S
5      /n	[        U	S   U	S   5        [        UR                  U	S   5      UR                  U	S   5      5        M     g )Ngdsz@g@e?r  )r   r   rj   r   r	  r  r  r  rZ  r   r   r   )r6   r  r  r;   r   r   pickledumpsloadsr   r   rt   )
r[   r  poissr{  distfnrD   r0	unpickledr1medianss
             r0   test_picklingTestFrozen.test_pickling  s     zz,.ABb!""<+?+A B F+F"&FJJAJV$A#BQIA&B  zz#	c(:;GWQZ0GAJ/"wqz24 ,r2   c                    S n[         R                  " SSSS9n[        R                  " SSS9   UR	                  USSS	S
9n[         R                  R	                  USSSSSS	S9nS S S 5        [        WW5        [         R                  " SSS9nUR	                  U5      n[         R                  R	                  USSS9n[        Xg5        g ! , (       d  f       Nk= f)Nc                     U $ rz   r8   r   s    r0   r  $TestFrozen.test_expect.<locals>.func  s    Hr2   rj   r   r   r  r  )r  divider   T)r   ubconditionalrj   rA  rh   ri   r   r
  r
  rL  )r   rA  rh   )r6   r  rV   r  r   r   r  )r[   r  gmgm_val	gamma_valr  p_valpoisson_vals           r0   test_expectTestFrozen.test_expect  s    	 [[1!1-[[(;YYtaTYBF**4d./A4 + II < 		*MM!#mm**4d*B+ <;s   6C


Cr8   N)r  r  r  r  rc  r
  r
  r  r
  r
  r
  r
  r  r8   r2   r0   r
  r
    s-    1'f2.h*/X;.40,r2   r
  c                   h    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)
TestExpecti   c           	         [         R                  R                  S SSS9n[        USSS9  [         R                  R                  S SSS9n[        USSS9  [         R                  R	                  S	SSS9n[         R                  R	                  S
SSS9n[         R                  R                  S SSX4S9n[        USSS9  [         R                  R                  S SSX4SS9n[        USSS9  g )Nc                     U S-
  U S-
  -  $ )Nr   r8   r   s    r0   rE   &TestExpect.test_norm.<locals>.<lambda>  s    1qsr2   r   rj   rg   r   r  rf  c                     U $ rz   r8   r   s    r0   rE   r
  	  s    r2   ry  r  c                     gr   r8   r   s    r0   rE   r
    s    Qr2   rh   ri   r   r
  r   c                     gr   r8   r   s    r0   rE   r
        ar2   Trh   ri   r   r
  r
  rc  )r6   rK  r   r   r   )r[   rS  r  r   r
  prob90prob90cs          r0   rc  TestExpect.test_norm  s    JJ3!DAq"-JJm!<Aq"-ZZ^^Daq^1ZZ^^Daq^1"";AQ2"MFC4**##KQaB04 $ 6GR4r2   c           
         [         R                  R                  S SSSS9n[        USSS9  [         R                  R                  S	 SS
SS9n[        USSS9  [         R                  R	                  SSSSSS9n[         R                  R	                  SSSSSS9n[         R                  R                  S SS
SXCSS9n[        USSS9  [         R                  R                  S SSSXCSS9n[        USSS9  g )Nc                     U S-
  U S-
  -  $ )NUUUUUU@r8   r   s    r0   rE   &TestExpect.test_beta.<locals>.<lambda>  s    51U7(;r2   r  r   rj   )rA  rh   ri   qq?r  rf  c                     U $ rz   r8   r   s    r0   rE   r    s    r2   rd  r   r   r  rc   rg   ry  c                     g)Nrc  r8   r   s    r0   rE   r     s    Rr2   )rc   rc   Fr
  r   c                     gr   r8   r   s    r0   rE   r  $  r
  r2   Trc  )r6   r  r   r   r   )r[   rS  r  r
  r   r
  r
  s          r0   	test_betaTestExpect.test_beta  s    JJ;'"#1  .Avr2JJkRrJAub1ZZ^^D"baq^9ZZ^^D"baq^9""<hB)+u # NFC4**##KhA*+t $ MGR4r2   c           	         [         R                  R                  SSSSS9u  p[         R                  R                  S SSS9n[        X1S	S
9  [         R                  R                  S SSS9n[        XBSS
9  [         R                  R                  S SSSS	S9n[        XRSS
9  S[         R                  R	                  SS	/SSSSS9R                  5       -
  n[         R                  R                  S SSSSS9n[        XvS	S
9  [         R                  R                  S SSSSSS9n[        USSS
9  [         R                  R                  S SSSS9n	[        U	SS	S
9  g )NrA  rc   r  rd  rL  c                     U $ rz   r8   r   s    r0   rE   +TestExpect.test_hypergeom.<locals>.<lambda>-      Qr2   )rA  rc   r  r
  r  rf  c                     U S-
  S-  $ Nr>  rj   r8   r   s    r0   rE   r
  0  s    adQYr2   r  c                     U S-
  S-  $ r  r8   r   s    r0   rE   r
  5  s    QrTAIr2   r   )rA  rh   r   r
  r   c                     gr   r8   r   s    r0   rE   r
  <  s    qr2   r  re  c                     gr   r8   r   s    r0   rE   r
  A  s    1r2   T)rA  rh   r   r
  r
  c                     gr   r8   r   s    r0   rE   r
  F  s    !r2   r   )rA  r   r
  )r6   r  r   r   r^  r  )
r[   m_truev_truer  rS  v_bounds	prob_trueprob_boundsprob_bcprob_bs
             r0   test_hypergeomTestExpect.test_hypergeom(  sn    ..r2qb.AOO"";[b"IAr2OO""#6[') # +Ar2 ??))*=/:.0Q2 * ? 	Hb9 eoo))1b'2r1!)DHHJJ	oo,,[{13b - BKB? //((;B,-"$ ) HGQ3 ''++, ( 4FAr2r2   c                     [         R                  R                  S SSSS9nS[         R                  R                  SS5      -
  n[	        XSS	9  [         R                  R                  S
 SSSS9n[	        USSS	9  g )Nc                     gr   r8   r   s    r0   rE   )TestExpect.test_poisson.<locals>.<lambda>L  s    Qr2   r
  r   F)rA  r   r
  r   rj   r  rf  c                     gr   r8   r   s    r0   rE   r  Q  s    r2   T)r6   r  r   rt   r   )r[   r  prob_b_trueprob_lbs       r0   test_poissonTestExpect.test_poissonJ  sw    mm**;Ta7< + >))!Q//KbA--&&{!37 ' 9GQ3r2   c                     [         R                  nUR                  SS9nUR                  SS9  UR                  SS9n[        X#SS9  g )N)r  r  )r   r  rf  )r6   genhalflogisticr   r   )r[   halflogr\  r`  s       r0   test_genhalflogisticTestExpect.test_genhalflogisticU  sG     ''~~6~*F#~~6~*D3r2   c           	         [        [        R                  " [        R                  R                  SS5      5      5        [        [        R                  " [        R                  R                  S SS95      5        [        [        R                  " [        R                  R                  S SS95      5        [        [        R                  " [        R                  R                  S SS95      5        g )Nr  Gz?c                     gr   r8   r   s    r0   rE   /TestExpect.test_rice_overflow.<locals>.<lambda>d      r2   )r)  r  c                     gr  r8   r   s    r0   rE   r+  e  r,  r2   c                     gNr   r8   r   s    r0   rE   r+  f  r,  r2   )r	   rV   r  r6   ricerl   r   rZ   s    r0   test_rice_overflow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                     Su  p[         R                  R                  S U4S9n[        UXS-
  -  [        R
                  " SU-
  5      -  SS9  [         R                  R                  S U4US9n[        XCU-   SS9  g )	N)r  r   c                     U $ rz   r8   r_   s    r0   rE   (TestExpect.test_logser.<locals>.<lambda>k      ar2   r  rc  r   r   c                     U $ rz   r8   r5  s    r0   rE   r6  q  r7  r2   r
  )r6   rE  r   r   rV   r  )r[   r  rh   res_0res_ls        r0   test_logserTestExpect.test_logserh  sx    ##Kqd#;Vrvvb1f~5E	C ##Kqd#Ds{7r2   c                     Su  p[         R                  R                  S X4S9n[         R                  R                  S X4S9n[        X1U-
  SS9  [        XCS-  -
  X-   SS9  g )N)r  r<  c                     U $ rz   r8   r   s    r0   rE   )TestExpect.test_skellam.<locals>.<lambda>x  s    Ar2   r  c                     U S-  $ r  r8   r   s    r0   rE   r?  y  r  r2   r  r   rj   )r6   r  r   r   )r[   r  p2r
  ro  s        r0   test_skellamTestExpect.test_skellamt  sc     ]]!!+RH!=]]!!.x!@G%0U
BG%8r2   c           
          Su  p[         R                  R                  S X45      n[        U[	        S [        X5       5       5      X!-
  -  SS9  g )N)r   q   c                     U $ rz   r8   r   s    r0   rE   )TestExpect.test_randint.<locals>.<lambda>  r  r2   c              3   $   #    U  H  ov   M     g 7frz   r8   r  r   s     r0   r  *TestExpect.test_randint.<locals>.<genexpr>  s     5}!A}s   r   r   )r6   rN  r   r   r  r  )r[   r]  r^  r   s       r0   test_randintTestExpect.test_randint}  sI     mm"";95uR}55A	Or2   c                     [         R                  " [        5         [        R                  R                  S S5        S S S 5        g ! , (       d  f       g = f)Nc                     U S-  $ r  r8   r   s    r0   rE   &TestExpect.test_zipf.<locals>.<lambda>  s    1r2   r
  )r   warnsr  r6   r]  r   rZ   s    r0   	test_zipfTestExpect.test_zipf  s.    \\.)JJnd3 *))s   "A
Ac                     [         R                  R                  S SS9n[         R                  R                  S SSSSS9n[        XS	S
9  g )Nc                     gr   r8   r   s    r0   rE   /TestExpect.test_discrete_kwds.<locals>.<lambda>      Ar2   r
  r  c                     gr   r8   r   s    r0   rE   rU    rV  r2   r"      r  )rA  maxcount	chunksize	tolerancer  rf  )r6   r  r   r   )r[   n0n1s      r0   test_discrete_kwdsTestExpect.test_discrete_kwds  sJ    ]]!!+D!9]]!!+D+/2 " OBB/r2   c                 |    S nS H3  n[         R                  R                  SU5      n[        X1" U5      SS9  M5     g )Nc                 H    U S-  SU S-  -  -   SU S-  -  -   SU S-  -  -   U -   $ )Nr   rc   r   r  r   rL  rj   r8   r  s    r0   poiss_moment5-TestExpect.test_moment.<locals>.poiss_moment5  s8    q52b!e8#bQh.BE9B>>r2   )r   r  r   r  r   )r6   r  r  r   )r[   rb  r  m5s       r0   test_momentTestExpect.test_moment  s:    	? B%%a,BBb 1> r2   c                    [        [        R                  R                  SSS9S5        [        [        R                  R                  SSS9S5        [        [        R                  R                  SSS9S5        [        [        R                  R                  SS9S	5        [        [        R
                  R                  S
S9S
5        g )NrZ  rc  rg   r  rc   r`   )   r  rh  U   rL  )r   r6   rK  r   r  r	  rZ   s    r0   test_challenging_cases_gh8928(TestExpect.test_challenging_cases_gh8928  s     	

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

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

))b)<bA***7=--"-5r:r2   c           
         [         R                  nUR                  SSS9n[        UR	                  SSS9U5        [        UR	                  SSSSS9U5        [        UR	                  SSSSS9US	-  5        [        UR	                  SSSSS
S9U5        [        UR	                  SSSSS9S5        [        UR	                  SSSSS9S5        [        UR	                  SSSSS
S9S5        g )Nrc   r   rg   rg  r  r
  r  r  r  Tr
  r  g433333@g433333re  )r6   r  r   r   r   )r[   rK   r  s      r0   test_lb_ub_gh15855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   r8   N)r  r  r  r  rc  r  r  r!  r&  r1  r;  rB  rK  rQ  r^  re  rj  rm  r  r8   r2   r0   r
  r
     sK    
5 5& 3D	44K
89O4
0?;;r2   r
  c                       \ rS rSrS rS rS rS rS rS r	\
R                  R                  SS	S
/5      S 5       rSrg)TestNcti  c                     [         R                  " SS5      n[        UR                  S5      S5        [         R                  " SS5      n[	        UR                  S5      SSS9  g )Nr   r   r   r   g K?rc   rf  )r6   nctr   rt   r   r  s     r0   test_nc_parameterTestNct.test_nc_parameter  sI     YYq!_RVVAY$YYq"BFF1I~rBr2   c           	          [         R                  R                  S[        R                  " SS5      S S 2S 4   [        R
                  " SSS5      5      n[        / SQ/ SQ/ SQ/5      n[        XS	S
9  g )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   rr  rl   rV   r&  rh  r   r   )r[   r   rO   s      r0   test_broadcastingTestNct.test_broadcasting  sa    iimmAryyAq$w7KKQ24JJJL M 	D1r2   c                 f    [         R                  " SS5      n[        UR                  5       S5        g )Nr   r   r   )r6   rr  r   r  r  s     r0   test_variance_gh_issue_2401#TestNct.test_variance_gh_issue_2401  s#    
 YYq!_RVVXs#r2   c                    [         R                  R                  SSSS9u  pp4[        XX4/[        R                  [        R                  [        R                  [        R                  /5        [         R                  R                  SSSS9u  pp4[        [        R                  " U5      5        [        X#U/[        R                  [        R                  [        R                  /5        [         R                  R                  SSSS9u  pp4[        [        R                  " XU/5      R                  5       5        [        U[        R                  5        g )Nr   r  r  )r  ncr  r  r  )r6   rr  r   rV   r)  r	   r  r   rk  s        r0   test_nct_inf_momentsTestNct.test_nct_inf_moments  s    YY__V_D
aaA\BFFBFFBFFBFF#CDYY__V_D
aAaAY 89YY__V_D
aQ1I&**,-Qr2   c                 p   [         R                  R                  SS5      n[         R                  R                  SS5      nSS/n[        XS   SS9  [        X#SS9  [         R                  R                  SS5      n[         R                  R                  SS5      nS	S
/n[        XFS   SS9  [        XVSS9  g )Nr   rj   g@ @g*dn?r   r  r   r   gqI  @gL) ?r  )r6   rr  r   r   )r[   nct_mean_df_1000nct_stats_df_1000expected_stats_df_1000nct_mean	nct_statsr  s          r0   test_nct_stats_large_df_values&TestNct.test_nct_stats_large_df_values  s     !99>>$2!IIOOD!4
 #56H!I(*C"	$)"	$ 99>>&!,IIOOFA.	,.@A"3%@	=r2   c           	      l    [        [        R                  R                  SS[	        S5      5      S5        g )Nrj   i   r   )r   r6   rr  rt   r   rZ   s    r0   test_cdf_large_ncTestNct.test_cdf_large_nc  s!    		aE%L91=r2   zx, df, nc, expected)r#  rc   r  gAs69)r  r  r  gV1c                 V    [        [        R                  R                  XU5      USS9  g r  )r   r6   rr  rl   )r[   rb   r  r|  rO   s        r0   test_pdf_large_ncTestNct.test_pdf_large_nc  s     			aR0(Gr2   r8   N)r  r  r  r  rs  rv  ry  r}  r  r  r   r  r  r  r  r8   r2   r0   rp  rp    sT    C2$ >,>6 [[2.+5
 H	Hr2   rp  c                   ,    \ rS rSrS rS rS rS rSrg)TestRecipInvGaussi  c                 T    [         R                  R                  SS5      nUS:X  d   eg )Nr   r  r   )r6   recipinvgaussrl   r  s     r0   test_pdf_endpoint#TestRecipInvGauss.test_pdf_endpoint  s%    ##As+Cxxr2   c                 r    [         R                  R                  SS5      nU[        R                  * :X  d   eg )Nr   r  )r6   r  r   rV   r*  r  s     r0   test_logpdf_endpoint&TestRecipInvGauss.test_logpdf_endpoint   s,    ""))!S1wr2   c                 \    [         R                  R                  SS5      nSn[        XSS9  g )Nry  r   g9V9s;r  r   )r6   r  rt   r   r[   r  rO   s      r0   test_cdf_small_x"TestRecipInvGauss.test_cdf_small_x$  s+      ##D#.(%0r2   c                 `    [         R                  R                  SS5      nSn[        XS5        g )NrD	  r   glH<r  )r6   r  r   r   r  s      r0   test_sf_large_x!TestRecipInvGauss.test_sf_large_x8  s)    ""2s+(U+r2   r8   N)	r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r    s    1(,r2   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestRicei?  c                 L    [         R                  R                  S5      U l        g )Ni'rU   rZ   s    r0   r\   TestRice.setup_method@  rC  r2   c           	         / SQn[        [        R                  " [        R                  R                  USS95      R                  5       5        [        [        R                  " [        R                  R                  USS95      R                  5       5        [        [        R                  " [        R                  R                  USS95      R                  5       5        [        [        R                  " [        R                  R                  USS95      R                  5       5        / SQn[        [        R                  " [        R                  R                  USS95      R                  5       5        [        R                  R                  SSS9n[        [        R                  " U5      R                  5       5        Sn[        [        R                  R                  US5      [        R                  R                  X5      USS	9  g )
N)r  rc  rd  r   )r/   )r`   r`   r   r   r   r  r  r  r  )r	   rV   r  r6   r0  rl   r   r   rt   r  r   r   )r[   rb   r  r  r/   s        r0   test_rice_zero_bTestRice.test_rice_zero_bC  sP   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                     [         R                  R                  n[        U" SU R                  S9R
                  S5        [        U" SSU R                  S9R                  S5        g )Nr  )r/   r   r   )r   r   )r/   r   r   )r6   r0  r   r   rY   r   rO  r,  s     r0   test_rice_rvsTestRice.test_rice_rvsX  sG    jjnnS2DHH5::A>S2FBHH&Qr2   c                    [         R                  R                  [        R                  " SSS5      [        R                  " SSS5      5      n/ SQn[        X5        [        R                  " SSS5      n[         R                  R                  USSS9n/ S	Qn[        XE5        [        R                   R                  R                  S
[        R                  " SSS5      5      n/ SQn[        XE5        g )Nrc      )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   rb  )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@r      )gJ-$@g+f4@gce*D>@g$D@gnHGI@grN@g<
uQ@giff T@g9r[V@g3bXQ Y@gqxJ[@g`*DD ^@g@`@gdAa@)r6   r0  rt   rV   r&  r   r   r5   )r[   rt   cdf_expprobabilitiesr   ppf_exps         r0   test_rice_gh9836TestRice.test_rice_gh9836]  s     jjnnRYYr33RYYr35KLO
 	%		#q#.jjnn]En;L 	%kk""3		"c2(>?;
 	%r2   r  N)	r  r  r  r  r\   r  r  r  r  r8   r2   r0   r  r  ?  s    4(*R
'&r2   r  c                   &    \ rS rSrS rS rS rSrg)
TestErlangi  c                 L    [         R                  R                  S5      U l        g )Nl   IL rU   rZ   s    r0   r\   TestErlang.setup_method  r^   r2   c                    [         R                  " 5          [         R                  " S[        5        [	        [        [
        R                  R                  SSSSU R                  S9  / SQn[
        R                  R                  USS9n[
        R                  R                  USS9n[        X#S	S
9  S S S 5        g ! , (       d  f       g = f)Nr  rb	  r   r   r   r  )r   rc  r   r?  r~  rG  r   )r  r  r  r  r  r6   erlangr   rY   r   r  r   )r[   r   result_erlangresult_gammas       r0   test_erlang_runtimewarning%TestErlang.test_erlang_runtimewarning  s     $$&!!'>: .%,,*:*:CQ !B (D!LL,,Ta,8M ;;??4A?6LMdC '&&s   BB::
Cc                     [        [        R                  R                  SSS/S9[        R                  R                  SSS/S95        g )Nr   r   r   ra  )r   r6   r  rl   r  rZ   s    r0   test_gh_pr_10949_argcheck$TestErlang.test_gh_pr_10949_argcheck  s<    U\\%%caW%5[[__SQG_4	6r2   r  N)r  r  r  r  r\   r  r  r  r8   r2   r0   r  r    s    5D&6r2   r  c                       \ rS rSrS rS rS r\R                  R                  SSS/5      S 5       r
\R                  R                  SS	S
/SS//5      S 5       rS rS rSrg)TestRayleighi  c                 L    [         R                  R                  S5      U l        g )Nl   @X rU   rZ   s    r0   r\   TestRayleigh.setup_method  r^   r2   c                 Z    [         R                  R                  S5      n[        US5        g )NrJ  g)Zx)r6   r<  r   r   r[   r  s     r0   r  TestRayleigh.test_logpdf  s!    NN!!"%./r2   c                 Z    [         R                  R                  S5      n[        US5        g )NrJ  i)r6   r<  r  r   r  s     r0   r  TestRayleigh.test_logsf  s     NN  $5!r2   r  )gB)Q?got|?)gS2P?g3?c                    [         R                  R                  SUX R                  S9nS nU" X15      n[         R                  R	                  X1S9u  pg[        Xa5        [        Xu5        [         R                  R	                  USS9u  pg[        US5        [         R                  R	                  U5      u  pg[        Xt" X65      5        g )Nr  r  c                 \    [         R                  " X-
  S-  5      S[        U 5      -  -  S-  $ )Nrj   r   )rV   r  r"  )r   r   s     r0   r  (TestRayleigh.test_fit.<locals>.scale_mle  s*    FFDKA-.!c$i-@RGGr2   r   r  r)  )r6   r<  r   rY   r   r   )r[   r   r  r   r  scale_expectrh   ri   s           r0   r&  TestRayleigh.test_fit  s     ~~!!s(1 " J	H !/^^''';
S"U) ^^''R'8
UB
 ^^''-
UId01r2   r)  r   g̡=E?g@1d?c                     [         R                  R                  SUX R                  S9n[	        [         R                  U5        g )Nr  r  )r6   r<  r   rY   r   )r[   r   r  r   s       r0    test_fit_comparison_super_method-TestRayleigh.test_fit_comparison_super_method  s7    
 ~~!!s(1 " J%ennd;r2   c                 6    [        [        R                  5        g rz   )r/  r6   r<  rZ   s    r0   r  TestRayleigh.test_fit_warnings  s    ENN+r2   c                    [         R                  R                  S5      nSu  p#n[        R                  R                  X#XAS9n[        R                  R                  U5      u  pgU[         R                  " U5      :  d   e[        R                  R                  XSS9u  phU[         R                  " U5      :  d   eX:X  d   eg )Ni  )rJ  r  rw  r   r)  )rV   rW   rX   r6   r<  r   r   r  )	r[   rY   rh   ri   r   r   r   r   r   s	            r0   test_fit_gh17088TestRayleigh.test_fit_gh17088  s     ii##C('Dnn  $ I^^'',
$$$"^^///B$$$!!!r2   r  N)r  r  r  r  r\   r  r  r   r  r  r&  r  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                   F   \ rS rSrS rS rS r\R                  R                  S/ SQ5      S 5       r
\R                  R                  S/ S	Q5      S
 5       r\R                  R                  SSS/5      S 5       r\R                  R                  SSS/5      S 5       rSrg)TestExponWeibi  c                     SnSnSn[         R                  R                  XU5      n[         R                  R                  XU5      n[	        XE/SS/5        g )Nr`   rc  r	  g:23W+g~`9k)r6   	exponweibrl   r   r   )r[   rb   r.   r  r  r  s         r0   test_pdf_logpdfTestExponWeib.test_pdf_logpdf  sS    OOa(%%aA.	/1DE	Gr2   c                 d   [         R                  " SSS5      nSnSn[        R                  R	                  XU5      n[        R
                  R	                  X5      n[        XE5        [        R                  R                  XU5      n[        R
                  R                  X5      n[        Xe5        g )Nr  r   r   r   rd   )rV   r  r6   r  rl   weibull_minr   r   r[   rb   r.   r  r  rO   r  s          r0   test_a_is_1TestExponWeib.test_a_is_1  s     KKB"OOa($$((.$%%aA.$$++A1'r2   c                 d   [         R                  " SSS5      nSnSn[        R                  R	                  XU5      n[        R
                  R	                  U5      n[        XE5        [        R                  R                  XU5      n[        R
                  R                  U5      n[        Xe5        g )Nre  r   rc   )rV   r  r6   r  rl   r  r   r   r  s          r0   test_a_is_1_c_is_1 TestExponWeib.test_a_is_1_c_is_1   s    KKAr"OOa(;;??1%$%%aA.;;%%a('r2   zx, a, c, ref))r   r  r   g=J ?)rJ  r  r   g$+PR>)r  r  r   g><)r  r  r   ggX.X:)r        ?r   gRy9)r   r  r  g'vR0=)g_QPr  r  gQ:<c                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r6   r  r   r   )r[   rb   r.   r  r  r   s         r0   r  TestExponWeib.test_sf  s$     __a(e,r2   zp, a, c, ref))r  r  r   g;y$(@)gMg<r  r   gdbq^@)r  r   rj   gE@)gvIh%L=r  r   g/7@)r  r  r  gTWTOc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r6   r  r  r   )r[   r  r.   r  r  r  s         r0   r  TestExponWeib.test_isf>  s$     oo!!!*u-r2   )rj   r   r  g)r   r   r   gl̇կc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r6   r  r  r   )r[   rb   r.   r  r  r  s         r0   r  TestExponWeib.test_logcdfK  s$     ''a0%0r2   )gR]jp2r  r@  gr)r  rj   rc   gN~c                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r6   r  r  r   )r[   rb   r.   r  r  r  s         r0   r  TestExponWeib.test_logsfS  s$     %%aA./r2   r8   N)r  r  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                        \ rS rSrS rS rSrg)TestFatigueLifei[  c                 Z    [         R                  R                  SS5      n[        USSS9  g )Nr  r  X9r   r   )r6   r2  r   r   r  s     r0   test_sf_tailTestFatigueLife.test_sf_tail]  s)       ,0u=r2   c                 ^    Sn[         R                  R                  US5      n[        USSS9  g )Nr  r  r  r   r   )r6   r2  r  r   )r[   r  r  s      r0   test_isf_tailTestFatigueLife.test_isf_tailk  s+    !!!!S)5u-r2   r8   N)r  r  r  r  r  r  r  r8   r2   r0   r  r  [  s    >.r2   r  c                       \ rS rSrS rS r\R                  R                  SSS/5      S 5       r	S r
\R                  R                  S	S
S/5      S 5       rSrg)TestWeibullir  c                 \    [         R                  R                  SS5      n[        US5        g r  )r6   r  r   r   r  s     r0   r  TestWeibull.test_logpdft  s$    $$Q*Qr2   c                     SnSnSn[         R                  R                  XUS9n[        U[        R
                  " S5      S-  5        [         R                  R                  XUS9n[        US[        R                  " S5      -
  5        [         R                  R                  XUS9n[        U[        R                  " S5      * 5        [         R                  R                  XUS9n[        U[        R                  " [        R                  " S5      * 5      5        [         R                  R                  XUS9n[        U[        R
                  " S5      5        [         R                  R                  XUS9n	[        U	S5        [         R                  R                  SSSS9n[        U[        R
                  " S	5      5        [         R                  R                  SSSS9n	[        U	S	5        S
n[         R                  R                  XUS9n[        U[        R
                  " S5      S-  5        [         R                  R                  XUS9n[        US[        R                  " S5      -
  5        [         R                  R                  XUS9n[        U[        R
                  " S5      5        [         R                  R                  XUS9n[        US5        [         R                  R                  XUS9n[        U[        R                  " S5      * 5        [         R                  R                  XUS9n	[        U	[        R                  " [        R                  " S5      * 5      5        [         R                  R                  SSSS9n[        U[        R                  " S5      * 5        [         R                  R                  SSSS9n	[        U	[        R                  " [        R                  " S5      * 5      5        g )Nr  r   r  rb  r  r   rH  rj   r  r  g&.gCe )r6   r  rl   r   rV   r   r   r  rt   r   r	  r  r   r  weibull_max)
r[   rb   r.   r/   r  r  r  lcrD   r	  s
             r0   test_with_maxima_distrib$TestWeibull.test_with_maxima_distriby  s'   .  !!!a!0266%=?+%%a!%4EBFF1I-.!!!a!0GMM%001%%a!%4BFFGMM%$8#89:  Q /266%=)$$Q$3E"   Qa 0266$<($$R!$4D! !!!a!0266%=?+%%a!%4EBFF1I-.!!!a!0266%=)%%a!%4E"  Q /GMM%001$$Q$3BFFGMM%$8#89:    3GMM*@AAB$$UAQ$7BFFGMM2H$I#IJKr2   ri   rc  r`   c                 h    [         R                  R                  US-  US-  SUS9n[        US5        g )Nrf  r  r   rb  g>)r6   r  rM  r   rJ	  s      r0   rN  TestWeibull.test_delta_cdf  s;    " !!,,U3Ya38 - :56r2   c                 d   [         R                  R                  S5      nSu  p#n[        R                  " X#U5      nUR                  SUS9n[        R                  R                  USSS9u  pxn	[        R                  R                  USSS9u  pnXs=:X  a  S:X  d   e   eXz:w  d   e[        R                  R                  USSS	S
9u  pnUS:X  d   e[        R                  " XU5      nUR                  SS9n[         R                  " U5      [        R                  " U5      4n[        UU5        g )Nl   > )rj   r  r   rd   r   r  r   r   r/	  r  r  r  r  )
rV   rW   rX   r6   r  r   r   r   r  r   )r[   rY   r  rh   ri   rK   r   c2r  r  c3r  r  c4r  r	  r
  r   r  s                      r0   test_fit_minTestWeibull.test_fit_min  s"   ii##$78#  /hhCch2 !,,00c0B& ,,00c0B& q     xx !,,00a$0O&{{!!"F3kk$k'ggclEJJsO+S!r2   r  )rJ  r   r	  )r   r   gq뮕qH)c                     [        [        R                  R                  X5      USS9  [        [        R                  R	                  X25      USS9  g r  )r   r6   r  r   r  r  s       r0   ry  TestWeibull.test_sf_isf   s>     	)),,Q2CeD))--c5quEr2   r8   N)r  r  r  r  r  r  r   r  r  rN  r  ry  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                        \ rS rSrS rS rSrg)TestDweibulli  c                 &   [         R                  R                  S5      nSUR                  SSS9-  n[        R
                  R                  U5      n[        R                  R                  U5      [         R                  " S5      -
  n[        X4SS9  g )N   q>~). rc   rd   rZ	  r   r   r   )
rV   rW   rX   r[	  r6   dweibullr>   r  r  r   )r[   rY   r  r   r  s        r0   r  TestDweibull.test_entropy	  sq     ii##$78

2
..nn$$Q'''*RVVC[8u-r2   c                 $   [         R                  R                  S5      nSUR                  SSS9-  nSUR	                  5       -  n[
        R                  R                  X25      nS[
        R                  R                  X25      -  n[        XESS9  g )Nr  rc   r   rZ	  r   r   r   )
rV   rW   rX   r[	  r  r6   r	  r   r  r   )r[   rY   r  rb   r   r  s         r0   r  TestDweibull.test_sf  sy     ii##$78


,,nn%E%%((..u-r2   r8   N)r  r  r  r  r  r  r  r8   r2   r0   r  r    s    ..r2   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestTruncWeibulli!  c                 h    [         R                  R                  SS/SSS5      n[        USS/5        g )Nr`   r   g)\(?gףp=
?r   )r6   truncweibull_minrl   r   r  s     r0   test_pdf_bounds TestTruncWeibull.test_pdf_bounds#  s0    ""&&Sz3dCQc
#r2   c                     [         R                  R                  SSS[        R                  5      n[        US5        [         R                  R                  SSSS5      n[        US5        g )Nr   rc  r   r?  g~?)r6   r  r   rV   r*  r   r   r  s     r0   r  TestTruncWeibull.test_logpdf(  sU    ""))#sC@Q ""))#sC=./r2   c                 h    [         R                  R                  SS/SSS5      n[        USS/5        g )Nr   rc  r   r`   )r6   r  r   r   r  s     r0   test_ppf_bounds TestTruncWeibull.test_ppf_bounds0  s0    ""&&Sz3SAQc
#r2   c                     / SQn[         R                  R                  USSS5      n[         R                  R                  USSS5      n[	        X5        g N)r   r`   r  r   r   r   rc  r   r   r  )r6   r  r   rt   r   r[   r  rb   q_outs       r0   test_cdf_to_ppf TestTruncWeibull.test_cdf_to_ppf5  sG    0""&&q"b"5&&**1b"b9!r2   c                     / SQn[         R                  R                  USSS5      n[         R                  R                  USSS5      n[	        X5        g r  )r6   r  r  r   r   r  s       r0   test_sf_to_isfTestTruncWeibull.test_sf_to_isf;  sG    0""&&q"b"5&&))!RR8!r2   c                   ^^^^ SmSmSmUUU4S jm[         R                  R                  STTT5      n[        US5        [         R                  R                  STTT5      n[	        U4S jTT5      u  p4[        X#5        [         R                  R                  STTT5      n[	        U4S	 jTT5      u  pd[        XV5        [         R                  R                  S
TTT5      n[	        U4S jTT5      u  p[        Xx5        [         R                  R                  STTT5      n	[	        U4S jTT5      u  p[        X5        g )Nr   rc  r  c                 R   > X-  [         R                  R                  U TTT5      -  $ rz   )r6   r  rl   )rb   r  r.   r/   r  s     r0   xnpdf)TestTruncWeibull.test_munp.<locals>.xnpdfF  s'    4..221aA>>>r2   r   r   c                    > T" U S5      $ r   r8   rb   r#  s    r0   rE   ,TestTruncWeibull.test_munp.<locals>.<lambda>M      ar2   rj   c                    > T" U S5      $ r  r8   r&  s    r0   rE   r'  Q  r(  r2   r   c                    > T" U S5      $ r/  r8   r&  s    r0   rE   r'  U  r(  r2   r   c                    > T" U S5      $ )Nr   r8   r&  s    r0   rE   r'  Y  r(  r2   )r6   r  r  r   r   r   )r[   rO  r
  m1_expectedr   ro  m2_expectedm3m3_expectedrp  m4_expectedr.   r/   r  r#  s              @@@@r0   	test_munpTestTruncWeibull.test_munpA  s   	? ##**1aA6R##**1aA63Q:(##**1aA63Q:(##**1aA63Q:(##**1aA63Q:(r2   c                 ,   SnSnSn[         R                  " S[         R                  " S[         R                  " S[         R                  " S5      -   * 5      -   5      -
  5      n[        R
                  R                  XCX5      n[        US5        [        R
                  R                  XCX5      n[        U[         R                  " S5      * 5        [        R
                  R                  SX1U5      n[        Xt5        [        R
                  R                  XCX5      n[        US5        [        R
                  R                  XCX5      n	[        U	[         R                  " S5      * 5        [        R
                  R                  SX1U5      n
[        X5        g )Nrc  r  r   r   r   r  )rV   r  r  r   r6   r  rt   r   r  r   r   r  r  )r[   r.   r/   r  x_medrt   r  r   r   r	  r  s              r0   test_reference_values&TestTruncWeibull.test_reference_values\  s*   BFF3"rvvbz/0B)C#CDDE$$((18S!##**5Q:RVVBZK($$((aA6###&&u6C ##))%A9RVVBZK($$((aA6#r2   c                 n   SnSnSn[         R                  nSn[        R                  R	                  XUS9n[        R
                  R	                  XX4US9n[        Xg5        [        R                  R                  XUS9n[        R
                  R                  XX4US9n	[        X5        [        R                  R                  XUS9n
[        R
                  R                  XX4US9n[        X5        [        R                  R                  XUS9n[        R
                  R                  XX4US9n[        X5        [        R                  R                  XUS9n[        R
                  R                  XX4US9n[        X5        [        R                  R                  XUS9n[        R
                  R                  XX4US9n[        UU5        [        R
                  R                  SSX4SS9n[        U[         R                  " S	5      5        [        R
                  R                  SSX4SS9n[        US	5        g )
Nr  r   r   r  rb  rH  rj   r   r  )rV   r*  r6   r  rl   r  r   r   rt   r  r   r  r   )r[   rb   r  r.   r/   ri   r  p_truncr  lp_truncrt   	cdf_truncr  lc_truncrD   s_truncr	  ls_truncs                     r0   test_compare_weibull_min)TestTruncWeibull.test_compare_weibull_mint  s    FF!!!e!4((,,Q1u,E#%%a%%8))00q50I%##A#6**..qQ.G	'%%a%%8))00q50I%  U 3((++A!e+D#$$Q$7))//a%/HH% ""%%b!Q%;266$<(##))"aQ)?D!r2   c                 ~   Su  pn[         R                  " X#S5      n[        R                  R	                  XAX#5      n[        R                  R                  XAX#5      n[        R                  R                  X15      [        R                  R                  X!5      -
  n[        R                  R	                  XA5      U-  n[        R                  R                  XA5      [        R                  R                  X!5      -
  U-  n	[         R                  R                  XX5        [         R                  R                  Xi5        g )N)r  r  r@  rd   )	rV   rh  r6   r  rl   rt   r  rP  r   )
r[   r  r.   r/   rb   r\  r  rK  r]  r  s
             r0   test_compare_weibull_min2*TestTruncWeibull.test_compare_weibull_min2  s     "aKKc"%%))!5%%))!5  $$Q*U->->-B-B1-HH  $$Q*T1!!%%a+e.?.?.C.CA.II4O


""4.


""4.r2   r8   N)r  r  r  r  r  r  r  r  r  r1  r5  r>  rA  r  r8   r2   r0   r  r  !  s0    $
0$
"")6$0'"R/r2   r  c                   h    \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	Sr
g)		TestRdisti  c                     [         R                  n/ SQn[        UR                  UR	                  US5      S5      USS9  g )Nr  g     @r   rf  )r6   rdistr   rt   r   )r[   r
  r|  s      r0   test_rdist_cdf_gh1285TestRdist.test_rdist_cdf_gh1285  s5    $FJJvzz&%'@%H"A	/r2   c                     [         R                  " SSS5      nSn[        S[        R                  " US-  US-  5      R                  US-   S-  5      -  [        R                  " U5      R                  U5      5        g )NgGzr  rc   g@r   rj   r   )rV   rh  r   r6   r  rl   rF  )r[   rb   r  s      r0   test_rdist_beta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?)r   i  g79)r   iU  g޻S/c                 T    [        [        R                  R                  X5      USS9  g r  )r   r6   rF  r   r  s       r0   test_rdist_sfTestRdist.test_rdist_sf  s     	q,c>r2   r8   N)r  r  r  r  rG  rJ  r   r  r  rN  r  r8   r2   r0   rD  rD    s7    /3 [[	
??r2   rD  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestTrapezoidi  c                 D   / SQnU H  nSUS/n[        [        R                  R                  X2U5      [        R                  R                  X25      5        [        [        R                  R                  X2U5      [        R                  R                  X25      5        M     g )N)r   r  r   r   r   r   )r   r6   r   rl   triangrt   )r[   modesmoderb   s       r0   test_reduces_to_triang$TestTrapezoid.test_reduces_to_triang  sv     DD!A 3 3AT B % 0 0 9; 3 3AT B % 0 0 9;	 r2   c                 T   [         R                  " SSS5      n[        [        R                  R                  USS5      [        R                  R                  U5      5        [        [        R                  R                  USS5      [        R                  R                  U5      5        g )Nr   r   rc   )rV   rh  r   r6   r   rl   r  rt   r  s     r0   test_reduces_to_uniform%TestTrapezoid.test_reduces_to_uniform  sl    KK1b!EOO//1a8%--:K:KA:NOEOO//1a8%--:K:KA:NOr2   c                    [        [        R                  R                  SSS5      S5        [        [        R                  R                  SSS5      S5        [        [        R                  R                  SSS5      S5        [        [        R                  R                  SSS5      S5        [        [        R                  R                  S	SS5      S
5        [        [        R                  R                  SSS5      S5        [        [        R                  R                  SSS5      S
5        [        [        R                  R	                  S	SS5      S5        [        [        R                  R	                  SSS5      S5        [        [        R                  R	                  SSS5      S5        [        [        R                  R	                  SSS5      S5        [        [        R                  R	                  SSS5      S5        g )Nr   rj   r   r   r   r  r  rc  r`   g      ?r@  r   r  r  g      ?)r   r6   r   rl   rt   rZ   s    r0   
test_cases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                 &  ^	^
^^^ Su  m	m
mmT
T	-
  TT	-
  -  TT	-
  TT	-
  -  T	TT	-
  4u  pp4STT-   T
-
  T	-
  -  mU	U
UUU4S jnU" S5      nU" S5      US-  -
  nSTT-
  T
-   T	-
  -  TT-   T
-
  T	-
  -  [         R                  " STT-   T
-
  T	-
  -  5      -   n[        [        R                  R                  XX45      USS9  [        [        R                  R                  XX45      USS9  [        [        R                  R                  XX45      USS9  [        [        R                  R                  SSS	S
5      SSS9  [        [        R                  R                  SSS	S
5      SSS9  [        [        R                  R                  SSS	S
5      SSS9  g )N)r(  r   rj   r   rj   c                    > TTU S-   -  TU S-   -  -
  TT-
  -  TU S-   -  TU S-   -  -
  TT-
  -  -
  -  U S-   -  U S-   -  $ )Nrj   r   r8   )r  r.   r/   r  dr  s    r0   r  6TestTrapezoid.test_moments_and_entropy.<locals>.moment  sn    !ac(Q1X-!A#6!Hq1Q3x/AaC89 :qSqS" #r2   r   r   r  rf  r   r(  r  r   r   )rV   r  r   r6   r   r   r  r>   )r[   r  rA  rh   ri   r  r   r  r>   r.   r/   r  r`  r  s            @@@@@r0   test_moments_and_entropy&TestTrapezoid.test_moments_and_entropy  s    "
1acac]QqSQqSM1acA1QqM	# 	#
 ayQi$'!1Qq/QqSU1W-sac!eAg0GGEOO00D "	.EOO//C	-EOO33BCG#R	1 	EOO00Ar1=r2NEOO00Ar1=q"MEOO//1b!<aLr2   c                    [         R                  " / SQ5      n[         R                  " SS/5      S S 2S 4   n[         R                  " / SQ5      n[        R                  R	                  X1U5      n[         R
                  " XU5      u  pVn[         R                  " UR                  UR                  S9n[         R                  " UR                  5      n	[        XR                  5       UR                  5       UR                  5       5       H(  u  pp[        R                  R	                  XU5      X'   M*     [        XHR                  UR                  5      SS9  [         R                  " [        R                  R                  XSS	95      n[         R
                  " X5      u  pV[         R                  " UR                  S
45      n[         R                  " UR                  5      n	[        XR                  5       UR                  5       5       H&  u  pn[        R                  R                  XSS	9X'   M(     [        XHR                   R                  UR                  5      SS9  g )Nr
  r   r  )r  r  r   rX  r   r   r  r  r   )rV   r   r6   r   rl   broadcast_arraysemptyr   r   r&  r%  ravelr   r  rO  r   r	  )r[   r  r`  rb   rS  ccddr  r   indr  r  c1d1s                 r0   test_trapezoid_vect!TestTrapezoid.test_trapezoid_vect  s   HH_%HHc3Z D)HH&'OOa(((q1
hhrwwbhh/ii  hhj"((*bhhjIMA2__((4CF J 	;;qww/e< JJu,,Q6,BC$$Q*hh|$ii S((*bhhj9IA2__**26*BCF : 	55==1>r2   c                    [         R                  R                  S5      nSn[        R                  " U6 nUR                  SUS9n[        R                  R                  U5      nUS S u  pg[         R                  " USSS9(       a   e[         R                  " USSS9(       a   e[        R                  R                  X$5      n[        R                  R                  XT5      n	X:  d   eg )	Nl   \"MW )r  r  r   rj   r   r   rj   r   r`   r   )	rV   rW   rX   r6   r   r   r   r  r   )
r[   rY   	true_args	true_distrb   fitted_argsfitted_cfitted_dtrue_llf
fitted_llfs
             r0   &test_trapezoid_fit_convergence_gh235034TestTrapezoid.test_trapezoid_fit_convergence_gh23503)  s     ii##$89#	OOY/	MM$SM1 oo))!, )!_;;x555;;x555 ??''	5__))+9
$$$r2   r8   N)r  r  r  r  rV  rY  r\  rb  rm  rw  r  r8   r2   r0   rQ  rQ    s#    ;P
E(M6?4%r2   rQ  c                       \ rS rSrS rSrg)
TestTriangiB  c                 P   [         R                  " SS9   [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S	5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S
5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        [        [        R                  R                  SS5      S5        S S S 5        g ! , (       d  f       g = f)Nraiser,
  r   r   r   rc  r   r   rj   r   r  )rV   r  r   r6   rS  rl   rt   rZ   s    r0   test_edge_casesTestTriang.test_edge_casesC  s^   [[W%))!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 &%%s   G9H
H%r8   N)r  r  r  r  r}  r  r8   r2   r0   rz  rz  B  s    6r2   rz  c                       \ rS rSr\R
                  R                  SSS/5      S 5       r\R
                  R                  S/ SQ5      S 5       rS	 r	S
 r
Srg)TestMaxwelliV  r  )rA  gCR5&.)r   g7q?c                 T    [        [        R                  R                  U5      USS9  g r  )r   r6   maxwellr   r  s      r0   r  TestMaxwell.test_sf[  s     	((+Su=r2   r  ))rG  g1!@)g    ?g?)g      <gCuJ!@c                 T    [        [        R                  R                  U5      USS9  g r   )r   r6   r  r  r  s      r0   r  TestMaxwell.test_isfd  s    
 	))!,c>r2   c                 Z    Sn[         R                  R                  S5      n[        X!SS9  g )Ngi6urg  r  r   )r6   r  r  r   )r[   r  r  s      r0   r  TestMaxwell.test_logcdfk  s%    %%%a(%0r2   c                 Z    Sn[         R                  R                  S5      n[        X!SS9  g )Ng_OԺr  r  r   )r6   r  r  r   )r[   r  r  s      r0   r  TestMaxwell.test_logsfq  s%    %##D)/r2   r8   N)r  r  r  r  r   r  r  r  r  r  r  r  r8   r2   r0   r  r  V  sf    
 [[X::<=>=> [[X:;?	;?10r2   r  c                        \ rS rSrS rS rSrg)
TestMielkeix  c                    Su  p[        [        R                  " X5      R                  S5      [        R
                  5        [        [        R                  " US5      R                  S5      [        R
                  5        [        [        R                  " [        R                  " US5      R                  S5      5      5        g )N)g rh@gv?r   rc  rJ  )r   r6   mielker  rV   r*  r	   r  )r[   r_   rD   s      r0   rV  TestMielke.test_momentsy  sv    U\\!'..q1266:U\\!S)003RVV<ELLD188;<=r2   c                     [         R                  " SSS5      nSu  p#[        [        R                  R                  XX#-  5      [        R                  R                  XU5      5        g )Nr   rd   rJ  )g@gHzG@)rV   rh  r   r6   burrrl   r  )r[   rb   r_   rD   s       r0   test_burr_equivalence TestMielke.test_burr_equivalence  sG    KKc2&

qQS15<<3C3CA!3LMr2   r8   N)r  r  r  r  rV  r  r  r8   r2   r0   r  r  x  s    >Nr2   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestBurri  c           	         [         R                  SS/[         R                  SS/[         R                  SS/[         R                  SS/[         R                  SS/[         R                  SS/[         R                  S	S
//nU VVVs/ s H"  u  p#oBR                  " UR
                  /UQ76 PM$     nnnnU VVVs/ s H  u  p#ofPM	     nnnn[        XW5        U VVVs/ s H"  u  p#oBR                  " UR
                  /UQ76 PM$     nnnnU VVVs/ s H  u  p#n[        R                  " U5      PM     nnnn[        XW5        g s  snnnf s  snnnf s  snnnf s  snnnf )N)r   r   )r   rj   )r   r   )rj   r   r  r   rc  )r   rj   r   )
r6   fiskr  burr12rl   r.   r   r   rV   r  )r[   r   r*  r+  r   r-  r.  r/  s           r0   test_endpoints_7491TestBurr.test_endpoints_7491  s    ZZq!ZZ1%ZZ#ZZ1%\\8S)\\63'\\63') 9==1vvbdd#U#=9=>!5I9>!#/;?@4<2ayy&&4@AEF)=I266)$F!#/ >> AFs   )E:E
)E#Ec                     Su  p[         R                  " X5      R                  5       u  p4Su  pV[        X55        [        XF5        g )N)rd  r   )g4U?g&MI?)r6   r  r   )r[   r  r`  r   variancemean_hcvariance_hcs          r0   test_burr_stats_9544TestBurr.test_burr_stats_9544  s=    A)//1  G&.r2   c                 >   Su  p[         R                  " X5      R                  5       u  p4[        [        R                  " U5      5        [        [        R                  " U5      5        Su  p[         R                  " X5      R                  5       u  p4[        [        R
                  " U5      5        [        [        R                  " U5      5        Su  p[         R                  R                  [        R                  " / SQ5      X5      u  pVpx[        [        R                  " U5      5        [        [        R                  " U5      5        [        [        R                  " U5      5        [        [        R                  " U5      5        Su  p[         R                  R                  / SQX5      u  pVpx[        [        R
                  " U5      5        [        [        R                  " U5      5        [        [        R                  " U5      5        [        [        R                  " U5      5        Su  p[         R                  R                  / SQX5      u  pVpx[        [        R
                  " U5      5        [        [        R
                  " U5      5        [        [        R                  " U5      5        [        [        R                  " U5      5        Su  p[         R                  R                  / SQX5      u  pVpx[        [        R
                  " U5      5        [        [        R
                  " U5      5        [        [        R
                  " U5      5        [        [        R                  " U5      5        Su  p[         R                  R                  / SQX5      u  pVpx[        [        R
                  " U5      5        [        [        R
                  " U5      5        [        [        R
                  " U5      5        [        [        R
                  " U5      5        g )N)r   r   )r  r   r  )r  r   )r  r   )r  r   )r6   r  r	   rV   r
  r  rH  r   )	r[   r  r`  r   r  e1e2e3e4s	            r0   test_burr_nan_mean_var_9544$TestBurr.test_burr_nan_mean_var_9544  ss   A)//1"#A)//1D!""#))"((<*@!G)),=B )),=B B )),=B B B )),=B B B B r2   c                 n    Su  p/ SQn/ SQn[        [        R                  R                  X1U5      USS9  g )N)rd  r  )r`   r  r  r  )g+&?gI$_@gKT@gؗVAr  r   )r   r6   r  r  )r[   r  r`  r  r  s        r0   test_burr_isfTestBurr.test_burr_isf  s2     &#

qQ/5Ar2   r8   N)	r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r    s    0(	/(!TBr2   r  c                       \ rS rSr\R
                  R                  SSS/5      S 5       rS r\R
                  R                  S/ SQ5      S	 5       r	S
r
g)
TestBurr12i  zscale, expected)rc  gd~)r  gR톇T c                 Z    [         R                  R                  SSSSUS9n[        X2SS9  g )Ng     jAg     jAr   r  rb  r   r   )r6   r  rM  r   )r[   ri   rO   r  s       r0   rN  TestBurr12.test_delta_cdf  s-    ( ''S!Qe'De4r2   c                 "   Su  p[         R                  S-  nS[         R                  S-  S-  -
  n[         R                  S-  SUS-  -  -  n[         R                  nX4XV/n[        R                  " X5      R                  S	5      n[        XS
S9  g )Nr  r   r   rj   r  r   rX  r  r  r  r   )rV   rm   r)  r6   r  r   )	r[   r  r`  r   r  r  r  r  r   s	            r0   test_moments_edgeTestBurr12.test_moments_edge  s}    
 uuQw"%%(2+ouuaxCH%66$)ll1 &&v.u-r2   zp, c, d, ref))r  rA  r   ggx4/@)gҶOɃ;rA  r   gI8aS@)r  r  #   gj\/ @)g#aMR/r  r  g!GAc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r6   r  r  r   )r[   r  r  r`  r  rb   s         r0   test_isf_near_zeroTestBurr12.test_isf_near_zero   s$     LLQ1%U+r2   r8   N)r  r  r  r  r   r  r  rN  r  r  r  r8   r2   r0   r  r    sa    [[.<;=>5>5(.  [[	0,,r2   r  c            	           \ rS rSr/ SQr/ SQr/ SQr\R                  " \\\45      r	/ SQr
SSSS	S
\R                  /r/ SQr\" \" \" \
\\5      \	5      5      rSSSS\R                  S4SS\R                  S4SS\R                  S4/r\R(                  R*                  S 5       r\R(                  R.                  S 5       r\R4                  R7                  \5      rSr\" \R4                  RA                  \\5      5       r!\"RF                  " \!5      r$SSS5        \R(                  RK                  S\$S   5      S 5       r&\R(                  RK                  S\$S   5      S 5       r'\R(                  R.                  \R(                  RQ                  S5      \R(                  RK                  S\$S   5      S 5       5       5       r)\R(                  R*                  S 5       r*\R(                  R.                  S 5       r+\R(                  RK                  S \5      S! 5       r,\R(                  R.                  \R(                  RQ                  S5      S" 5       5       r-\R(                  R.                  S# 5       r.S$ r/S% r0S& r1S'r2g! , (       d  f       GNq= f)(TestStudentizedRangei   )gQ1@g33333F@g
ףp=*K@gHzM@g/$@g~j!@g33333$@g{Gz&@gh|?5	@gQ8@g&1@g|?5@g@gOn@g!rhm@gB`"@r`  gʡEs@g|?5^@g/$@gV-@g/$@gF@g?5^I@)gRV@gffffffl@gp@g     r@gʡ @gHzG/@gQ82@gQ3@g!rh@g     @g+@gʡEs @gjt@gB`"[@g@gnJ@gV-@gFx@gsh|?@g+N@g/$@g @g@gGz@)gfffff"@i  i
  i  gHzG2@g(\A@gQC@gfffffE@g @gNbX9"@gHz$@g(\&@g-@gn@@gw/@g=
ףp @gJ+@g-'@gn@gHz@gV-@gnJ@g$@g/ݤ@)r  r  r  r   r   rc   rA  x   )rj   r  r  rA  )r`   r   i)#  gupm1f?)r   rc   r   g?<-=A?gv"?r   gd暕?ga-A?c                     U R                    H4  u  pUu  p4n[        R                  R                  X%U5      n[	        XcSS9  M6     g )Nr  r   )r   r6   studentized_rangert   r   )r[   pvkr  
p_expectedrS  r_   res_ps          r0   test_cdf_against_tables,TestStudentizedRange.test_cdf_against_tables;   s>    iiFC"J1++//a8EED9  r2   c                     U R                    H4  u  pUu  p4n[        R                  R                  X5U5      n[	        XbSS9  M6     g )Nr  r   )r   r6   r  r   r   )r[   r  
q_expectedr  rS  r_   res_qs          r0   test_ppf_against_tables,TestStudentizedRange.test_ppf_against_tablesB   s=    #yyOCGA!++//a8EED9  )r2   z&data/studentized_range_mpmath_ref.jsonNcase_resultcdf_datac                     US   nUS   nUS   US   US   4n[         R                  R                  " U6 n[        XSUS   US   S9  g 	Nsrc_case	mp_resultr  r_   rS  expected_atolexpected_rtolr  )r6   r  rt   r   r[   r  r  r  qkvr   s         r0   test_cdf_against_mp(TestStudentizedRange.test_cdf_against_mpN   ^    z*,	smXc]HSM9%%))3/%o6%o6	8r2   pdf_datac                     US   nUS   nUS   US   US   4n[         R                  R                  " U6 n[        XSUS   US   S9  g r  )r6   r  rl   r   r  s         r0   test_pdf_against_mp(TestStudentizedRange.test_pdf_against_mpY   r  r2   z+intermittent RuntimeWarning: invalid value.moment_datac                     US   nUS   nUS   US   US   4n[         R                  " SS9   [        R                  R                  " U6 nS S S 5        [        WUUS   US	   S
9  g ! , (       d  f       N!= f)Nr  r  r  r_   rS  r  r  r  r  r  )rV   r  r6   r  r  r   )r[   r  r  r  mkvr   s         r0   test_moment_against_mp+TestStudentizedRange.test_moment_against_mpd   s     z*,	smXc]HSM9 [[*))00#6C + 	Y%o6%o6	8 +*s   A&&
A4c                     Su  p[        [        R                  R                  S[        R
                  X4S9n[        US   S5        g )Nr   rc   r   r  r   )r   r6   r  rl   rV   r*  r   )r[   r_   rS  r   s       r0   test_pdf_integration)TestStudentizedRange.test_pdf_integrationu   s9    5**..266GA"r2   c                     Su  p[         R                  " SSSS9n[        R                  R	                  X1U5      SS  n[        R                  R                  X1U5      n[        XS5      n[        XdSS9  g )	Nr  r   rc   r   )stepr   r  r   )rV   r&  r6   r  rt   rl   r   r   )r[   r_   rS  rb   y_cdf	y_pdf_rawy_pdf_cumulatives          r0   test_pdf_against_cdf)TestStudentizedRange.test_pdf_against_cdf|   sl    
 IIa$'''++A!4QR8++//a8	/	= 	(d;r2   r_case_resultc                     Uu  p#pE[         R                  " SS9   [        R                  R	                  X#U5      nS S S 5        [        WU5        g ! , (       d  f       N= f)Nr  r  )rV   r  r6   r  rt   r   )r[   r  r  r_   rS  r_resr   s          r0   test_cdf_against_r'TestStudentizedRange.test_cdf_against_r   sI     'a[[*))--aA6C +U# +*s   !A
Ac                    [         R                  " SS9   [        R                  R	                  SS/SS/SS/5      nS S S 5        [        WR                  S	5        [        R                  " [        S
S9   [        R                  R	                  SSS// SQ5        S S S 5        g ! , (       d  f       Nl= f! , (       d  f       g = f)Nr  r  r   rj   r   r   rc   r  r
  z...could not be broadcast...r  )rc   r  re  )
rV   r  r6   r  rH  r   rO  r   r   r(  rH  s     r0   test_moment_vectorization.TestStudentizedRange.test_moment_vectorization   s     [[*''--q!fq!fr2hGA + 	&]]:-KL##))!aV\B ML +*
 MLs   (B#4&B4#
B14
Cc                    [         R                  " 5          [        R                  " SS9   [         R                  " S[
        5        [        R                  R                  / SQ5      u  p  nS S S 5        S S S 5        [        [        R                  R                  WW5      5        g ! , (       d  f       N@= f! , (       d  f       NI= f)Nr  r  r  )r  r  rV   r  r  r   r6   r  r!  r	   	_argcheck)r[   r_   r  r   s       r0   test_fitstart_valid(TestStudentizedRange.test_fitstart_valid   s}    $$&H(E!!(,>?11;;IFKA1a )F& 	''11!R89	 )F(E&&s#   B7AB&,B7&
B4	0B77
Cc                 p   [         R                  R                  SS[        R                  5      n[         R                  R                  SSS5      n[        XSSS9  [         R                  R                  SS[        R                  5      n[         R                  R                  SSS5      n[        XSSS9  g )Nr   rc   韆 r  r  )r6   r  rl   rV   r*  r   rt   )r[   r   
res_finites      r0   test_infinite_df%TestStudentizedRange.test_infinite_df   s     %%))!R8,,00B>
d>%%))!R8,,00B>
d>r2   c           	         [         R                  R                  SSS5      n[         R                  R                  SSS5      n[         R                  R                  SSS5      n[        [        [
        XSSS9  [        X#SSS9  [         R                  R                  SSS5      n[         R                  R                  SSS5      n[         R                  R                  SSS5      n[        [        [
        XSSS9  [        X#SSS9  g )Nr   rc   r   r  i r  r  )r6   r  rl   r  AssertionErrorr   rt   )r[   r   r  
res_sanitys       r0   test_df_cutoff#TestStudentizedRange.test_df_cutoff   s     %%))!R8,,00B>
,,00B>
nosd	,
TE%%))!R8,,00B>
,,00B>
nosd	,
TEr2   c                 t    Su  pn[         R                  R                  XU5      n[        USSS9  US:  d   eg )N)gaRA@r   iS  r   r  r   )r6   r  r   r   )r[   r  r_   rS  r  s        r0   test_clipping"TestStudentizedRange.test_clipping   s<     .a##&&qQ/15)Avvr2   r8   )3r  r  r  r  q05q01q001rV   r  qspsr*  vskslistr%  r%   r   r_datar   r  r
  r  r	  r  ospathdirnamer  path_prefixrelative_pathopenr	
  filejsonr  pregenerated_datar  r  r  xfail_on_32bitr  r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r     s   'C'C(D 
c4(	)B	B
QBRVV	$B	BGBB',-D
 	*(	
Arvv()	
Arvv()	
B)*F [[: : [[: : ''//(+K<M	bggll;6	74 IIdO 
8 [[],=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 
8	7s   I>>
Jr  c                       \ rS rSr\R
                  R                  SSSS\R                  " S/S/S//5      /5      S 5       r	S r
S rS	 rS
 rSrg)TestTukeyLambdai   r^  r   r  r  c                     [         R                  " SSS5      n[        R                  R	                  X!5      n[         R
                  " U5      R                  5       (       d   eUS:  R                  5       (       d   eg )Nr  rd  ra   r   )rV   rh  r6   r(   rl   r  r   )r[   r^  rb   r  s       r0   test_pdf_nonpositive_lambda+TestTukeyLambda.test_pdf_nonpositive_lambda   s]     KKc3'!!!){{1~!!####C}}r2   c                    [         R                  " SSS5      n[         R                  " S/S/S//5      n[        R                  R                  X5      n[         R                  " U5      R                  5       (       d   eUS S S:  R                  5       (       d   eUS   S:  R                  5       (       d   eUS   S:H  R                  5       (       d   eg )Nr  rd  ra   r  r   r   rj   )	rV   rh  r   r6   r(   rl   r  r   r  )r[   rb   r^  r  s       r0   test_pdf_mixed_lambda%TestTukeyLambda.test_pdf_mixed_lambda   s    KKc3'hhu-.!!!){{1~!!#### "1  """" !s
!!!!!  """"r2   c                 0   [         R                  " / SQ5      n[        R                  R	                  U5      u  p#[         R                  " [         R
                  [         R
                  [         R
                  SSS/5      n[        X45        [        X$* 5        g )N)g      r   r   r  r   r   r   rj   r   )rV   r   r6   r(   supportr*  r   )r[   r^  r.   r/   
expected_bs        r0   rB  TestTukeyLambda.test_support   sb    hh9:  ((-XXrvvrvvrvvq!SAB
Q#Q$r2   c                 d    [         R                  R                  SS/S5      n[        USS/5        g )Nr  r   r   r   )r6   r(   rl   r   r  s     r0   test_pdf_support_boundary)TestTukeyLambda.test_pdf_support_boundary   s.     !!4+s3Qc
#r2   c                 8   [         R                  R                  SSS9nS[        R                  S-  S-  SS/n[	        XSS9  [         R                  R                  S	SS9n/ S
Qn[	        XSS9  [         R                  R                  SSS9n/ SQn[	        XSS9  g )Nr   r  r  rj   r   r  rc   rf  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r6   r(   rV   rm   r   )r[   rV  rO   s      r0   "test_tukeylambda_stats_ticket_15452TestTukeyLambda.test_tukeylambda_stats_ticket_1545!  s     $$Q$7ruuaxz1c*B"5$$T6$:GB"5$$T6$:GB"5r2   r8   N)r  r  r  r  r   r  r  rV   r   r  r  rB  r  r!  r  r8   r2   r0   r  r     s\    [[	dD"((TFSED6#:;<	#%$6r2   r  c                   t    \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	S r
S rS	rg
)TestLevyi!  c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  R	                  U5      n[        X2SS9  [        R                  R                  U5      n[        XASS9  g )N)r   rc  r   r`   r   rG  )g~V1?r  gba"?g܄4ťY?r  g$%+Ir  r   r   )rV   r   r6   r7  rt   r   r   )r[   rb   rO   r  r  s        r0   test_levy_cdf_ppfTestLevy.test_levy_cdf_ppf!  sb    HH78 88 5 6 JJNN1%0 ZZ^^H%E*r2   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  R	                  U5      n[        X2SS9  g )N)r  r  gMraB3Grm  )gep[>g}XEQ=gѭEG<g?_%~:r  r   )rV   r   r6   r7  r   r   )r[   rb   rO   r  s       r0   test_levy_sfTestLevy.test_levy_sf0!  sB    HH-.88 4 5 JJMM!%0r2   zp, expected_isf))r  gj1e2H)r  g6C)r	  gnE@)r7  g!^x1?)r  gZ?)g   ?g:}!Nu?c                 V    [         R                  R                  U5      n[        X2SS9  g )Nr  r   )r6   r7  r  r   )r[   r  expected_isfrb   s       r0   test_levy_isfTestLevy.test_levy_isfF!  s      JJNN1e4r2   c                 ^    SnSn[         R                  R                  U5      n[        X2SS9  g )Nrm  g?_%~r  r   )r6   r7  r  r   r  s       r0   test_levy_logcdfTestLevy.test_levy_logcdfQ!  s*    $""1%%0r2   c                 ^    SnSn[         R                  R                  U5      n[        X2SS9  g )Nrv  gޢاr  r   )r6   r7  r  r   r  s       r0   test_levy_logsfTestLevy.test_levy_logsfW!  s*    %

  #/r2   r8   N)r  r  r  r  r&  r)  r   r  r  r-  r0  r3  r  r8   r2   r0   r$  r$  !  sD    +.	1, [[.JK5K510r2   r$  c                      [        [        R                  R                  S5      SSSS9  [        [        R                  R                  S5      SSSS9  [        [        R                  R                  SS	S
S9SSSS9  g )Ng2g?rc   test_540_567)rg  r
  g2gk?g;B.?gͣh?gHŎ*?rg   g.y?)r   r6   rK  rt   r8   r2   r0   r6  r6  ^!  sk    

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

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

}.-; ' =+ "N<r2   zdocstrings strippedr  c                      [        S[        R                  R                  ;  5        [        S[        R                  R                  ;   5        g )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r	   r6   r  rX  r8   r2   r0   test_regression_ticket_1421r8  j!  s1    (0E0EEFH---.r2   c            	      	   [         R                  " SS9   [        [         R                  " [        R
                  R                  S[         R                  5      5      5        [        [         R                  " [        R
                  R                  S[         R                  5      5      5        [        [         R                  " [        R
                  R                  S[         R                  5      5      5        [        [         R                  " [        R
                  R                  S[         R                  5      5      5        [        [         R                  " [        R
                  R                  S[         R                  5      5      5        [        [         R                  " [        R
                  R                  S[         R                  5      5      5        [        [         R                  " [        R
                  R                  S[         R                  5      5      5        [        [         R                  " [        R
                  R                  S[         R                  5      5      5        [        [         R                  " [        R                  R                  [         R                  S5      5      5        [        [         R                  " [        R                  R                  [         R                  S5      5      5        [        [         R                  " [        R                  R                  [         R                  S5      5      5        [        [         R                  " [        R                  R                  [         R                  S5      5      5        [        [         R                  " [        R                  R!                  [         R                  S5      5      5        [        [         R                  " [        R                  R#                  [         R                  S5      5      5        [        [         R                  " [        R                  R                  [         R                  S5      5      5        [        [         R                  " [        R                  R                  [         R                  S5      5      5        S S S 5        g ! , (       d  f       g = f)Nr  r  r   r   )rV   r  r	   r
  r6   r  r  r)  rt   r  r   rl   r   r   r  r  r^  rj  r8   r2   r0    test_nan_arguments_gh_issue_1362r:  p!  sj   	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   R1S
Sc                     [         R                  R                  S5      n [         R                  " / SQ5      n[        R
                  R                  US   US   US   SU S9n[         R                  " SS	9   [         R                  " [        R
                  R                  US
S95      nS S S 5        [        WUSS9  [         R                  " [        R
                  R                  USSS95      n[        X1SS9  [         R                  " [        R
                  R                  USSS95      n[        X1SS9  [         R                  " [        R
                  R                  USSS95      n[        X1SS9  [         R                  R                  S5      n SnSn[        R                  R                  USSU S9n[         R                  " [        R                  R                  X%S95      n[         R                  " U[         R                  " X%-
  S-  R                  5       5      /5      n[        X6SS9  g ! , (       d  f       GN= f)Ni.  )r  r   r   r   r   rj   rd   r   r  )r
  r   r   rf  r   )r   rh   r  )r   rh   r
  r   r   r   )rV   rW   rX   r   r6   r9  r   r  r   r   rK  r  r   )rY   truerb   r"  rh   r   rO   s          r0   test_frozen_fit_ticket_1536r=  !  s   
))


%C88O$D$q'47DG#CPA	H	%%--++AB+78 
& a0XXemm''#1'=>Fa0XXemm''d':;Fa0XXemm''d';<Fa0
))


%C
CD

sBSs;AXXejjnnQn23Fxxrww!'9'9';<=>H!4) 
&	%s   63H11
I c                      [         R                  R                  S5      n [        R                  R                  SU S9n[        R                  R                  U5      nSn[        X#SS9  g )Ni	 rd   r   )g
ףp=
?gʡE?r   rf  )rV   rW   rX   r6   r  r   r   r   )rY   r   r"  rO   s       r0   test_regression_ticket_1530r?  !  sR    
))


'C
,,

#

6C\\c"FH!4r2   c                      [         R                  R                  S5      n U R                  S5      nS H;  n[        R
                  R                  X-   5      u  p4[        X2SS9  [        USSS9  M=     g )Nr  r
  )r  g   6Arc  r   r  )rV   rW   rI  randnr6   r  r   r   )rY   rb   offsetrh   ri   s        r0   test_gh_pr_4806rC  !  s[    
))


%C		"A'\\%%aj1
#.s- (r2   c                  ~    [        [        R                  " [        R                  R                  SS5      5      5        g )Nrx  r  )r	   rV   r  r6   r  rj  r8   r2   r0   test_poisson_logpmf_ticket_1436rE  !  s$    BKK,,T3789r2   c                  t    SS/n U  H.  u  p[         R                  R                  USS9n[        X25        M0     g)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))
)rc  )r   r  r   r  )r   )gUUUUUU?r  g^cQg333333r  r  N)r6   r  r   )r  r.   
exact_mvskr  s       r0   test_powerlaw_statsrH  !  s>    > ,=?E~~##Av#6!$3 r2   c                  \    [         R                  R                  SS5      n [        U S5        g )Nr   r   r   )r6   r  r   r   r  s    r0   test_powerlaw_edgerK  !  s"    a#ACr2   c                  v   [         R                  R                  SS5      n [        U S5        [         R                  R	                  S/ SQ5      n [        U [
        R                  SS/5        [         R                  R                  S/ SQ5      n [        U [
        R                  S[
        R                  * /5        g )Nr   r   r   )r  rc  r  rc  )r6   r  r   r   rl   rV   r*  rJ  s    r0   test_exponpow_edgerM  !  s    a#AC 	1./ARVVS#&'a!12ARVVS266'*+r2   c                  ^    [         R                  R                  SSS5      n [        U S5        g )Nr   r   rc  )r6   gengammarl   r   rJ  s    r0   test_gengamma_edgerP  !  s$    1a#ACr2   za, c, ref, tol))g    `6Ar   g2j!@r   )r'	  r   ggA@r   )r  r   rL	  r   )rS  r   g #@r   )g    `FAr  gI~mr   )gl$W}Lr  g.I#Ur   c                 R    [        [        R                  R                  X5      X#S9  g r  )r   r6   rO  r>   )r.   r  r  r  s       r0   test_gengamma_extreme_entropyrR  !  s    " ENN**10#@r2   c                      [         R                  R                  SSS5      n U S:X  d   e[         R                  R                  SSS5      nU[        R
                  * :X  d   eg )Nr   r   r   r   )r6   rO  rl   r   rV   r*  )r  r  s     r0   !test_gengamma_endpoint_with_neg_crT  
"  sO    1a$A8O8>>  Ar*DBFF7??r2   c                      [         R                  R                  SSS5      n [        U S5        [         R                  R                  SSS5      n [        U S5        g )Nr  r  rc  g>rc   gqq?)r6   rO  rH  r   rJ  s    r0   test_gengamma_munprV  "  sF    Rb)A:&RR(A6"r2   c                     [         R                  " / SQ5      n [         R                  " SS9   [        R                  " 5          [        R
                  " SS[        5        [        R
                  " SS[        5        [        R                  R                  U 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)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)rV   r   r  r  r  r  r   r  r6   r+  r   )r`  s    r0   test_ksone_fit_freezerX  "  s    
		/
	0A 
X	&$$&##L"
 ##?
 KKOOA ' 
'	&&& 
'	&s$   B=AB,B=,
B:	6B==
Cc            	      H   [         R                  " [        [        SSS5      5      5      * n / SQn[	        [
        R                  " 5       R                  U 5      USS9  [	        [
        R                  " 5       R                  U S-   5      R                  USS9  [
        R                  R                  U S-   5      S	-  R                  n[         R                  " [
        R                  R                  U 5      [
        R                  R                  U 5      -
  5      n[	        X#S	S9  g )
Nr   r  r   )gDB.g8_$g%`OAgjhwHRgWMB@v`g7VY}igۦx\Arg	xg#g/dg3$gegd)gNq{3gيGǓgr4g37'
gfFg?dJgضg2,
gm%gӅJgz;pgɿ{gk2gij<%giVSͶgBR4g
Q/Mr  r   y        +=y        |=r  )rV   r   r  r  r   r6   rK  r  realimagr   r   )rb   rO   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                      [         R                  " / SQ5      n [         R                  " / SQ5      n[        R                  R	                  U 5      n[        X!SS9  g )N)gMb{Gzg{Gztg~jtX)g#]<gOul2;gޢا6g̅7=!r   r   )rV   r   r6   r8  r   r   )rb   rO   r  s      r0   test_levy_l_sfra  P"  sB    
12Axx 1 2H 	AAe,r2   c                      [         R                  " / SQ5      n [        R                  R	                  U 5      n[        R                  R                  U5      n[        X SS9  g )N)g [n<r  r  r  r   )rV   r   r6   r8  r  r   r   )r  rb   r  s      r0   test_levy_l_isfrc  \"  sA    
&'AAAAu%r2   c                     [        [        R                  R                  SSSS5      S5        [        [        R                  R                  SSSS5      S5        [        [        R                  R                  SSSS5      S5        [        [        R                  R	                  S	S
S
S5      S5        [        [        R                  R	                  SS
S
S5      S5        g )Nr  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@r  rd   r  r   )r   r6   r  r  r   r8   r2   r0   test_hypergeom_interval_1802rf  d"  s    ))#vucB!))$sC! ))#vucB! $$T3Q7;$$QS!4a8r2   c                     [         R                  R                  S5      n [         R                  " SSSS9n[	        [
        [        R                  R                  USSSS	9  [	        [
        [        R                  R                  USSS
SS	9  [	        [
        [        R                  R                  USSS
S5        [	        [
        [        R                  R                  USSSSS9  [	        [
        [        R                  R                  SSSSU S9  [	        [
        [        R                  R                  USSSSS9  [	        [
        [        R                  R                  USSSSS9  [	        [
        [        R                  R                  SSSSS9  [	        [
        [        R                  R                  SSSSS9  [	        [
        [        R                  R                  USSSSS9  [        R                  R                  USS5        [        R                  R                  USSS
5        [        R                  R                  SS5        [        R                  R                  SSS
5        [        R                  R                  SSS
S5        [        R                  R                  SSS
SU S9  [        R                  R                  [        R                  R                  SSU S9S5        [        R                  R                  USSS	9  [	        [
        [        R                  R                  USSS
5        [	        [
        [        R                  R                  USSS
S	9  [	        [
        [        R                   R                  USSS	9  [	        [
        [        R"                  R                  USS
SSS	9  [	        [
        [        R"                  R                  USS
SSS5        [	        [
        [        R$                  R                  USS
SSSS	9  [	        [
        [        R$                  R                  USS
SSSSS9	  [        R$                  R                  USS
SSS5        g )Nl   ?wH r`   r  r   numrj   r   rc  rL  r   r   rg   r   )rh   ri   r   rV  r   r  r   r  rb  )rV   rW   rX   rh  r  r+  r6   r  rl   r   rt   r   r>   r   r%  r^  r  r  ry
  )rY   rb   s     r0   test_distribution_too_many_argsrj  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                      [         R                  R                  [        R                  " SSS5      SS5      n [         R                  R                  [        R                  " SSS5      SS5      n[        XSSS9  g )	NrA  r  r  rj   gYZ@rG  r   rx  )r6   ncx2rt   rV   r&  _cdfvecr   r  s     r0   test_ncx2_tails_ticket_955rn  "  sX     	

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

299RS11nEAAt!,r2   c            
         [         R                  " 5          [         R                  " S[        5        [	        [
        R                  R                  S[        R                  " SS5      S5      S5        [
        R                  R                  S[        R                  " SS5      S5      n S S S 5        [        [        R                  " W 5      R                  5       5        [         R                  " 5          [         R                  " S[        5        [	        [
        R                  R                  SSS	5      S5        [        [
        R                  R                  SSS	5      S
5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  r   iT  i^  rj   r   r#  r   re  gsq6)r  r  r  r  r   r6   rl  rl   rV   r&  r   r	   r  r   r   )logvals    r0   test_ncx2_tails_pdfrq  "  s     
	 	 	"g~6UZZ^^Aryyc':A>B""1biiS&91= 
#
 BKK##%& 
	 	 	"g~6UZZ^^E1b115

))%B79KL 
#	" 
#	" 
#	"s   BE-2A2E>-
E;>
Fzmethod, expectedrt   gu%>g	;Q=rl   g<x>gRz\R>r   gʎK$/gԆX1r   gfHu@ge:@c                 \    [        [        R                  U 5      " SSS/SS9n[        X!SS9  g )Nr`   r   r   rc   )r|  r  r   r   )r?  r6   rl  r   )r  rO   r  s      r0   test_ncx2_zero_ncrs  "  s+      UZZ(!QB?FF51r2   c                      [         R                  R                  SSSS9n [         R                  R                  SSS9n[	        XSS9  g )Nrc   r   r   )r  r|  r   )r  r   r   r   )r6   rl  r   rp	  r   )r  rO   s     r0   test_ncx2_zero_nc_rvsru  "  s<     ZZ^^raa^8Fzz~~!~4HF51r2   c                      S[         R                  " SS5      -  n [        [        R                  R                  SSU S9S5        g )Nrc   r   r  r   r  r|  r   )rV   r&  r   r6   rl  rt   )r|  s    r0   test_ncx2_gh12731rx  "  s4    	RYYq"	Bb115r2   c                      [         R                  " / SQ5      n Su  p[        R                  R	                  XUS9n/ SQn[        X4SS9  g )N)gю]	@gj%@gb	y/7@g H@gIZ@gXl@g'/2?8@gݰmА@gU@gy]`'@g@g*\@g48c@)rA  gh ?8@rw  )rc  rc  rc  rc  rc  g?gy[qD?r   r   r   r   r   r   r  r   )rV   r   r6   rl  r   r   )rb   nur^  r   sf_expecteds        r0   test_ncx2_gh8665r|  "  sG    
 " 	#A
 %GB	qC	(B'K
 B%0r2   c            	         Sn Sn[         R                  " [        R                  R	                  SX5      [        R                  R	                  SX5      SS9n[        R                  R                  X U5      n[        R                  R                  X U-   [         R                  " SU -  SU-  -   5      5      n[        X4S	S
9  g )Ni,  i  rG  r  r#  rh  rj   r   r  r   )	rV   rh  r6   rl  r   rl   rK  r  r   )r  r|  rb   ncx2_pdfgauss_approxs        r0   test_ncx2_gh11777r  "  s    
 
B	B
EJJNN5"1JJNN5"1u	>Azz~~aR(H::>>!"Wbgga"fq2vo.FGLH6r2   zx, c, expected))rj   r   g|1q?)rj   rj   g~?)r  r   V<3T1=) 7yQCr   u	lY<)r  g   vHGBg^b!*1=)r  r  gS?c                 Z    [         R                  R                  X5      n[        X2S5        g Nr1  )r6   
foldcauchyr   r   rb   r  rO   r   s       r0   test_foldcauchy_sfr  #  s$     
				Q	"BB%(r2   rp  ))rj   g?)r  r  )r  r  )g6ްPg8R#/c                 Z    [         R                  R                  U 5      n[        X!S5        g r  )r6   r  r   r   )rb   rO   r   s      r0   test_halfcauchy_sfr  #  s$     
				Q	BB%(r2   zp, expected))g?g*wӄZ>)333333?gN9?)r   rc  )r   g8<,O@)r  g:B)gl ׶w/gMb}[Pc                 X    [         R                  R                  U 5      n[        X!5        g rz   )r6   r  r  r   )r  rO   rb   s      r0   test_halfcauchy_isfr  (#  s"     	QAA r2   c                  d    [         R                  " SSS9n [        U R                  S5      S5        g )Nr   r   rb  )r6   r  r   rt   )r  s    r0   test_foldnorm_zeror  4#  s$    		#BAr2   ))rj   r   gwo{?)rA  r   gGd-P/)rc   rL  gof?)r  rL  gOul";c                 Z    [         R                  R                  X5      n[        X2S5        g )Nr  )r6   r  r   r   r  s       r0   test_foldnorm_sfr  H#  s"     
		1	 BB%(r2   c                     [         R                  R                  / SQSS5      n [         R                  R                  SS/SS5      n[        S U 5       5      n[        X 5        [         R                  R                  / SQ5      n [         R                  R                  SS/5      n[        S	 U 5       5      n[        X 5        g )
N)r   r   rc  r   r   rc  c              3   h   #    U  H(  n[         R                  [         R                  U4   v   M*     g 7frz   rV   r\  r)  rI  s     r0   r  -test_stats_shapes_argcheck.<locals>.<genexpr>W#  s!     8Cq"%%	*C   02)rj   r  r   rj   r  c              3   h   #    U  H(  n[         R                  U[         R                  4   v   M*     g 7frz   r  rI  s     r0   r  r  ]#  s!     8Cq"%%266	*Cr  )r6   r3  tupler   r9  )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                       \ rS rSrS rSrg)
_distr_genig#  c                     gNr
  r8   r[   rb   r.   s      r0   _pdf_distr_gen._pdfh#  s    r2   r8   Nr  r  r  r  r  r  r8   r2   r0   r  r  g#  s    r2   r  c                       \ rS rSrS rSrg)_distr2_genil#  c                     SU-  U-   $ r  r8   r  s      r0   _cdf_distr2_gen._cdfm#      Avzr2   r8   N)r  r  r  r  r  r  r8   r2   r0   r  r  l#  s    r2   r  c                        \ rS rSrS rS rSrg)_distr3_geniq#  c                 
    X#-   $ rz   r8   r[   rb   r.   r/   s       r0   r  _distr3_gen._pdfr#  s	    ur2   c                     SU-  U-   $ r  r8   r  s      r0   r  _distr3_gen._cdfu#  s     Avzr2   r8   Nr  r  r  r  r  r  r  r8   r2   r0   r  r  q#  s    r2   r  c                        \ rS rSrS rS rSrg)_distr6_geni{#  c                     X!-  U-   $ rz   r8   r  s       r0   r  _distr6_gen._pdf}#  s    sQwr2   c                     SU-  U-   $ r  r8   r  s       r0   r  _distr6_gen._cdf#  r  r2   r8   Nr  r8   r2   r0   r  r  {#  s    r2   r  c                   z    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rSrg)TestSubclassingExplicitShapesi#  c                 L    [        SSS9n[        UR                  SSS9S5        g )Ndummyr.   r  r!  r   ra  r
  r  r   rl   r[   dummy_distrs     r0   test_correct_shapes1TestSubclassingExplicitShapes.test_correct_shapes#  s%     gc:[__Q!_,b1r2   c                 ^    [        SSS9n[        [        UR                  S40 [	        SS9D6  g )Nr  Ar  r   ra  )r  r  r+  rl   r$  r  s     r0   test_wrong_shapes_11TestSubclassingExplicitShapes.test_wrong_shapes_1#  s'     gc:i!AtayAr2   c                 f    [        SSS9n[        SSSS9n[        [        UR                  S40 UD6  g )Nr  za, b, cr  r   rj   r   ru
  )r  r$  r  r+  rl   )r[   r  r@  s      r0   test_wrong_shapes_21TestSubclassingExplicitShapes.test_wrong_shapes_2#  s1     gi@Q!q!i!;s;r2   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  r
  r  )r$  r  r+  r  r[   r@  s     r0   test_shapes_string0TestSubclassingExplicitShapes.test_shapes_string#  s    +i3s3r2   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  z(!)r  r$  r  SyntaxErrorr  r  s     r0   test_shapes_identifiers_17TestSubclassingExplicitShapes.test_shapes_identifiers_1#  s    .k:55r2   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  4chanr  r  r  s     r0   test_shapes_identifiers_27TestSubclassingExplicitShapes.test_shapes_identifiers_2#      0k:55r2   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  zm(fti)r  r  r  s     r0   test_shapes_identifiers_37TestSubclassingExplicitShapes.test_shapes_identifiers_3#  s    1k:55r2   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  za=2r  r  r  s     r0   "test_shapes_identifiers_nodefaults@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaults#  s    .k:55r2   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  z*argsr  r  r  s     r0   test_shapes_args.TestSubclassingExplicitShapes.test_shapes_args#  r  r2   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  z**kwargsr  r  r  s     r0   test_shapes_kwargs0TestSubclassingExplicitShapes.test_shapes_kwargs#  s    
3k:55r2   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  za, b, c, lambdar  r  r  s     r0   test_shapes_keywords2TestSubclassingExplicitShapes.test_shapes_keywords#  s    (9:k:55r2   c                      " S S[         R                  5      nU" SS9n[        UR                  SSS9[         R                  R                  S5      S-  5        g )Nc                       \ rS rSrS rSrg)FTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_geni#  c                 F    [         R                  R                  U5      U-  $ rz   r6   rK  r  r  s      r0   r  KTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdf#      zzq)A--r2   r8   Nr  r8   r2   r0   	_dist_genr  #      .r2   r  r.   r!  r   rj   ra  r6   r<   r   rl   rK  r[   r  rK   s      r0   test_shapes_signature3TestSubclassingExplicitShapes.test_shapes_signature#  sI    	.++ 	. $TXXcQX')<Q)>?r2   c           	           " S S[         R                  5      nU" SS9n[        [        UR                  S40 [        SSS9D6  g )	Nc                       \ rS rSrS rSrg)STestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_geni#  c                 F    [         R                  R                  U5      U-  $ rz   r  r  s      r0   r  XTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdf#  r  r2   r8   Nr  r8   r2   r0   r  r  #  r  r2   r  r  r  r   r   rj   r  )r6   r<   r  r+  rl   r$  r  s      r0   "test_shapes_signature_inconsistent@TestSubclassingExplicitShapes.test_shapes_signature_inconsistent#  s;    	.++ 	. 'i3A$a.Ar2   c                 t    " S S[         R                  5      nU" SS9n[        UR                  SSS9[         R                  R                  S5      S-  5        [        UR                  SS5      [         R                  R                  S5      S-  5        [        [        UR                  S40 [        SS9D6  g )	Nc                       \ rS rSrS rSrg)?TestSubclassingExplicitShapes.test_star_args.<locals>._dist_geni#  c                 P    US   n[         R                  R                  U5      U-  $ Nr   r  )r[   rb   rA  extra_kwargs       r0   r  DTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdf#  s#    "1gzzq)K77r2   r8   Nr  r8   r2   r0   r  r  #  s    8r2   r  r  r  r   !   r  )xxx)r6   r<   r   rl   rK  r  r+  r$  r  s      r0   test_star_args,TestSubclassingExplicitShapes.test_star_args#  s    	8++ 	8
 .TXXcrX2EJJNN34G4JKTXXc2&

s(;B(>?i3?$2,?r2   c                 >    " S S[         R                  5      nU" SS9n[        UR                  SSSS9[         R                  R                  S5      S-  S-   5        [        UR                  SSS5      [         R                  R                  S5      S-  S-   5        g )	Nc                       \ rS rSrS rSrg)ATestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_geni#  c                 V    US   n[         R                  R                  U5      U-  U-   $ r   r  )r[   rb   rB  rA  r  s        r0   r  FTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf#  s(    "1gzzq)K7&@@r2   r8   Nr  r8   r2   r0   r  r
  #  s    Ar2   r  zoffset, extra_kwargr  r   o   r  )rB  r  r  r  s      r0   test_star_args_2.TestSubclassingExplicitShapes.test_star_args_2#  s    	A++ 	A
  56TXXc#2X>ZZ^^C(+c1	3TXXc3+ZZ^^C(+c1	3r2   c                      " S S[         R                  5      nU" SS9n[        UR                  SSS9[         R                  R                  S5      5        g )Nc                       \ rS rSrS rSrg)BTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_geni#  c                 j    UR                  SS5      n[        R                  R                  U5      U-  $ )Nr  r   )popr6   rK  r  )r[   rb   rA  kwargsr  s        r0   r  GTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf#  s,     %jj:zzq)K77r2   r8   Nr  r8   r2   r0   r  r  #  s    8r2   r  r  r  r   r   r  r  )r[   r  rK   s      r0   test_extra_kwarg.TestSubclassingExplicitShapes.test_extra_kwarg#  sD    	8,, 	8 /TXXaQX/1BCr2   c                      " S S[         R                  5      nU" SS9n[        UR                  S5      [         R                  R                  S5      5        g )Nc                       \ rS rSrS rSrg)ITestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_geni#  c                 @    [         R                  R                  U5      $ rz   )r6   rK  rl   r  s     r0   r  NTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdf#  s    zz~~a((r2   r8   Nr  r8   r2   r0   r  r  #  s    )r2   r   r  r   r  r  s      r0   test_shapes_empty_string6TestSubclassingExplicitShapes.test_shapes_empty_string#  s?    	)++ 	) #TXXc]EJJNN3$78r2   r8   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r  #  s\    2B<
4
6
666666
@B@3D9r2   r  c                       \ rS rSrS rS r\R                  R                  \	SS9S 5       r
\R                  R                  \	SS9S 5       rS rS	 rS
 rS rSrg)TestSubclassingNoShapesi#  c                 J    [        SS9n[        UR                  SSS9S5        g )Nr  r  r   ra  r
  r  r  s     r0   test_only__pdf&TestSubclassingNoShapes.test_only__pdf#  s#     g.[__Q!_,b1r2   c                 J    [        SS9n[        UR                  SSS9S5        g )Nr  r$  r   ra  )r  r   rl   r  s     r0   test_only__cdf&TestSubclassingNoShapes.test_only__cdf$  s#    !w/KOOAO3Q7r2   docstring strippedr  c                     [        SS9n[        UR                  S5        [        UR                  S5        [        R
                  " SUR                  5      n[        [        U5      S:H  5        g )Nr  r$  r   r.   zlogpdf\(x, a, loc=0, scale=1\))	r  r   numargsr!  refindallrX  r	   r"  r[   r  r   s      r0   test_signature_inspection1TestSubclassingNoShapes.test_signature_inspection$  sX     !g.[((!,[''-jj:$,,.CAr2   c                     [        SS9n[        UR                  S5        [        UR                  S5        [        R
                  " SUR                  5      n[        [        U5      S:H  5        g )Nr  r$  rj   r  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	r  r   r,  r!  r-  r.  rX  r	   r"  r/  s      r0   test_signature_inspection_2args7TestSubclassingNoShapes.test_signature_inspection_2args$  sX     "w/[((!,[''0jj=$,,.CAr2   c                 *    [        [        [        SS9  g )Nr  r$  )r  r+  r  rZ   s    r0   0test_signature_inspection_2args_incorrect_shapesHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapes$  s    i7;r2   c                 f     " S S[         R                  5      n[        [        U40 [	        SS9D6  g )Nc                       \ rS rSrSS jrSrg)>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_geni#$  c                     gr  r8   r  s      r0   r  CTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdf$$      r2   r8   N)r
  r  r8   r2   r0   r  r:  #$  s    r2   r  r  r$  r6   r<   r  r+  r$  r[   r  s     r0   test_defaults_raise+TestSubclassingNoShapes.test_defaults_raise!$  *    	++ 	 	iAd.@Ar2   c                 f     " S S[         R                  5      n[        [        U40 [	        SS9D6  g )Nc                       \ rS rSrS rSrg)>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_geni*$  c                     gr  r8   )r[   rb   r.   rA  s       r0   r  CTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdf+$  r=  r2   r8   Nr  r8   r2   r0   r  rE  *$      r2   r  r  r$  r>  r?  s     r0   test_starargs_raise+TestSubclassingNoShapes.test_starargs_raise($  rB  r2   c                 f     " S S[         R                  5      n[        [        U40 [	        SS9D6  g )Nc                       \ rS rSrS rSrg)<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_geni1$  c                     gr  r8   )r[   rb   r.   r  s       r0   r  ATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdf2$  r=  r2   r8   Nr  r8   r2   r0   r  rM  1$  rH  r2   r  r  r$  r>  r?  s     r0   test_kwargs_raise)TestSubclassingNoShapes.test_kwargs_raise/$  rB  r2   r8   N)r  r  r  r  r%  r(  r   r  r	  DOCSTRINGS_STRIPPEDr0  r3  r6  r@  rI  rP  r  r8   r2   r0   r"  r"  #  sy    28
 [[+4HI J [[+4HI J<BBBr2   r"  r*  c                  &   / SQn [         R                   Hy  n[        [         U5      n[        U[         R                  [         R
                  -  5      (       d  ME  U  H.  n[        [        R                  " X2R                  5      S L 5        M0     M{     g )N)z,\s*,z\(\s*,z^\s*:)
r6   rH   r?  rQ  r;   r<   r	   r-  searchrX  )badonesdistnamerK   regexs       r0   ro
  ro
  7$  sc    -GMMuh'dU..1D1DDFF 		%6$>? ! "r2   c                      [        [        R                  R                  [        R
                  SS5      S5        [        [        R                  R                  [        R
                  SS5      S5        g )Nrc   r  r   r  r`   r   )r   r6   r  r   rV   r*  rl  r  r8   r2   r0   test_infinite_inputrY  A$  sB    ((R8!<

37;r2   c                      [         R                  R                  [         R                  R                  SS5      S5      n [	        U S5        g r~  )r6   lomaxr   rt   r   rJ  s    r0   test_lomax_accuracyr\  F$  s/    2A6AAvr2   c                      [         R                  R                  [         R                  R                  SS5      S5      n [	        U S5        g r~  )r6   r  r   rt   r   rJ  s    r0   test_truncexpon_accuracyr^  L$  s7    U--11&!<a@AAvr2   c                      [         R                  R                  [         R                  R                  SS5      S5      n [	        U SSS9  g )Nrg  r   r>  rL  rf  )r6   r<  r  r   r   rJ  s    r0   test_rayleigh_accuracyr`  R$  s5    5>>,,Q2A6A3+r2   c                     [         R                  " SS9 n [         R                  " S5        [        R                  R                  SS5        [        R                  R                  SS5        [        R                  R                  SS5        [        R                  R                  [        R                  * S5        [        U 5      n[        US5        SSS5        g! , (       d  f       g= f)zregression test for gh-6219T)recordalwaysr   r   r   N)r  r  r  r6   r  rt   rl   r   r   rV   r*  r"  r   )r  number_of_warnings_throwns     r0    test_genextreme_give_no_warningsre  X$  s     
	 	 	-h'R#R#R#-$'F!.2 
.	-	-r
  c                  2   [         R                  " [        R                  R                  S[         R                  SS/SS95      n [         R
                  n[         R                  S-  S-  nS[         R                  " S5      -  [        R                  " S	5      -  [         R                  S	-  -  nS
nXX4/n[         R                  /S-  =pg/ SQn[        U S S 2S4   USS9  [        U S S 2S4   U5        [        U S S 2S4   USS9  [        U S S 2S	4   U5        g )Nr   r   r  r  r  rj   r  re  r   r  r   )r   r   r  r  r   r  r   )rV   r   r6   r  r)  euler_gammarm   r  r   zetar   r   )	r   r   r  r  r  ref_0ref_1ref_3ref_2s	            r0   test_moments_gh22400rm  f$  s    
 **U%%++S"&&!T,BF+S
TC >>D
%%(Q,C
?W\\!_,ruuax7DD#EVVHQJEEC1Iu51QTE"C1Iu51QTE"r2   c                  `   Sn [         R                  R                  S5      n[        USU -  S-   SS9  [         R                  R                  S5      n[        XS-   SS9  [         R                  R                  S5      n[	        US5        [         R                  R                  S	S
S9n[        XS-  [
        R                  " S
5      -   S-   SS9  [         R                  R                  S
5      n[        USU -  S-   SS9  [         R                  R                  S5      n[        USU -  S-   SS9  g )Ngox?r  rj   r   r  r   r   rc  r  rc   rb  r   rK  r  r  )r6   r  r>   r   r   rV   r  )rg  r  s     r0   test_genextreme_entropyro  |$  s   $K  &AAq}q(u5  #AAQU3  %AA  R 0AA1}rvvbz1A5EB  $AAr+~)6  %AAr+~)6r2   c                     Sn [         R                  R                  U S5      n[        US5        [         R                  R	                  US5      n[        X 5        Sn [         R                  R                  U S5      n[        US5        [         R                  R	                  US5      n[        X 5        Sn [         R                  R                  U S5      n[        US5        [         R                  R	                  US5      n[        X 5        g )	Nr   r  g'b%4gQ@r  gؗҜ;r   g.l6?)r6   r  r   r   r  )rb   rD   r  s      r0   test_genextreme_sf_isfrq  $  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    Sn [         R                  R                  U SS5      n[        US5        g )Nr  rj   r   gH&8>)r6   r  r   r   )probr  s     r0   test_burr12_ppf_small_argrt  $  s,    D||a+H H45r2   c                      S
S jn [         R                  " / SQ5      n[        R                  R	                  USU S9u  p#n[        USSS9  US:X  d   e[        USSS9  g	)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           	          [        XX#SSS9$ )Nr  )rA  dispxtolftol)r#   )r  x0rA  rw  s       r0   r   &test_invweibull_fit.<locals>.optimizer$  s    D4UKKr2   )r   r@  rj   r  r`  r   r  r   r   r  rc   re  @   c   )r   r   g`?r  r   g [@N)r8   r   )rV   r   r6   r5  r   r   )r   rb   r  rh   ri   s        r0   test_invweibull_fitr~  $  s]    .L 	HIA$$((i(HMAEAxd+!8O8E8$/r2   ))r   r  g7Ըh?)r   r  gz]r>)r   g     "@goBڱ9)r  r  g$=cC;c                 V    [         R                  R                  X5      n[        X2SS9  g r   )r6   r5  r   r   )rb   r  rO   r  s       r0   test_invweibull_sfr  $  s$     ""1(HHU3r2   zp, c, expected)r   r  g9?)geK<r   g@c                 V    [         R                  R                  X5      n[        X2SS9  g r   )r6   r5  r  r   )r  r  rO   r  s       r0   test_invweibull_isfr  $  s$     ##A)HHU3r2   z	df1,df2,x)r   r  rc  rw  r   r  r  r/  r  c                 0   Sn[         R                  R                  X U5      n[         R                  R                  X X5      n[	        XESS9  [         R                  R                  X U5      n[         R                  R                  X X5      n[	        XgSS9  g )Nr   r  r   r  )r6   r)  rt   ry
  r   rl   )df1df2rb   r|  expected_cdfcalculated_cdfr   calculated_pdfs           r0   test_ncf_edge_caser  %  so     
B77;;qs+LYY]]133NLu= 77;;qs+LYY]]133NLt<r2   c                  \    [         R                  R                  SSS5      n [        U SSS9  g )Nrj   r  r   g     `E@r  r   )r6   ry
  r  r   )rS  s    r0   test_ncf_variancer  %  s&     			aAAAu5)r2   c                      [         R                  R                  SSSS5      n Sn[        U[        R
                  " U SS95        g )NrA  r  r  gffffff>@g&4I,)?)decimals)r6   ry
  rt   r   rV   round)	scipy_val	check_vals     r0   test_ncf_cdf_spotcheckr  #%  s6    
 		b!R.IIIrxx	A>?r2   c                     [         R                  " SSS5      n SU S'   Sn[        R                  R                  " U /UQ76 nU  Vs/ s H$  n[        R                  R                  " U/UQ76 PM&     nn[        X$5        g s  snf )Nr   r   r  r  )r`   rj   r   r   r   )rV   rh  r6   ry
  r   r   )rb   parr  xiq0s        r0   test_ncf_ppf_issue_17026r  -%  sl    
Aq#AAaD
C		a#A,-	.Ab%))--
!S
!AB	.A 
/s   +A>c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestHistogrami7%  c                 d   [         R                  R                  S5      U l        [         R                  " / SQSS9n[
        R                  " U5      U l        [
        R                  R                  SSSU R                  S9n[         R                  " US	S9n[
        R                  " U5      U l
        g )
Nl   &' )r   rj   rj   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  rg  r  binsrc  r  r#  r  rJ  )rV   rW   rX   rY   	histogramr6   r=   templaterK  r   norm_template)r[   r  r   norm_histograms       r0   r\   TestHistogram.setup_method8%  s    99((4 LL "@FGI	**95zz~~#Su488~Td4"//?r2   c           	         [         R                  " / SQ5      n[         R                  " / SQ5      n[        U R                  R                  U5      U5        [        U R                  R                  S5      S5        [        U R                  R                  S5      S5        [        U R                  R                  S5      S5        [        U R                  R                  S5      S5        [         R                  " S	S
S5      n[        U R                  R                  U5      [        R                  R                  USSS9SS9  g )Nr   r   rc  r  r   r  r  r  r?  r  rd        @r]  r2  r	  rf  r        !@r>  r  )r   r   r[  r[  {Gz?r  Q?r  {Gz?r  r  r  r  r  r  r  r  r  r   r   r  r  r  r>  r   r  r  rj   rc   rc  r  rg   r`   r   )rV   r   r   r   r  rl   r   rh  r  r6   rK  )r[   r|  
pdf_valuesrb   s       r0   r`  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           	         [         R                  " / SQ5      n[         R                  " / SQ5      n[        U R                  R                  U5      U5        [        U R                  R                  USS 5      USS 5        [         R                  " SSS5      n[        U R                  R                  U R                  R                  U5      5      U5        [         R                  " SSS5      n[        U R                  R                  U R                  R                  U5      5      U5        [         R                  " S	SS
5      n[        U R                  R                  U5      [        R                  R                  USSS9SS9  g )Nr  )r   r   r   r  r[  r  r  
ףp=
?Q?{Gz?r  r   r  (\?RQ?=
ףp=?)\(?re  rc  rc  rj   r   rc  r>  rd   r   r  rc   r  rg   r`   r   )rV   r   r   r   r  rt   r   rh  r  r6   rK  )r[   r|  
cdf_valuesrb   s       r0   r  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                 z   SnU R                   R                  XR                  S9n[        [        R
                  " US:  5      S5        [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US	:*  5      S
U-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      SU-  SS9  [        [        R
                  " US:*  5      S U-  SS9  [        [        R
                  " US!:*  5      S"U-  SS9  [        [        R
                  " US#:*  5      S$U-  SS9  [        [        R
                  " US%:*  5      SU-  SS9  [        [        R
                  " US%:*  5      SU-  SS9  [        [        R
                  " US%:  5      S5        g )&Nr#  r   rc  r   r   r[  r  r   r  r  r  r  r`   r  r  r?  r  r  r  rd  r  ry  r  r   r]  r  r2  r  r	  r  rf  r  r  r  r  re  r>  )r  r   rY   r   rV   r  r   )r[   r_  r{  s      r0   rW  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                     [        S5       HK  n[        U R                  R                  U5      [        R
                  " SS5      R                  U5      SS9  MM     g )Nr   rc  r  ry  r   )r  r   r  rH  r6   rK  r  r  s     r0   r1  TestHistogram.test_munp%  sG    qAD..44Q7!JJsC077:G r2   c                     [        U R                  R                  5       [        R                  R                  SSS9SS9  g )Nrc  r  rg   ry  r   )r   r  r>   r6   rK  rZ   s    r0   r  TestHistogram.test_entropy%  s5    **224

**s#*>T	Kr2   )r  rY   r  N)r  r  r  r  r\   r`  r  rW  r1  r  r  r8   r2   r0   r  r  7%  s%    @ I4I,0,G
Kr2   r  c                     SS// SQp[         R                  " X4SS9n[        R                  R	                  UR                  SS/5      SS/5        UR                  5       S:X  d   e[         R                  " X4SS9n[        R                  R	                  UR                  SS/5      S	5        UR                  5       S
:X  d   eSn[        R                  " [        US9   [         R                  " X45      nUR                  5       S
:X  d   e S S S 5        [         R                  " U / SQ45      nUR                  5       S:X  d   eg ! , (       d  f       N?= f)Nr   )r   r   r"  F)r0
  r   r  r  Tg'^P?g     H@z(Bin widths are not constant. Assuming...r  r  )
r6   r=   rV   rP  r   rl   r  r   rP  r  )countsr  rK   r
  s       r0   test_histogram_non_uniformr  %  s   FLDvne<DJJtxxc
3c6]C;;=Avnd;DJJtxxc
3V<;;=F""" 9G	nG	4!!6.1{{}&&& 
5
 vy12D;;=A 
5	4s   .E
Ec                   h    \ rS rSrS r\R                  R                  SSS/5      S 5       rS r	Sr
g	)
TestLogUniformi%  c                 X   [         R                  R                  S5      n[        R                  " SS5      nUR                  SUS9n[         R                  R                  S5      n[        R                  " SS5      nUR                  SUS9n[        XS5        [         R                  " [         R                  " U5      SS9u  pgSUR                  5       s=::  a  UR                  5       s=::  a  S	::  d   e   e[         R                  " [         R                  " U5      S
-
  5      S::  d   eg )N   0o[ rG  r   r#  r   rc   r  rp  iL  r   )rV   rW   rX   r6   
loguniformr   
reciprocalr   r  log10r  r+  r   r  )r[   rY   r  r   rv2r   rU  r   s           r0   
test_aliasTestLogUniform.test_alias%  s     ii##K0h0ff%cf2ii##K0x1wwEw4",,rxx}26dhhj6DHHJ6$66666vvbiio,-333r2   r  r  r  c                 &   [         R                  R                  S5      n[        R                  R                  SSSUS9n[        R                  R                  X1S9u  pEpgUS:X  d   e[        R                  R                  USUS9u  pEpgUS:X  d   eg )	Nr  r`   r   r   r   r  rj   r  )rV   rW   rX   r6   r  r   r   )r[   r  rY   r   r.   r/   rh   ri   s           r0   test_fit_override TestLogUniform.test_fit_override%  s     ii##K0""33"G ++///Cczz ++//Af/Mczzr2   c                 x   [         R                  R                  S5      nSu  p#[        R                  " X#5      nUR                  SSSS9n[        UR                  UR                  U5      5      U5        UR                  SUS9n[        UR                  UR                  U5      5      U5        S[         R                  " S	S
5      -  nUR                  U5      n[        US S USS  -  S5        X2-
  [         R                  " U5      [         R                  " U5      -
  -  n	[        UR                  5       U	5        g )Nl   eVi
P )gN~hr  r   r   r   rZ  r   r  i8r  r   rc   )rV   rW   rX   r6   r  r  r   rt   r   r   r&  rl   r  r   )
r[   rY   r.   r/   rK   rt   r   rb   rl   r   s
             r0   test_overflowTestLogUniform.test_overflow%  s     ii##$78% kk!QTk*#/5hhDsh3#/5 4%%hhqkCRQR("- q	BFF1I-.		T*r2   r8   N)r  r  r  r  r  r   r  r  r  r  r  r8   r2   r0   r  r  %  s5    4" [[Xt}5
 6
+r2   r  c                      \ rS rSrS r\R                  R                  SSS/SS/SS	//5      S
 5       r\R                  R                  SSS/5      S 5       r	\R                  R                  S/ SQ5      S 5       r
\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ S Q5      S! 5       r\R                  R                  S/ S"Q5      S# 5       rS$rg%)&	TestArgusi%  c                     [         R                  R                  SSSS9n[        [         R                  " S5      R	                  5       UR	                  5       SS9  g )NrJ  rw  E  r   r   rf  )r6   argusr   r   r   r  s     r0   test_argus_rvs_large_chi"TestArgus.test_argus_rvs_large_chi%  s=    KKOOBSsO;EKKO002AFFHaHr2   zchi, random_stater`   r  rb	     r     c                     [         R                  R                  USUS9n[         R                  " USU45      u  pE[	        US:  5        g )Nrw  r   r  ry  r6   r  r   r|  r	   )r[   r  r   rb   r   r  s         r0   rW  TestArgus.test_rvs%  s>     KKOOCcOE||Aw0Dr2   r  r  r  c                     [         R                  R                  USSS9n[         R                  " US 5      u  p4[	        US:  5        g )Nrw  ie r   c                     SSU S-  -
  S-  -
  $ )Nr   rj   r  r8   r   s    r0   rE   .TestArgus.test_rvs_small_chi.<locals>.<lambda>%  s    a!Q$h#->)>r2   ry  r  )r[   r  r  r   r  s        r0   test_rvs_small_chiTestArgus.test_rvs_small_chi%  s;    
 KKOOCcO?||A>?Dr2   zchi, expected_mean))r   g щi?)rc   g.憃?)r  g\paP?)r  g	?)r}  g,6?c                 T    [         R                  R                  USS9n[        X2SS9  g )Nr   rb  r   r   )r6   r  r   r   )r[   r  expected_meanr  s       r0   r	  TestArgus.test_mean%  s'     KKS*u5r2   zchi, expected_var, rtol))r   gLH'B?r   )rc   go$?r  )r  g
=>r  )r  g2W>r  )r}  gb~P>r  c                 T    [         R                  R                  USS9n[        XBUS9  g )Nr   rb  r   )r6   r  r  r   )r[   r  expected_varr   rS  s        r0   r  TestArgus.test_var
&  s$     KKOOCqO)d3r2   zchi, expected, rtol))r   gwM?r  )r   gj?r  )r`   gHEA`!?r  )r   gcف>r   )rG  gF=r  )r  g߹Q#B=r  )r  g0ޟ<r  )r  g*W%:r   c                 *    [        [        U5      X#S9  g r  )r   r!   )r[   r  rO   r   s       r0   test_argus_phi_small_chi"TestArgus.test_argus_phi_small_chi&  s     	
3=r2   zchi, expected))r   )g-\/?g+p7c?g5Ϧ\?)r  )g
f?gi{?ٸ?gZ@7?)r`   )gB	?g]?gR{?)r   )glͅw?g,?g[Z=?)rG  )gz,?g]?gѪ1?)r  )g8<?gE-?gI?)r  )g~7?g7B.?g9?)r  )g;?g9B.?g}5?c                     [         R                  " / SQ5      n[        [        R                  R                  X15      USS9  g )Nr`   r   r   r   r   )rV   r   r   r6   r  rl   r[   r  rO   rb   s       r0   test_pdf_small_chiTestArgus.test_pdf_small_chi"&  +     HH_%/Fr2   ))r   )gQ߹?e?grJ,?g򺗄?)r  )gΎd?g?gh?)r`   )g|
o?gvb?g+@?)r   )g̈́On?ge?gC|[3?)rG  )g!?m?g{jiH?gu53?)r  )g~m?g0-.?g3?)r  )g~m?g7;B.?gŗ3?)r  )g~m?g9B.?gŗ3?c                     [         R                  " / SQ5      n[        [        R                  R                  X15      USS9  g )Nr  r  r   )rV   r   r   r6   r  r   r  s       r0   test_sf_small_chiTestArgus.test_sf_small_chi1&  s+     HH_%q.uEr2   zx, chi, expected))P?r  g;=)r  r  g[$7>)r  r  g=~L]=)r  r  gD,G
'=c                 V    [         R                  R                  X5      n[        XCSS9  g r  )r6   r  r   r   )r[   rb   r  rO   r   s        r0   test_sf_near_1TestArgus.test_sf_near_1@&  s      [[^^A#51r2   ))r   )g+&?gk?gμm/?)r  )g?CL\f?g^N?g]AͭR?)r`   )ga>$?g;Lf?gaW?)r   )gx?g 43n?gwY?)rG  )go7🤎?g
+-oGn?gIQ9Y?)r  )gT?gGn?g@̋Y?)r  )gU?g{Gn?giG͋Y?)r  )gDU?g {Gn?gH͋Y?c                     [         R                  " / SQ5      n[        [        R                  R                  X15      USS9  g )Nr  r  r   )rV   r   r   r6   r  rt   r  s       r0   test_cdf_small_chiTestArgus.test_cdf_small_chiK&  r  r2   ))r   )gQ)?g6{?r  )gB`"۹?)g?g8%?r  )r`   )g388?gV%?r   )r   )g*j?gRS%?r   )rG  )g!|?gZ%?r   )r  )gy[|?gG%?r   )r  )g"3|?gW%?r   )r  )g!3|?gW%?r   c                 T    [         R                  R                  USS9n[        XBUS9  g )NrV  r  r   )r6   r  r   )r[   r  rO   r   rV  s        r0   test_stats_small_chiTestArgus.test_stats_small_chiZ&  s'     kkT2D1r2   r8   N)r  r  r  r  r  r   r  r  rW  r  r	  r  r  r  r  r  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                      \ rS rSrS rS rS rS rS r\	R                  R                  S/ SQ5      S	 5       r\	R                  R                  S/ S
Q5      S 5       rS r\	R                  R                  S/ SQ5      S 5       r\	R                  R!                  SS9\	R                  R                  S/ SQ5      \	R                  R                  S/ SQ5      \	R                  R                  S/ SQ5      S 5       5       5       5       r\	R                  R                  S/ SQ5      \	R                  R                  S/ SQ5      S 5       5       rSrg)TestNakagamiii&  c                 L    [         R                  R                  S5      U l        g )Nl   i{ rU   rZ   s    r0   r\   TestNakagami.setup_methodj&  r^   r2   c                 b    SnSn[         R                  R                  X!5      n[        US5        g )Nr  r  gM+)r6   nakagamir   r   )r[   rz  rb   r  s       r0   r  TestNakagami.test_logpdfm&  s-     ~~$$Q+12r2   c                     SnSn[         R                  R                  X!5      n[        USSS9  [         R                  R	                  X15      n[        XBSS9  g )Nr  rd  g"S+:r   r   )r6   r  r   r   r  )r[   rz  rz  r   r  s        r0   ry  TestNakagami.test_sf_isf~&  sM     ^^r&1>^^'U+r2   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Nr  r   gUiּr  r   )r6   r  r  r   )r[   rb   rz  r  r  s        r0   r  TestNakagami.test_logcdf&  s/    %&&q-%0r2   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Nry  re  gD&`Ur  r   )r6   r  r  r   )r[   rb   rz  r  r  s        r0   r  TestNakagami.test_logsf&  s/    %$$Q+/r2   zm, ref))r   g|Bd븿)r   r  )rc   g/ۿc                 T    [        [        R                  R                  U5      USS9  g )Ng^~z=r   r   r6   r  r>   r[   r  r  s      r0   r  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    [        [        R                  R                  U5      U5        g rz   r  r	  s      r0   test_extreme_nuTestNakagami.test_extreme_nu&  s    
 	..q137r2   c                     [         R                  " [        R                  R	                  S5      5      (       d   e[         R                  " [        R                  R	                  S5      5      (       d   eg )Nr  r  )rV   r  r6   r  _entropyrZ   s    r0   test_entropy_overflow"TestNakagami.test_entropy_overflow&  sJ    {{5>>2259::::{{5>>226:;;;;r2   znu, ref))r  g2H?)r  g:U?)r  g>c                 T    [        [        R                  R                  U5      USS9  g r  )r   r6   r  r   )r[   rz  r  s      r0   r	  TestNakagami.test_mean&  s     	++B/5Ar2   z+Fit of nakagami not reliable, see gh-10908.r  rz  )r/	  r  r  rh   )r   rc   r  ri   )r  r   rA  c                 r  ^
^ Sm
[         R                  R                  T
XX0R                  S9m[         R                  R	                  T5      u  pEn[        XASS9  [        XRSS9  [        XcSS9  U4S jnU
U4S jnU
U4S jn	[        U" XEU5      SS	S
9  [        U" XEU5      SS	S
9  [        U	" XEU5      SS	S
9  g )Nrd   r   rz  rh   ri   r   r  r   c                    > SU -  S-   [         R                  " STU-
  -  5      -  SU -  US-  -  [         R                  " TU-
  5      -  -   $ )Nr  r   rj   rV   r  )rz  rh   ri   r  s      r0   	dlogl_dnu(TestNakagami.test_fit.<locals>.dlogl_dnu&  sP    UQY"&&GcM):";;d5!8mbffWs]&;;< =r2   c                    > TS[         R                  " U 5      -   [        SU 5      -
  -  S[         R                  " [         R                  " TU-
  U-  5      5      -  -   [         R                  " TU-
  U-  S-  5      -
  $ )Nr   r   rj   )rV   r  r   r  rz  rh   ri   r_  r  s      r0   
dlogl_dloc)TestNakagami.test_fit.<locals>.dlogl_dloc&  sp    RVVBZ)Ar*::;rvvw}&=>??@ffw}59:; <r2   c                 l   > ST-  U -  U-  SU -  US-  -  [         R                  " TU-
  S-  5      -  -   $ )Nr  rj   r   r  r  s      r0   dlogl_dscale+TestNakagami.test_fit.<locals>.dlogl_dscale&  sF    !GbL5("fuz)BFFGcMa3G,HHI Jr2   r   rG  r   )r6   r  r   rY   r   r   )r[   rz  rh   ri   nu_estloc_est	scale_estr  r  r  r_  r  s             @@r0   r&  TestNakagami.test_fit&  s     ..$$!+0xx % I%*^^%7%7%@"-3/	s3	=	<
	J 		&9=qtL
6I>MVi@!$Or2   c                 d   SnSn[         R                  R                  XCUX R                  S9n[         R                  R	                  XSS9u  pgn[
        R                  " U5      n	[
        R                  " [
        R                  " XW-
  S-  5      5      n
[        XcSS9  [        XySS9  [        XSS9  g )Nr   rd   r  r~  rj   rZ  r   )
r6   r  r   rY   r   rV   r  r  r   r   )r[   rh   ri   rz  r  r  r!  r"  r#  loc_theo
scale_theos              r0   test_fit_nuTestNakagami.test_fit_nu&  s    
 ..$$!+0xx % I%*^^%7%7%7%G" 66'?WWRWWg&7A%=>?
.5	D9r2   r  N)r  r  r  r  r\   r  ry  r  r  r   r  r  r  r  r  r	  rc
  r&  r(  r  r8   r2   r0   r  r  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   r  c                   `   \ rS rSrS rS rS rS r\R                  R                  SSS/5      \R                  R                  S	S
S\R                  -  \R                  * S\R                  S\R                  -  S/5      \R                  R                  S/ SQ5      S 5       5       5       rSrg)TestWrapCauchyi&  c                 L    [         R                  R                  S5      U l        g )Nl   3R" rU   rZ   s    r0   r\   TestWrapCauchy.setup_method&  r^   r2   c                    [         R                  " SS/SS//5      n[         R                  " S/S//5      n[        R                  R	                  X!5      nUR
                  S:X  d   e[         R                  " X!45       VVs/ s H$  u  pE[        R                  R	                  XE5      PM&     nnn[        UR                  5       USS	9  g s  snnf )
NQ?r  r   r   rc  r?  r  r   r   )	rV   r   r6   
wrapcauchyrt   rO  nditerr   rg  )r[   r  rb   r  r  rk  scalar_valuess          r0   test_cdf_shape_broadcasting*TestWrapCauchy.test_cdf_shape_broadcasting'  s     HHtTlS$K01HHsecU^$  &ww&   )+A6):<):Xb ))--b5): 	 <	=u=<s   +C
c                 v    [         R                  R                  [        R                  S5      n[        USSS9  g )Nr/  r   r  r   )r6   r0  rt   rV   rm   r   r  s     r0   test_cdf_centerTestWrapCauchy.test_cdf_center'  s*      -3U+r2   c                    SnSnSn[         R                  R                  X/U5      nSU-   SU-
  -  n[        US   [        R
                  " U[        R                  " US-  5      -  5      [        R                  -  5        [        US   S[        R
                  " U[        R                  " [        R                  US-  -
  5      -  5      [        R                  -  -
  5        g )Nrc  r?  r   r   r   rj   )r6   r0  rt   r   rV   arctantanrm   )r[   r  r  r  r  crs         r0   rk  TestWrapCauchy.test_cdf'  s      "1-!ea!e_!bii266"Q$<8>?!a"))Brvvbeebdl/C,C"DRUU"JJKr2   r  r  r`   rh   r  r  r   rj   rd   ri   )r  r   r  c                     [         R                  R                  XUSU R                  S9n[        R
                  " US:  5      (       d   e[        R
                  " US[        R                  -  :*  5      (       d   eg )Nr   )r  rh   ri   r   r   r   rj   )r6   r0  r   rY   rV   r   rm   )r[   r  rh   ri   rb   s        r0   test_rvs_lie_on_circle%TestWrapCauchy.test_rvs_lie_on_circle'  sd    
   1U&* ! Cvva1f~~~vva1ruu9n%%%%r2   r  N)r  r  r  r  r\   r3  r6  rk  r   r  r  rV   rm   r>  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                       " S S[         R                  5      n U " SS9n[        R                  R	                  S5      n[        [        SS9   UR                  US9  S S S 5        g ! , (       d  f       g = f)	Nc                       \ rS rSrS rSrg)/test_rvs_no_size_error.<locals>.rvs_no_size_geni('  c                     gr   r8   rZ   s    r0   _rvs4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvs)'  s    r2   r8   N)r  r  r  r  rD  r  r8   r2   r0   rvs_no_size_genrB  ('  s    	r2   rF  rvs_no_sizer$  i_Oz_rvs\(\) got (an|\d) unexpectedr  r   )r6   r<   rV   rW   rX   r  r+  r   )rF  rG  rY   s      r0   test_rvs_no_size_errorrH  &'  sZ    %--  "}5K
))



+C	y(J	KS) 
L	K	Ks   A&&
A4zdistname, argsc                 ~   U [         ;   a  [        R                  " SU  S35        [        [        U 5      n[        U[        R                  5      (       a  [        U5      S:w  aE  UR                  " U6 u  p4[        U[        R                  5        [        U[        R                  5        Su  pVUR                  " / UQUPUP76 u  px[        U[        R                  5        [        U[        R                  5        g UR                  " U6 u  p[        U	[        R                  5        [        U
[        R                  5        g )Nz6skipping test for the support method for distribution .r   r  )$skip_test_support_gh13294_regressionr   r   r?  r6   rQ  r<   r"  r  r   rV   r)  )rV  rA  rK   a0b0r	  r	  a1b1r.   r/   s              r0   test_support_gh13294_regressionrP  2'  s    77 $$,:Q0 	15(#D$++,,t9>\\4(FBRVV$RVV$
 2t2T262R R ||T"QQr2   c                     [         R                  R                  / SQ/ SQ5      u  p[        R                  " [        R
                  * [        R
                  * [        R
                  * [        R                  /5      n[        R                  " [        R
                  [        R
                  [        R
                  [        R                  /5      n[        X5        [        X5        U R                  UR                  :X  d   eUR                  UR                  :X  d   e[         R                  R                  / / 5      u  pE[        R                  " / 5      [        R                  " / 5      pv[        XF5        [        XW5        UR                  UR                  :X  d   eUR                  UR                  :X  d   e[         R                  R                  / SQS/5      u  p[        R                  " S[        R                  /-  5      n
[        R                  " S[        R                  /-  5      n[        X5        [        X5        UR                  U
R                  :X  d   eU	R                  UR                  :X  d   eg )N)r   r   r   r   )r   r   r   r   r   r   )	r6   rK  r  rV   r   r*  r)  r   rO  )rL  rM  ex_a0ex_b0rN  rO  ex_a1ex_b1r  r
  ex_a2ex_b2s               r0   ,test_support_broadcasting_gh13294_regressionrX  M'  s   ZZm<FBHHrvvgw89EHHbffbffbffbff56E88u{{"""88u{{"""ZZB'FB88B<"588u{{"""88u{{"""ZZrd3FBHHQxZ EHHQxZ E88u{{"""88u{{"""r2   c                  6   SS/n S/S/S//n[        [        R                  R                  X5      SS/SS/SS//5        [        R
                  " S5      n [        R
                  " S5      n[        R                  R                  X5      R                  S:X  d   eg )	Nr   rc  r   r  r?  r>  )r   r	  )r   r6   rK  r  rV   rf  rO  rg   s     r0   *test_stats_broadcasting_gh14953_regressionrZ  f'  s    r(CTB4"E+r2hR2r(-KL
((5/CHHVE::>>#%++v555r2   )gn!	g:I"<)gQ	@gE?c                     [        [        R                  R                  U 5      U5        [        [        R                  R	                  U * 5      U5        g rz   )r   r6   cosinert   r   )rb   rO   s     r0   test_cosine_cdf_sfr]  t'  s6     ELL$$Q'2ELLOOQB'2r2   ))r  gkM6O)rN  g0ӭ!	)r  g;'u(@c                     [        [        R                  R                  U 5      U5        [        [        R                  R	                  U 5      U* 5        g rz   )r   r6   r\  r   r  )r  rO   s     r0   test_cosine_ppf_isfr_  |'  s8    
 ELL$$Q'2ELL$$Q'(3r2   c                      [         R                  R                  [        R                  * [        R                  /5      n [        U S5        g )NgrB)r6   r\  r   rV   rm   r
   )r  s    r0   test_cosine_logpdf_endpointsra  '  s1    <</D d./r2   c                  N   [          V Vs1 s H  u  p[        U [        5      (       d  M  U iM      nn n[         V Vs1 s H  u  pU iM	     nn nX#:X  d   e[         V Vs1 s H  u  pU iM	     nn n[
         V Vs1 s H  u  pU iM	     nn nXE:X  d   eg s  snn f s  snn f s  snn f s  snn f rz   )r   rQ  rA   r   r   r   )r  r   discrete_distnamesinvdiscrete_distnamescont_distnamesinvcont_distnamess         r0   test_distr_params_listsrg  '  s     /; 4l74'c2 l 41@AgdTA666*23(wtd(N3-89['$[9...4A 49s   BBBB6B!c                      [         R                  R                  SSS9  [         R                  R                  SSS9S:X  d   e[         R                  R	                  SS5      S:X  d   eg )Nr   r_   rc  r   )r  r.   r  )r6   r  _statsr  rH  r8   r2   r0   test_moment_order_4rj  '  s`     
NNAs+ >>  qA .#555 >>1%,,,r2   c                      \ rS rSr\R
                  S 5       r\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ SQ5      S 5       r
\R                  R                  \R                  R                  S	\R                  " S
S\R                  R                  S9\R                  " SS\R                  R                  S9\R                  " SS\R                  R                  S9/5      S 5       5       rSrg)TestRelativisticBWi'  c                     [         R                  " [        [        5      R                  S-  5      n[         R
                  R                  UR                  SS9nU$ )zSample 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	  r*  s     r0   ROOT_pdf_sample_data'TestRelativisticBW.ROOT_pdf_sample_data'  sL     wwN!!;<
 vv  /@ Ar2   zrho,gamma,rtol))qVEB@gj+@r  )FC@Gz @r  )ND@_LU?r|  c           	          UUS   U:H  US   U:H  -     nUS   US   pv[        U[        R                  R                  XbUS9US9  g )Nrhor  rb   rl   rb  r   )r   r6   rel_breitwignerrl   )r[   rn  rw  r  r   r   rb   rl   s           r0   test_pdf_against_ROOT(TestRelativisticBW.test_pdf_against_ROOT'  sc     $!%(C/#G,57
 cDK3&&**1*?d	
r2   zrho, Gamma, rtol))rp  rq  r|  )rr  rs  r|  )rt  ru  g&.>c                     S n[         R                  " SSS5      n[        R                  R	                  XQUS9n[        R                  R                  XaUS9nU" XaU-  U5      n[        XxUS9  g )Nc                 $   [         R                  " US-  US-  US-  -   -  5      nS[         R                  " S5      -  U-  U-  U-  [         R                  [         R                  " US-  U-   5      -  -  nX@S-  US-  -
  S-  US-  US-  -  -   -  $ r  )rV   r  rm   )Er  Gammar  r_   s        r0   rl   FTestRelativisticBW.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   ry  r  rc   rb  r   )rV   rh  r6   rx  r   rl   r   )	r[   rw  r~  r   rl   r  rb   r   r  s	            r0   &test_pdf_against_simple_implementation9TestRelativisticBW.test_pdf_against_simple_implementation'  sk    	: KKdB'!!%%aE%:##''e'<!Y&t,r2   z	rho,gammarp  rq  r	  rr  rs  rt  ru  c                 |   Sn[         R                  R                  U5      n[        R                  R                  XSUS9n[        R                  R                  USS9n[        US   US   4X4SS9  US	   S:X  d   e[        R                  R                  USUS
9n[        US   USS9  US	   US   4SU4:X  d   eg)z`Tests fit for cases where floc is set.

`rel_breitwigner` has special handling for these cases.
l   s;
rl# r   rg  r   r   rj   r  r   r   r  r   N)rV   rW   rX   r6   rx  r   r   r   )r[   rw  r  r   rY   r   r   s          r0   test_fit_floc TestRelativisticBW.test_fit_floc'  s    & #ii##D)$$((4c ) 
 ##''1'5QQ(3,TB1v{{##''1U'CA$/AAAu:---r2   r8   N)r  r  r  r  r   rc  rn  r  r  ry  r  r	  r,  r
  r  r  r8   r2   r0   rl  rl  '  s   ^^ $ [[ 


 [[/ 2 -- [[[[LL"F&++2B2B LL!50A0A LL &0A0A

. .r2   rl  c                   \    \ rS rSr\R
                  R                  SSS/5      S 5       rSrg)TestJohnsonSUi(  rL  )r`  rB  r  r  g={?g?5mV>gn?g\}\1@)g`fo@g$ں_@r   r   gvUgN<fj?gwCg~l
@c                 d    [         R                  R                   " US S SS06n[        X!SS  SS9  g )Nr   r  r  r  r   )r6   r  r   )r[   rL  r   s      r0   test_moment_gh18071!TestJohnsonSU.test_moment_gh18071	(  s3     oo##T"1X>v>!"XE2r2   r8   N)	r  r  r  r  r   r  r  r  r  r8   r2   r0   r  r  (  s9    [[VOJ&K L
3L
3r2   r  c                   .   \ rS rSrS rS r\R                  R                  SSS/5      \R                  R                  SSS/5      \R                  R                  SSS/5      \R                  R                  S	SS/5      S
 5       5       5       5       r	Sr
g)TestTruncParetoi(  c                 0   Su  p[         R                  " SS5      n[        R                  " X5      R	                  U5      n[        R
                  " U5      R	                  U5      [        R
                  " U5      R                  U5      -  n[        XE5        g )N)?333333@r  r  )rV   rh  r6   truncparetorl   rj  rt   r   )r[   r/   r  rb   r   r  s         r0   r`  TestTruncPareto.test_pdf(  sl    KKS!%))!,ll1o!!!$u||A':':1'==!r2   c           
      l   Su  pn[         R                  " X#5      nXU-  X!-  -
  -  nXTUS-
  -  -  nU* nX2-  nUn	Sn
[        R                  " XxX5      n[	        UR                  U5      U5        [	        UR                  U5      [         R                  " UR                  U5      5      5        [	        UR                  USS  5      [         R                  " UR                  USS  5      5      5        [	        UR                  US S 5      [         R                  " UR                  US S 5      5      5        g )N)r   r   r   r   r   r   )rV   rh  r6   r  r   rl   r   r  r  rt   r  r   )r[   r.   xminxmaxrb   Cr  r/   r  ri   rh   r.  s               r0   test_pdf_negative!TestTruncPareto.test_pdf_negative!(  s      KK# TY&'A, BKaC/a#&RVVAEE!H%5612ae)=>#2QsV)=>r2   r   TFr  rs  r  c                    [         R                  R                  S5      nSu  pgp[        R                  " XgXS9n
U
R                  SUS9n0 nU(       a  XS'   U(       a  XS'   U(       a  XlS'   U(       a  X|S	'   U(       a[  U(       aT  U(       aM  U(       aF  S
n[        R                  " [        US9   [        R                  R                  " U40 UD6  S S S 5        g [        [        R                  U40 UD6  g ! , (       d  f       g = f)Nl   Z#Lm )r  r  r   r  rg   rw  r   r   r   r   r  r  r  )rV   rW   rX   r6   r  r   r   r   r'  r   r   )r[   r   r  rs  r  rY   r/   r  rh   ri   rK   r   r   r
  s                 r0   r&  TestTruncPareto.test_fit8(  s     ii##$78+c  3<xxSsx3L"NJJyUuKG|7;!!%%d3d3 <; *%*;*;TJTJ <;s   /"C66
Dr8   N)r  r  r  r  r`  r  r   r  r  r&  r  r8   r2   r0   r  r  (  s    "?. [[Yu6[[[4-8[[WtUm4[[WtUm4K 5 5 9 7Kr2   r  c                       \ rS rSrS rSrg)
TestKappa3iU(  c                     S[         R                  R                  SS5      -
  n[         R                  R                  SS5      n[	        X!5        g )Nr   r   g     j@)r6   kappa3rt   r   r   )r[   sf0r  s      r0   r  TestKappa3.test_sfV(  s;     %,,""3,,llooc3'!r2   r8   N)r  r  r  r  r  r  r8   r2   r0   r  r  U(  s    "r2   r  c                       \ rS rSr\R
                  " SS5      r\R                  " S5      r\R                  " S5      r	S r
S rS rS rS	 rS
 rS rS rS rSrg)TestIrwinHalli_(  r   r   rc   c                 N    [        U R                  R                  S5      S5        g )Nr  )r   g?r   gQ)r   ih10r6   rZ   s    r0   test_stats_ih10TestIrwinHall.test_stats_ih10d(  s     	TYY__V46JKr2   c                     / SQn[        [        U5      5       Vs/ s H   o R                  R                  US-   5      PM"     nn[	        X15        U R                  R                  S5      nSn[	        XE5        g s  snf )N)	r   gUUUUU9@g     0a@i  gx@gn۶mˠ@g    :PAg8)Ag   SAr   rJ  g2⍚H)r  r"  r  r  r   )r[   rU  r  r  m50	m50_exacts         r0   test_moments_ih10TestIrwinHall.test_moments_ih10j(  sj    - 38D	2BC2BQ99##AaC(2BCW+iir"H	S, Ds   'A8c                     [         R                  " SSS5      nU R                  R                  U5      nU R                  R                  U5      n[        X2SS9  g Nr   r   rd   rc   maxulp)rV   rh  unifrl   ih1r   )r[   ptspdf_unifpdf_ih1s       r0   test_pdf_ih1_unifTestIrwinHall.test_pdf_ih1_unifx(  sD     kk!Q$99==%((,,s#Wr:r2   c                     [         R                  " S5      nSn[        R                  " SSU5      n[        R                  " SSU5      nSXBS-   S-  S  -
  XBS-   S-  S & UR	                  U5      n[        XTSS9  g )Nrj   ra   r   r   rc   r  )r6   rz
  rV   rh  rl   r   )r[   ih2nptsr  rO   pdf_ih2s         r0   test_pdf_ih2_triangle#TestIrwinHall.test_pdf_ih2_triangle(  sv    ooa kk!Q%;;q!T*%&!8/2B)C%C(q!"''#,Wr:r2   c                     [         R                  " SSS5      nU R                  R                  U5      nU R                  R                  U5      n[        X2SS9  g r  )rV   rh  r  rt   r  r   )r[   r  cdf_unifcdf_ih1s       r0   test_cdf_ih1_unifTestIrwinHall.test_cdf_ih1_unif(  sB    kk!Q$99==%((,,s#Wr:r2   c                     [         R                  " SS5      n[        R                  " U5      nUR	                  US-  5      n[         R
                  " S[        U5      5      n[        X4SS9  g )Nr   rc   rj   r   r  )rV   r&  r6   rz
  rt   r  r"  r   )r[   r  ihih_cdfexacts        r0   rk  TestIrwinHall.test_cdf(  sO    IIa__QA		#s1v&V26r2   c                    / SQn[        U R                  R                  [        R                  " S5      5      USS9  [        U R                  R                  S5      SSS9  Sn[        U R                  R                  S5      USS9  g )	N)r   g\xO~>g-P2?g8ʝi?gg{Ȇ?r   g&M?g׈Y?gB?gDl?r   r  rc   r  r`   g+|<rc  g#@)r   r  rt   rV   r&  ro  s      r0   test_cdf_ih10_exact!TestIrwinHall.test_cdf_ih10_exact(  sd    ( 	TYY]]299R=94KTYY]]402EbQ1TYY]]513rBr2   c                     / SQnUS/US S S2   -   -  n[        U R                  R                  [        R                  " S5      5      USS9  g )N)r   g4V>gP3NV?g*8f?gNgX?gjS?r   r  rc   r  )r   r  rl   rV   r&  r0  s     r0   test_pdf_ih10_exact!TestIrwinHall.test_pdf_ih10_exact(  sD     J$tt*,,TYY]]299R=94Kr2   c           	      "   [        U R                  R                  [        R                  " S5      5      SU R                  R                  [        R                  " S5      5      -
  5        Sn[        U R                  R                  S5      USS9  g )Nr  r   rc  r`   rc   r  )r   r  r   rV   r&  rt   r   )r[   r  s     r0   test_sf_ih10_exact TestIrwinHall.test_sf_ih10_exact(  s\    		RYYr]3QryyQS}9U5UV 2TYY\\$/R@r2   r8   N)r  r  r  r  r6   r  r  rz
  r  r  r  r  r  r  r  rk  r  r  r  r  r8   r2   r0   r  r  _(  s_    ==AD
//!
C??2DL-
;;;7C LAr2   r  c                       \ rS rSrS rSrg)TestDParetoLognormi(  c                     Su  pp4n[         R                  " X#XE5      n[        R                  R	                  UR                  U5      S5        [        R                  R	                  UR                  U5      S5        g )N)rB  r   r  r  rj   g6Z?g@#
?)r6   dpareto_lognormrV   rP  r   rl   rt   )r[   rb   r  rD   r.   r/   rK   s          r0   test_against_R!TestDParetoLognorm.test_against_R(  s[     ,aA$$Q10


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


""488A;0CDr2   r8   N)r  r  r  r  r  r  r8   r2   r0   r  r  (  s    Er2   r  rL  ))r  NNNN)r  NNNN)r9  NNNN)r[  NNNN)rj  NNNNc                    U u  pp4n[         R                  " S5      nU=(       d    SnU=(       d    SnU=(       d    SnU=(       d    Sn[        [        U5      n[	        [
        5      U   nU" U6 n	[         R                  " X&5      n
U	R                  U	R                  U
5      5      n[        XXES9  S[         R                  " X6S5      -
  n
U	R                  U	R                  U
5      5      n[        XXES9  g )	Nr   iir   r  r  r   rA  )
rV   r  r?  r6   r$  r   r  r   r  r   )rL  rV  lp1lp2r   r   lpmrK   r"  dist_frozenr  r   s               r0   test_sf_isf_overridesr  (  s     &*"H3d
((3-C
+C
*C91D=5D5(#D(^H%F-K ++c
C
..-
.CC43 bkk#B'
'C
..-
.CC43r2   rz   )NF(  rX  r  r-  r  r
  rP
  pathlibr   r  r  r
  numpy.testingr   r   r   r   r   r	   r
   r   r   r   r  numpyrV   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optimizerR  r
  r	  rK  r1   r9   rP   rR   r   r/  r  r  rB  rD  rn  r  r  r  r  r  r  rc  rs  r  r  r  r!  rM  rV  rq  r|  r  r  r  r  r  r  r  ro  r  r  r  r   r  r@  rS  rg  r  r  r  r  r'  rY  rf  rw  r  r  r  r  r  r  r  r'  rE  rw  r  r  r  rm   r)  r  r+  r@  rQ  rZ  r  r  r  r  r  r  r	  r7	  rV	  rX	  rm	  r	  r	  r	  re
  rl
  rv
  rx
  r
  r
  rp  r  r  r  r  r  r  r  r  r  rD  rQ  rz  r  r  r  r  r  r  r$  r6  r	  r8  r:  r=  r?  rC  rE  rH  rK  rM  rP  rR  rT  rV  rX  r^  ra  rc  rf  rj  rn  rq  rs  ru  rx  r|  r  r  r  r  r  r  r  r<   r  r  r  r  r  r"  ro
  rY  r\  r^  r`  re  rm  ro  rq  rt  r~  r  r  r  r  r  r  r  r  r  r  r  r+  rH  rP  rX  rZ  r]  r_  ra  rg  rj  rl  r  r  r  r  r  r  r8   r2   r0   <module>r     s    	 
    	  D D D  *  " 4  /3 3  8 (   0 0 ; > C = =  ii((1,  ||x'Mh.>.>.@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 2771ag;		
	bgga255k"	"	
	1RUU7$	$		AbeeG%	%		BGGAqwK(	(	* + 	2771c"%%i=!2771c"%%i=))2771c"%%i=))50bggaRUUm,,g53ruu9..	9; < "RWWQruuW


r"''!BEE'""
#

RWWQruuW%%
&

#bggag&&
'

D255))
*

eBGGAbeeG,,
-

rwwq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" +
BHHo789
BHHo789rxx|456
BHHk;/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   