
    (phI                    h   S 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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/J0r0J1r1J2r2  SSK3J4r4J5r5  SSK6J7r7J8r8  SSK9J:r:J;r;  SSK<J=r=J>r>J?r?  SSK@JArA  \R                  R                  S:  rD\R                  S:H  =(       a    \	R                  " 5       S:H  rFSS/rGGSS jrHS rIS rJ " S S5      rKGSS jrLS rM\R                  R                  S/ S Q5      S! 5       rP " S" S#5      rQ " S$ S%5      rR " S& S'5      rS " S( S)5      rT " S* S+5      rU " S, S-5      rV " S. S/5      rW " S0 S15      rX " S2 S35      rY " S4 S55      rZ " S6 S75      r[ " S8 S95      r\ " S: S;5      r] " S< S=5      r^ " S> S?5      r_ " S@ SA5      r` " SB SC5      ra " SD SE5      rb " SF SG5      rc " SH SI5      rd " SJ SK5      re " SL SM5      rf " SN SO5      rg " SP SQ5      rh " SR SS5      ri " ST SU5      rj " SV SW5      rk " SX SY5      rl " SZ S[5      rm " S\ S]5      rn " S^ S_5      ro " S` Sa5      rp " Sb Sc5      rq " Sd Se5      rr " Sf Sg5      rs " Sh Si5      rt " Sj Sk5      ru " Sl Sm5      rv " Sn So5      rw " Sp Sq5      rx " Sr Ss5      ry " St Su5      rz " Sv Sw5      r{ " Sx Sy5      r| " 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Rq                  \DG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#\R8                  " GS$GS%/5      4GS&\R8                  " GS'GS(/5      4GS)\R8                  " GS*GS+/5      4GS,\R8                  " 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Rq                  \DG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\8\5-   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      G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 " 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_warnsassert_array_lesssuppress_warningsassert_array_max_ulpIS_PYPY)raises)	typecodesarray)rec_append_fields)special)check_random_state)IntegrationWarningquad	trapezoidcumulative_trapezoid)
argsreduce)_XMAX)xlogy	polygammaentr)distcontinvdistcont   )distdiscreteinvdistdiscrete)FitDataError
_argus_phi)rootfmindifferential_evolution)productdarwinx86_64tukeylambdapearson3c                 >    Uc  U  SU 3n[        [        X5      US9  g )Nz does not have attribute msg)r	   hasattr)abr/   s      W/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattrr4   5   s&    
{,QC0GAMs#    c                  L    [        [        R                  R                  S5        g )Nf_gen)r4   scipystatsdistributions r5   r3   test_api_regressionr<   ;   s    EKK--w7r5   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entropytrapzc                 @    [        U 5      R                  S5      (       + $ )N<)str
startswithss    r3   <lambda>.test_distributions_submodule.<locals>.<lambda>J   s    A(9(9#(>$>r5   )setr8   r9   r:   __all__r   r!   filter)actualdist
continuousdiscreteotherexpecteds         r3   test_distributions_submodulerT   @   s    **223F&./hdq'hJ/$01LDQLH1!E$u,H 6>IJH 01s   BBc            	       z   \ 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   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   )r9   vonmisesr   pdfnppirX   LrH   r[   vms        r3   check_vonmises_pdf_periodicHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_pdf_periodicS   s>    2Bq	266!q255y1}2E+FGr5   c                     [         R                  " XUS9n[        UR                  U5      S-  UR                  US[        R
                  -  U-  -  5      S-  5        g )Nr`   r    rc   )r9   rd   r   cdfrf   rg   rh   s        r3   check_vonmises_cdf_periodicHTestVonMises.test_vonmises_periodic.<locals>.check_vonmises_cdf_periodicW   sK    2Bq	A "qAIM': ;a ?Ar5   r   r    r\   r;   )selfrX   r[   rk   ro   s        r3   test_vonmises_periodic#TestVonMises.test_vonmises_periodicP   sd    	H	A
 	$Aq!Q/#Aq!Q/#Aq"a0#Aq!Q/#Aq!Q/#Aq"a0r5   c                     [        [        R                  R                  [        R
                  * 5        [        [        R                  R                  [        R
                  5        g N)r   r9   vonmises_liner1   rf   rg   r2   rq   s    r3   test_vonmises_line_support'TestVonMises.test_vonmises_line_supportd   s8    U((**RUUF3U((**BEE2r5   c                 f    [         R                  " S5      n[        UR                  S5      S5        g )N   r         ?)r9   rd   r   rn   )rq   rj   s     r3   test_vonmises_numerical$TestVonMises.test_vonmises_numericalh   s"    ^^C BFF1Is+r5   zx, kappa, expected_pdf))rY   {Gz?g|65?)rY         9@g?U?)rY   r{   g"?)       @r   gDfI?)r   r   g1<)r   r{           c                 V    [         R                  R                  X5      n[        XCSS9  g NV瞯<rtol)r9   rd   re   r   )rq   r[   kappaexpected_pdfre   s        r3   test_vonmises_pdfTestVonMises.test_vonmises_pdfv   s"     nn  *6r5   zkappa, expected_entropy))r    gA	?)   g,eޞ?)r]   gBb9d22)  g
G )  gc                 V    [         R                  R                  U5      n[        X2SS9  g NvIh%<=r   )r9   rd   rA   r   )rq   r   expected_entropyrA   s       r3   test_vonmises_entropy"TestVonMises.test_vonmises_entropy   s"     ..((/>r5   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   r`   random_staterc   r   atol)	rf   randomdefault_rngr9   rd   rvsrg   absr   )rq   seedrng1rng2rng3rvs1rvs2rvs3s           r3   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 	//r5   zx, kappa, expected_logpdf))rY   r   gEJ?)rY   r   goι?)rY   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   )r9   rd   logpdfr   )rq   r[   r   expected_logpdfr   s        r3   test_vonmises_logpdf!TestVonMises.test_vonmises_logpdf   s"     &&q0e<r5   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    r\   ra   r   c                     gNr    r;   r[   s    r3   rI   3TestVonMises.test_vonmises_expect.<locals>.<lambda>       Ar5   r    rc   c                     gr   r;   r   s    r3   rI   r      r   r5   c                 4    [         R                  " SU -  5      $ )Ny              ?)rf   expr   s    r3   rI   r      s    BFF2a4Lr5   complex_funcN)rf   r   r   r9   rd   expectr   
issubdtypedtypefloatingrg   anglecomplexfloating)rq   rngra   r   lbresboundss          r3   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(:(:;;;;r5   rvs_locrc   	rvs_shape)r    r]       ח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   )sizera   r   fscaler    flocf0)
pytestskiprf   r   r   r9   rd   r   _assert_less_or_close_loglikennlf)rq   r   r   r   r   r   datakwdss           r3   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r5   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   )rf   asarrayrg   r9   rd   fitfinfofloattinyr   r   )rq   r   ra   	kappa_fitloc_fit	scale_fits         r3   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r5   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|   r\   r   順 r      r    )	rf   r   r   r9   rd   rg   r   r   r   )rq   r   r   r   shifted_datar   r   r   kappa_fit_shiftedloc_fit_shifted_s              r3    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'"%%'''''r5   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
SS95      [        R
                  :*  5      (       d   eg )Nr   r    rc   r   r         ??皙?r   r\     r   r   )r9   rd   r   re   rf   rg   rn   sfppfmeanr   allr   r   )rq   rO   s     r3   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vvbffTXX2DXABbeeKLLLLr5   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    )r9   rd   r   )rq   r   ra   rb   s       r3   test_vonmises_fit_equal_data)TestVonMises.test_vonmises_fit_equal_data  s8    !NN..s3E}eqj88jr5   c                     [         R                  R                  R                  SS/SS9  [         R                  R                  R                  [        R
                  S-  S-  /SS9  g )Nr   gl=c>r   rc   gd?)r8   r9   rd   r   rf   rg   rw   s    r3   test_vonmises_fit_bounds%TestVonMises.test_vonmises_fit_bounds  sT     	  !WA 6 	  "%%'9"5!6Q ?r5   r;   N)__name__
__module____qualname____firstlineno__r   markparametrizerf   rg   rr   rx   r}   r   r   r   r   r   xslowr   slowr   r   r   r   r   __static_attributes__r;   r5   r3   rV   rV   O   s   [[S-0[[S1aC"891 : 11$3, [[5/0707 [[6;<?<?0  [[8BC=C=<4 [[[[YA/[[[-8[[Yu6[[[4-8C 9 7 9 0 
C$ [[
O 
O [[Vb!W-
( .
(	M9
@r5   rV   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typerf   anyallclose)	rO   r   funcmaybe_identicalr   mle_analyticalnumerical_optll_mle_analyticalll_numerical_opts	            r3   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 r5   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    rc   r   3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:rc   )extra_keywordzToo many positional arguments.r    )shapeslensplitdictziprf   aranger   r   RuntimeErrorr   
ValueErrornaninf	TypeError)rO   paramnshapes	all_fixedr   s        r3   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>rO   )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   getattrr9   r   re   r1   r   r   rf   r(  r2   )rO   dctargss      r3   test_supportr@  R  s     x.C9D5$D/$/3TVV+d+bffW5/$/3TVV+d+bffW5r5   c                   ,    \ rS rSrS rS rS rS rSrg)TestRandIntid  c                 B    [         R                  R                  S5        g Nr   rf   r   r   rw   s    r3   setup_methodTestRandInt.setup_methode      
		tr5   c                 *   [         R                  R                  SSSS9n[        [        R
                  " US:  5      [        R
                  " US:  5      -  5        [        [        U5      S:H  5        [         R                  R                  SSSS9n[        [        R                  " U5      S:H  5        [        UR                  R                  [        S   ;   5        [         R                  R                  SS5      n[        US:  US:  -  5        [        [        U[        R                  5      [        [        U5      5      S	9  [         R                  " SS5      R                  S
5      n[        UR                  R                  [        S   ;   5        g )Nr      r]   r   rc   2   
AllInteger   .   r.   r   )r9   randintr   r	   rf   r   r   shaper   charr   
isinstance
ScalarTypereprr  rq   valsvals      r3   test_rvsTestRandInt.test_rvsh  s   }}  BS 1tby!BFF419$556D	S !}}  BW 5')*

9\#::;mmB'sRx()
3.DcODmmB#''*		)L"99:r5   c                     [         R                  SS n[         R                  " US:  US:  -  SS5      n[        R                  R                  USS5      n[        X25        g )Nr   $   r   rJ  {Gz?)rf   r_wherer9   rQ  pmfr   )rq   rX   outrX  s       r3   test_pdfTestRandInt.test_pdfu  sP    EE!BKhhQ1r6*J:}}  Ar*!$,r5   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   r]  r]   rJ  r         ?      @r    r      decimal)rf   linspacefloorselectr9   rQ  rn   r   )rq   r[   rX   rb  rX  s        r3   test_cdfTestRandInt.test_cdf{  st    KK2s#HHQKiib!q&)C!C%'F1C+DaH}}  Ar*!$R8r5   r;   N)	r  r  r  r  rF  rZ  rc  rn  r	  r;   r5   r3   rB  rB  d  s    ;-9r5   rB  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                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestBinom.setup_method  rH  r5   c                    [         R                  R                  SSS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5      n[        [        U[        5      5        [         R                  " SS5      R                  S5      n[        [        U[        R                  5      5        [        UR                  R                  [        S   ;   5        g Nr\   r   rL  rK  r   rN  r   )r9   binomr   r	   rf   r   rR  r   rS  r   rT  intndarrayrW  s      r3   rZ  TestBinom.test_rvs  s    {{r4g6tqy!BFF42:$667')*

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

+,		)L"99:r5   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 )Nr]   r    r   rf  r   r   r   r9   rv  ra  r   )rq   vals1vals2s      r3   test_pmfTestBinom.test_pmf  sJ    S!,3*sQ7sQ7r5   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 )Nrc   r|   )      ?r|   r  r   rf  )	r9   rv  rf   r   sumr   rA   r   r   )rq   r2   
expected_p
expected_hhs        r3   test_entropyTestBinom.test_entropy  s    KK3XX/0
%
788
IIK&KK3IIKQKK3IIKQr5   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errorrc   r   np)	warningscatch_warningssimplefilterRuntimeWarningr   r9   rv  r   stdrw   s    r3   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?rf  )qr  r  )r9   rv  r   rq   r  s     r3   test_ppf_p1TestBinom.test_ppf_p1  s(    {{S1Q666r5   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   )rf   r$  r9   rv  ra  poissonr   )rq   r  r  r[   r   refs         r3   test_pmf_poissonTestBinom.test_pmf_poisson  sQ    "IIaLkkooao*mmq5)u-r5   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   )r9   rv  ra  rn   r   )rq   r  r  rr   r  s         r3   test_pmf_cdfTestBinom.test_pmf_cdf  sC    kkooaA&kkooaA&u-r5   c                 \    [         R                  R                  SSS5      n[        USSS9  g )Nr   r   +?r   r  r   r|  )rq   r   s     r3   test_pmf_gh15101TestBinom.test_pmf_gh15101  s$    kkooau-QU+r5   r;   N)r  r  r  r  rF  rZ  r  r  r  r  r  r  r  r	  r;   r5   r3   rq  rq    s/    	;8 97
..,r5   rq  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    )r9   arcsinere   r   rf   r(  rq   r  s     r3   test_endpointsTestArcsine.test_endpoints  s3     MMq!f%Q()r5   r;   N)r  r  r  r  r  r	  r;   r5   r3   r  r    s    *r5   r  c                   &    \ rS rSrS rS rS rSrg)TestBernoullii  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestBernoulli.setup_method  rH  r5   c                    [         R                  R                  SS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5      n[        [        U[        5      5        [         R                  " S5      R                  S5      n[        [        U[        R                  5      5        [        UR                  R                  [        S   ;   5        g )Nr   rL  rK  r   r    rN  r   )r9   	bernoullir   r	   rf   r   rR  r   rS  r   rT  rw  rx  rW  s      r3   rZ  TestBernoulli.test_rvs  s    ""4g"6tqy!BFF419$556')*

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

+,		)L"99:r5   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   rf  )r9   r  rf   logrA   r   r   )rq   r2   r  r  s       r3   r  TestBernoulli.test_entropy  s    OOD!266$<'$rvvd|*;;
IIK&OOC IIKQOOC IIKQr5   r;   N)r  r  r  r  rF  rZ  r  r	  r;   r5   r3   r  r    s    	;r5   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 )NrY   )rf   logspacer9   bradfordrn   r   r   )rq   cr[   r  xxs        r3   test_cdf_ppfTestBradford.test_cdf_ppf  sG    KKR NNq$^^%r5   r;   N)r  r  r  r  r  r	  r;   r5   r3   r  r    s    r5   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   )r9   cauchyre   r  s     r3   test_pdf_no_overflow_warning'TestCauchy.test_pdf_no_overflow_warning  s#     LLU#Cxxr5   x, ref)r   罡HP)g       r  )gIL8r  )gOd@<r  ):0yU>gHP)Mb@?gP)rY   g*6y)      ?g8@(J)g NgmCg'K@$[U)r  gonьgs32c                 ^    [         R                  R                  X* /5      n[        X2U/SS9  g r   )r9   r  r   r   )rq   r[   r  logps       r3   test_logpdfTestCauchy.test_logpdf	  s*     ||""Ar7+Cju5r5   ))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   )rq   r[   r  methodsgnr  s         r3   test_cdf_sfTestCauchy.test_cdf_sf  s      35MU+r5   ))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   )r9   r  logcdfr   logsfrq   r[   r  r  r  s        r3   test_logcdf_logsfTestCauchy.test_logcdf_logsf/  sB     $$Q'%0""A2&/r5   zp, ref))#B;g8)&.>g/)r        )r|   r   )r   rf  )!?gqmA)g?gqJRBc                 ,    XC" U5      -  n[        XRSS9  g r   r  )rq   r  r  r  r  r[   s         r3   test_ppf_isfTestCauchy.test_ppf_isf>  s     q	MU+r5   r;   N)r  r  r  r  r  r   r  r  r   r  r9   r  rn   r   r  r  r   isfr  r	  r;   r5   r3   r  r    sa    [[	#	&	%	'	$	#	#	#	#	$
$	%
	'(6(6
 [[	%	 [[
,,

A	
,,//2		 
,	,
 [[X;<0<0 [[	/	 [[
,,

A	
,,

B		!",	"	,r5   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)TestChiiQ  gnT9;g2 >h?@c                 l    [         R                  R                  SS5      n[        XR                  SS9  g )Nr\   r   r   r   )r9   chir   r   CHI_SF_10_4rq   rH   s     r3   test_sfTestChi.test_sfZ  s&    IILLQ++%8r5   c                 n    [         R                  R                  U R                  S5      n[	        USSS9  g )Nr   r\   r   r   )r9   r  r  r  r   rq   r[   s     r3   test_isfTestChi.test_isf^  s(    IIMM$**A.2E*r5   c                 `    SnSn[         R                  R                  X5      n[        USSS9  g )Nr  rO  gar  r   )r9   r  r  r   )rq   r[   dfr  s       r3   test_logcdfTestChi.test_logcdfb  s-    !!!( 6UCr5   c                 `    SnSn[         R                  R                  X5      n[        USSS9  g )Nr   rO  @y`r  r   )r9   r  r  r   )rq   r[   r  r  s       r3   
test_logsfTestChi.test_logsfi  s+    		&5EBr5   df, ref     @@)g  ļBgcAc                 T    [        [        R                  R                  U5      USS9  g N-q=r   )r   r9   r  r   rq   r  r  s      r3   	test_meanTestChi.test_meanv  s     			r*Ce<r5   ))-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   r9   r  rA   r  s      r3   r  TestChi.test_entropy  s!     			"--/5Ar5   r;   N)r  r  r  r  r  CHI_MEAN_1000r  r  r   r  r   r  r  r  r  r	  r;   r5   r3   r  r  Q  s     'K $M9+DC [[Y"M279:=:= [[Y;<B<Br5   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.
      rg     Nr   rf  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  ra   rb   )g3c}?g>t\?g˂?f'T)?#n?5-h	J??u8n?vL1??#?||P?g:Q?r.  r-  r,  r+  r*  r)  r(  r'  )rf   rk  r9   crystalballre   r   r   rq   X
calculatedrS   s       r3   rc  TestCrystalBall.test_pdf  s     KKc2&s+ &&**13#*>
88 	K 	L 	59 &&**13#*>
88 	J 	K 	59 &&**13#3c*R
88 	G 	H 	59r5   c                    [         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  rg  r  Nr   rf  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?r5  ge?r6  gPU,?r7  gjݗ	?r8  g?r9  g_!Y?r:  ga?r;  gR?r<  g(?r=  g܉x?r>  )rf   rk  r9   r/  rn   r   r   r0  s       r3   rn  TestCrystalBall.test_cdf  s     KKc2&s+ &&**13#*>
88 	E 	F 	59 &&**13#*>
88 	E 	F 	59 &&**13#3c*R
88 	E 	F 	59r5   zx, beta, m, rootref))      (@rf  r   gI9)      "@      @      ?gy
 <)   rY   gjt?g+,)g      r   r!  gGA*?)g      >r|   rg  g^v'?)gd~Qr  皙?g眭?c                 T    [         R                  R                  XUS9n[        XTSS9  g )Nr  r   r   )r9   r/  r   r   )rq   r[   r  r  rootrefr   s         r3   r  TestCrystalBall.test_sf  s)     !!!!!4%0r5   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   rf  r!  r   r!  )r!  r!  r   rB  rA  )rf  rf  rf  rf  rf  r   MbP?r   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr    g
@gn(@rc   g?Җ)r   gMg'#@r   g('UHr   N)rf   r   r9   r/  _munpr   r(  )rq   r  r  expected_0th_momentcalculated_0th_momentnormr1   expected_1th_momentcalculated_1th_momentexpected_2th_momentcalculated_2th_momentexpected_3th_momentcalculated_3th_momentexpected_4th_momentcalculated_4th_momentexpected_5th_momentcalculated_5th_moments                    r3   test_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Or5   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 )Nrc   r   )irJ  @ Hz>r   )	r9   r/  rA   rf   rk  r   r   re   r   )rq   cbres1lohiNr[   res2s           r3   r  TestCrystalBall.test_entropyL  sZ    q!$zz|&	KK"bffQi!,.r5   r;   N)r  r  r  r  rc  rn  r   r  r  r  rY  r  r	  r;   r5   r3   r  r    sE    <:|<:D [[	011+PZ/r5   r  c                   ,    \ rS rSrS rS rS rS rSrg)
TestNBinomiW  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestNBinom.setup_methodX  rH  r5   c                 r   [         R                  R                  SSSS9n[        [        R
                  " US:  5      5        [        [        R                  " U5      S:H  5        [        UR                  R                  [        S   ;   5        [         R                  R                  SS5      n[        [        U[        5      5        [         R                  " SS5      R                  S5      n[        [        U[        R                  5      5        [        UR                  R                  [        S   ;   5        g ru  )r9   nbinomr   r	   rf   r   rR  r   rS  r   rT  rw  rx  rW  s      r3   rZ  TestNBinom.test_rvs[  s    ||Dw7tqy!"')*

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

+,		)L"99:r5   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   rf   r   r9   rj  logpmfra  r8   r   )rq   rY  s     r3   r  TestNBinom.test_pmff  sh    u||223TBC((c48	: kk  ''1a0S!r5   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  )r9   rj  r  rf   r  rn   r   rq   rX  r  s      r3   test_logcdf_gh16159TestNBinom.test_logcdf_gh16159n  sI    ||""<3$"?ffU\\%%lcT%BC"r5   r;   N)	r  r  r  r  rF  rZ  r  rs  r	  r;   r5   r3   rf  rf  W  s    	;#r5   rf  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)TestGenInvGaussiu  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestGenInvGauss.setup_methodv  rH  r5   c                     [         R                  " SS5      n[         R                  " UR                  SSS9UR                  5      u  p#[        US:  S5        g )Nffffff@r    r   r   皙?Tr9   geninvgausskstestr   rn   r   rq   gigr   r  s       r3   test_rvs_with_mode_shift(TestGenInvGauss.test_rvs_with_mode_shifty  G     S)||CGGDGA377KQXt$r5   c                     [         R                  " SS5      n[         R                  " UR                  SSS9UR                  5      u  p#[        US:  S5        g )Nr   r   r{  r   r   r|  Tr}  r  s       r3   test_rvs_without_mode_shift+TestGenInvGauss.test_rvs_without_mode_shift  sG     T*||CGGDGA377KQXt$r5   c                     [         R                  " SS5      n[         R                  " UR                  SSS9UR                  5      u  p#[        US:  S5        g )NrY   皙?r{  r   r   r|  Tr}  r  s       r3   test_rvs_new_method#TestGenInvGauss.test_rvs_new_method  r  r5   c                 |    S 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SS9n[         R                  " X2R                  5      S   S:  $ )Nr{  r   r   r    r|  )r9   r~  r   r  rn   )r  r2   r  r   s       r3   my_ks_check4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_check  sA    ##A)C''t$'7C<<WW-a0477r5   r   r  Tr   r  )r   )rq   r  s     r3   test_rvs_p_zeroTestGenInvGauss.test_rvs_p_zero  s<    	8
 	[C($/[C($/[C($/r5   c           	          [        [        R                  " SS5      R                  SSS9S[        R                  " SS5      R                  SSS9-  5        g )N      rc   r\   r   r   r    r  )r   r9   r~  r   rw   s    r3   test_rvs_negative_p#TestGenInvGauss.test_rvs_negative_p  sP    !!$*..BT.JE%%c1-11r1MM	Or5   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 )Nr{  r   r    r   )r   r  r2   r   r2  r?  333333?Tr]   r   r\   )r  r2   rb   )r9   r~  r   r   r  rf   rk  re   r   r2  rn   )rq   igmur[   pdf_igcdf_igs         r3   test_invgaussTestGenInvGauss.test_invgauss  s    """MU\\"js;A>EtLR[[q"-A""&&qDAF"&Er 2 6 6q 9:""&&qDAF"&Er 2 6 6q 9:r5   c                     [         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   r\   r|   r    )rf   r   rk  r   r9   r~  re   )rq   vals_Rr[   s      r3   
test_pdf_RTestGenInvGauss.test_pdf_R  sJ      , - KKa$ 1 1 5 5aa @Ar5   c                     [        [        R                  R                  SSS5      S5        [        [        R                  R                  SSS5      S5        g )Nr   r|   g    >ArM  rc   )r   r9   r~  re   rw   s    r3   test_pdf_zeroTestGenInvGauss.test_pdf_zero  sB    U&&**1c37; 	U&&**3A6:r5   r;   N)r  r  r  r  rF  r   r  r  r  r  r  r  r  r  r  r  r	  r;   r5   r3   rv  rv  u  s     [[% % [[% % [[% % [[0 0O	;	B;r5   rv  c                       \ 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S rS rS rS rS rSrg)TestGenHyperbolici  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestGenHyperbolic.setup_method  rH  r5   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?rc   rc   r    r|   r  r`   r\   r   r   r   r   )rf   r   r9   genhyperbolicrk  r   re   
rq   r  lmbdar.  r  r  deltar?  ghr[   s
             r3   
test_pdf_rTestGenHyperbolic.test_pdf_r  st        %d	U{DJ/  $e<KKR$q	6>r5   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  r`   r  r\   r   ư>r  )rf   r   r9   r  rk  r   rn   r  s
             r3   
test_cdf_rTestGenHyperbolic.test_cdf_r  st        %d	U{DJ/  $e<KKR$q	6=r5   zx, p, a, b, loc, scale, ref)
)rc   r   r  r|   r  g8ɹvF(;)r  r\   r  r  r    r   g[Ϡ?)r  r\   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:)rD  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 Nr`   dy=r   )r9   r  rn   r   )	rq   r[   r  r1   r2   ra   rb   r  rn   s	            r3   test_cdf_mpmath!TestGenHyperbolic.test_cdf_mpmath  s+     !!%%aAc%Gu-r5   ))r   r  rh  r   r   r    gC!,?)r   r         @      @r    r   g,Ћf?)r  r   r  r  r    r   rf  )   rc   r   r  r|   r  gm"چ>),  r\   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  )r9   r  r   r   )	rq   r[   r  r1   r2   ra   rb   r  r   s	            r3   test_sf_mpmath TestGenHyperbolic.test_sf_mpmath  s+       ##A!C#Ee,r5   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   r`   r   r   r  )ranger9   r  momentr   )
rq   r  r  r.  r  r  r  r?  ivals_uss
             r3   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  r`   r{  r   r   r|  T)r9   r  r  r   rn   r   )
rq   r  r.  r  r  r  r?  r  r   r  s
             r3   rZ  TestGenHyperbolic.test_rvs+  sh     %d	U{DJ/  $e<||BFF4F@"&&IQXt$r5   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    rJ  r\   rc   r   r`   r   Gz?rM  r  r  )rf   rk  float_powerr   float32epssqrtr9   r  r   newaxisr   re   t)	rq   r  r.  r  r  r  r?  r  r[   s	            r3   
test_pdf_tTestGenHyperbolic.test_pdf_t8  s    [[B# nnR+BHHRZZ,@,D,DDatrwwr{EAu#  $e<KKtbffTlB72::FFF1Iuww{{1)	r5   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    r`   r   r  rM  r  r  )rf   r   r  r  r9   r  rk  r   r  r   re   r  )	rq   r  r.  r  r  r  r?  r  r[   s	            r3   test_pdf_cauchy!TestGenHyperbolic.test_pdf_cauchyJ  s    
 "288BJJ#7#;#;Qd	d#  $e<KKtbffTlB72::FFF1Iu||''*	r5   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  r\   )r    r    r   r`   r  rD  rM  r    r   dy=r  )rf   rk  r   r  r  r9   r  r  r   re   laplace)	rq   ra   r  r  r.  r  r?  r  r[   s	            r3   test_pdf_laplace"TestGenHyperbolic.test_pdf_laplace[  s    kk#r2& $(($dU{DJ/   $u=KKR$Q

]3FF1Iu}}((1(=	r5   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    rD  r\   r      r   r]   r   r`   r   r  rM  )r1   r2   ra   rb   r   r  )rf   rk  r  r  r9   r  r   r  r   re   norminvgauss)	rq   r.  r  r  r  r  r?  r  r[   s	            r3   test_pdf_norminvgauss'TestGenHyperbolic.test_pdf_norminvgaussp  s     Ar2&Ar2&r~~b%)'DDAq"%D#r*	"U u}dl3  $e<KKtbffTlB72::FFF1Iu))--d% . 9	r5   r;   N)r  r  r  r  rF  r  r  r   r  r  r  r  r  rZ  r  r  r  r  r	  r;   r5   r3   r  r    s    ?,>4 [[%		<.. [[%	@	-	-=.%$"*r5   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)rJ  gA0=)rM  g!b;c                 V    [         R                  R                  U5      n[        X2SS9  g r  )r9   	hypsecantr   r   )rq   r[   	referencer   s       r3   r  TestHypSecant.test_sf  s"     __"E2r5   zp, reference)r  g9bT*@)r
  gTW-;@c                 V    [         R                  R                  U5      n[        X2SS9  g r  )r9   r  r  r   )rq   r  r  r[   s       r3   r  TestHypSecant.test_isf  s"     OO"51r5   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   )r9   r  r  r   r  r  s        r3   r  TestHypSecant.test_logcdf_logsf  sJ    %''*%0%%qb)/r5   r;   N)r  r  r  r  r   r  r  r  r  r  r	  r;   r5   r3   r  r    sg    
 [[^9:<=3=3 [[^89;<2<20r5   r  c                       \ rS 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                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestNormInvGauss.setup_method  rH  r5   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      rO  r    r|   r1   r2   r  r   )rf   r   r9   r  rn   r   )rq   r_cdfx_testvals_cdfs       r3   
test_cdf_RTestNormInvGauss.test_cdf_R  sM      < =,-%%))&A)=d3r5   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   )rf   r   r9   r  re   r   )rq   r_pdfr  vals_pdfs       r3   r  TestNormInvGauss.test_pdf_R  sK     < =,-%%))&A)=d3r5   zx, a, b, sf, rtol))r   r    r   !7?r   )r  r    r   ?=r  )r    r   r  gy5`?r
  )r\   r   r  gMLC9r  c                     [         R                  R                  XU5      n[        XdUS9  [         R                  R	                  XBU5      n[        XqUS9  g Nr   r9   r  r   r   r  )rq   r[   r1   r2   r   r   rH   r  s           r3   test_sf_isf_mpmath#TestNormInvGauss.test_sf_isf_mpmath  sH     !!!*D)""2!,4(r5   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  r{  r  r   r  )rq   r[   r1   r2   r   rH   r  s          r3   test_sf_isf_mpmath_vectorized.TestNormInvGauss.test_sf_isf_mpmath_vectorized  sj    HF "89!!!*E6""2!,4(r5   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   rD  rc   )r9   r  rf   r$  r   r  r   )rq   dstr[   r   r  s        r3   test_gh8718TestNormInvGauss.test_gh8718  sH      A&IIaQVVAYggbkr5   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|   rc   r   r!  r    r   mvskmoments)rf   r  r   r9   r  )rq   r1   r2   gammav_statss        r3   
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Mr5   c                     Su  p[         R                  " / SQ5      n[        R                  R	                  X1U5      n[        U[        R                  R                  XAU5      5        g )Nr  rJ  r|   r  )rf   r   r9   r  r   r   rn   )rq   r1   r2   r  rX  s        r3   test_ppfTestNormInvGauss.test_ppf  sM    -.!!%%f3 2 2 6 6t BCr5   r;   N)r  r  r  r  rF  r  r  r   r  r  r  r  r  r   r$  r	  r;   r5   r3   r  r    sU    
44 [[0JK
)K
)	) NDr5   r  c                   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                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestGeom.setup_method  rH  r5   c                 l   [         R                  R                  SSS9n[        [        R
                  " US:  5      5        [        [        R                  " U5      S:H  5        [        UR                  R                  [        S   ;   5        [         R                  R                  S5      n[        [        U[        5      5        [         R                  " S5      R                  S5      n[        [        U[        R                  5      5        [        UR                  R                  [        S   ;   5        g )Nr   rL  rK  r   rN  r   )r9   geomr   r	   rf   r   rR  r   rS  r   rT  rw  rx  rW  s      r3   rZ  TestGeom.test_rvs  s    zz~~d~1tqy!"')*

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

+,		)L"99:r5   c                    [         R                  R                  S5      n[        R                  R                  [         R                  " S5      SUS9nUR                  [         R                  :X  d   e[         R                  " U[         R                  " [         R                  5      R                  :  5      (       d   eg )Nl   A: ir   r   )rf   r   r   r9   r+  r   r   r   int64r   iinfoint32max)rq   r   r   s      r3   test_rvs_9313TestGeom.test_rvs_9313  s{     ii##O4jjnnRVVC[qsnCyyBHH$$$vvcBHHRXX.2223333r5   c                 d    [         R                  R                  / SQS5      n[        U/ SQ5        g )Nr  r|   )r|   r  r  )r9   r+  ra  r   rq   rX  s     r3   r  TestGeom.test_pmf  s!    zz~~i-!$(:;r5   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   r{  r    r   )rf   r  r9   r+  ra  rm  r   r   )rq   r}  r~  rY  s       r3   test_logpmfTestGeom.test_logpmf	  sc    uzz~~i56

!!)S15q9 jj1%S#r5   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    )r9   r+  rn   r   r   r   rq   rX  vals_sfrS   s       r3   r  TestGeom.test_cdf_sf  sK    zz~~i-**--	3/+,!$1!'1X:6r5   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|   r;  )	r9   r+  r  r  r   r   rf   r  log1pr=  s       r3   r  TestGeom.test_logcdf_logsf  sa    zz  C0**""9c2+,!$x(89!'288XI+>?r5   c                 x    [         R                  R                  / SQS5      n[        / SQ5      n[	        X5        g )Nr;  r|   )rf  r   r!  )r9   r+  r   r   r   rq   rX  rS   s      r3   r$  TestGeom.test_ppf!  s)    zz~~0#6)!$1r5   c                 V    [        [        R                  R                  SS5      SSS9  g )Nr  rf  r   r   )r   r9   r+  r   rw   s    r3   test_ppf_underflowTestGeom.test_ppf_underflow&  s    

ue4cFr5   c                 b    [         R                  " S5      R                  5       n[        USSS9  g )Ng<,Ԛ?g۩@r   r   )r9   r+  rA   r   )rq   r  s     r3   test_entropy_gh18226TestGeom.test_entropy_gh18226*  s(     JJv&&(,59r5   c                     [         R                  R                  S5      n[        R                  R                  SSUS9S:  R                  5       (       d   eg )NiKH9r\   r   r   )rf   r   RandomStater9   r+  r   r   )rq   r   s     r3   test_rvs_gh18372TestGeom.test_rvs_gh183720  sE     yy,,Y7

u2LIAMRRTTTTr5   r;   N)r  r  r  r  rF  rZ  r2  r  r8  r  r  r$  rG  rJ  rO  r	  r;   r5   r3   r'  r'    s<    	;4<7@2
G:Ur5   r'  c                   &    \ rS rSrS rS rS rSrg)
TestPlancki7  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestPlanck.setup_method8  rH  r5   c                 x    [         R                  R                  / SQS5      n[        / SQ5      n[	        X5        g )Nr  rg  )g|dy?g8'\>ggrU!>)r9   planckr   r   r   rD  s      r3   r  TestPlanck.test_sf;  s/    ||y"- 2 3 	"$1r5   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)r9   rV  r  r   r   rD  s      r3   r  TestPlanck.test_logsfB  s,    ||!!"7?:;!$1r5   r;   N)r  r  r  r  rF  r  r  r	  r;   r5   r3   rR  rR  7  s    22r5   rR  c                   ,    \ rS rSrS rS rS rS rSrg)TestGennormiH  c                     / SQn[         R                  R                  US5      n[         R                  R                  U5      n[	        X#5        g Nr  r    )r9   gennormre   r  r   rq   pointspdf1pdf2s       r3   test_laplaceTestGennorm.test_laplaceI  s9    }}  +}}  (D'r5   c                     / SQn[         R                  R                  US5      n[         R                  R                  USS9n[	        X#5        g Nr  rc   g;f?rb   )r9   r`  re   rN  r   ra  s       r3   	test_normTestGennorm.test_normP  s;    }}  +zz~~fF~3D'r5   c                    [         R                  R                  S5        [        R                  " S5      nUR                  SS9n[        R                  " X!R                  5      R                  S:  d   e[        R                  " S5      nUR                  SS9n[        R                  R                  SS9n[        R                  " X#5      R                  S:  d   e[        R                  " S5      nUR                  SS9n[        R                  R                  SSS	9n[        R                  " X$5      R                  S:  d   eg )
Nr   r|   r   rK  rY   r    rc   g;f?rb   r   )rf   r   r   r9   r`  r   r  rn   pvaluer  ks_2samprN  )rq   rO   r   rvs_laplacervs_norms        r3   rZ  TestGennorm.test_rvsW  s    
		q}}S!hhDh!||C*11C777}}QhhDh!mm''T'2~~c/66<<<}}QhhDh!::>>t><~~c,33c999r5   c                    [         R                  R                  S5        [        R                  " SS/SS//5      nUR                  / SQ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   r|   rf  r   rg  )r   rc   rc   rK  r    rY   )rf   r   r   r9   r`  r   r  rn   )rq   rO   r   s      r3   test_rvs_broadcasting!TestGennorm.test_rvs_broadcastingh  s   
		q}}sBi"b23hhLh)||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJ||C1aL%--*<*@*@A!DsJJJr5   r;   N)	r  r  r  r  re  rj  rZ  rt  r	  r;   r5   r3   r]  r]  H  s    ((:"Kr5   r]  c                   \    \ rS rSr\R
                  R                  SSS/5      S 5       rSrg)
TestGibratir  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   r9   r8  r   r  rq   r[   sfxs      r3   test_sf_isfTestGibrat.test_sf_isf  s8     	*Ce<((-qu=r5   r;   N)	r  r  r  r  r   r  r  r  r	  r;   r5   r3   rw  rw  r  s5     [[X(A(E(G H>H>r5   rw  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    )r9   gompertzr   rn   r   r  s     r3   test_gompertz_accuracy#TestGompertz.test_gompertz_accuracy  s3    NNu~~11&!<a@6"r5   z	x, c, sfx))r    r  g|t?)r   r  g(fMr;)r|  r   g[?)      @r   gg[<c                     [        [        R                  R                  X5      USS9  [        [        R                  R	                  X25      USS9  g Nr   r   )r   r9   r  r   r  )rq   r[   r  r~  s       r3   r  TestGompertz.test_sf_isf  s:    
 	))!/5A**32AEBr5   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )N       @rY   g_r  r   )r9   r  r  r   )rq   r[   r  r  r  s        r3   r   TestGompertz.test_logcdf  s/    %&&q,%0r5   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Ng"ul/rh  gH7Wr  r   )r9   r  r  r   )rq   r[   r  r  r  s        r3   r  TestGompertz.test_logsf  s/    $$Q*/r5   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   r9   r  rA   rq   r  r  s      r3   r  TestGompertz.test_entropy  s    
 	..q13UCr5   r;   N)r  r  r  r  r  r   r  r  r  r   r  r  r	  r;   r5   r3   r  r    so    #" [[[ +M NC	NC10 [[X (E FD	FDr5   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   r9   foldnormrn   rq   r[   r  r  s       r3   rn  TestFoldNorm.test_cdf  s     	**10#EBr5   r;   N)	r  r  r  r  r   r  r  rn  r	  r;   r5   r3   r  r    s7     [[[+N+M+O PCPCr5   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  rx  )r    |N?)r\   Oul2;c                     [        [        R                  R                  U5      USS9  [        [        R                  R	                  U5      USS9  g r  )r   r9   halfnormr   r  r}  s      r3   r  TestHalfNorm.test_sf_isf  s:     	))!,c>**3/?r5   r  ))Ww'&l7g;G<^͛7)C]r2<gE~o-<)r   g?c                 T    [        [        R                  R                  U5      USS9  g r   )r   r9   r  rn   rq   r[   r  s      r3   rn  TestHalfNorm.test_cdf  s     	**1-s?r5   r   h㈵>r  	rvs_scaler   r]   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   ra   rb   r   r   r  r  r   r   r   r   r  T)rf   r   r   r9   r  r   r   r   r%  halflogisticr   r   	rq   r   r  r   r  r   r   	error_msgr   s	            r3   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  rc   r   )r   r   r#   r9   r  r   rw   s    r3   test_fit_errorTestHalfNorm.test_fit_error  s1    ]]<(NNyq1 )((   !A
Ar;   N)r  r  r  r  r   r  r  r  rn  r   r  r	  r;   r5   r3   r  r    s     [[X(?(C(E F@F@ [[X (A B@B@ [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<22r5   r  c                   (   \ 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   )rf   r   r   r9   r  r   r   r   r%  
halfcauchyr   r   r  s	            r3   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#   r9   r  r   rw   s    r3   r  TestHalfCauchy.test_fit_error.  s3    ]]<(   3 )((r  r;   N)
r  r  r  r  r   r  r  r   r  r	  r;   r5   r3   r  r    s    [[Yt5[[[4+6[[Yu6[[[4-8F 9 7 7 6F,4r5   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)TestHalfLogistici4  r  )r]   ]6)   L-c                 T    [        [        R                  R                  U5      USS9  g r   )r   r9   r  r   r  s      r3   r  TestHalfLogistic.test_sf<  s!     	**--a0#EBr5   q, ref))r  r]   )r  r  )硏v?g   .!>)g?g      <c                 T    [        [        R                  R                  U5      USS9  g r   )r   r9   r  r  rq   r  r  s      r3   r  TestHalfLogistic.test_isfH  s!    
 	**..q13UCr5   c                 ^    SnSn[         R                  R                  U5      n[        X2SS9  g )Ng      >@guVJr  r   )r9   r  r  r   rq   r[   r  r  s       r3   r   TestHalfLogistic.test_logcdfO  s,    $##**1-%0r5   c                 ^    SnSn[         R                  R                  U5      n[        X2SS9  g )Nr|  g+r  r   )r9   r  r  r   rq   r[   r  r  s       r3   r  TestHalfLogistic.test_logsfV  s,    $""((+/r5   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  )rf   r   r   r9   r  r   r   r   r%  r   r   )	rq   r   r  r   r  r   r   r   r  s	            r3   r   ,TestHalfLogistic.test_fit_MLE_comp_optimizer]  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   rc   r   r    r   )assert_raisesr#   r9   r  r   rq   r/   s     r3   test_fit_bad_floc"TestHalfLogistic.test_fit_bad_flocz  s6    L<s3""91"5 433s	   !;
A	r;   N)r  r  r  r  r   r  r  r  r  r   r  r   r  r	  r;   r5   r3   r  r  4  s     [[X(D(D(F GCGC [[X (K LD	LD10 [[Yt5[[[*:;[[Yu6[[[4-8< 9 7 < 6<26r5   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 r_  )r9   halfgennormre   exponr   ra  s       r3   
test_exponTestHalfgennorm.test_expon  s9      $$VQ/{{v&D'r5   c                     / SQn[         R                  R                  US5      n[         R                  R                  USS9n[	        X#5        g rh  )r9   r  re   r  r   ra  s       r3   test_halfnormTestHalfgennorm.test_halfnorm  s@      $$VQ/~~!!&!7D'r5   c                     / SQn[         R                  R                  US5      n[         R                  R                  US5      n[	        USU-  5        g )Nr  g
(?rc   )r9   r  re   r`  r   ra  s       r3   test_gennormTestHalfgennorm.test_gennorm  sC      $$VW5}}  1D!D&)r5   r;   N)r  r  r  r  r  r  r  r	  r;   r5   r3   r  r    s    ((*r5   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 r_  )rf   r   r9   laplace_asymmetricre   r  r   ra  s       r3   re  "TestLaplaceasymmetric.test_laplace  sD    )$''++FA6}}  (#r5   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  rc   r    )rf   r   r9   r  re   r   )rq   rb  r   kapinvrc  rd  s         r3   test_asymmetric_laplace_pdf1TestLaplaceasymmetric.test_asymmetric_laplace_pdf  s[    )$5''++F:''++F1H,=vF#r5   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   r\   rc   rY   gMbp?r  V-?r   gMb`?)rf   r   r  r9   r  re   rn   r   r   r  r   concatenate)rq   rb  r   rc  cdf1sf1rd  cdf2sf2ppf1ppf2isf1isf2s                r3   !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r5   r;   N)r  r  r  r  re  r  r  r	  r;   r5   r3   r  r    s    $$Gr5   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                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestTruncnorm.setup_method  rH  r5   	a, b, ref))r   r]   r  )333333?ffffff?gܲl)r  g>g+c                 T    [        [        R                  R                  X5      USS9  g N绽|=r   r   r9   	truncnormrA   rq   r1   r2   r  s       r3   r  TestTruncnorm.test_entropy  s    $ 	//5sGr5   ))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       r3   test_extreme_entropy"TestTruncnorm.test_extreme_entropy  s      	//5sGr5   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    rc   r  rf  r      rc   r`   r    fO?l@r   )r9   r
  r   rf   r   r'  r   rD  s      r3   test_ppf_ticket1131!TestTruncnorm.test_ppf_ticket1131  Z    ""#EsB()s1uA # 788RVVQ
Az1bffMN!$1r5   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  rf  r   r  rc   r`   r   r  r  r    )r9   r
  r  rf   r   r'  r   rD  s      r3   test_isf_ticket1131!TestTruncnorm.test_isf_ticket1131  r  r5   c                    Su  p[         R                  R                  XSSS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S9n[        XR	                  5       s=:  =(       a%    UR                  5       s=:  =(       a
    U:  5        g s  5        g )N)ir  r   r    r\   rK  )r\      r9   r
  r   r	   minr1  rq   lowhighr[   s       r3   test_gh_2477_small_values'TestTruncnorm.test_gh_2477_small_values  s    	OO1ab9eeg....$./	OO1ab9eeg....$././r5   c                 x   Su  p[         R                  R                  XSSS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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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S9n[        XR	                  5       s=:  =(       a%    UR                  5       s=:  =(       a
    U:  5        g s  5        g )	N)r]   rZ   r   r    r\   rK  )r     )'  i'  )i)r9   r
  r   r	   r!  r1  rE   r"  s       r3   test_gh_2477_large_values'TestTruncnorm.test_gh_2477_large_values  sD   	OO1ab9uuw11!%%'11T12CA4GG 	OO1ab9eeg....$./ 	OO1ab9eeg....$./"	OO1ab9eeg....$././r5   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    rf  rf  r   r   )r   d._MT
@BKg?r   r   )r   r2  r1  r   r    rc   r|   r   r|   rf  gĖy	@gdv*?g,mj%V?r  )rf   r   r(  r9   r
  rn   r   re   r   r  r   r   )rq   r#  r$  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsre   s                  r3   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 ,r5   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/  r0  )r   pGC@Ff<r   r   )r   rE  rD  r   r    rc   r|   r3  gEC@g i?gspXio)>r  r  r   )rf   r   r(  r9   r
  rn   r   re   r   r  r   r   rk  )rq   r#  r$  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  re   xvals2s                   r3   test_gh_9403_medium_tail_values-TestTruncnorm.test_gh_9403_medium_tail_values0  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 0r5   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   r9   r
  rn   rf   r(  rw   s    r3   test_cdf_tail_15110_14753'TestTruncnorm.test_cdf_tail_15110_14753_  sN    
 	S155c:*	,266266s;*	,r5   )rJ  r   rf  r   r   )r  r\   r   rf  r   gLFu)r.  r   r   gMFmz%?r   gſ)r  rc   r   ghI}?r   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r   r   gU*? bn?gnA??c3TXʿ)r.  r    gU*ҿrO  gnArP  )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   )r9   r
  r   )rq   rR  r1   r2   m0v0s0k0r  vrH   rX   s               r3   rY  TestTruncnorm.test_moments  s@    #bb__**1*@
aqrr&6UCr5   c                     [         R                  R                  S[        R                  SS9u  p[	        US5        [	        US5        g )Nr   mvr  g e3E?g:&A?)r9   r
  rf   r(  r   )rq   r  rY  s      r3   test_9902_momentsTestTruncnorm.test_9902_moments  s7    $$Q$=Az*Az*r5   c                     Su  p[         R                  R                  XSSSS9n[        XR	                  5       s=:  =(       a%    UR                  5       s=:  =(       a
    U:  5        g s  5        g )N)r\   rO  r   r    r\   rK  r   r"  s       r3   test_gh_1489_trac_962_rvs'TestTruncnorm.test_gh_1489_trac_962_rvs  sS    	OO1ab9eeg....$././r5   c                 @   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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  r\   r  ir  r  r   rC  -   rK  r   )axis)rf   r(  r9   r
  r   r   rR  r	   r   r!  r1  r"  s       r3   test_gh_11299_rvsTestTruncnorm.test_gh_11299_rvs  s     BbffWrvvgsCS"MB2662sBRHOOCH>xx{q#c(m+++seeem+,-quu!u},-.r5   c                     [        [        R                  S5      (       a=  [        R                  R                  SSS[        R                  R                  5       S9  g g )Nr   r  r  r   r   )r0   rf   r   r9   r
  r   r   rw   s    r3   test_rvs_Generator TestTruncnorm.test_rvs_Generator  sF    299m,,OORa-/YY-B-B-D   F -r5   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 )Nr\   r   )r\         @rl  	   rD  )gOul"gځ=!gL!g>EG	f g^K[X)rf   r   r(  r   r9   r
  r  r  )rq   r1   r2   r[   rS   s        r3   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Dr5   c                 j    [         R                  " SS5      R                  S5      nSn[        X5        g )Nr  r   r   gl).0S?)r9   r
  r  r   )rq   r   r  s      r3   test_moments_gh18634"TestTruncnorm.test_moments_gh18634  s.     oob!$++A.  !r5   r;   N)r  r  r  r  rF  r   r  r  r  r  r  r  r%  r+  r?  rG  rL  rf   r(  _truncnorm_stats_datar   rY  r]  r`  re  rh  rn  rq  r	  r;   r5   r3   r   r     sH    [[[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/F	E"r5   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
=)r]   gh@X)r   gh<c                 Z    Sn[         R                  R                  X5      n[        XBSS9  g )Nr  r   r   )r9   genlogisticr   r   )rq   r[   rS   r  r  s        r3   r  TestGenLogistic.test_logpdf  s)       ''-U3r5   r  ))r  gTKEl@)r  gJk$@)r   gsF<?)r  7~F<?c                 T    [        [        R                  R                  U5      USS9  g r  )r   r9   rx  rA   r  s      r3   r  TestGenLogistic.test_entropy  s!    
 	))11!4cFr5   r  )r  r\   g8.)  rD  gpT	oc                 T    [        [        R                  R                  X5      USS9  g r  )r   r9   rx  r   r  s       r3   r  TestGenLogistic.test_sf  s!     	)),,Q2CeDr5   	q, c, ref)r   r  g^ #@)rJ  rc   gGFf@c                 T    [        [        R                  R                  X5      USS9  g NV瞯<r   )r   r9   rx  r  rq   r  r  r  s       r3   r  TestGenLogistic.test_isf  !     	))--a3SuEr5   )r|   r  gİ@)r  rD  g1a@c                 T    [        [        R                  R                  X5      USS9  g r  )r   r9   rx  r   r  s       r3   r$  TestGenLogistic.test_ppf  r  r5   )r]   {Gz?g(?)rM  rD  g'Tn7c                 T    [        [        R                  R                  X5      USS9  g r   )r   r9   rx  r  r  s       r3   r   TestGenLogistic.test_logcdf  s!     	))006%Hr5   r;   N)r  r  r  r  r   r  r  r  r  r  r  r$  r   r	  r;   r5   r3   ru  ru    s2    [[] -I J
4J
4 [[X (E FG	FG& [[[+L+L+N OEOE [[[+I+H+J KFKF [[[+I+H+J KFKF [[[+N+K+M NINIr5   ru  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                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestHypergeom.setup_method	  rH  r5   c                 |   [         R                  R                  SSSS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5      n[        U[        5      (       d   e[         R                  " SSS5      R                  S5      n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   eg )NrD  r\   r   rL  rK  r   rN  )r9   	hypergeomr   rf   r   rR  r   rS  r   rT  rw  rx  rW  s      r3   rZ  TestHypergeom.test_rvs  s    ""2r17";vvdai 266$!)#4444xx~(((zz)L"9999oo!!"a,#s####oob!R(,,Q/#rzz****yy~~<!8888r5   c                 t    SnSnSnUnUn[         R                  R                  SXEU5      n[        USS5        g )Ni	  rM  r}  rc   gkㅒP?r  )r9   r  ra  r   )rq   Mr  rb  totgoodhgpmfs          r3   test_precisionTestHypergeom.test_precision  s@    ##As!4E#8"=r5   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   rc   r    rf  r  r   )r   r9   r  ra  rw   s    r3   	test_argsTestHypergeom.test_args!  s     	EOO//1a;S"EEOO//1a;S"EEOO//1a;S"EEOO//1a;S"Er5   c           	          [        S[        R                  R                  SSSS5      s=:*  =(       a
    S:*  5        g s  5        g )Nr   rJ  io i  if0  rf  )r	   r9   r  rn   rw   s    r3   test_cdf_above_one TestHypergeom.test_cdf_above_one*  s2    U__((XtUCJJsJKJKr5   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)rf   r   r9   r  r   r   )rq   orangespearsfruits_eatenquantileeatenr   rS   	quantilesrc  	expected2s              r3   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   )	r9   r  rA   rf   r   r  r   r   r   )rq   hgr  r  r  s        r3   r  TestHypergeom.test_entropyA  sv    __Q1%JJLXXtTl+
ffU::;;
&__Q1%JJLQr5   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   ri  r    @  X  r  g_7	j$rO  )r9   r  r  r   rq   rX   r  r  rb  resultrS   s          r3   r  TestHypergeom.test_logsfM  sv     &&qQ2Fa8&&qQ2 Fb9r5   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   ri  r  r  rM  r  g*@VrO  }      r}  gר)r  r  r  )r9   r  r  r   rf   r   fullr  s          r3   r   TestHypergeom.test_logcdfe  s    ''a3Fa8 ''a3&Fb9''a3 Fb9
 HH\"''a377112Fb9r5   c                 t    SnSnSn[         R                  R                  XU5      nX!-  U-  n[        XE5        g )Nip iP i.  )r9   r  r   r   )rq   r  r  rb  hmrms         r3   test_mean_gh18511TestHypergeom.test_mean_gh18511  s<     __!!!*UQYr5   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 )Nr\   r   r   rO  r  r    r   )rf   r$  r9   r  r   r   diff)rq   r  rb  r  population_sizer  s         r3   test_sf_gh18506TestHypergeom.test_sf_gh18506  sz     IIaq&OOq1uo!<vva!e}}}vvbggaj1n%%%%r5   r;   N)r  r  r  r  rF  rZ  r  r  r  r  r  r  r   r  r   r  r  r  r	  r;   r5   r3   r  r    sU    	9>FL<&
:0,:\	  [[	& 	&r5   r  c                   L   \ 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  z	x, c, cdf))r    rc   g;Y%?)r      gRٲa6_<)gHrJ  gi|e?)rJ  g6l?)i+rY   g֬CCf9)ir   g ֺlc                     [         R                  R                  X5      n[        XCSS9  [         R                  R	                  X25      n[        XQSS9  g r   )r9   loggammarn   r   r   )rq   r[   r  rn   r  ys         r3   r  TestLoggamma.test_cdf_ppf  s@     NNq$U+NNs&5)r5   zx, c, sf))r   r  gQOu3;)   r]   g\Z{0)r  rJ  geɐ?)ig{Gzd?gr0T?c                     [         R                  R                  X5      n[        XCSS9  [         R                  R	                  X25      n[        XQSS9  g r   )r9   r  r   r   r  )rq   r[   r  r   rH   r  s         r3   r  TestLoggamma.test_sf_isf  s@     NNa#E*NNr%5)r5   c                 Z    [         R                  R                  SS5      n[        USSS9  g )Nrc   g     @r   r   )r9   r  r   r   )rq   lps     r3   r  TestLoggamma.test_logpdf  s&    
 ^^""4+G%0r5   c                 b    SnSn[         R                  R                  X5      nSn[        X4SS9  g )NrB        @gI.r  r   )r9   r  r  r   )rq   r[   r  r  r  s        r3   r   TestLoggamma.test_logcdf  s/    &&q,%%0r5   c                 b    SnSn[         R                  R                  X5      nSn[        X4SS9  g )Ng      9      @g!{1+ҷr  r   )r9   r  r  r   )rq   r[   r  r  r  s        r3   r  TestLoggamma.test_logsf  s/    $$Q*#/r5   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ŏrB  rf  g	h"lxgQ?gZd;333333@r@  g{/L@g??gгYҿgh|?5?r   r   msvkr  r   ri  )rf   r   reshaper9   r  r   )rq   tabler  r   varskewkurtcomputeds           r3   r   TestLoggamma.test_stats  sg       
 wr1~ 	 ).$AS~~++Av+>H%hs$0G./1 ).r5   r  rY   rJ  c                    [         R                  R                  US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   rK  r  )confidence_levelr|   )r9   r  r   rf   isfiniter   median	binomtestcount_nonzeror   proportion_cir#  r$  )rq   r  r[   medbtestcis         r3   rZ  TestLoggamma.test_rvs  s     NNqv. {{1~!!#### nn##A& 0 0 93q6B  % 8vv%bgg%%%%%r5   r  ))r  g3H໱k3@)r    rz  )r  g8,[H^}	)r  g90$)r  gtum\c                 T    [        [        R                  R                  U5      USS9  g r  )r   r9   r  rA   r  s      r3   r  TestLoggamma.test_entropy	  s     	..q13UCr5   r;   N)r  r  r  r  r   r  r  r  r  r  r   r  r   rZ  r  r	  r;   r5   r3   r  r    s     [[[EF*F* [[ZBC
*C
*1101 [[S3,/& 0& [[X<=	D=	Dr5   r  c                   `    \ 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  rR  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   r9   	johnsonsur   r  rq   rR  r[   r1   r2   r   tols          r3   r  TestJohnsonsu.test_sf_isf%	  F    aS**13ReD++B15qCr5   r;   N
r  r  r  r  casesr   r  r  r  r	  r;   r5   r3   r  r  	  s0    ;E [[VU+D ,Dr5   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  r]  )r  r    r    g0jA:r  )r  r    r    gQbF5r  rR  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   r9   r4  r   r  r  s          r3   r  TestJohnsonb.test_sf_isf;	  r   r5   r;   Nr  r;   r5   r3   r  r  ,	  s0    =E [[VU+D ,Dr5   r  c                       \ 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)TestLogisticiB	  c                     [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[        X5        g Nr  rD  )rf   rk  r9   logisticrn   r   r   rq   r[   r  r  s       r3   r  TestLogistic.test_cdf_ppfD	  sB    KKR NNq!^^"r5   c                     [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[        X5        g r
  )rf   rk  r9   r  r   r  r   r  s       r3   r  TestLogistic.test_sf_isfJ	  sB    KKR NNa ^^"r5   c                     SnSn[        [        R                  R                  SU-
  5      U5        [        [        R                  R	                  U5      U5        g )Ng      <gg|EA@r    )r   r9   r  r   r  )rq   r  desireds      r3   test_extreme_values TestLogistic.test_extreme_valuesP	  sB    !#**1q517;**1-w7r5   c                 b    [         R                  R                  / SQ5      n/ SQn[        XSS9  g )N)r  r   r\   )gm\  .g9B.gO& $r   r   )r9   r  r   r   )rq   r  rS   s      r3   test_logpdf_basicTestLogistic.test_logpdf_basicW	  s)    ~~$$\2) 	U3r5   c                 b    [         R                  R                  SS/5      n[        USS/5        g )Nr{   r  )r9   r  r   r   rq   r  s     r3   test_logpdf_extreme_values'TestLogistic.test_logpdf_extreme_values_	  s*    ~~$$c4[1 	TD$<(r5   zloc_rvs,scale_rvs)g9x&?gi '?)gB"?gs^&?c                     [         R                  R                  SX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 )Nr]   r   ra   rb   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    rc   )r   rf   r  r   )inputr   r1   r2   r  x1x2s          r3   r  #TestLogistic.test_fit.<locals>.funck	  s    DAD	AA~.RVVTXN335 689A>B$(a&&$(a014&&$(a01467 8:;<B 6Mr5   r  rM  r   )r9   r  r   r%   	_fitstartr[   r   r   )rq   loc_rvs	scale_rvsr   r  expected_solution
fit_methods          r3   test_fitTestLogistic.test_fite	  sr     ~~!!s!I	 !u~~'?'?'EM A 	^^''-
 	
EBr5   c                     [         R                  R                  SSSS9n[        [         R                  U5        [        [         R                  USS9  [        [         R                  USS9  g )Nr]   r|   rc   r  r    r   r   )r9   r  r   r   rq   r   s     r3   test_fit_comp_optimizer$TestLogistic.test_fit_comp_optimizer}	  sK    ~~!!s1!=%ennd;%enndC%ennd1Er5   
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     rM  r}  )     g      g%h9fg?~T}%mgCx^&ْV瞯<r   )rf   r   r9   r  r  r  r   )rq   r/  r[   r  rS   s        r3   test_logcdfsf_tails TestLogistic.test_logcdfsf_tails	  sR     HH01%%a(A$$aR(AF%0r5   c                     [         R                  " / SQS/S-  -   S/S-  -   5      n[        [        R                  U5        g )N)	i5%   +   rc  rc  0   6   7   :   ;   r   =   rm  )rf   r   r   r9   r  r,  s     r3   test_fit_gh_18176TestLogistic.test_fit_gh_18176	  sA     xx>$(#&(TAX. / 	&ennd;r5   r;   N)r  r  r  r  r  r  r  r  r  r   r  r  r(  r-  r4  r?  r	  r;   r5   r3   r  r  B	  s    84) [[03J3K3M NCNC,F [[\D%=91 :1<r5   r  c                   ,    \ rS rSrS rS rS rS rSrg)
TestLogseri	  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestLogser.setup_method	  rH  r5   c                 <   [         R                  R                  SS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5      n[        U[        5      (       d   e[         R                  " S5      R                  S5      n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   eg )Nr   rL  rK  r    rN  r   )r9   logserr   rf   r   rR  r   rS  r   rT  rw  rx  rW  s      r3   rZ  TestLogser.test_rvs	  s    ||73vvdai    xx~(((zz)L"9999llt$#s####ll4 $$Q'#rzz****yy~~<!8888r5   c                 \    [         R                  R                  SS5      n[        US5        g )Nr   r  g&Y3)r9   rF  ra  r   rq   r  s     r3   test_pmf_small_pTestLogser.test_pmf_small_p	  s$    LLQ& 	7#r5   c                 Z    [         R                  R                  S5      n[        US5        g )Nr  gW  ?)r9   rF  r   r   rI  s     r3   test_mean_small_pTestLogser.test_mean_small_p	  s"    LLd# 	;'r5   r;   N)	r  r  r  r  rF  rZ  rJ  rM  r	  r;   r5   r3   rB  rB  	  s    	9$(r5   rB  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      $ rD  rf   r   r   rw   s    r3   r   TestGumbel_r_l.rng	      yy$$T**r5   rO   r$  r   r   r    r%  rY   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 )Nr]   r   ra   rb   r   rc   r   r   )r   r"  r   )	rq   rO   r$  r%  r   r  r   r   r   s	            r3   r-  &TestGumbel_r_l.test_fit_comp_optimizer	  sX     xxSg%(  * v "Q;DL&]DN 	&d9D9r5   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   )rf   r   r   r   )rq   rO   r  zra   rb   s         r3   r(  TestGumbel_r_l.test_fit	  sD     :;;XXa[
 	!3345DAr5   r;   N)r  r  r  r  r   fixturer   r  r  r9   gumbel_rgumbel_lr-  r(  r	  r;   r5   r3   rP  rP  	  s    ^^*%+ &+ [[Vennenn%EF[[Y
3[[[*5[[1#UmeT];=:= 6 4 G
:  [[[ENNA+>,1NNB+?+A BBBBr5   rP  c                      \ rS rSrS rS r\R                  " SS9S 5       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  rf  r  r!  r   r  g?grq@r   r  gffffff?gK~?g      2@g۶m۶m?rB  UUUUUU?gqq?r  r  g%I$I?gQ?gUUUUUU@grq?g88Nb@)r  r  r  r  r9   paretor   rf   r(  r'  r   r  rq   r  rY  rH   rX   s        r3   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 )Ng    eArc   r  r   r`   )r9   rg  r   r   )rq   r[   r2   rb   r  rS   s         r3   r  TestPareto.test_sf$
  s<    LLOOAauO5Ga<$r5   rQ  rR  c                 @    [         R                  R                  S5      $ rD  rU  rw   s    r3   r   TestPareto.rng,
  rW  r5   z2ignore:invalid value encountered in double_scalarsr   r    rc   r   r   r  r   c                    [         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]   r   r2   rb   ra   r   r   p=
ף?)r   r   )r   fix_b)r   fbrc   r   )
r9   rg  r   r   r   r!  rR  rf   r  r  )rq   r   r   r  r   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r3   r(  TestPareto.test_fit0
  sb    ||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"r5   rY   fix_shape, fix_loc, fix_scaleTFr   repeatignoreinvalidc                     [         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]   ro  r   r   r   )r9   rg  r   r   
rq   r   r   r  r   r   r  r   r   r   s
             r3   r   &TestPareto.test_fit_MLE_comp_optimizerL
  s\     ||SI$+   ? "J"L&N%ellDADAr5   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    r]   ið& r   )r9   rg  r   rf   r   r   r   )rq   rR  locationrb   r   s        r3   test_fit_known_bad_seed"TestPareto.test_fit_known_bad_seedb
  sN    
 ")||S-/YY-B-B7-K   M%ellD9r5   c                     [        [        R                  5        [        [        [        R                  R
                  / SQSS9  [        [        [        R                  R
                  / SQSSS9  g )Nr  rc   r   )r   rc   r   r    r   r  )r-  r9   rg  r  r#   r   rw   s    r3   test_fit_warningsTestPareto.test_fit_warningsl
  sC    ELL)lELL$4$4iaHlELL$4$4ia	 r5   c                     [         R                  R                  SSSUS9n[        US5        [         R                  R	                  U5      ng )Ni~r    r]   )ra   r2   r   r   r   )r9   rg  r   r   r   )rq   r   r   r   s       r3   test_negative_dataTestPareto.test_negative_datat
  s?    ||DACcJ$"
 LLT"r5   r;   N)r  r  r  r  r   r  r   r`  r   r  filterwarningsr  r(  r(   rf   errstater   r  r  r  r	  .0r  s   00r3   rd  rd  	  s   :Nx% ^^*%+ &+ [[ !1 2[[[1a&1[[YA/[[[1a&1# 2 0 22
#. [[[2q'2[[YA/[[[1a&1[[<)0$q)I -)IA!&!  )I -. [["B #. 2 0 3B [[": #: #I-s    
F .F rd  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rf  r   r          r|   )	rf   r   r9   	genpareto_get_supportr   r	   isposinfr   )rq   r  r1   r2   s       r3   test_abTestGenpareto.test_ab
  s~    A

1A??//2DABBKKN#	  JJsO++A.S	*r5   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  rJ  rf  r\   )
r9   r  rf   rk  r   re   r  rn   r   r   rq   rvr[   r  s       r3   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6r5   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  rJ  r   rf  r\   r    )r9   r  rf   rk  r   re   uniformrn   r   r   r   r  s       r3   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(r5   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 )NrY   r  r   rf  r  )
r9   r  r   re   rf   r(  rn   r	   isneginfr   rq   r  s     r3   
test_x_infTestGenpareto.test_x_inf
  s   __s#82r(CBIIbff-./__r"82r(CBIIbff-./__s#82r(CBIIbff-./r5   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   r\   rJ  r   r   r   g+r
  r   )r   r   )rf   rk  r9   r  re   r   rn   )rq   r[   r  pdf0dcpdfccdf0cdfcs           r3   test_c_continuityTestGenpareto.test_c_continuity
  s    KK2r"A??&&q,D%**1"f57 & ??&&q,D$**1"f57 % r5   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   rY   baser    rJ  Fendpointrf  )r   r  r  r   )rf   r_  r  rk  r9   r  r   r   )rq   r  r  ppf0r  ppfcs         r3   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 & r5   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  )rf   r_  r  rk  r9   r  r  r   )rq   r  r  isf0r  isfcs         r3   test_c_continuity_isf#TestGenpareto.test_c_continuity_isf
  r  r5   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   rY   r  r    rJ  Fr  rf  )r  gC]r2r   gV瞯Ҽr   r   )	rf   r_  r  rk  r   r9   r  rn   r   )rq   r  r  s      r3   test_cdf_ppf_roundtrip$TestGenpareto.test_cdf_ppf_roundtrip
  s    EE"++eT4++dArE:r{{5$S99: ; /AEOO//0C0CA0I1ME+ /r5   c                 `    [         R                  R                  SSSS5      n[        US5        g )Nr  r   r   r    gpEȜ)r9   r  r  r   r  s     r3   r  TestGenpareto.test_logsf
  s'    $$T31512r5   zc, expected_statsr   )r    r    rc   r  r  rf  gqq@r\   rc   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   r{  )r9   r  r   )rq   r  expected_statsr  s       r3   r   TestGenpareto.test_stats
  s)     &&q&&9UGr5   c                 X    [         R                  R                  S5      n[        USSS9  g )Nr  gvǼ
  ?r   r   )r9   r  r  r   )rq   rY  s     r3   test_varTestGenpareto.test_var
  s#    OO%,59r5   r;   N)r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  rf   r  r'  r   r  r	  r;   r5   r3   r  r  ~
  s    +
7)0888+3 [[
\	
T2bggaj="&&1	2
]T2771:$5v>	?
"	#	%&H&H:r5   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                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestPearson3.setup_method
  rH  r5   c                    [         R                  R                  SSS9n[        R                  " U5      S:X  d   eUR
                  R                  [        S   ;   d   e[         R                  R                  S5      n[        U[        5      (       d   e[         R                  " S5      R                  S5      n[        U[        R                  5      (       d   eUR
                  R                  [        S   ;   d   e[        U5      S:X  d   eg )NrY   rL  rK  AllFloatr|   r   )r9   r,   r   rf   rR  r   rS  r   rT  r   rx  r   rW  s      r3   rZ  TestPearson3.test_rvs
  s    ~~!!#G!4xx~(((zz)J"7777nn  %#u%%%%nnS!%%a(#rzz****yy~~:!66663x1}}r5   c                    [         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 )Nrc   r   rY   r  )gtT?g+q?g?r  r   r.  rY   ND}i?r.  r  r   r   r    )r  gj?gdC?gs?g'M?)r9   r,   re   r   rf   r   r5  s     r3   rc  TestPearson3.test_pdf  s    ~~!!!_5bhh'KL!	#~~!!"c*bhh
|44@~~!!"4c:bhh (@ AGK	Mr5   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 )Nrc   r  )grE?gTp]0?g~?r  r   r.  rY   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r9   r,   rn   r   rf   r   r5  s     r3   rn  TestPearson3.test_cdf  s    ~~!!!_5bhh'KL!	#~~!!"c*zl6~~!!"4c: ?EI	Kr5   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|   rN  r   )r9   r,   rn   r   re   r   )rq   skewsx_evalneg_infr6  r  int_pdfss          r3   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    rc   r   r  )r9   r,   r  r   rT  rf   number)rq   r  s     r3   test_return_array_bug_11746(TestPearson3.test_return_array_bug_11746#  sr     &&q!,VQ&")),,,,&&q(3VQ&")),,,,r5   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  rc   )r9   r,   r   rn   r   rf   r   rk  re   r   r  )rq   r  r  r   r  r[   s         r3   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	7r5   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)rY   r|   rf  皙)rg  r  r  r  )g7>g~׼=gp'+7g;r|  r   r   )r   r9   r,   r   rN  )rq   r  r[   r  s       r3   r  TestPearson3.test_sfA  sZ     %">))!2CeD))!Q/q1ANr5   r;   N)r  r  r  r  rF  rZ  rc  rn  r  r  r  r  r	  r;   r5   r3   r  r  
  s-    	MK	(	-7&	Or5   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)
TestKappa4iM  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   rY   r  r|   rf  )
gffffffr  r   皙ɿr  rY   r  r|   rf  ffffff?)r9   kappa4rn   r  r   rq   r[   r  rX   rX  	vals_comps         r3   test_cdf_genparetoTestKappa4.test_cdf_genparetoN  sL     A<<##A!,D++Ar2ID,r5   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   r\   r   r.  r   )rf   rk  r9   r  rn   
genextremer   r  s         r3   test_cdf_genextremeTestKappa4.test_cdf_genextremeY  s_    KKAr"KKAr"||a($$((.	(r5   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\   rf  r   )rf   rk  r9   r  rn   r  r   r  s         r3   test_cdf_exponTestKappa4.test_cdf_exponb  sN    KK2r"||a(KKOOA&	(r5   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   r\   r   )rf   rk  r9   r  rn   ra  r   r  s         r3   test_cdf_gumbel_rTestKappa4.test_cdf_gumbel_rk  sP    KKAr"||a(NN&&q)	(r5   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   r\   r  r   )rf   rk  r9   r  rn   r  r   r  s         r3   test_cdf_logisticTestKappa4.test_cdf_logistict  sP    KKAr"||a(NN&&q)	(r5   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   r\   rf  )rf   rk  r9   r  rn   r  r   r  s         r3   test_cdf_uniformTestKappa4.test_cdf_uniform}  sP    KKAr"||a(MM%%a(	(r5   c                 2    [         R                  " SS5        g r  )r9   r  rw   s    r3   test_integers_ctorTestKappa4.test_integers_ctor  s     	Qr5   r;   N)r  r  r  r  r  r   r  r  r	  r  r  r	  r;   r5   r3   r  r  M  s%    	-)))))r5   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestPoissoni  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestPoisson.setup_method  rH  r5   c                     [         R                  " S5      n[        R                  R	                  / SQU5      nSUS-  US-  S-  /n[        X#5        g )Nrc   r   r    rc   r|   r   )rf   r  r9   r  ra  r   )rq   ln2rX  rS   s       r3   test_pmf_basicTestPoisson.test_pmf_basic  sE    ffQi}}  C0QQq)'r5   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   )r9   r  ra  r   intervalr   )rq   rX  rS   r  s       r3   test_mu0TestPoisson.test_mu0  sE    }}  A.4*==))$2Xv&r5   c                 <   [         R                  R                  SS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5      n[        U[        5      (       d   e[         R                  " S5      R                  S5      n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   eg )Nr|   rL  rK  r   rN  r   )r9   r  r   rf   r   rR  r   rS  r   rT  rw  rx  rW  s      r3   rZ  TestPoisson.test_rvs  s    }}  7 3vvdai    xx~(((zz)L"9999mm$#s####mmC $$Q'#rzz****yy~~<!8888r5   c           	         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  rf  )r   rf  r   r    rc   r|   )r9   r  r   rf   r  r   r(  )rq   r  r  rS   s       r3   r   TestPoisson.test_stats  s    $$R$8RR#b& ABXXo&$$R$8RVVQ"''!*537GH)r5   r;   N)
r  r  r  r  rF  r  r  rZ  r   r	  r;   r5   r3   r  r    s    ('	9*r5   r  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)	TestKSTwoi  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestKSTwo.setup_method  rH  r5   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    rc   r   r\   r]   r   r   r|   r    rf  rc   r   )rf   r   r8   r   gammalnr   r9   ksoner   r1  kstworn   r   )rq   r  r[   v1lgelgrS   r  s           r3   rn  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/# *r5   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|   rf  rc   )rf   rk  r   r8   r   r*  r   r9   r+  r   r!  r,  r   )rq   r[   r  r-  r.  r/  rS   r>  s           r3   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. *r5   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   rc   r  r    )rM  r]   r  i  r   r   r  )rf   rk  r  r9   r,  rn   r  r   )rq   r[   ns_xxnprobsdiffss          r3   test_cdf_sqrtnTestKSTwo.test_cdf_sqrtn  sg    
 KK1b!!"%,Bbggbk!BKKOOB+EGGENEeT*	 r5   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)  )rf   rk  r9   r,  rn   r   r   )rq   r[   r  r  r>  s        r3   r  TestKSTwo.test_cdf_sf  sP    KK1b!)A{{q,HkknnQ*G%hG< *r5   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<  )rf   rk  r  r9   r,  rn   r   r   )rq   r[   r  r6  r  r>  s         r3   test_cdf_sf_sqrtnTestKSTwo.test_cdf_sf_sqrtn  sa    KK1b!)ARWWQZB{{r-HkknnR+G%hG<	 *r5   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   )rf   rk  r9   r,  rn   r   r   rq   r[   r  r6  r  condrX  s          r3   test_ppf_of_cdfTestKSTwo.test_ppf_of_cdf  ss    KK1b!)As1u9B{{r-HLX_5D;;??8/DDJt< *r5   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|   rf  r  r   )rf   rk  r9   r,  r  r   r   )rq   r[   r  r6  vals_isfrC  rX  s          r3   test_isf_of_sfTestKSTwo.test_isf_of_sf  ss    KK1b!)As1u9B{{r-HLX^4D;;>>(.DDJt< *r5   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|   rf  )rf   rk  r  r9   r,  rn   r   r   rB  s          r3   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 *r5   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  )rf   rk  r  r9   r,  r   r  r   )rq   r[   r  r6  r>  rC  rX  s          r3   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 *r5   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<  )rf   rk  r9   r,  r   rn   r   )rq   r7  r  r6  r  s        r3   r$  TestKSTwo.test_ppf  sQ    Aq"%ab))A*B{{r-HH, *r5   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)r\   rM  r]   r  r}  r   )r  gUUUUUU?r|   r    rc   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?rc   r  r   )
rf   r   	enumerater  r  rg   r9   r,  rn   r   )rq   r4  ratiosrS   idxr  r[   r  s           r3   test_simard_lecuyer_table1$TestKSTwo.test_simard_lecuyer_table1&  s     +8988------
   mFC"RWWRUU1WQY%77A{{q,HHsm$? $r5   r;   N)r  r  r  r  rF  rn  r  r9  r  r?  rD  rH  rK  rN  r$  rV  r	  r;   r5   r3   r%  r%    s?    0(/+====22-@r5   r%  c                   &    \ rS rSrS rS rS rSrg)TestZipfiH  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestZipf.setup_methodI  rH  r5   c                 <   [         R                  R                  SS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5      n[        U[        5      (       d   e[         R                  " S5      R                  S5      n[        U[        R                  5      (       d   eUR                  R                  [        S   ;   d   eg )Nr  rL  rK  r    rN  r   )r9   zipfr   rf   r   rR  r   rS  r   rT  rw  rx  rW  s      r3   rZ  TestZipf.test_rvsL  s    zz~~c~0vvdai    xx~(((zz)L"9999jjnnS!#s####jjo!!!$#rzz****yy~~<!8888r5   c                 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@r1   rp  skr1   r  )r9   r]  r	   rf   r  r   r(  r   rh  s        r3   rY  TestZipf.test_momentsW  ss    zz#&AQzz#t4BKK'++--.r5   r;   N)r  r  r  r  rF  rZ  rY  r	  r;   r5   r3   rY  rY  H  s    	9/r5   rY  c                   ,    \ rS rSrS rS rS rS rSrg)TestDLaplaceia  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestDLaplace.setup_methodb  rH  r5   c                 @   [         R                  R                  SSS9n[        R                  " U5      S:X  d   eUR
                  R                  [        S   ;   d   e[         R                  R                  S5      n[        U[        5      (       d   e[         R                  " S5      R                  S5      n[        U[        R                  5      (       d   eUR
                  R                  [        S   ;   d   e[         R                  R                  S5      c   eg )Nr  rL  rK  rN  r   r   )r9   dlaplacer   rf   rR  r   rS  r   rT  rw  rx  rW  s      r3   rZ  TestDLaplace.test_rvse  s    ~~!!#G!4xx~(((zz)L"9999nn  %#s####nnS!%%a(#rzz****yy~~<!8888~~!!#&222r5   c                 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 )Nrf  r  r7  r    rc   r   r  r!  r   r  r  )r9   rj  rf   r$  ra  r  r   r   )rq   r1   dlr  rY  rH   rX   rb  r  ppm2m4s               r3   r   TestDLaplace.test_statsp  s    ^^AXXf%
aYYr1Q3VVBZq5!266"U(#3BaVV$AX] 3%dKr5   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   )rB        
@)rf   r  r9   rj  r   r   )rq   r1   rm  r  rY  rH   rX   s          r3   test_stats2TestDLaplace.test_stats2}  sG    FF2J^^AXXf%
aaVX&
+r5   r;   N)	r  r  r  r  rF  rZ  r   rt  r	  r;   r5   r3   rf  rf  a  s    	3L,r5   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U =r$ )TestInvgaussi  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestInvgauss.setup_method  rH  r5   zrvs_mu,rvs_loc,rvs_scale)rc   r   r    )g
ףp=@g r@gʡE6@c                    [         R                  R                  SUX#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#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 )Nr]   )r   r  ra   rb   r   r   r   r  r    r  rp  )fmur   )fix_mur   )
r9   r2  r   r   rf   r   r   r  r   r   )rq   rvs_mur   r  r   r  ra   rb   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r3   r(  TestInvgauss.test_fit  s    ~~!!sv&- " @ ++D+?~''$-Ir
Wr](B!CD	" 	U;	u5AS"~~!!sv&- " @ ++D{3<q= , BY]E*Wq[#& ^^''$'7:
^^''T':1=
^^'''6q9
=:======r5   )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                  XR[         R                  R                  S5      S   S	9  g )
Nr   r]   )r   r  ra   rb   r   r   rc   )r   r{  r   r    r  )rf   r   rN  r9   r2  r   r  r  r   r   r   r   rand)
rq   r~  r   r  r   r   	super_fitsuper_fittedinvgauss_fit	__class__s
            r3   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-/YY^^A->q-A	Cr5   c                     [        [        R                  5        [        R                  " [
        5         [        R                  R                  / SQSS9  S S S 5        g ! , (       d  f       g = fr  )r-  r9   r2  r   r   r#   r   rw   s    r3   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  rJ  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r9   r2  rn   r   r   r   )rq   r  rS   rN   
cdf_actual	sf_actuals         r3   r  TestInvgauss.test_cdf_sf  s    ."##CB#/X& ^^''$'7

$9:NN%%cd%3		#78 ##GV4 34 ##Hf5 12r5   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^ߺrJ  gpgFgpQ^L)r9   r2  r  r   r  )rq   r  r  s      r3   r  TestInvgauss.test_logcdf_logsf  s     &&v$&7 12&&sD1 56$$Ut$456$$S$/01r5   zmu, ref))r  g,9)rJ  g%!)r   g40)r   gK'
@)r  g`p
@c                 T    [        [        R                  R                  U5      USS9  g r  )r   r9   r2  rA   )rq   r  r  s      r3   r  TestInvgauss.test_entropy  s     	..r2CeDr5   r;   )r  r  r  r  rF  r   r  r  r(  r   r  r  r  r  r	  __classcell__r  s   @r3   rw  rw    s     [[7')>?A>A>: [[7')>?A CA CD2!3F2. [[Y )D E
EE
Er5   rw  c                   b    \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rSr	g)
TestLandaui  name)re   rn   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   rY   r   r   r  r\   r    r   r   )rf   rk  r=  r9   landaulevy_stabler   )rq   r  r[   landau_methodlevy_methodr   r  s          r3   test_landau_levy_agreement%TestLandau.test_landau_levy_agreement  s    
 >!Ca()AB2&'Ad3e//6Q#1#a##u-r5   c                     [        [        R                  R                  SS9[        R                  4S-  5        [        [        R                  R                  S5      [        R                  5        g )Nr  r  r   r   )r   r9   r  rf   r'  r  rw   s    r3   rY  TestLandau.test_moments&  sE    U\\'''7"&&1EU\\((+RVV4r5   r;   N)
r  r  r  r  r   r  r  r  rY  r	  r;   r5   r3   r  r    s,    [[V%GH. I.5r5   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$ )TestLaplacei,  r   )r  r   r    rc   r  )r    rc   r   r\   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   r]   r[  r   r  r   r+  rc   r  )rf   r   rN  r9   r  r   r  r  r   r   r   r   r   r  r%  r&  r'  r(  )	rq   r   r  r   r   loc_mler  ra   rb   s	            r3   r(  TestLaplace.test_fit-  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>r5   rvs_loc,rvs_scale))r  r\   r\   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   rc   r    )r   rf   r  r  r   )ra   rb   r   s      r3   ll3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.lle  sM    CI%8E'266"&&*<#==> ? ?r5   r   r  )
rf   r   rN  r9   r  r   r   r  r  r  )rq   r   r  r   r   r  ra   rb   loc_opt	scale_optll_mlell_optr  s               r3   r   'TestLaplace.test_fit_MLE_comp_optimizer\  s     ii##D)}}  d.1 ! 3	? ]]&&t,
"4#6#(==66:) 	C%G-"++f38u#F 	F F #Fr5   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)rf  rf  r!  rg  r  rK  r  r   r   r   r  r+  )rf   r   r9   r  r   r   )rq   r   ra   rb   s       r3   test_fit_simple_non_random_data+TestLaplace.test_fit_simple_non_random_datas  sc    xx78]]&&t!&4
qu59]]&&tA&6
QU7r5   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   rf  )r9   r  rn   r   )rq   r[   p0p1s       r3   test_sf_cdf_extremes TestLaplace.test_sf_cdf_extremes|  s    ]]r" Syy ]]q!Syy]]a  Syy ]]qb!Syyr5   c                     Sn[         R                  R                  U5      n[        U[        R
                  " U* 5      S-  SS9  g )Nr  rc   r   r   )r9   r  r   r   rf   r   )rq   r[   r  s      r3   r  TestLaplace.test_sf  s5    MMQ2661":a<e4r5   c                     Sn[         R                  R                  U5      n[        U[        R
                  " SU-  5      * SS9  g )Ng}:rc   r   r   )r9   r  r  r   rf   r  )rq   r  r[   s      r3   r  TestLaplace.test_isf  s5    MMa BFF1Q3K<e4r5   c                     SnSn[         R                  R                  U5      n[        X25        [         R                  R	                  U* 5      n[        XBSS9  g )Nr  g$ICr  r   )r9   r  r  r   r  r  s        r3   r  TestLaplace.test_logcdf_logsf  sH    %%%a($##QB'/r5   r;   )r  r  r  r  r   r  r  r(  r   r  r  r  r  r  r	  r  r  s   @r3   r  r  ,  s    [[Y6[[[-8+? 9 7+?Z [[0 3? @F@F(8*5
5
0 0r5   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!  rg  )r  r    4&kC)g ?gKH9gXrL0r   r   )rf   r   r   r9   
loglaplacer   )rq   r  r[   r  s       r3   r  TestLogLaplace.test_sf  sC     HH_%HH'(+((++A13UCr5   c                 h    Sn/ SQn/ SQn[        [        R                  R                  X!5      USS9  g )Nrs  )r   rY   r  r  r  )gHhlh#?gH]9@?g"fj#@g11Ags!8wBr   r   )r   r9   r  r  )rq   r  r  r  s       r3   r  TestLogLaplace.test_isf  s2     +6((,,Q2CeDr5   r  r    rc   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  )	rf   r$  r   r9   r  r  r(  r  r  )rq   r  momr  s       r3   test_moments_stats!TestLogLaplace.test_moments_stats  s}    QUmIIc1s7C( 	((//5rvv> 66"++e&6&6&<&<Q&<&LMNNNNNr5   r  )r|   rf  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   r]   r  r   fcr   r   r   r  r  )rf   r   r   r9   r  r   r   r   r   r%  r&  r   r   )rq   r  ra   rb   r  r  r   r   r   nfreer  s              r3   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$r;   N)r  r  r  r  r  r  r   r  r  r  r  r	  r;   r5   r3   r  r    s    DE [[S,/O 0O [[S/2[[\L>:[[WtUm4[[[4-8F 9 5 ; 3Fr5   r  c                      \ 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   r9   powerlawr   )rq   r[   r1   r   s       r3   r  TestPowerlaw.test_sf  s     	))!/%@r5   rQ  rR  c                 @    [         R                  R                  S5      $ rD  rU  rw   s    r3   r   TestPowerlaw.rng  rW  r5   r   )rY   r|   r   r    rc   r   rX  r  rY  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   r1   ra   rb   r   r   r   r   r  T)	r9   r  r   r"  rf   	nextafterr!  r(  r   r  s
             r3   r   (TestPowerlaw.test_fit_MLE_comp_optimizer  s     ~~!!si(1 " E v"J<<
RVVG<DL&N 	&ennd 	<d 	<6:	<r5   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@r]   r   )r1   ra   rb   r   r   r   rc   )r9   r  r   rf   r   r   ptpr   )rq   r1   r  rb   r   r   s         r3   test_problem_caseTestPowerlaw.test_problem_case  sq     #"~~!!A5s/1yy/D/DQ/G " I "&&,*+%enndCdCr5   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    rc   r   r   r   r  rc   r   r    z$Negative or zero `fscale` is outsider.  r+  z0`fscale` must be greater than the range of data.)r-  r9   r  r  r#   r   r&  r  s     r3   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    rc   rc   r   r   r   r   r   r   r   r  r  over)r9   r  rf   r  r   )rq   r   rO   s      r3   test_minimum_data_zero_gh17801+TestPowerlaw.test_minimum_data_zero_gh17801-  s2     4~~[[h')$5 (''s	   >
Ar;   N)r  r  r  r  r   r  r  r  r`  r   r(   r   r  r  r  r	  r  s   00r3   r  r    s	    [[Z1HJKAKA ^^*%+ &+ [[[*=>[[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)TestPowerLogNormi6  zx, c, s, ref))r]   rD  r    ga!R()rJ  rD  r    g;?)rJ  r  r    gE?)MDr  r    g=c                 V    [        [        R                  R                  XU5      USS9  g r   )r   r9   r9  r   rq   r[   r  rH   r  s        r3   r  TestPowerLogNorm.test_sfG  s#     	**--aA6%Hr5   zq, c, s, ref)g?r  r    r   )gR4-rD  r    r   c                 V    [        [        R                  R                  XU5      USS9  g )Ng|=r   )r   r9   r9  r  )rq   r  r  rH   r  s        r3   r  TestPowerLogNorm.test_isfQ  s#     	**..qQ75Ir5   ))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   r9   r9  rn   r  s        r3   rn  TestPowerLogNorm.test_cdfW  s#     	**..qQ75Ir5   ))r  r  r    gS^Ռe9)@xDrJ  r    g0g;)g\)c=HrJ  r    g7H7c                 V    [        [        R                  R                  XU5      USS9  g )NgAfc=r   )r   r9   r9  re   r  s        r3   rc  TestPowerLogNorm.test_pdfj  s#    
 	**..qQ75Ir5   r;   N)r  r  r  r  r   r  r  r  r  rn  rc  r	  r;   r5   r3   r  r  6  s    " [[^EF
IF
I
 [[^ACEFJFJ [[^AB
JB
J [[^GHJ	HJr5   r  c                       \ 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)TestPowerNormir  r  ))rm  r    g| <)rD  rc   ge()r]   r  g%!@6)r  r   gT;-c                 T    [        [        R                  R                  X5      USS9  g r   )r   r9   	powernormr   r  s       r3   r  TestPowerNorm.test_sfz  s     	**10#EBr5   r  ))r  rD  gĿ)gwJ?r]   g!X)r  r  g缂U)r|  r  gͫ1@)r  rc   gD@)Jz5r   gU!zYr@c                 T    [        [        R                  R                  X5      USS9  g Nr  r   )r   r9   r  r  r  s       r3   r  TestPowerNorm.test_isf  s     	++A13UCr5   ))irm  g.u	T9)rc   rm  ?)r  rm  gsK-)r  r  gk8>)r  r  g^u1-c                 T    [        [        R                  R                  X5      USS9  g r  )r   r9   r  rn   r  s       r3   rn  TestPowerNorm.test_cdf  s     	++A13UCr5   r;   N)r  r  r  r  r   r  r  r  r  rn  r	  r;   r5   r3   r  r  r  s     [[[CD
CD
C [[[=>D>D [[[BCDCDr5   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 @)rE  @gffffff@)r  gEy?gў3oz?g^Yb?g,r?gOD@g2*Z@gFN8@)r  r  r  r  r9   r1  r   rf   r(  r'  r#  r   )rq   r  rS   r1   r[   r  s         r3   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    )rf   r  r9   r1  rn   r   r   r  s       r3   r  TestInvGamma.test_cdf_ppf  sF    KKa NNq!$^^1%r5   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        rc   r]      r    rf  r   )	sysmaxsizerf   r  r9   r1  r   r  r   r  s       r3   r  TestInvGamma.test_sf_isf  sf    ;;As#A Ar"ANNa#^^1%C(r5   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Nr  r  gM$r  r   )r9   r1  r  r   rq   r[   r1   r  r  s        r3   r   TestInvGamma.test_logcdf  s/    #&&q,%0r5   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Nr   r  grطr  r   )r9   r1  r  r   rq   r[   r1   r  r  s        r3   r  TestInvGamma.test_logsf  s/    $$$Q*/r5   a, ref)r   g70K6:)r  gVMOuc                 T    [        [        R                  R                  U5      USS9  g r   )r   r9   r1  rA   rq   r1   r  s      r3   test_large_entropyTestInvGamma.test_large_entropy  s     	..q13UCr5   r;   N)r  r  r  r  r  r  r  r   r  r   r  r  r   r	  r;   r5   r3   r  r    sM    *&)10 [[X?:<=	D=	Dr5   r  c                   ,    \ 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)rc   r    rf  )r9   fre   r1   r   )	rq   r   _f_args_correctansr   	_correct_corrects	            r3   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  )r9   r%  r	   rf   r  rh  s        r3   test_f_momentsTestF.test_f_moments  sa    WW]]2sF];
aAAABKKN"#r5   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   )rc   r   r  r   r  dfndfdr  )r  r  r  r  r9   r%  rw   s    r3   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  rh  r  r2  rc   r   r   r  r      )rf   r   r9   r%  r   r  )rq   r3  r4  r  rY  rH   rX   ro  v2s2k2numk2denk2s                r3   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}=]r5   r;   N)	r  r  r  r  r  r/  r5  r>  r	  r;   r5   r3   r#  r#    s    0$Hr5   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)TestStudentTi  c                 ^    [        [        R                  R                  SS/5      SS/5        g )Nr   r  g?g?)r   r9   r  r  rw   s    r3   test_rvgeneric_stdTestStudentT.test_rvgeneric_std  s"    !%''++q!f"5
J7OPr5   c                 p   [        [        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5        g )Nr    r  )r  r  )\(?r   rc   gGz @g     i@r   rb  gGz@r   g
ףp=
@)r   gq    @)r   r9   r  rf   r(  r'  rw   s    r3   test_moments_tTestStudentT.test_moments_t  sX   UWW]]a]8VVRVVRVVRVV4	6UWW]]dF];"&&"&&"&&1	3UWW]]a]8"&&"&&"&&1	3UWW]]dF];/266266:	<UWW]]a]68HIUWW]]dD]9C=IUWW]]a]6bffFUWW]]dD]9;RSr5   c                 d    / SQn/ SQn[        [        R                  R                  U5      USS9  g )N)r    rc   r  r]   )g?@gTM]?ggY?U?r   r   r   r9   r  rA   )rq   r  rS   s      r3   test_t_entropyTestStudentT.test_t_entropy+  s'    ;+XEBr5   zv, ref)r]   rJ  )r  r  c                 T    [        [        R                  R                  U5      USS9  g r  rK  )rq   rY  r  s      r3   test_t_extreme_entropy#TestStudentT.test_t_extreme_entropy2  s     	*Ce<r5   methname)re   r   rn   r   r   r  
df_infmaskr   r    )r   r    r   )r    r    r    c                 n   [         R                  R                  S5        [         R                  " U[        S9n[         R                  R                  SSUR                  S9n[         R                  R                  " UR                  6 n[         R                  X2'   [        R                  " USSS9n[        R                  " X2)    SSS9n[        R                  " SSS9n[        XQ5      n[        Xa5      n	[        Xq5      n
U" U5      n[        X   U
" XB   5      5        [        X)    U	" XB)    5      5        g )	Nr   r   r\   rK  r   r    r  ra   rb   r`   )rf   r   r   r   boolr  rR  randnr(  r9   r  rN  r=  r   )rq   rQ  rR  r  r[   t_dist
t_dist_ref	norm_distt_meth
t_meth_ref	norm_methr   s               r3   test_t_inf_dfTestStudentT.test_t_inf_dfC  s     			qZZ
$7
YYq":+;+;<IIOOZ--.BAQ/WW;Qa@
JJ1A.	*Z2
I0	QiS_i&>?S%z!K.'ABr5   c                    [         R                  R                  S5        [         R                  " U[        S9n[         R                  R                  SSUR                  S9n[         R                  X!'   [        R                  R                  USSSS9n[        R                  R                  SSSS	9n[        R                  R                  X!)    SSSS9n[        S
5       H*  n[        X6   U   XF   5        [        X6   U)    XV   5        M,     [        R                  R                  USSS9n[        R                  R                  SSS9n[        R                  R                  X!)    SSS9n[        X1   U5        [        X1)    U5        g )Nr   rT  r\   rK  r   r    r  )r  ra   rb   r  ra   rb   r  r   rU  r`   )rf   r   r   r   rV  r  rR  r(  r9   r  rN  r  r   rA   )rq   rR  r  r   
res_ex_infres_ex_noinfr  s          r3   test_t_inf_df_stats_entropy(TestStudentT.test_t_inf_df_stats_entropyY  sI   
 			qZZ
$7
YYq":+;+;<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%|4r5   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  r\   r    )r  d~QJr  r    )gZ_2g9g!ǟuIgdg)g73?r   gմFhAW;gm0_?r   r   )r   r9   r  r   re   )rq   r[   r  
logpdf_refpdf_refs        r3   test_logpdf_pdfTestStudentT.test_logpdf_pdfp  sO     #@
>q-zFA*G%@r5   
x, df, ref))g     RrO  guSaG)r   rO  r  )     R@rO  gGn`?c                     [         R                  R                  X5      n[        XCSS9  [         R                  R	                  U* U5      n[        XSSS9  g r  )r9   r  r  r   r  )rq   r[   r  r  r  r  s         r3   r  TestStudentT.test_logcdf_logsf~  s@    
 &%0qb"%/r5   r;   N)r  r  r  r  rC  rG  rL  r   r  r  rO  r^  rd  rj  r  r	  r;   r5   r3   rA  rA    sU   QTC [[X68:;=;= [[Z *< =[[\QFQFQF-6	,B./VaV,<./S1#J,8 9C	9=C  [[\QFQFQF-6	,B./VaV,<./S1#J,8 95	95&
A [[\CD0	D0r5   rA  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                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestRvDiscrete.setup_method  rH  r5   c                    / SQn/ SQnSn[         R                  " SX4S9nUR                  U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                  5       n[        R                  " [        U5      [        R                  5      (       d   eg )N)r   r   r    rc   r   r   )r   r  r  r   r  r   r   sample)r  valuesrK  r|  )r9   r>   r   rT  rf   rx  r#  r   r  r   r   r  integer)rq   statesprobabilitysamplesr  r[   rH   r  s           r3   rZ  TestRvDiscrete.test_rvs  s    $48V4IJEEwE!RZZ((((,DAs16{5>1A56=== - EEG}}T!Wbjj1111r5   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  rq  r  r  rv  )rf  r   r   r   )	rf   r   r9   r>   r  r   rA   r   r   )rq   r<  r  r  r  s        r3   r  TestRvDiscrete.test_entropy  su    *+i%78%-..
IIK&i%=>IIKQr5   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}  rf  rB  r!  rc   r|   r  r   r  r   r   )r9   r>   r   ra  )rq   xkpkr  r[   s        r3   r  TestRvDiscrete.test_pmf  s[    rh/"X!Wq	sc$*/	1r5   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  rf  rE  r  r   r!  r   r   )r   r|   r|   r|   r   r   r    r    r   r   )r9   r>   r   rn   )rq   r  r  r  x_valuesrS   r  s          r3   rn  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}  )rY   r|   r  r   r   rf  )r    r    rc   rc   r   r   r   r   )r9   r>   r   r   )rq   r  r  r  q_valuesrS   r  s          r3   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    rc   r   r  r   )rY   r  r  r  rY   r}  r   r  r    )r9   r>   r   r   rn   r  )rq   rX  r  s      r3   test_cdf_ppf_next TestRvDiscrete.test_cdf_ppf_next  sU    !:;d+266"&&s"4t";<559	&r5   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 )Nrh  )r   r   )rY   rY   r  r|  )rY   rY   r|  r|  r}  r   r   )rf   r$  r  r   r9   r>   r   r   r  r  r  rq   r  r  r  s       r3   test_multidimension"TestRvDiscrete.test_multidimension  sq    YYr]""6*XX---/ 0 rh/		RVVBEEBEEM%:Gr5   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    rc   r   r   r   )r  r  r  r  r  r    )r  r&  r9   r>   r"  rq   r  r  s      r3   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Mr5   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   rc   rc   rc   r   gUUUUUU?r}  r  r   rc   r   )rf   r$  r  r  r  r&  r9   r>   r"  r   ra  r  s      r3   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>Dr5   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    rc   r   r  r  r  )rY   r  r  r  r  rY   r}  r   r   )r9   r>   r   r   rf   r  r  r  r  s       r3   test_expect1TestRvDiscrete.test_expect1  sE     +rh/		RVVBEEBEEM%:Gr5   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     @rY  g     h@g     0@g     @g     @g     @g     P@g     @g     @g     @rZ  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ru   r;   r  rY  ws      r3   	<genexpr>.TestRvDiscrete.test_expect2.<locals>.<genexpr>'  s     9jdaAEjs   c                     U S-  $ Nrc   r;   r   s    r3   rI   -TestRvDiscrete.test_expect2.<locals>.<lambda>*      AqDr5   c              3   6   #    U  H  u  pUS -  U-  v   M     g7f)rc   Nr;   r  s      r3   r  r  +  s     <AqD1Hs   )r9   r>   r   r   r   r  r#  )rq   r  pyr  s       r3   test_expect2TestRvDiscrete.test_expect2  s    =?  qg. 			RWWYU;		9c!j99	G 			.1<Q<<5	Jr5   r;   N)r  r  r  r  rF  rZ  r  r  rn  r$  r  r  r  r  r  r  r	  r;   r5   r3   rq  rq    sC    2
	1..&HN(EH#Jr5   rq  c                        \ rS rSrS rS rSrg)TestSkewCauchyi.  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   r]   r   ra  )	rf   rk  r   r9   
skewcauchyre   r  rn   r   r  s     r3   test_cauchyTestSkewCauchy.test_cauchy/  s    KKAs#!%"2"2"6"6qA"6">"',,"2"21"5	7!%"2"2"6"6qA"6">"',,"2"21"5	7!%"2"2"6"6qA"6">"',,"2"21"5	7r5   c                    [         R                  R                  S5        [         R                  R                  S5      S-  S-
  n[         R                  R                  S5      S-  S-
  n/ SQn/ SQn[	        [
        R                  R                  X!5      U5        [	        [
        R                  R                  X!5      U5        [	        [
        R                  R                  XA5      U5        g )Nr   r\   rc   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?)
rf   r   r   r  r   r9   r  re   rn   r   )rq   r1   r[   re   rn   s        r3   test_skewcauchy_R TestSkewCauchy.test_skewcauchy_R8  s    & 			qIINN2"Q&IINN2#a'%$ 	((,,Q2C8((,,Q2C8((,,S4a8r5   r;   N)r  r  r  r  r  r  r	  r;   r5   r3   r  r  .  s    7 9r5   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)	TestJFSkewTi[  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   rc   )r  r   rf  r   )r   rY   r  r   r   rf  r  )r9   	jf_skew_tr  r   re   rn   r   )rq   r1   r2   r  r[   r  jfr  s           r3   test_compare_tTestJFSkewT.test_compare_t\  s     	U!-__Q"GGBKq	1558,q	1558,q	1558,(!''&/:r5   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)rf   loadr   __file__parentrec
fromarraysr,  s     r3   gamlss_pdf_dataTestJFSkewT.gamlss_pdf_datal  sA     wwN!!$HH
 vv  [ 99r5   za,b)r  )r   r   )rh     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`.
r1   r2   r[   re   r
  r   N)r   r9   r  re   )rq   r  r1   r2   r   r[   re   s          r3   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Fr5   r;   N)r  r  r  r  r  r   r`  r  r  r  r  r	  r;   r5   r3   r  r  [  sH    ;  ^^: : [[U$>?	G @	Gr5   r  rc   r   g@r   gףp=
1@rO  gRZ@i   gS㥛Ԋ@rY   rZ   g&@iQ i'  i0ybi l   HO1Z i3r.  ir\   ir]   ikr  i1r   i  i4i N  i(  lEI. r\  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 rD  )r   r   rw   s    r3   rF  TestSkewNorm.setup_method  s    %d+r5   c                     [         R                  " SSS5      n[        [        R                  R                  USS9[        R                  R                  U5      5        g r  )rf   rk  r   r9   skewnormre   rN  r  s     r3   test_normalTestSkewNorm.test_normal  sB    KKAs#!%.."4"4Q!"4"<"'**.."3	5r5   c                     Sn[         R                  R                  SXR                  S9n[	        XR
                  5        [         R                  R                  SXR                  S9n[	        XR
                  5        g )N)r   r   r   r   )r1   r   r   r.  )r9   r  r   r   r   rR  )rq   rR  r[   s      r3   rZ  TestSkewNorm.test_rvs  sY    NNEIUGG$NN%hhGUGG$r5   c                    [         R                  R                  S[        S5      SSU R                  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[        X2SS9  [         R                  R                  S	[        S5      SSU R                  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[        X2SS9  g )
Nr   r  r   rc   )r1   r   ra   rb   r   r  )r1   ra   rb   r  ri  r  )r9   r  r   rw  r   rf   r   r  r  kurtosisr   )rq   r1  rS   r  s       r3   rY  TestSkewNorm.test_moments  s   NNSq,0HH  6GGAJq	5::a=%..:KL>>''!!V'L!(a@NN#c(,0HH  6GGAJq	5::a=%..:KL>>''"!1f'M!(a@r5   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)rC  r   r  )r  r  ļ)rc   g    cr  r  r   )r9   r  r   r   )rq   
logpdfvalsr[   r1   	logpdfvalr  s         r3   test_pdf_large_xTestSkewNorm.test_pdf_large_x  sN     2302455

  *OA)>>((.DD$7  *r5   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)r\   rD  rJ  r   r   r   r   r  r  rf  )r9   r  rn   r   rf   onesr  s     r3   test_cdf_large_xTestSkewNorm.test_cdf_large_x  sP     NN|R02771:E2NNr3'3U+r5   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)rk  r    gzbLe9)r  rc   gn'/2;)r  r   g::)rQ  r   g|<)r  r  r  r  r   )r9   r  rn   r   r   )rq   cdfvalsr[   r1   cdfvalr  s         r3   test_cdf_sf_small_values%TestSkewNorm.test_cdf_sf_small_values  sl     .+,./
 $LA&""1(AAD1!!1"qb)AAD1 $r5   z
a, momentsc                 |    [        USS9 H.  u  p4[        R                  R                  X15      n[	        XTSS9  M0     g )Nr    )startr   r   )rS  r9   r  r  r   )rq   r1   r  orderrS   r  s         r3   test_noncentral_moments$TestSkewNorm.test_noncentral_moments  s3    (:OE..''1CC6  ;r5   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|   r]   r   r  r   r   gmmr   r  msr  r    r  rc   mle)rf   r   r   r9   r  r   r   r   r  r   rg  r   r  isinfr  r  rg   )%rq   r   r1   ra   rb   rO   r   a2loc2scale2a3loc3scale3a4loc4scale4dist4r   r  r   a5loc5scale5r  rY  a6ploc6pscale6pa6mloc6mscale6ma7ploc7pscale7pa7mloc7mscale7ms%                                        r3   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Gr5   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  rh  r    r   T)superfitr|   l   y
ND )r  r   )r  r\   )r  r\   r1   ra   rb   c                    > [        XTS9$ )Nr   )r'   )funr   r   s     r3   	optimizer0TestSkewNorm.test_fit_gh19332.<locals>.optimizerH  s    )#3??r5   )r  r  r   )rf   r   r9   r  r   r   r   r   testingr   params)
rq   r[   r  r   params_superr  r   r  
fit_resultr   s
            @r3   test_fit_gh19332TestSkewNorm.test_fit_gh193323  s    
 HH*R1#X5;<##A&nn!!&,
 ~~))!d);nn!!,23Y ii##$78y;G	@ YYu~~qIN



""6+<+<4"Hr5   c                 V    [        [        R                  R                  SS5      SSS9  g )Nr   r}  gi}#%?r   r   )r   r9   r  r   rw   s    r3   r$  TestSkewNorm.test_ppfN  s"     	**457HuUr5   r  N)r  r  r  r  rF  r  rZ  rY  r  r  r  r   r  r  _skewnorm_noncentral_momentsr  r(  r   r$  r	  r;   r5   r3   r  r    s`    ,5%A8 ,2" [[\+GH7 I7
.H`I6Vr5   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   r9   r  re   rw   s    r3   	test_zeroTestExpon.test_zeroV  s    U[[__Q'+r5   c                     [        [        R                  R                  S5      S5        [        [        R                  R	                  [        R                  R                  S5      5      S5        g )Nr  r  )r   r9   r  rn   r  r   rw   s    r3   	test_tailTestExpon.test_tailY  s=    U[[__U+U3U[[__U[[^^B%78"=r5   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g No_?46@yX5ͻ@j+?UX@)rf   r   r'  r  r&  r9   r  r   r  s     r3   test_nan_raises_errorTestExpon.test_nan_raises_error]  5    HHfffffbffEFj%++//15r5   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r.  )rf   r   r(  r  r&  r9   r  r   r  s     r3   test_inf_raises_errorTestExpon.test_inf_raises_errorb  r6  r5   r;   N)	r  r  r  r  r(  r+  r4  r8  r	  r;   r5   r3   r&  r&  U  s    ,>6
6r5   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
)TestNormih  c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r.  )rf   r   r'  r  r&  r9   rN  r   r  s     r3   r4  TestNorm.test_nan_raises_errori  5    HHfffffbffEFj%**..!4r5   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r.  )rf   r   r(  r  r&  r9   rN  r   r  s     r3   r8  TestNorm.test_inf_raises_errorn  r>  r5   c                 \    / SQn[        [        [        R                  R                  USS9  g )Nr  shrimp)plate)r  r)  r9   rN  r   r  s     r3   test_bad_keyword_argTestNorm.test_bad_keyword_args  s    i(Cr5   ra   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  rh  ra   r   r   )r9   rN  
_delta_cdfr   )rq   ra   rS   r  s       r3   test_delta_cdfTestNorm.test_delta_cdfw  si     )

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

%%3i2c6%Ee4r5   r;   N)r  r  r  r  r4  r8  rD  r   r  r  rI  r	  r;   r5   r3   r;  r;  h  s;    5
5
D [[UQF+
5 ,
5r5   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 r.  )rf   r   r'  r  r&  r9   r  r   r  s     r3   r4  !TestUniform.test_nan_raises_error  7    HHfffffbffEFj%--"3"3Q7r5   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  U5        g r.  )rf   r   r(  r  r&  r9   r  r   r  s     r3   r8  !TestUniform.test_inf_raises_error  rP  r5   r;   N)r  r  r  r  __doc__r4  r8  r	  r;   r5   r3   rL  rL    s    8
8r5   rL  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/$ )Nrf  r    rc   r   r        @r  r;   )lamsigr  opK2exp_skewexp_kurts         r3   get_moms,TestExponNorm.test_moments.<locals>.get_moms  sn     cg\))DCI>)D4L8Ha39q.0B77H3J#sw- 7LLr5   )r   r    r    rf  r  ra  )r.  rc   rY   )r   r   r    )r  r  r  )r9   	exponnormr   )rq   r^  r  rZ  rY  Kstss          r3   rY  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8r5   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  USSS9  g 	Nr/  r0  r1  r2  r3  r   r    r  )rf   r   r'  r  r&  r9   r`  r   r  s     r3   r4  #TestExponNorm.test_nan_raises_error  ;    HHfffffbffEFj%//"5"5qqKr5   c                     [         R                  " SSSSS[         R                  /5      n[        [        [
        R                  R                  USSS9  g re  )rf   r   r(  r  r&  r9   r`  r   r  s     r3   r8  #TestExponNorm.test_inf_raises_error  rg  r5   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   r9   r`  re   rw   s    r3   test_extremes_xTestExponNorm.test_extremes_x  sn    EOO//a8#>EOO//a8#>EOO//d;SAEOO//d;SAr5   zx, K, expected))rD  r   g6
N-)r    r   g՜n+H?)r   r   gi?)r  r   gbJI-)r\   r    gI8?)r\   r)  gQ3|-0?c                 T    [        [        R                  R                  X5      USS9  g r  )r   r9   r`  re   )rq   r[   ra  rS   s       r3   test_std_pdfTestExponNorm.test_std_pdf  s     	++A18%Hr5   zx, K, scale, expected)r   r   r    gVAҤ?)r  {Gzt?r    g'^>)r2  r   r]   r   )r2  r   r   gbr ;)r   rJ  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 )Nri  r   r   r   )r9   r`  rn   r   rq   r[   ra  rb   rS   r  s         r3   test_cdf_small_KTestExponNorm.test_cdf_small_K  s9     OOE2s?8O8Ae4r5   )r\   r   r    ghG}$;)rc   rq  r    g]fJ?)r   rq  r|   g31"g#;)r\   rq  r|   gf
+-)rD  rq  r|   r   )r.  rJ  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 )Nri  r   -a=r   )r9   r`  r   r   rs  s         r3   test_sf_small_KTestExponNorm.test_sf_small_K  s9     OOq51s?8O8Ae4r5   r;   N)r  r  r  r  rY  r4  r8  rl  r   r  r  ro  rt  rx  r	  r;   r5   r3   rU  rU    s    96L
L
B$ [[-BCICI [[4>D4G?	AB5B5& [[4B@DF3@BC5C5r5   rU  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   )simpsonr\   r   r|   r   )dxr    )scipy.integrater}  r9   genexponre   rf   r$  r   )rq   r}  r  s      r3   test_pdf_unity_area TestGenExpon.test_pdf_unity_area	  s?    +NNryyB5sCEGA$/A6r5   c                     [         R                  R                  [        R                  " SSS5      SSS5      n[        R
                  " SU:*  US:*  -  5      (       d   eg )Nr   r\   r   r|   r   r    )r9   r  rn   rf   r$  r   )rq   rn   s     r3   test_cdf_boundsTestGenExpon.test_cdf_bounds  sK    nn  1b$!7c3GvvqCxC1H-....r5   zx, p, a, b, c))rO  gM <r    rc   r  )r  g%DYY?r|   rc   r   )r  gS4z?      #@rc   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 r{  )r9   r  r   r   r  )rq   r[   r  r1   r2   r  r   r  s           r3   r  TestGenExpon.test_sf_isf  sD     ^^qQ*E*nn  q,U+r5   ))r  g;\i?r|   rc   r   )r  gu0?r  rc   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 r{  )r9   r  rn   r   r   )rq   r[   r  r1   r2   r  rn   r   s           r3   r  TestGenExpon.test_cdf_ppf-  sD     nn  q,U+nn  q,U+r5   r;   N)r  r  r  r  r  r  r   r  r  r  r  r	  r;   r5   r3   r{  r{    sf    7/  [[_IJ,J, [[_JK,K,r5   r{  c                       \ rS rSrS rSrg)TestTruncexponi:  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 )
NrD  r]   g_93@gBX@g,M<gǃ@֫5gLa㧝=r   r
  )r   r9   
truncexponr   r  )rq   r2   r[   r  s       r3   r  TestTruncexpon.test_sf_isf<  s\     I	"%'=>((++A13WE((,,S4aeDr5   r;   N)r  r  r  r  r  r	  r;   r5   r3   r  r  :  s    Er5   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   r9   exponpowrn   r  r   rw   s    r3   r+  TestExponpow.test_tailG  sL    ENN..ub95AENN..u~~/@/@B/GL	r5   r;   N)r  r  r  r  r+  r	  r;   r5   r3   r  r  F  s    r5   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  rO  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~?ri  )rf   r$  r   r   r9   skellamra  )rq   rX   mu1mu2skpmfRs        r3   r  TestSkellam.test_pmfN  sK    IIc2-. 	EMM--ac:FBOr5   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  rO  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   ri  )rf   r$  r   r   r9   r  rn   )rq   rX   r  r  skcdfRs        r3   rn  TestSkellam.test_cdfc  sK    IIc2-. 	EMM--ac:FANr5   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   r9   r  ra  rn   )rq   r[   r  r  s       r3   test_extreme_mu2TestSkellam.test_extreme_mu2x  sE    .))!#6F))!#6Fr5   r;   N)r  r  r  r  r  rn  r  r	  r;   r5   r3   r  r  M  s    P*O*Gr5   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  r9   r7  re   r   rq   re   s     r3   rc  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?rG   )r   r9   r7  r   rN  rf   r  r  )rq   r!  r  sigmas       r3   r   TestLognorm.test_logcdf  s    *((%(8

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

((u)<=	?r5   rQ  rR  c                 @    [         R                  R                  S5      $ rD  rU  rw   s    r3   r   TestLognorm.rng  rW  r5   r   rY   rc   r   )r  r   rc   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 )Nr]   )r   rH   rb   ra   r   r   r   r   r  T)r9   r7  r   r   r  s
             r3   r   'TestLognorm.test_fit_MLE_comp_optimizer  sk     }}  cY%, ! @ "J"L&N 	&emmT 	<T 	<6:	<r5   c                 h    Sn/ SQn/ SQn[        [        R                  R                  X!5      USS9  g )NgI+?)rY   绽|=gҶOɃ;gk3;9"7)g?y+@g~K8ax@gƶ@g9]Ar   r   )r   r9   r7  r  )rq   rH   r  r  s       r3   r  TestLognorm.test_isf  s0    
 &#))!/5Ar5   r;   N)r  r  r  r  rc  r   r   r`  r   r  r  r(   rf   r  r   r  r	  )r  es   00r3   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\R                  R!                  \SS9S 5       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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.)r9   r  r   r   rf   r(  rq   r   s     r3   r  TestBeta.test_logpdf  sJ    ""1a-FN3""1c1-FBFF+r5   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ƒ)	rf   r   r9   r  r   r   r  re   r   rq   r.  r  r[   r2   s        r3   test_logpdf_ticket_1866 TestBeta.test_logpdf_ticket_1866  sb    HH_%JJu#)+=>a"&&!"56r5   c           	      `    / SQn[        [        [        R                  R                  USSSS9  g )NrY   r|   r  r   r    rB  )r   r   rC  )r  r)  r9   r  r   r  s     r3   test_fit_bad_keyword_args"TestBeta.test_fit_bad_keyword_args  s$    i1$	&r5   c                 ^    / SQn[        [        [        R                  R                  USSS9  g )Nr  r|   )fafix_a)r  r&  r9   r  r   r  s     r3   #test_fit_duplicated_fixed_parameter,TestBeta.test_fit_duplicated_fixed_parameter  s!     j%**..!3Gr5   zOverflow, see gh-14901reasonc                 b    Su  pn[        [        R                  R                  XU5      S5        g )N)g?rm  g   0xAgx)>)r   r9   r  r   )rq   r  r1   r2   s       r3   test_issue_12635TestBeta.test_issue_12635  s'     7a

qQ/1FGr5   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?)r\   r]   r   r  r    r   )rf   r   r9   r  r  r   r   )rq   inv_R
count_listr  invr   s         r3   test_issue_12794TestBeta.test_issue_12794  sv      1 2 XXo.
jjnnQQ0CD#jjmmCa*1DEr5   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    rD  r   )rf   r$  r9   r  r   rn   r   )	rq   alpha_2count_nobsr  r1   r2   r  r   s	            r3   test_issue_12796TestBeta.test_issue_12796  si     1b!g+vz4=ajjnnQ1%jjnnSQ'Q[)r5   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    rf  )r   r9   r  re   rf   r(  )rq   r1   r2   s      r3   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7r5   zDoes not convert boost warningc                     Su  pn[         R                  " [        5         [        R                  R                  XU5        S S S 5        g ! , (       d  f       g = f)N)gףp=
?g   vH7B  @0B)r   warnsr  r9   r  r   )rq   r  r1   r2   s       r3   test_boost_eval_issue_14606$TestBeta.test_boost_eval_issue_14606  s5    'a\\.)JJNN1# *))s   !A


Ar  a, b)r        )@)r  r  c                 <    Sn U" XBU5        g ! [          a     g f = f)Nr   )OverflowError)rq   r  r1   r2   r  s        r3    test_beta_ppf_with_subnormal_a_b)TestBeta.test_beta_ppf_with_subnormal_a_b  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  )r9   r  r  r   rq   r[   r1   r2   r  r  s         r3   r   TestBeta.test_logcdf3  s$     ""1+%0r5   )r  r  r  gp}^U)r  rs  r  g
1*c                 \    [         R                  R                  XU5      n[        XTS5        g )Nr  )r9   r  r  r   rq   r[   r1   r2   r  r  s         r3   r  TestBeta.test_logsf;  s$     

  q)E*r5   r  ))r|   r|   gο)rJ  r    g )r    r)  g&׾k )r   r   g*)Mc                 `    [        [        R                  " X5      R                  5       U5        g ru   r   r9   r  rA   r  s       r3   r  TestBeta.test_entropyL  s      	

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

1(002CBr5   r;   N)r  r  r  r  r  r  r  r  r   r  skipifMACOS_INTELr  r  r  r  xfailr   r  r  r9   r  r   r  r  r   r  r  r  r	  r;   r5   r3   r  r    s   ,7&
H [[,DE	H F	H [[,DE  F " [[,DE	* F	*8. [[w'GH$ I$
 [[X



'GH[[Vnn%EF G I. [[^GCEF1F1
 [[^GEGH+H+ [[[DE
9E
9 [[	
.C/.Cr5   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@r|  D>?)r  r  r|  m嗽?)r   r|  rY   gPK?)r   r  r|  g%p?)r  r|  rY   g#|/?)r  r  r  gsM
<)r  r|  r  $5Є*?)^ 9^;r|  rY   gompP?)r	  r  r  g7j"!9)r	  r|  r  z^J?)r  r|  rY   gܷ"+>)r  r  r  grNs: )r  r|  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  )rf   r   r9   r/  r	   r  r   r   r   re   r   r  s        r3   r  TestBetaPrime.test_logpdf  sj    HH_%OOE(AHHQK(,,./a"&&!"56r5   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  )r9   r/  rn   r   rf   r   r	   r  r   r?   _cdf_singler   )rq   r[   r.  r  r6  gen_cdfrY  cdfs_gs           r3   rn  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   rC  r  gV)?)r
  rC  r  gWJB9*=)r  rC  r  gOG J<)rT  r        @gΣ01)      ?r  r	  g8ǘ`?)>q?r|  rY   gMDc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r9   r/  r   r   )rq   r  r1   r2   rS   r[   s         r3   r$  TestBetaPrime.test_ppf  s$     OOa(%0r5   z
x, a, b, pc                 V    [        [        R                  R                  XBU5      USS9  g r{  )r   r9   r/  r   )rq   r[   r1   r2   r  s        r3   test_ppf_gh_17631TestBetaPrime.test_ppf_gh_17631  s    ++A!4aeDr5   c                     [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[        [        R                  R                  X1U5      SSS9  g )Nrf  r|   r  r   )rf   r   r   r9   r/  _ppf)rq   r1   r2   r  s       r3   	test__ppfTestBetaPrime.test__ppf  sF    HHSMHHSMHHSM,,Q15sGr5   zx, a, b, expected))r  r  r  r  )r  r|  rY   gV[?)r  r|  rY   r	  c                 V    [        [        R                  R                  XU5      USS9  g r  )r   r9   r/  rn   )rq   r[   r1   r2   rS   s        r3   test_cdf_gh_17631TestBetaPrime.test_cdf_gh_17631  s!     	++A!4hUKr5   )rg  r|  rY   g%?)rg  r  r|  goXr?c                 h    [         R                  R                  XU5      nUS:  d   e[        XTSS9  g )Nrf  gh㈵>r   )r9   r/  rn   r   )rq   r[   r1   r2   rS   r  s         r3   test_cdf_extreme_tails$TestBetaPrime.test_cdf_extreme_tails  s/     OOa(3ww$/r5   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   rc   r|  r|  r|  r|  r  r  r|  r|  r|  r  r  )r   rc   r    rY   rY   rY   rY   r|  r|  r  r  r  r  r  )r  r  ꌠ9Y>)Fr  r  r	  r  r  r  r  r	  r  r  r  )g/:g  U/7gKH9g<![a?gw 4?g)J?g5?r	  r 	  r  r  g%?gsM
<r  r
  r   )r9   r/  r   r   )rq   r1   r2   r[   r  	sf_valuess         r3   r  TestBetaPrime.test_sf  s@    0;
 OO&&qQ/		U3r5   c                 h    SnSnSnSn[         R                  R                  XU5      n[        XTSS9  g )Nr{   r|   rg  gg%`ʼr  r   )r9   r/  r  r   r  s         r3   r   TestBetaPrime.test_logcdf   s6    $''a0%0r5   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   )r9   r/  r  r   r  s         r3   r  TestBetaPrime.test_logsf  s6    %%%aA./r5   c                     [         R                  R                  / SQSSS9  [         R                  " SSS9R                  S5        g )N)rY   r  r  r  皙?r   r    r  r  r  )r9   r/  r   rw   s    r3   test_fit_stats_gh18274$TestBetaPrime.test_fit_stats_gh18274  s7     	6QqI!q!''/r5   c                     [         R                  S/n[        R                  " SSS/5      R	                  S5      n[        X!5        g )NgooB?rc   r  gffffff@r   )rf   r(  r9   r/  r  r   )rq   r  r   s      r3   test_moment_gh18634!TestBetaPrime.test_moment_gh18634  s:     vv()ooa#s,33A6!r5   r;   N)r  r  r  r  cdf_valsr  rn  r   r  r  r$  r	  r	  r	  r	  r  r   r  r'	  r*	  r	  r;   r5   r3   r  r  {  s    H 7:> [[	B11 [[\84E 5EH [[ 
 	
LL [[	.	/	120	204*100	"r5   r  c            
       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)	TestGammai$  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  ri  g
CTb?r   r\   gBΖ?)r9   r  re   r   r  s     r3   rc  TestGamma.test_pdf%  sF    kkoob#To2C-kkooa4o0C+r5   c                 \    [         R                  R                  SS5      n[        US5        g r  )r9   r  r   r   r  s     r3   r  TestGamma.test_logpdf-  s$     ##Aq)FA&r5   c                 ^    / SQn[        [        [        R                  R                  USSS9  g )Nr  r   rB  )r   rC  )r  r)  r9   r  r   r  s     r3   r  #TestGamma.test_fit_bad_keyword_args3  s    i!!8Lr5   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 )
NrT  r    gplC@r   r   r  r]   g1}t@r   )rf   iscloser9   r  r  rw   s    r3   r  TestGamma.test_isf7  s\    " zz%++//%3+%9 	9 9zz%++//%5+%9 	9 9r5   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )NP   r  gޟ򑁺r  r   )r9   r  r  r   r  s        r3   r   TestGamma.test_logcdfM  s/    $##A)%0r5   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )NrJ  r!  gDmr  r   )r9   r  r  r   r  s        r3   r  TestGamma.test_logsfT  s/    %!!!'/r5   rb   rf  rg  c                 f    [         R                  R                  US-  US-  SUS9n[        USSS9  g )N   r  r   ri  g>S*r   r   )r9   r  rH  r   rq   rb   r  s      r3   rI  TestGamma.test_delta_cdf[  s6     &&uSy%)Qe&L6UCr5   za, ref, rtol))r  gt.r   )rc   rz  r   )r]   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   r9   r  rA   )rq   r1   r  r   s       r3   r  TestGamma.test_entropyi  s     	++A.?r5   r1   )r   r    r  ra   )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   r]   r  r  r   r   r   r   r  r  r  r  r    rc   )rf   r   r   r9   r  r   r   r   r   r&  r   r   r   r  )rq   r1   ra   rb   r  r   r  r   r   r   r  r  thetarO   s                 r3   test_fit_mmTestGamma.test_fit_mmz  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)r;   N)r  r  r  r  rc  r  r  r  r   r  r   r  r  rI  r  rH	  r	  r;   r5   r3   r.	  r.	  $  s)   ,'M9,10 [[WsCj1D 2D [[^BC@C@ [[S.1[[UN3[[Wn5[[WtUm4[[Yu6[[[4-8> 9 7 5 6 4 2>r5   r.	  c                      Sn [         R                  " SU S-  -  SU S-  -  SSS9n[        UR                  S5      S5        g )	NrJ  g;f?rc   r    r   r`   rf  gV{q@)r9   r  r   re   )jitterZs     r3   test_pdf_overflow_gh19616rM	    sC     F6FAI-q619}!1MAAEE#J 12r5   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($ r\   rm  )r$  r   rc   r  r   )rf   r   r   normalr  r9   dgammare   r  r   r   )rq   r   r   r[   r1   r   r  rO   s           r3   rc  TestDgamma.test_pdf  s    ii##$78JJRdJ+KKRdK+llq$kkoobffQi+a/!||ASu5r5   zx, a, expected))r  r    ggrU>)rC  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  )r9   rR	  rn   r   r   r   r  )rq   r[   r1   rS   rn   r   r   r  s           r3   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,r5   r  ))r  gmqn @)?g?)rE  gx?c                 T    [        [        R                  R                  U5      USS9  g r  r   r9   rR	  rA   r  s      r3   r  TestDgamma.test_entropy  s      	,,Q/5Ar5   ))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  rZ	  r  s      r3   test_entropy_entreme_values&TestDgamma.test_entropy_entreme_values  s    " 	,,Q/5Ar5   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  )rf   r   r9   rR	  rA   r  r   )rq   r[   r  r  s       r3   test_entropy_array_input#TestDgamma.test_entropy_array_input  sX    HH'(LL  #s1vA45<<//5555 r5   r;   N)r  r  r  r  rc  r   r  r  rV	  r  r]	  r`	  r	  r;   r5   r3   rO	  rO	    s    6, [[-:;-;- [[X89B	9B [[X:;
B;
B6r5   rO	  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  ri  r]   g6:֜?r   r9   chi2re   rw   s    r3   r  TestChi2.test_precision   s@    EJJNN468N$&	(EJJNN346J$&	(r5   rl  ))g     p@r   g~#e)g      ^@rO  gtA)rJ  r  gzĀ׿c                 V    [         R                  R                  X5      n[        XCSS9  g r  )r9   rf	  r  r   )rq   r[   r  r  r  s        r3   r   TestChi2.test_logcdf  s"     ""1)%0r5   ))r  rO  r  )r  r  gc)r!  r\   g]3c                 V    [         R                  R                  X5      n[        XCSS9  g r  )r9   rf	  r  r   )rq   r[   r  r  r  s        r3   r  TestChi2.test_logsf  s"     

  '/r5   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 )Nrp  gλm:=6g'bd5 <r  r   r|   gQ8@r  gܐ؆0guu[9=rY   g8-*@)r9   rf	  r   r   )rq   r  r[   s      r3   r$  TestChi2.test_ppf  s    JJNN5"%<5IJJNN3#7eDJJNN5"%:GJJNN3#8uEr5   r  ))r  gܫ>)r    gƯʉ?)r]   gn>@)   g͔v0@)r  g9:3@c                 ^    [        [        R                  " U5      R                  5       USS9  g r   )r   r9   rf	  rA   r  s      r3   r  TestChi2.test_entropy4  s!     	

2..0#EBr5   c                 Z    [        [        R                  R                  SS5      SS5        g )Nr   rc   r|   r  re	  rw   s    r3   test_regression_ticket_1326$TestChi2.test_regression_ticket_1326=  s    EJJNN32C<r5   r;   N)r  r  r  r  r  r   r  r  r   r  r$  r  rr	  r	  r;   r5   r3   rc	  rc	    s    ( [[	+11
 [[	+00F0 [[Y:;C;C=r5   rc	  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
)TestGumbelLiB  c                     [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[        X5        g Nr  r  )rf   rk  r9   rb  rn   r   r   r  s       r3   r  TestGumbelL.test_cdf_ppfD  sB    KKb!NNq!^^"r5   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 rw	  )
rf   rk  r9   rb  r  r  r   r   expm1r   )rq   r[   r  r^  urY  s         r3   r  TestGumbelL.test_logcdf_logsfJ  s`    KKb!NN!!!$NN  #FF1I]]1r5   c                     [         R                  " SS5      n[        R                  R	                  U5      n[        R                  R                  U5      n[        X5        g )Nr  r   )rf   rk  r9   rb  r   r  r   r  s       r3   r  TestGumbelL.test_sf_isfR  sB    KKQNNa ^^"r5   ra   r   r    c                     [         R                  R                  SUS9n[         R                  R                  X!S9u  p4[	        X15        g )Nr]   )r   ra   r   )r9   rb  r   r   r   )rq   ra   r   
fitted_locr   s        r3   test_fit_fixed_param TestGumbelL.test_fit_fixed_paramX  s>     ~~!!s!4**4*:
Z%r5   r;   N)r  r  r  r  r  r  r  r   r  r  r	  r	  r;   r5   r3   ru	  ru	  B  s:     [[URG,& -&r5   ru	  c                        \ rS rSrS rS rSrg)TestGumbelRia  c                 T    [        [        R                  R                  S5      SSS9  g )NrM  ?~T}%m;r   r   )r   r9   ra  r   rw   s    r3   r  TestGumbelR.test_sfc  s#     	))"-/E"	$r5   c                 T    [        [        R                  R                  S5      SSS9  g )NrT  r7	  r   r   )r   r9   ra  r  rw   s    r3   r  TestGumbelR.test_isfl  s#     	**513D"	$r5   r;   N)r  r  r  r  r  r  r	  r;   r5   r3   r	  r	  a  s    $$r5   r	  c                   
   \ 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\R0                  " S,S-S.5      \R0                  " S/SS05      \R                  R                  S9/5      S1 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\R0                  " S,S-S.5      \R0                  " S/SS05      \R                  R                  S9/5      S2 5       r\R                  R                  S3S4S/5      \R                  R                  S5S6S7/5      S8 5       5       r\R                  R                  S9S:S;/S<S;//5      S= 5       r\R                  R                  S>S?S4\R:                  \R<                  \R<                  4/S@SA//5      SB 5       r\R                  R                  SC/ SDQ5      \R                  R                  SE\ RB                  RD                  SF\R0                  " SGS4SH5      SI4\ RB                  RF                  SF\R0                  " SGS4SH5      SI4\ RB                  RD                  SJ\R0                  " S4SKSH5      SF4\ RB                  RF                  SJ\R0                  " S4SKSH5      SI4/5      SL 5       5       r$\R                  R                  SM/ SNQ5      SO 5       r%\R                  R$                  \R                  R                  SM/ SPQ5      SQ 5       5       r&SR r'SS r(STr)gU)VTestLevyStableiv  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)r9   r  parameterizationcdf_default_methodpdf_default_method_levy_stable	_QUAD_EPSquad_epsrw   s    r3   reset_levy_stable_params'TestLevyStable.reset_levy_stable_paramsw  sH     .2*/:,/:,%*%7%7%A%A"r5   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  rf   r  r   r  r  r  r  Tr,  s     r3   nolan_pdf_sample_data$TestLevyStable.nolan_pdf_sample_data  sL    6 wwN!!<=
 vv  /C Dr5   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     r3   nolan_cdf_sample_data$TestLevyStable.nolan_cdf_sample_data  sM    J wwN!!<=
 vv  /C Dr5   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)rf   r  r   r  r  r,  s     r3   nolan_loc_scale_sample_data*TestLevyStable.nolan_loc_scale_sample_data  s/     wwN!!?@
 r5   sample_sizerM  r{  marksr	  S0r	  z
alpha,beta))rf  r   )rf  r   )r  r   )r  r|   zgamma,deltar    r   r  c                     U[         R                  l        [         R                  " X#XES9n[         R                  " UR	                  USS9UR
                  5      u  pU	S:  d   eg )N)r.  r  rb   ra   r   r   r|  )r9   r  r	  r  r   rn   )
rq   r	  r.  r  r  r  r	  lsr   r  s
             r3   rZ  TestLevyStable.test_rvs  s\    ( .>*%
 ||FF$F7
 4xxr5   r  r|   r    c                     [         R                  R                  S5        SnSnSn[        R                  R                  X!X4S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.h:rf  r|   r  ry  ra   rb   r   r  r  r   N)rf   r   r   r9   r  r   r  )rq   r  r.  ra   rb   r[   statr  s           r3   test_rvs_alpha1TestLevyStable.test_rvs_alpha1  sl     			y!!!%3'+ " -,,q-%*#$=?4xxr5   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   r{  )\(̿rc   gۧ1?r   g9]c?)r	  r	  r	  r	  r	  r   gv?r	  )r9   r  r#  r   r   r   rq   r[   alpha1beta1loc1scale1r!  alpha2beta2r  r  s              r3   r(  TestLevyStable.test_fit  s    

 ',&7&7&A&A!&D#t148E4+FGQ/'1	

 99&+&7&7&A&A"&E#tVQUBFFA.D&!,r5   zUnknown problem with fitstart.r  zalpha,beta,delta,gamma)r  r  rc   r   )rf  r  rc   r   parametrizationc           	          U[         R                  l        [         R                  R                  XX4SS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   r   N)r9   r  r	  r   r#  r   )rq   r.  r  r  r  r	  r   r   	alpha_obsbeta_obs	delta_obs	gamma_obss               r3   test_fit_rvsTestLevyStable.test_fit_rvs  ss     -<)  $$Ue$ % 
 ))$/471	Y%')7	
r5   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   r\   r\   r\   rJ  rJ  r]   r]   r    r   )rf   r   r9   r  r#  r   r   )
rq   r[   r	  r	  r	  r	  r	  r	  r  r  s
             r3   test_fit_beta_flip!TestLevyStable.test_fit_beta_flip8  s    HH?@&+&7&7&A&A!&D#t&+&7&7&A&A1"&E#tUAqyyF+E6*D%(F+r5   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	  )rf   r   r9   r  r#  r   )rq   SHIFTr[   r	  r	  r	  r	  r	  r	  r  r  s              r3   test_fit_delta_shift#TestLevyStable.test_fit_delta_shiftD  sx    HH?@&+&7&7&A&A1"&E#t&+&7&7&A&A1"u*&M#tF+E)D,/F+r5   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   r\   r\   r\   rJ  rJ     r	  r    zExpected alpha < 1, got zExpected loc < z, got )r    r    r   r   r\   r\   r\   rJ  rJ     r	  zExpected alpha > 1, got zExpected loc > )r9   r  r#  r!  r1  r	  s              r3   test_fit_loc_extrap"TestLevyStable.test_fit_loc_extrapO  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~r5   z pct_range,alpha_range,beta_range)r   r|   r  )rY   r    rc   )r   r   r   )r   r|  r|   r  r  )rY   r|   r    r  rc   )gr   r   r  r  r    )r   r|  rY   r  ffffff?r|   ?r   r   r  r  rY   rc   rD  r   r  c                 t  ^^^^ 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HS  u  n	u  pnU
[        R                  l	        Ub
  X\" U5         OUn[        5        nUR                  [        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 S"UR&                  R(                   S#U 3
n[+        UUS   UUS$S%9  SSS5        GMV     g! , (       d  f       Ns= f! , (       d  f       GMz  = f)&z2Test pdf values against Nolan's stablec.exe outputLinuxi686/dnir]  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pctr.  r  r   r|   r   r&	  r  r   r  r  r|  r  r  rY   r  r   )r|   r  r  r	  r	  )gٿ333333ӿr  r  r|   r	  rf  rY   r  r  r  )r   r   rf  r  rE  )rf   isinr   r  alpha_range
beta_range	pct_ranges    r3   rI   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r5   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	  r.  r  r  rf  rf   r	  r	  s    r3   rI   r	    si    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ2%	'r5   c                    > U S   S:H  T(       + -  [         R                  " U S   T5      -  ST;   -  [         R                  " U S   T5      -  $ )Nr.  rf  r	  r  r	  )r  r	  r	  is_linux_32r	  s    r3   rI   r	    sX    wZ2%$_&GGAeHi01 ;&( GGAfIz2	3r5   g&.=c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:*  -  $ )Nr	  r.  r  r  r	  r	  s    r3   rI   r	    sV    GGAeHi0GGAgJ45GGAfIz23 wZ3&(r5   fft-simpsonr  c                    > U S   S:  [         R                  " U S   T5      -  [         R                  " U S   T5      -  [         R                  " U S   T5      -  $ )Nr.  r  r	  r  r	  r	  s    r3   rI   r	    sV    wZ3&GGAeHi01GGAgJ45 GGAfIz23r5   r  c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:  -  $ )Nr	  r.  r  r    r  r	  r	  s    r3   rI   r	    sh    GGAeHi0GGAgJ45GGAfIz23 wZ!^% wZ#%	'r5   Nz2Density calculations experimental for FFT method.*r[   r.  r  r    r   rb   ra   r  r  calcabserrrelerrr  r	  z	pdf test  failed with method 'z' [platform: z]

Ferr_msgverbose)platformunamesystemmachinejoin	processorrS  r9   r  r	  r   recordr  re   rf   r  r   r   isnanr   r  r   )rq   r	  r	  r	  r	  r   r	  platform_desctestsixdefault_methodr   filter_funcsubdatasupr  subdata2failuresmessager	  s     ```              @r3   test_pdf_nolan_samples%TestLevyStable.test_pdf_nolan_samples[  sl   4 %  llg-I%--62I\\5==%//:< t JL^ U % U % W ' t & t &kC
L "+5!1B 3AE0 + 7 ;t, =A "$

"H %%))CLG$FO *  [[h/04FF1s|#34FF1s|#34rvvgcl7KK H 0 $H%-((1+
  t#88H I""/HNN4H4H3IH:W   CL#!? %$	 "2" 0/ %$s'   5AH'
AH)AH'
H$ H''
H7	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HP  u  nu  pn
U[        R                  l        U
b
  XZ" U5         OUn[	        5        nUR                  [        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MS     g! , (       d  f       Np= f! , (       d  f       GMw  = 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	  r.  r  rf  )r	  r  r  r   rY   r  r  r  r	  r	  s    r3   rI   7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>P  s    GGAeHi0GGAgJ45GGAfIz23
 wZ2-GGAfI/ABCuX-/
 wZ2-GGAfI?@uX-/	r5   r|  c                 `  > [         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    r3   rI   r
  e  s    GGAeHi0GGAgJ45GGAfIz23 7r)&	+=>?5T)+	 7r)&	?;<5T)+r5   r	  r  c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  $ )Nr	  r.  r  333333?r	  r	  s    r3   rI   r
  w  sV    GGAeHi0GGAgJ45GGAfIz23 wZ#%'r5   r  c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:*  -  $ )Nr	  r.  r  r  r
  r	  r	  s    r3   rI   r
    i    GGAeHi0GGAgJ45GGAfIz23 wZ#%' wZ3&	(r5   rJ  c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:*  -  $ )Nr	  r.  r  rX	  r  r	  r	  s    r3   rI   r
    r
  r5   r   c                    > [         R                  " U S   T5      [         R                  " U S   T5      -  [         R                  " U S   T5      -  U S   S:  -  U S   S:*  -  $ )Nr	  r.  r  rf  rX	  r	  r	  s    r3   rI   r
    r
  r5   Nz[Cumulative density calculations experimental for FFT method. Use piecewise method instead.*r[   r.  r  r    r   r	  r  r  r	  r  r	  z	cdf test r	  z'
r	  Fr	  )rS  r9   r  r	  r   r	  r  rn   rf   r  r   r   r 
  r   r  r   )rq   r	  r	  r	  r	  r   r
  r
  r
  r   r
  r
  r
  r  r
  r	
  r

  s     ```            r3   test_cdf_nolan_samples%TestLevyStable.test_cdf_nolan_samples3  s   2 % U %, T $& t & t & t & t &GL
\ "+5!1B 3AE0 + 7 ;t, =A "$

"@
 %%))CLG$FO *  [[h/04FF1s|#34FF1s|#34rvvgcl7KK H 0 $H%-((1+ 'rd*??Os&nn2232hZACL#!; %$	 "2" 0/ %$s'   AF6AF%;AF6%
F3/F66
G	r*  r   rR  re   rn   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   re   z4Test unstable on some platforms; see gh-17839, 17859r	  r*  S)re   rn   r[   r.  r  rc   r   r	  r  N)r	  r	  r	  architecturer   r   r9   r  r	  r	  r	  re   rn   r   )
rq   r	  r*  rR  r	  r	  r   r
  rQ  r-  s
             r3   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0r5   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   [        5        nUR	                  [
        SS9  U[        R                  l        [        R                  R                  USUSS	S
9n[        XtX!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    rc   rc   rc   rc   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)rf   r   r  r   rM   r  r9   r  r	  re   r   )rq   r  decimal_placesxsdensitybetasr
  re   s           r3   'test_pdf_alpha_equals_one_beta_non_zero6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zero  s     XXH
 ((
 
 [[X&(9(;sJJ'8   4:E0##''AuA1'ECn )<&&(;(;&&s%   C!(AC?C!
C	C!!
C/zparams,expected)r	  r	  r   r    )rc   r   r\   r  )r\   r  r   r   c                 t    [         R                  R                  US   US   US   US   SS9n[        X25        g )Nr   r    rc   r   r  ra  )r9   r  r   )rq   r  rS   observeds       r3   r   TestLevyStable.test_stats  sE     $$**1IvayfQivay + 
 	H/r5   r.  )r  r|   r   zfunction,beta,points,expectedrf  rT	  r\   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    r.  r  N)r   rf   r  r   )rq   r.  rQ  r  rb  rS   s         r3   !test_distribution_outside_support0TestLevyStable.test_distribution_outside_support  s>    P 5}1}}}Vt4GGCK*	
r5   zx,alpha,beta,expected))r   /iZ?s0?gz5F?)r   ~H?|/mg>m?)r   .d5?L,ٿg깃\?)r   >?ЀjoؿgA]4?)r   pa2?Յ пgqQ?c                 ~    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=r.
  Nr9   r  r	  r   re   rq   r[   r.  r  rS   s        r3   test_x_equal_zeta TestLevyStable.test_x_equal_zetaI  s7    Z &-"!!!t!<	
r5   )
)r  r1
  r2
  gz¶?)r  r3
  r4
  gV?)r  r5
  r6
  gRE)3\?)r  r7
  r8
  gB?)r  r9
  r:
  g/^?)-C6r1
  r2
  gH?)rA
  r3
  r4
  gn?)rA
  r5
  r6
  gx\?)rA
  r7
  r8
  gVM%?)rA
  r9
  r:
  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
r<
  r.
  Nr=
  r>
  s        r3   test_x_near_zetaTestLevyStable.test_x_near_zeta}  s7    D &-"!!!t!<	
r5   c                 
   [         R                  R                  n[        SSSSS9n[        R
                  n[        R
                  " S0 UD6n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                  " Xe: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        [        Xv5        g )Nr  rY   r   rf  r.  r  ra   rb   r	  r	  r\   
r   r;   )
rf   r   r   r"  r9   r  r	  r   r  r   	rq   r   r  unfrozenfrozen
unfrozen_afrozen_a
unfrozen_bfrozen_bs	            r3   $test_frozen_parameterization_gh208213TestLevyStable.test_frozen_parameterization_gh20821  s     ii##Ccs#>$$"",V,$(!"&\\QFQ#i.Q
::2C	N:C66(01111$(!"&\\QFQ#i.Q
::2C	N:CX*Z*r5   c                    [         R                  R                  n[        SSSSS9n[        R
                  n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[        Xe5        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        g )Nr  rY   r   rf  rF
  r	  r\   rG
  r   r	  r;   )	rf   r   r   r"  r9   r  r	  r   r   rH
  s	            r3   %test_frozen_parameterization_gh20821b4TestLevyStable.test_frozen_parameterization_gh20821b  s     ii##Ccs#>$$$(!"",V,\\QFQ#i.Q
::2C	N:CX*$(!"",V,\\QFQ#i.Q
::2C	N:CX*r5   r;   N)*r  r  r  r  r   r`  r	  r	  r	  r	  r  r  r  r*  rZ  r  r	  r(  r  r	  r	  r	  r	  rf   rk  r
  r
  r
  r(
  r(  r'  r   r9   r  rn   re   r/
  r?
  rC
  rO
  rR
  r	  r;   r5   r3   r	  r	  v  sz   ^^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''	-
*@+ ,@D [[*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+,+r5   r	  c                        \ rS rSrS rS rSrg)TestArrayArgumenti  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestArrayArgument.setup_method  rH  r5   c                     [         R                  R                  [        R                  " S5      [        R
                  " S5      SS9n[        UR                  S5        g )Nr   r  r	  )r9   rN  r   rf   r$  r  r   rR  rq   r   s     r3   test_noexception"TestArrayArgument.test_noexception  s>    jjnn"))A,rwwqz")  +SYY(r5   r;   N)r  r  r  r  rF  rZ
  r	  r;   r5   r3   rU
  rU
    s    )r5   rU
  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  )r9   r:  rS  r	   lowerr  rw   s    r3   test_docstringsTestDocstring.test_docstrings  sg    >>!!-J%.."8"8">">"@@A??"".K5??#:#:#@#@#BBC /r5   c                 X    [         R                  " 5         [         R                  " 5         g ru   )r9   r?   r>   rw   s    r3   test_no_name_argTestDocstring.test_no_name_arg  s    r5   r;   N)r  r  r  r  r`
  rc
  r	  r;   r5   r3   r]
  r]
    s    Dr5   r]
  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   rc   r    rc   r   r   r    rc   )r   rc   rc   r   r   r   )r   r   r   rf   r   r1   r2   r  s      r3   test_args_reducerg
    s    #$Aa!eQ"DAq/*q1#a!eQ"DAqq1#
*+a!eQ"DAqq1#
*+r5   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                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestFitMethod.setup_method  rH  r5   )r  rN  r  rk
  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	)
rM  z  fit known to fail or deprecatedr/  r0  r1  r2  r3  r    r+  N)fitSkipNonFiniter   r   rf   r   r'  r(  r=  r9   r  r&  r   )rq   rO   r?  r[   r  distfuncs         r3   !test_fit_w_non_finite_data_values/TestFitMethod.test_fit_w_non_finite_data_values  s     (((KK4& @ABHHfffffbffEFHHfffffbffEF5$'j(,,!<j(,,!<r5   c                     [         R                  R                  S5        [         R                  " SS9   [        R
                  R                  SSSS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)Ni90  r  r"
  r  r         4@rD  rK  rc   r   r  r  r   )rf   r   r   r  r9   r7  r   r  r  r   r   r   r   )rq   r[   expected_shapes      r3   test_fix_fit_2args_lognorm(TestFitMethod.test_fix_fit_2args_lognorm  s    
		u[[X&!!$Dr!:AWWrvvay266":'=&A%G%G%IJNBHHU]]%6%6qq%6%LM+Q3$@ '&&s   B2C//
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   rc   r   r+  )rf   r$  r9   rN  r   r   r  r   rq   r[   ra   rb   s       r3   test_fix_fit_normTestFitMethod.test_fix_fit_norm  s    IIaOZZ^^A&
C#E2771:.ZZ^^AA^.
S!UBGGAJ'ZZ^^Aa^0
C#UAr5   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   ri  r   r   r   rc   r  )rf   r$  r  r   r9   r  r   r   r   digammar   )rq   r[   meanlogr   r1   ra   rb   rH   r   r   r  s              r3   test_fix_fit_gamma TestFitMethod.test_fix_fit_gamma%  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.2r5   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   rf   r  r  r   psi)r1   r2   r[   r  s1r:  psiabr  s           r3   mlefunc0TestFitMethod.test_fix_fit_beta.<locals>.mlefuncN  s     AAB!"BKK&Eufw{{1~566ufw{{1~5668DKr5   )r  r  r|   r   r    r  r  r   rc   )r   r   r   r  )r  r   r   r|   r  )r   r   r   )r   r   r  r   )r   r  r   r   )
rf   r   r9   r  r   r   r   r   r  r&  )rq   r
  r[   r1   r2   ra   rb   dadbr!  r  b2r  r  r  s                  r3   test_fix_fit_betaTestFitMethod.test_fix_fit_betaK  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	(r5   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)rc   rc   r   r   r   r   r   r   rc   r   r+  r   r   r   )rf   r   r9   r  r   r   ry
  s       r3   test_expon_fitTestFitMethod.test_expon_fit  s    HH-.[[__Q'
S!UA[[__Qq_1
S!UA[[__QQ_/
S!UAr5   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   r\   rO     r=  r    r   r
  r   r  r  rc   r   )r   fix_s)rf   r   r  r9   r7  r   r   r  r   r   r   r  )rq   r[   lnxm1rR  ra   rb   s         r3   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%@r5   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)rf  rE  r  rA  r   r   r\   r+  r   rg  )rf   r   r9   r  r   r   r!  r  r1  r  r&  ry
  s       r3   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Cr5   r  MLEMMc                    Su  p#[         R                  R                  X#SS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S9n[         R                  R                  XUS9u  pn[        X5        g )N)r!  rB  r]   r   r   r!  )r   r  )r  r  r
  r  )r  r  rB  )r  r  )rr  r  )rq  r  r    rc   )r  r   r  r   r   )r  r  r   r   r  )r  r   r   r  )r!  r   r    rK  )	r9   r  r   r   r   r  r&  r   r  )rq   r  r1   r2   r[   res_1res_2res_3res_4res_5aabbr  ssr   s                  r3   test_fshapesTestFitMethod.test_fshapes  s   
 JJNN1cN=

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+[[__T_?
Rr5   c                     [         R                  nUR                  SSS9n[        SS9n[	        [
        UR                  U40 UDSU0D6  g )Nrc   r]   )ra  r   i)enikibenikir  )r9   r`  r   r"  r  r)  r   )rq   r  rO   r   r>  s        r3   test_extra_paramsTestFitMethod.test_extra_params  sC     xx!#x&t$i4F3FvFr5   r;   N)r  r  r  r  r   rF  ro
  r   r  r  r   rq
  rv
  rz
  r
  r
  r
  r
  r
  r  r
  r
  r	  r;   r5   r3   ri
  ri
    s    1D A[[[(3= 4=@$3L5(nA(D$ [[[[Xt}5$ 6 $L [[Xt}5G 6Gr5   ri
  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)
TestFrozeni  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestFrozen.setup_method  rH  r5   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!  r`   rt
  r  rc   )r9   rN  re   r   rn   r   r  r   r  r   r  r  rA   r  r1   r2   )rq   rO   rJ
  result_fr  s        r3   rj  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&r5   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   rt
  r  r  rc   )r9   r  re   r   rn   r   r  r   r  r   r  r  rA   r  r1   rO   r2   )rq   r1   rO   rJ
  r
  r  s         r3   
test_gammaTestFrozen.test_gamma$  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{{}}-r5   c                     [         R                  " S5      nUR                  S5      nUR                  SS9  UR                  S5      n[        X#5        g )Nr    rc   r  r  )r9   r7  r  r   )rq   rJ
  m1ro  s       r3   test_regression_ticket_1293&TestFrozen.test_regression_ticket_1293X  sF    q!]]1V$ ]]1 	Rr5   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  rY   r   r  r  r|   )r9   r  rO   r  r   re   rf   r(  r1   r2   r	   r   r  r   )rq   r  r  r1   r2   rv1s         r3   r  TestFrozen.test_abg  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. r5   c                 J    [        [        [        R                  S5      5        g )N	rv_frozen)r	   r0   r9   r:   rw   s    r3   test_rv_frozen_in_namespace&TestFrozen.test_rv_frozen_in_namespace  s    ++[9:r5   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   )r9   rN  r	   r0   r   r   	get_staterf   r   rN  r   )rq   rJ
  rndms      r3   test_random_stateTestFrozen.test_random_state  s    /0 !V((224YY**2.88:	< yy$$T*


-r5   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    rc   r   r	  r}  r   r   rK  r|   r   r    )r9   r  r  r>   r   r   pickledumpsloadsr   r   rn   )
rq   r  poissru  distfnrH   r0	unpickledr1medianss
             r3   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 ,r5   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 $ ru   r;   r   s    r3   r  $TestFrozen.test_expect.<locals>.func  s    Hr5   rc   r   r   r  r  )r  divider    T)r   ubconditionalrc   r?  ra   rb   r   r
  r
  rG  )r   r?  ra   )r9   r  rf   r  r   r   r  )rq   r  gmgm_val	gamma_valr  p_valpoisson_vals           r3   test_expectTestFrozen.test_expect  s    	 [[1!1-[[(;YYtaTYBF**4d./A4 + II < 		*MM!#mm**4d*B+ <;s   6C


Cr;   N)r  r  r  r  rF  rj  r
  r
  r  r
  r
  r
  r
  r	  r;   r5   r3   r
  r
    s2    1'f2.h*/X;.40,r5   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   r;   r   s    r3   rI   &TestExpect.test_norm.<locals>.<lambda>  s    1qsr5   r   rc   r`   r   r  ri  c                     U $ ru   r;   r   s    r3   rI   r
    s    r5   r|  r  c                     gr   r;   r   s    r3   rI   r
    s    Qr5   ra   rb   r   r
  r   c                     gr   r;   r   s    r3   rI   r
        ar5   Tra   rb   r   r
  r
  rf  )r9   rN  r   r   r   )rq   rY  r  r   r
  prob90prob90cs          r3   rj  TestExpect.test_norm  s    JJ3!DAq"-JJm!<Aq"-ZZ^^Daq^1ZZ^^Daq^1"";AQ2"MFC4**##KQaB04 $ 6GR4r5   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@r;   r   s    r3   rI   &TestExpect.test_beta.<locals>.<lambda>  s    51U7(;r5   r  r   rc   )r?  ra   rb   qq?r  ri  c                     U $ ru   r;   r   s    r3   rI   r
    s    r5   rg  r   r
  r  r\   r`   r|  c                     g)Nrf  r;   r   s    r3   rI   r
    s    Rr5   )r\   r\   Fr
  r   c                     gr   r;   r   s    r3   rI   r
    r
  r5   Trf  )r9   r  r   r   r   )rq   rY  r  r
  r   r
  r
  s          r3   	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4r5   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 )NrD  r\   r   rg  rG  c                     U $ ru   r;   r   s    r3   rI   +TestExpect.test_hypergeom.<locals>.<lambda>      Qr5   )rD  r\   r   r
  r  ri  c                     U S-
  S-  $ NrA  rc   r;   r   s    r3   rI   r
     s    adQYr5   r  c                     U S-
  S-  $ r
  r;   r   s    r3   rI   r
    s    QrTAIr5   r   )r?  ra   r   r
  r    c                     gr   r;   r   s    r3   rI   r
    s    qr5   r  rh  c                     gr   r;   r   s    r3   rI   r
    s    1r5   T)r?  ra   r   r
  r
  c                     gr   r;   r   s    r3   rI   r
    s    !r5   r   )r?  r   r
  )r9   r  r   r   ra  r  )
rq   m_truev_truer  rY  v_bounds	prob_trueprob_boundsprob_bcprob_bs
             r3   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2r5   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   r;   r   s    r3   rI   )TestExpect.test_poisson.<locals>.<lambda>  s    Qr5   r
  r   F)r?  r   r
  r    rc   r  ri  c                     gr   r;   r   s    r3   rI   r  !  s    r5   T)r9   r  r   rn   r   )rq   r  prob_b_trueprob_lbs       r3   test_poissonTestExpect.test_poisson  sw    mm**;Ta7< + >))!Q//KbA--&&{!37 ' 9GQ3r5   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  ri  )r9   genhalflogisticr   r   )rq   halflogr_  rc  s       r3   test_genhalflogisticTestExpect.test_genhalflogistic%  sG     ''~~6~*F#~~6~*D3r5   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   r;   r   s    r3   rI   /TestExpect.test_rice_overflow.<locals>.<lambda>4      r5   )r  r  c                     gr  r;   r   s    r3   rI   r  5  r  r5   c                     gNr   r;   r   s    r3   rI   r  6  r  r5   )r	   rf   r  r9   ricere   r   rw   s    r3   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Jr5   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 $ ru   r;   rX   s    r3   rI   (TestExpect.test_logser.<locals>.<lambda>;      ar5   r  rf  r   r   c                     U $ ru   r;   r'  s    r3   rI   r(  A  r)  r5   r
  )r9   rF  r   r   rf   r  )rq   r  ra   res_0res_ls        r3   test_logserTestExpect.test_logser8  sx    ##Kqd#;Vrvvb1f~5E	C ##Kqd#Ds{7r5   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  r8  c                     U $ ru   r;   r   s    r3   rI   )TestExpect.test_skellam.<locals>.<lambda>H  s    Ar5   r  c                     U S-  $ r  r;   r   s    r3   rI   r1  I  r  r5   r
  r   rc   )r9   r  r   r   )rq   r  p2r
  ro  s        r3   test_skellamTestExpect.test_skellamD  sc     ]]!!+RH!=]]!!.x!@G%0U
BG%8r5   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 $ ru   r;   r   s    r3   rI   )TestExpect.test_randint.<locals>.<lambda>Q  r
  r5   c              3   $   #    U  H  ov   M     g 7fru   r;   r  r   s     r3   r  *TestExpect.test_randint.<locals>.<genexpr>S  s     5}!A}s   r   r   )r9   rQ  r   r   r  r  )rq   r`  ra  r   s       r3   test_randintTestExpect.test_randintM  sI     mm"";95uR}55A	Or5   c                 Z    [        [        [        R                  R                  S S5        g )Nc                     U S-  $ r  r;   r   s    r3   rI   &TestExpect.test_zipf.<locals>.<lambda>X  s    q!tr5   r
  )r
   r  r9   r]  r   rw   s    r3   	test_zipfTestExpect.test_zipfU  s    ^UZZ%6%6#T	+r5   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   r;   r   s    r3   rI   /TestExpect.test_discrete_kwds.<locals>.<lambda>\      Ar5   r
  r  c                     gr   r;   r   s    r3   rI   rF  ]  rG  r5   r(      r  )r?  maxcount	chunksize	tolerancer  ri  )r9   r  r   r   )rq   n0n1s      r3   test_discrete_kwdsTestExpect.test_discrete_kwdsZ  sJ    ]]!!+D!9]]!!+D+/2 " OBB/r5   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   r\   r   r  r   rO  rc   r;   r  s    r3   poiss_moment5-TestExpect.test_moment.<locals>.poiss_moment5d  s8    q52b!e8#bQh.BE9B>>r5   )r   r  r   r  r   )r9   r  r  r   )rq   rS  r  m5s       r3   test_momentTestExpect.test_momenta  s:    	? B%%a,BBb 1> r5   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 )Nr]  rf  r`   r  r\   rY   )   r  rY  U   rG  )r   r9   rN  r   r  r  rw   s    r3   test_challenging_cases_gh8928(TestExpect.test_challenging_cases_gh8928k  s     	

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

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

))b)<bA***7=--"-5r:r5   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 )Nr\   r   r`   rm  r  r
  r  r  r  Tr
  r  g433333@g433333rh  )r9   r  r   r   r   )rq   rO   r  s      r3   test_lb_ub_gh15855TestExpect.test_lb_ub_gh15855t  s    }}iiBai(!4c:!bA3G!rBCGL!r04 $ 67:	< 	!rBFK!rBGL!r04 $ 679	;r5   r;   N)r  r  r  r  rj  r
  r  r  r  r#  r-  r4  r=  rB  rO  rV  r[  r^  r	  r;   r5   r3   r
  r
    sK    
5 5& 3D	44K
89O+
0?;;r5   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?r\   ri  )r9   nctr   rn   r   r  s     r3   test_nc_parameterTestNct.test_nc_parameter  sI     YYq!_RVVAY$YYq"BFF1I~rBr5   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  rY   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   )r9   rc  re   rf   r$  rk  r   r   )rq   r   rS   s      r3   test_broadcastingTestNct.test_broadcasting  sa    iimmAryyAq$w7KKQ24JJJL M 	D1r5   c                 f    [         R                  " SS5      n[        UR                  5       S5        g )Nr   r   r   )r9   rc  r   r  r  s     r3   test_variance_gh_issue_2401#TestNct.test_variance_gh_issue_2401  s#    
 YYq!_RVVXs#r5   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  )r9   rc  r   rf   r'  r	   r  r   rh  s        r3   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r5   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   rc   g@ @g*dn?r   r  r   r   gqI  @gL) ?r  )r9   rc  r   r   )rq   nct_mean_df_1000nct_stats_df_1000expected_stats_df_1000nct_mean	nct_statsr  s          r3   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%@	=r5   c           	      l    [        [        R                  R                  SS[	        S5      5      S5        g )Nrc   i   r   )r   r9   rc  rn   r   rw   s    r3   test_cdf_large_ncTestNct.test_cdf_large_nc  s!    		aE%L91=r5   zx, df, nc, expected)r)  r\   r  gAs69)r  r   r  gV1c                 V    [        [        R                  R                  XU5      USS9  g r	  )r   r9   rc  re   )rq   r[   r  rm  rS   s        r3   test_pdf_large_ncTestNct.test_pdf_large_nc  s     			aR0(Gr5   r;   N)r  r  r  r  rd  rg  rj  rn  rv  ry  r   r  r  r|  r	  r;   r5   r3   ra  ra    sT    C2$ >,>6 [[2.+5
 H	Hr5   ra  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   )r9   recipinvgaussre   r  s     r3   test_pdf_endpoint#TestRecipInvGauss.test_pdf_endpoint  s%    ##As+Cxxr5   c                 r    [         R                  R                  SS5      nU[        R                  * :X  d   eg )Nr   r  )r9   r  r   rf   r(  r  s     r3   test_logpdf_endpoint&TestRecipInvGauss.test_logpdf_endpoint  s,    ""))!S1wr5   c                 \    [         R                  R                  SS5      nSn[        XSS9  g )Nr|  r|   g9V9s;r   r   )r9   r  rn   r   rq   r  rS   s      r3   test_cdf_small_x"TestRecipInvGauss.test_cdf_small_x  s+      ##D#.(%0r5   c                 `    [         R                  R                  SS5      nSn[        XS5        g )Nr;	  r|   glH<r  )r9   r  r   r   r  s      r3   test_sf_large_x!TestRecipInvGauss.test_sf_large_x  s)    ""2s+(U+r5   r;   N)	r  r  r  r  r  r  r  r  r	  r;   r5   r3   r  r    s    1(,r5   r  c                   &    \ rS rSrS rS rS rSrg)TestRicei  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  rf  rg  r   r2   )rY   rY   r|   r   r   r  r  r  r  )r	   rf   r  r9   r"  re   r   r   rn   r  r   r   )rq   r[   r  r  r2   s        r3   test_rice_zero_bTestRice.test_rice_zero_b  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	(r5   c                     [         R                  R                  n[        U" SS9R                  S5        [        U" SSS9R
                  S5        g )Nr!  r  r    )r   r   )r2   r   )r9   r"  r   r   r   rR  rY
  s     r3   test_rice_rvsTestRice.test_rice_rvs%  s8    jjnnS2Y^^Q'S2F+116:r5   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 )Nr\      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?rY   r    g     @_@r   ri  )	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@)r9   r"  rn   rf   r$  r   r   r8   )rq   rn   cdf_expprobabilitiesr   ppf_exps         r3   test_rice_gh9836TestRice.test_rice_gh9836*  s     jjnnRYYr33RYYr35KLO
 	%		#q#.jjnn]En;L 	%kk""3		"c2(>?;
 	%r5   r;   N)r  r  r  r  r  r  r  r	  r;   r5   r3   r  r    s    (*;
'&r5   r  c                   &    \ rS rSrS rS rS rSrg)
TestErlangiT  c                 B    [         R                  R                  S5        g rD  rE  rw   s    r3   rF  TestErlang.setup_methodU  rH  r5   c           
         [         R                  " 5          [         R                  " S[        5        [	        [        [
        R                  R                  SSSS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  rX	  r   r    r   r	  )r|   rf  r   rB  r}  rJ  r   )r  r  r  r  r  r9   erlangr   r   r  r   )rq   r   result_erlangresult_gammas       r3   test_erlang_runtimewarning%TestErlang.test_erlang_runtimewarningX  s     $$&!!'>: .,,**CQaaI (D!LL,,Ta,8M ;;??4A?6LMdC '&&s   BB//
B=c                     [        [        R                  R                  SSS/S9[        R                  R                  SSS/S95        g )Nr|   r    r   ra  )r   r9   r  re   r  rw   s    r3   test_gh_pr_10949_argcheck$TestErlang.test_gh_pr_10949_argcheckk  s<    U\\%%caW%5[[__SQG_4	6r5   r;   N)r  r  r  r  rF  r  r  r	  r;   r5   r3   r  r  T  s    D&6r5   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)TestRayleighip  c                 B    [         R                  R                  S5        g )Nr	  rE  rw   s    r3   rF  TestRayleigh.setup_methodq  s    
		y!r5   c                 Z    [         R                  R                  S5      n[        US5        g )NrM  g)Zx)r9   r:  r   r   rq   r  s     r3   r  TestRayleigh.test_logpdfu  s!    NN!!"%./r5   c                 Z    [         R                  R                  S5      n[        US5        g )NrM  i)r9   r:  r  r   r  s     r3   r  TestRayleigh.test_logsfy  s     NN  $5!r5   r  )gB)Q?got|?)gS2P?g3?c                 |   [         R                  R                  SX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-  $ )Nrc   r|   )rf   r  r   )r   r   s     r3   r  (TestRayleigh.test_fit.<locals>.scale_mle  s*    FFDKA-.!c$i-@RGGr5   r   r  r+  )r9   r:  r   r   r   )rq   r   r  r   r  scale_expectra   rb   s           r3   r(  TestRayleigh.test_fit}  s     ~~!!s!I	H !/^^''';
S"U) ^^''R'8
UB
 ^^''-
UId01r5   r  r   g̡=E?g@1d?c                 t    [         R                  R                  SXS9n[        [         R                  U5        g )Nr  r  )r9   r:  r   r   )rq   r   r  r   s       r3    test_fit_comparison_super_method-TestRayleigh.test_fit_comparison_super_method  s+    
 ~~!!s!I%ennd;r5   c                 6    [        [        R                  5        g ru   )r-  r9   r:  rw   s    r3   r  TestRayleigh.test_fit_warnings  s    ENN+r5   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  )rM  r  r}  r   r+  )rf   r   r   r9   r:  r   r   r!  )	rq   r   ra   rb   r   r   r   r   r   s	            r3   test_fit_gh17088TestRayleigh.test_fit_gh17088  s     ii##C('Dnn  $ I^^'',
$$$"^^///B$$$!!!r5   r;   N)r  r  r  r  rF  r  r  r   r  r  r(  r  r  r  r	  r;   r5   r3   r  r  p  s    "0" [[03K3K3M N2N2. [[0D$<4>
3K3M N<N<,
"r5   r  c                   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 )NrY   rf  r  g:23W+g~`9k)r9   	exponweibre   r   r   )rq   r[   r1   r  r  r  s         r3   test_pdf_logpdfTestExponWeib.test_pdf_logpdf  sS    OOa(%%aA.	/1DE	Gr5   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    r]   )rf   r  r9   r  re   weibull_minr   r   rq   r[   r1   r  r  rS   r  s          r3   test_a_is_1TestExponWeib.test_a_is_1  s     KKB"OOa($$((.$%%aA.$$++A1'r5   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 )Nrk  r    r\   )rf   r  r9   r  re   r  r   r   r  s          r3   test_a_is_1_c_is_1 TestExponWeib.test_a_is_1_c_is_1  s    KKAr"OOa(;;??1%$%%aA.;;%%a('r5   zx, a, c, ref))r    r  r   g=J ?)rM  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  )r9   r  r   r   )rq   r[   r1   r  r  r   s         r3   r  TestExponWeib.test_sf  s$     __a(e,r5   zp, a, c, ref))r  r  r   g;y$(@)gMg<r  r   gdbq^@)r
  r    rc   gE@)gvIh%L=r  r   g/7@)r  r  r  gTWTOc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r9   r  r  r   )rq   r  r1   r  r  r  s         r3   r  TestExponWeib.test_isf	  s$     oo!!!*u-r5   )rc   r   r   g)r   r|   r   gl̇կc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r9   r  r  r   )rq   r[   r1   r  r  r  s         r3   r   TestExponWeib.test_logcdf  s$     ''a0%0r5   )gR]jp2r  rC  gr)r  rc   r\   gN~c                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r9   r  r  r   )rq   r[   r1   r  r  r  s         r3   r  TestExponWeib.test_logsf  s$     %%aA./r5   r;   N)r  r  r  r  r  r  r  r   r  r  r  r  r   r  r	  r;   r5   r3   r  r    s    	G( (> [[	5	-	-* [[	4..
 [[^AGIJ1J1
 [[^IFHI0I0r5   r  c                        \ 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   )r9   r0  r   r   r  s     r3   test_sf_tailTestFatigueLife.test_sf_tail(  s)       ,0u=r5   c                 ^    Sn[         R                  R                  US5      n[        USSS9  g )Nr  r  r  r   r   )r9   r0  r  r   )rq   r  r  s      r3   test_isf_tailTestFatigueLife.test_isf_tail6  s+    !!!!S)5u-r5   r;   N)r  r  r  r  r  r  r	  r;   r5   r3   r  r  &  s    >.r5   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)TestWeibulli=  c                 \    [         R                  R                  SS5      n[        US5        g r  )r9   r  r   r   r  s     r3   r  TestWeibull.test_logpdf?  s$    $$Q*Qr5   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!  ri  r  r   rJ  rc   r  r  g&.gCe )r9   r  re   r   rf   r   r   r  rn   r   rz	  r  r   r  weibull_max)
rq   r[   r1   r2   r  r  r  lcrH   r	  s
             r3   test_with_maxima_distrib$TestWeibull.test_with_maxima_distribD  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Kr5   rb   rf  rY   c                 h    [         R                  R                  US-  US-  SUS9n[        US5        g )Nrl  r   r   ri  g>)r9   r  rH  r   rA	  s      r3   rI  TestWeibull.test_delta_cdf  s;    " !!,,U3Ya38 - :56r5   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   > )rc   r  r|   r]   r   r  r   r   r&	  r  r  r  r  )
rf   r   r   r9   r  r   r   r   r  r   )rq   r   r  ra   rb   rO   r   c2r  r  c3r  r  c4r  r  r  r   r  s                      r3   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!r5   r  )rM  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   r9   r  r   r  r  s       r3   r  TestWeibull.test_sf_isf  s>     	)),,Q2CeD))--c5quEr5   r;   N)r  r  r  r  r  r  r   r  r  rI  r  r  r	  r;   r5   r3   r  r  =  su    
RLh [[WsCj17 27("< [[[+J,D+E FFFFr5   r  c                        \ 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>~). r\   r]   rm  r|   r   r   )
rf   r   r   rQ	  r9   dweibullrA   r  r  r   )rq   r   r  r   r  s        r3   r  TestDweibull.test_entropy  sq     ii##$78

2
..nn$$Q'''*RVVC[8u-r5   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  r\   r    rm  r|   r   r   )
rf   r   r   rQ	  r  r9   r  r   r  r   )rq   r   r  r[   r   r  s         r3   r  TestDweibull.test_sf  sy     ii##$78


,,nn%E%%((..u-r5   r;   N)r  r  r  r  r  r  r	  r;   r5   r3   r  r    s    ..r5   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 )NrY   r   g)\(?gףp=
?r   )r9   truncweibull_minre   r   r  s     r3   test_pdf_bounds TestTruncWeibull.test_pdf_bounds  s0    ""&&Sz3dCQc
#r5   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   rf  r   rB  g~?)r9   r   r   rf   r(  r   r   r  s     r3   r  TestTruncWeibull.test_logpdf  sU    ""))#sC@Q ""))#sC=./r5   c                 h    [         R                  R                  SS/SSS5      n[        USS/5        g )Nr   rf  r   rY   )r9   r   r   r   r  s     r3   test_ppf_bounds TestTruncWeibull.test_ppf_bounds  s0    ""&&Sz3SAQc
#r5   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   rY   r  r|   r   r   rf  r   r   r!  )r9   r   r   rn   r   rq   r  r[   q_outs       r3   test_cdf_to_ppf TestTruncWeibull.test_cdf_to_ppf   sG    0""&&q"b"5&&**1b"b9!r5   c                     / SQn[         R                  R                  USSS5      n[         R                  R                  USSS5      n[	        X5        g r	  )r9   r   r  r   r   r
  s       r3   test_sf_to_isfTestTruncWeibull.test_sf_to_isf  sG    0""&&q"b"5&&))!RR8!r5   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   rf  r!  c                 R   > X-  [         R                  R                  U TTT5      -  $ ru   )r9   r   re   )r[   r  r1   r2   r  s     r3   xnpdf)TestTruncWeibull.test_munp.<locals>.xnpdf  s'    4..221aA>>>r5   r   r    c                    > T" U S5      $ r   r;   r[   r  s    r3   rI   ,TestTruncWeibull.test_munp.<locals>.<lambda>      ar5   rc   c                    > T" U S5      $ r  r;   r  s    r3   rI   r    r  r5   r   c                    > T" U S5      $ r!  r;   r  s    r3   rI   r     r  r5   r   c                    > T" U S5      $ )Nr   r;   r  s    r3   rI   r  $  r  r5   )r9   r   r  r   r   r   )rq   rU  r
  m1_expectedr   ro  m2_expectedm3m3_expectedrp  m4_expectedr1   r2   r  r  s              @@@@r3   	test_munpTestTruncWeibull.test_munp  s   	? ##**1aA6R##**1aA63Q:(##**1aA63Q:(##**1aA63Q:(##**1aA63Q:(r5   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 )Nrf  r!  r   r    r|   r  )rf   r  r  r   r9   r   rn   r   r  r   r   r  r  )rq   r1   r2   r  x_medrn   r  r   r   r	  r  s              r3   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#r5   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!  ri  rJ  rc   r   r  )rf   r(  r9   r  re   r   r   r   rn   r  r   r  r   )rq   r[   r  r1   r2   rb   r  p_truncr  lp_truncrn   	cdf_truncr  lc_truncrH   s_truncr	  ls_truncs                     r3   test_compare_weibull_min)TestTruncWeibull.test_compare_weibull_min?  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!r5   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  rC  r]   )	rf   rk  r9   r   re   rn   r  r  r   )
rq   r  r1   r2   r[   rc  r  rN  rd  r  s
             r3   test_compare_weibull_min2*TestTruncWeibull.test_compare_weibull_min2h  s     "aKKc"%%))!5%%))!5  $$Q*U->->-B-B1-HH  $$Q*T1!!%%a+e.?.?.C.CA.II4O


""4.


""4.r5   r;   N)r  r  r  r  r  r  r  r  r  r!  r%  r.  r1  r	  r;   r5   r3   r  r    s0    $
0$
"")6$0'"R/r5   r  c                   h    \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	Sr
g)		TestRdistiy  c                     [         R                  n/ SQn[        UR                  UR	                  US5      S5      USS9  g )Nr#  g     @r   ri  )r9   rdistr   rn   r   )rq   r
  rv  s      r3   test_rdist_cdf_gh1285TestRdist.test_rdist_cdf_gh1285z  s5    $FJJvzz&%'@%H"A	/r5   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  r\   g@r|   rc   r    )rf   rk  r   r9   r  re   r6  )rq   r[   r  s      r3   test_rdist_betaTestRdist.test_rdist_beta  sd    KKtR(C

1Q3! 4 8 8!a% CC!KKN..q1	3r5   r  ))r  i  g?)rY      g;|bZ?)r|   i  g79)r   iU  g޻S/c                 T    [        [        R                  R                  X5      USS9  g r  )r   r9   r6  r   r  s       r3   test_rdist_sfTestRdist.test_rdist_sf  s     	q,c>r5   r;   N)r  r  r  r  r7  r:  r   r  r  r>  r	  r;   r5   r3   r4  r4  y  s7    /3 [[	
??r5   r4  c                       \ rS rSrS rS rS rS rS rS r	\
R                  R                  S/ S	Q5      S
 5       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   r9   r   re   triangrn   )rq   modesmoder[   s       r3   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;	 r5   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    r\   )rf   rk  r   r9   r   re   r  rn   r  s     r3   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Or5   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   rc   r    r|   r   r  r  rf  rY   g      ?rC  r   r  r  g      ?)r   r9   r   re   rn   rw   s    r3   
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#>Dr5   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   rc   r   rc   c                    > TTU S-   -  TU S-   -  -
  TT-
  -  TU S-   -  TU S-   -  -
  TT-
  -  -
  -  U S-   -  U S-   -  $ )Nrc   r    r;   )r  r1   r2   r  dr  s    r3   r  6TestTrapezoid.test_moments_and_entropy.<locals>.moment  sn    !ac(Q1X-!A#6!Hq1Q3x/AaC89 :qSqS" #r5   r    r|   r  ri  r   r.  r  r   r   )rf   r  r   r9   r   r   r  rA   )rq   r  r3  ra   rb   r  r   r  rA   r1   r2   r  rP  r  s            @@@@@r3   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Lr5   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   rT  r   r   r  r  r   )rf   r   r9   r   re   broadcast_arraysemptyr   r   r$  r#  ravelr   r  rR  r   r	  )rq   r  rP  r[   rY  ccddr  r   indr  r   c1d1s                 r3   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>r5   c                 $   [         R                  " SSS5      n[        R                  " SS9   [        R
                  R                  USS5      nS S S 5        [        W[        R                  R                  U5      5        g ! , (       d  f       N8= f)Nr   r    r\   z`trapz.pdf` is deprecatedr  )	rf   rk  r   deprecated_callr9   rB   re   r   r  )rq   r[   r  s      r3   
test_trapzTestTrapezoid.test_trapz  sb    KK1b!##*EF[[__Q1-F GFEMM$5$5a$89 GFs   "B
Br  )re   r   rn   r  r   r  r   r  c                    Su  p#[        [        R                  U5      " SX#5      n[        R                  " SU S3S9   [        [        R
                  U5      " SX#5      nS S S 5        WU:X  d   eg ! , (       d  f       N= f)N)r  r   r    z`trapz.z` is deprecatedr  )r=  r9   r   r   r`  rB   )rq   r  r  rP  rS   r  s         r3   test_trapz_deprecation$TestTrapezoid.test_trapz_deprecation  su     5??F3Aq<##F8?3
 U[[&1!Q:F
 !!!	
 
s   "A11
A?r;   N)r  r  r  r  rF  rI  rL  rR  r]  ra  r   r  r  rd  r	  r;   r5   r3   rA  rA    sP    ;P
E(M6?4: [[X (E F"F"r5   rA  c                       \ rS rSrS rSrg)
TestTriangi  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|   rf  r    r   rc   r   r  )rf   r  r   r9   rC  re   rn   rw   s    r3   test_edge_casesTestTriang.test_edge_cases  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%r;   N)r  r  r  r  rj  r	  r;   r5   r3   rg  rg    s    6r5   rg  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)TestMaxwelli  r  )rD  gCR5&.)r   g7q?c                 T    [        [        R                  R                  U5      USS9  g r  )r   r9   maxwellr   r  s      r3   r  TestMaxwell.test_sf   s     	((+Su=r5   r  ))rJ  g1!@)g    ?g?)g      <gCuJ!@c                 T    [        [        R                  R                  U5      USS9  g r   )r   r9   ro  r  r  s      r3   r  TestMaxwell.test_isf)  s    
 	))!,c>r5   c                 Z    Sn[         R                  R                  S5      n[        X!SS9  g )Ngi6urm  r  r   )r9   ro  r  r   )rq   r  r  s      r3   r   TestMaxwell.test_logcdf0  s%    %%%a(%0r5   c                 Z    Sn[         R                  R                  S5      n[        X!SS9  g )Ng_OԺr  r  r   )r9   ro  r  r   )rq   r  r  s      r3   r  TestMaxwell.test_logsf6  s%    %##D)/r5   r;   N)r  r  r  r  r   r  r  r  r  r   r  r	  r;   r5   r3   rm  rm    sf    
 [[X::<=>=> [[X:;?	;?10r5   rm  c                        \ rS rSrS rS rSrg)
TestMielkei=  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    rf  rF  )r   r9   mielker  rf   r(  r	   r  )rq   rX   rH   s      r3   rY  TestMielke.test_moments>  sv    U\\!'..q1266:U\\!S)003RVV<ELLD188;<=r5   c                     [         R                  " SSS5      nSu  p#[        [        R                  R                  XX#-  5      [        R                  R                  XU5      5        g )Nr   r]   rM  )g@gHzG@)rf   rk  r   r9   burrre   rz  )rq   r[   rX   rH   s       r3   test_burr_equivalence TestMielke.test_burr_equivalenceE  sG    KKc2&

qQS15<<3C3CA!3LMr5   r;   N)r  r  r  r  rY  r~  r	  r;   r5   r3   rx  rx  =  s    >Nr5   rx  c                   ,    \ rS rSrS rS rS rS rSrg)TestBurriK  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|   rc   )r    r    )rc   r|   r  r|   rf  )r    rc   r   )
r9   fiskr}  burr12re   r1   r   r   rf   r  )rq   r   r&  r'  r   r)  r*  r+  s           r3   test_endpoints_7491TestBurr.test_endpoints_7491L  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)rg  r   )g4U?g&MI?)r9   r}  r   )rq   r  rP  r   variancemean_hcvariance_hcs          r3   test_burr_stats_9544TestBurr.test_burr_stats_9544`  s=    A)//1  G&.r5   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   )r9   r}  r	   rf   r 
  r  rK  r   )	rq   r  rP  r   r  e1e2e3e4s	            r3   test_burr_nan_mean_var_9544$TestBurr.test_burr_nan_mean_var_9544k  ss   A)//1"#A)//1D!""#))"((<*@!G)),=B )),=B B )),=B B B )),=B B B B r5   c                 n    Su  p/ SQn/ SQn[        [        R                  R                  X1U5      USS9  g )N)rg  r!  )rY   r  r  r  )g+&?gI$_@gKT@gؗVAr   r   )r   r9   r}  r  )rq   r  rP  r  r  s        r3   test_burr_isfTestBurr.test_burr_isf  s2     &#

qQ/5Ar5   r;   N)	r  r  r  r  r  r  r  r  r	  r;   r5   r3   r  r  K  s    0(	/(!TBr5   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)rf  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   ri  r   r   )r9   r  rH  r   )rq   rb   rS   r  s       r3   rI  TestBurr12.test_delta_cdf  s-    ( ''S!Qe'De4r5   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    rc   r  r   rI  r  r  r   r   )rf   rg   r'  r9   r  r   )	rq   r  rP  r   r  r  r  r  r   s	            r3   test_moments_edgeTestBurr12.test_moments_edge  s}    
 uuQw"%%(2+ouuaxCH%66$)ll1 &&v.u-r5   zp, c, d, ref))r
  rD  r|   ggx4/@)gҶOɃ;rD  r|   gI8aS@)r
  r  #   gj\/ @)g#aMR/r  r  g!GAc                 X    [         R                  R                  XU5      n[        XTSS9  g r  )r9   r  r  r   )rq   r  r  rP  r  r[   s         r3   test_isf_near_zeroTestBurr12.test_isf_near_zero  s$     LLQ1%U+r5   r;   N)r  r  r  r  r   r  r  rI  r  r  r	  r;   r5   r3   r  r    sa    [[.<;=>5>5(.  [[	0,,r5   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   r\   rD  x   )rc   r   r  rD  )rY   r   i)#  gupm1f?)r    r\   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   r9   studentized_rangern   r   )rq   pvkr  
p_expectedrY  rX   res_ps          r3   test_cdf_against_tables,TestStudentizedRange.test_cdf_against_tables    s>    iiFC"J1++//a8EED9  r5   c                     U R                    H4  u  pUu  p4n[        R                  R                  X5U5      n[	        XbSS9  M6     g )Nr  r   )r   r9   r  r   r   )rq   r  
q_expectedr  rY  rX   res_qs          r3   test_ppf_against_tables,TestStudentizedRange.test_ppf_against_tables   s=    #yyOCGA!++//a8EED9  )r5   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  rX   rY  expected_atolexpected_rtolr  )r9   r  rn   r   rq   r  r  r  qkvr   s         r3   test_cdf_against_mp(TestStudentizedRange.test_cdf_against_mp   ^    z*,	smXc]HSM9%%))3/%o6%o6	8r5   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  )r9   r  re   r   r  s         r3   test_pdf_against_mp(TestStudentizedRange.test_pdf_against_mp   r  r5   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  rX   rY  r  r  r  r  r  )rf   r  r9   r  r  r   )rq   r  r  r  mkvr   s         r3   test_moment_against_mp+TestStudentizedRange.test_moment_against_mp)   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   r\   r   r  r    )r   r9   r  re   rf   r(  r   )rq   rX   rY  r   s       r3   test_pdf_integration)TestStudentizedRange.test_pdf_integration:   s9    5**..266GA"r5   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   r\   r   )stepr    r  r   )rf   r$  r9   r  rn   re   r   r   )rq   rX   rY  r[   y_cdf	y_pdf_rawy_pdf_cumulatives          r3   test_pdf_against_cdf)TestStudentizedRange.test_pdf_against_cdfA   sl    
 IIa$'''++A!4QR8++//a8	/	= 	(d;r5   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  )rf   r  r9   r  rn   r   )rq   r  r  rX   rY  r_resr   s          r3   test_cdf_against_r'TestStudentizedRange.test_cdf_against_rQ   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    rc   r   r   r\   r  r
  z...could not be broadcast...r  )r\   r  rh  )
rf   r  r9   r  rK  r   rR  r   r   r&  rI  s     r3   test_moment_vectorization.TestStudentizedRange.test_moment_vectorizationY   s     [[*''--q!fq!fr2hGA + 	&]]:-KL##))!aV\B ML +*
 MLs   (B#4&B4#
B14
Cc                 n   [        5        n[        R                  " SS9   UR                  [        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   rf   r  rM   r   r9   r  r#  r	   	_argcheck)rq   r
  rX   r  r   s        r3   test_fitstart_valid(TestStudentizedRange.test_fitstart_validi   su     CX)FJJ)*11;;IFKA1a *G  	''11!R89	 *G)F  s"   B&;BB&
B#	B&&
B4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   r\   韆 r  r  )r9   r  re   rf   r(  r   rn   )rq   r   
res_finites      r3   test_infinite_df%TestStudentizedRange.test_infinite_dfq   s     %%))!R8,,00B>
d>%%))!R8,,00B>
d>r5   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   r\   r   r  i r  r  )r9   r  re   r  AssertionErrorr   rn   )rq   r   r  
res_sanitys       r3   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Er5   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   )r9   r  r   r   )rq   r  rX   rY  r  s        r3   test_clipping"TestStudentizedRange.test_clipping   s<     .a##&&qQ/15)Avvr5   r;   )3r  r  r  r  q05q01q001rf   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	  r;   r5   r3   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   rY  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  rg  rZ   r   )rf   rk  r9   r+   re   r  r   )rq   rY  r[   r  s       r3   test_pdf_nonpositive_lambda+TestTukeyLambda.test_pdf_nonpositive_lambda   s]     KKc3'!!!){{1~!!####C}}r5   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  rg  rZ   r  r   r   rc   )	rf   rk  r   r9   r+   re   r  r   r  )rq   r[   rY  r  s       r3   test_pdf_mixed_lambda%TestTukeyLambda.test_pdf_mixed_lambda   s    KKc3'hhu-.!!!){{1~!!#### "1  """" !s
!!!!!  """"r5   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   rc   r|   )rf   r   r9   r+   supportr(  r   )rq   rY  r1   r2   
expected_bs        r3   r@  TestTukeyLambda.test_support   sb    hh9:  ((-XXrvvrvvrvvq!SAB
Q#Q$r5   c                 d    [         R                  R                  SS/S5      n[        USS/5        g )Nr  r   r|   r   )r9   r+   re   r   r  s     r3   test_pdf_support_boundary)TestTukeyLambda.test_pdf_support_boundary   s.     !!4+s3Qc
#r5   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  rc   r   r  r\   ri  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r9   r+   rf   rg   r   )rq   r\  rS   s      r3   "test_tukeylambda_stats_ticket_15452TestTukeyLambda.test_tukeylambda_stats_ticket_1545   s     $$Q$7ruuaxz1c*B"5$$T6$:GB"5$$T6$:GB"5r5   r;   N)r  r  r  r  r   r  r  rf   r   r  r  r@  r  r  r	  r;   r5   r3   r  r     s\    [[	dD"((TFSED6#:;<	#%$6r5   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   rf  r|   rY   r   rJ  )g~V1?r  gba"?g܄4ťY?r  g$%+Ir  r   r   )rf   r   r9   r5  rn   r   r   )rq   r[   rS   r  r  s        r3   test_levy_cdf_ppfTestLevy.test_levy_cdf_ppf   sb    HH78 88 5 6 JJNN1%0 ZZ^^H%E*r5   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  R	                  U5      n[        X2SS9  g )N)r  r  gMraB3Grg  )gep[>g}XEQ=gѭEG<g?_%~:r   r   )rf   r   r9   r5  r   r   )rq   r[   rS   r  s       r3   test_levy_sfTestLevy.test_levy_sf   sB    HH-.88 4 5 JJMM!%0r5   zp, expected_isf))r  gj1e2H)r  g6C)r	  gnE@)r<  g!^x1?)r  gZ?)g   ?g:}!Nu?c                 V    [         R                  R                  U5      n[        X2SS9  g )Nr  r   )r9   r5  r  r   )rq   r  expected_isfr[   s       r3   test_levy_isfTestLevy.test_levy_isf!  s      JJNN1e4r5   c                 ^    SnSn[         R                  R                  U5      n[        X2SS9  g )Nrg  g?_%~r  r   )r9   r5  r  r   r  s       r3   test_levy_logcdfTestLevy.test_levy_logcdf!  s*    $""1%%0r5   c                 ^    SnSn[         R                  R                  U5      n[        X2SS9  g )Nrq  gޢاr  r   )r9   r5  r  r   r  s       r3   test_levy_logsfTestLevy.test_levy_logsf!  s*    %

  #/r5   r;   N)r  r  r  r  r  r  r   r  r  r  r  r   r	  r;   r5   r3   r  r     sD    +.	1, [[.JK5K510r5   r  c                      [        [        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?r\   test_540_567)rj  r	  g2gk?g;B.?gͣh?gHŎ*?r`   g.y?)r   r9   rN  rn   r;   r5   r3   r#  r#  #!  sk    

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

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

}.-; ' =+ "N<r5   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	   r9   r  rS  r;   r5   r3   test_regression_ticket_1421r%  /!  s1    (0E0EEFH---.r5   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|   )rf   r  r	   r 
  r9   r  r  r'  rn   r  r   re   r   r   r  r  ra  rm  r;   r5   r3    test_nan_arguments_gh_issue_1362r'  5!  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        [         R                  " / SQ5      n [        R
                  R                  U S   U S   U S   S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[        X SS9  [         R                  " [        R
                  R                  USSS95      n[        X SS9  [         R                  " [        R
                  R                  USSS95      n[        X SS9  [         R                  R                  S5        SnSn[        R                  R                  USSS9n[         R                  " [        R                  R                  XS95      n[         R                  " U[         R                  " X-
  S-  R                  5       5      /5      n[        X%SS9  g ! , (       d  f       GN= f)Ni.  )r  r   r|   r   r    rc   r]   rK  r  )r
  r   r   ri  r|   )r   ra   r  )r   ra   r}
  r   r   r   )rf   r   r   r   r9   r7  r   r  r   r   rN  r  r   )truer[   r  ra   r   rS   s         r3   test_frozen_fit_ticket_1536r*  J!  s   IINN488O$D$q'47DG#>A	H	%%--++AB+78 
& a0XXemm''#1'=>Fa0XXemm''d':;Fa0XXemm''d';<Fa0IINN4
CD

sBS)AXXejjnnQn23Fxxrww!'9'9';<=>H!4) 
&	%s   53H//
H>c                      [         R                  R                  S5        [        R                  R                  SS9n [        R                  R                  U 5      nSn[        XSS9  g )Ni	 r]   rK  )g
ףp=
?gʡE?r    ri  )rf   r   r   r9   r  r   r   r   )r   r  rS   s      r3   test_regression_ticket_1530r,  f!  sL    IINN6
,,



$C\\c"FH!4r5   c                     [         R                  R                  S5        [         R                  R                  S5      n S H;  n[        R
                  R                  X-   5      u  p#[        X!SS9  [        USSS9  M=     g )Nr   r
  )r  g   6Arf  r   r  )rf   r   r   rW  r9   r  r   r   )r[   offsetra   rb   s       r3   test_gh_pr_4806r/  o!  s\    IINN4
		A'\\%%aj1
#.s- (r5   c                  ~    [        [        R                  " [        R                  R                  SS5      5      5        g )Nr{  r  )r	   rf   r  r9   r  rm  r;   r5   r3   test_poisson_logpmf_ticket_1436r1  y!  s$    BKK,,T3789r5   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))
)rf  )r|   r  r   r  )r   )gUUUUUU?r
  g^cQg333333r  r  N)r9   r  r   )r  r1   
exact_mvskr  s       r3   test_powerlaw_statsr4  }!  s>    > ,=?E~~##Av#6!$3 r5   c                  \    [         R                  R                  SS5      n [        U S5        g )Nr   r    r   )r9   r  r   r   r  s    r3   test_powerlaw_edger7  !  s"    a#ACr5   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  rf  r  rf  )r9   r  r   r   re   rf   r(  r6  s    r3   test_exponpow_edger9  !  s    a#AC 	1./ARVVS#&'a!12ARVVS266'*+r5   c                  ^    [         R                  R                  SSS5      n [        U S5        g )Nr   r    rf  )r9   gengammare   r   r6  s    r3   test_gengamma_edger<  !  s$    1a#ACr5   za, c, ref, tol))g    `6Ar    g2j!@r   )r	  r    ggA@r   )r  r    rC	  r   )rZ  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   r9   r;  rA   )r1   r  r  r  s       r3   test_gengamma_extreme_entropyr>  !  s    " ENN**10#@r5   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   )r9   r;  re   r   rf   r(  )r  r  s     r3   !test_gengamma_endpoint_with_neg_cr@  !  sO    1a$A8O8>>  Ar*DBFF7??r5   c                      [         R                  R                  SSS5      n [        U S5        [         R                  R                  SSS5      n [        U S5        g )Nr  r  rf  g>r\   gqq?)r9   r;  rK  r   r6  s    r3   test_gengamma_munprB  !  sF    Rb)A:&RR(A6"r5   c                  n   [         R                  " / SQ5      n [         R                  " SS9   [        5        nUR	                  [
        S5        UR	                  [        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)
rf   r   r  r   rM   r   r  r9   r+  r   )rP  r
  s     r3   test_ksone_fit_freezerD  !  s    
		/
	0A 
X	& CJJ)#$ JJ~FHKKOOA ! 
'	&   
'	&s#   B&ABB&
B#	B&&
B4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  )rf   r   r  r  r   r9   rN  r  realimagr   r   )r[   rS   derivderiv_expecteds       r3   test_norm_logcdfrJ  !  s     
Dq#q)*	++A0H EJJL''*H4@ EJJL''F
388(N ZZq6z*5066EVVEJJ--a05::3D3DQ3GGHNE6r5   c                      [         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   )rf   r   r9   r6  r   r   )r[   rS   r  s      r3   test_levy_l_sfrM  "  sB    
12Axx 1 2H 	AAe,r5   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   )rf   r   r9   r6  r  r   r   )r  r[   r  s      r3   test_levy_l_isfrO  "  sA    
&'AAAAu%r5   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  r]   r   r    )r   r9   r  r  r   r;   r5   r3   test_hypergeom_interval_1802rR  $"  s    ))#vucB!))$sC! ))#vucB! $$T3Q7;$$QS!4a8r5   c                     [         R                  R                  S5        [         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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5        [        R                  R                  [        R                  R                  SS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 )Nr   rY   r  r   numrc   r   rf  rG  r   r|   r`   r   r\  r  rK  r  ri  )rf   r   r   rk  r  r)  r9   r  re   r   rn   r   rA   r   r+  ra  r  r  rj
  r   s    r3   test_distribution_too_many_argsrV  3"  s   IINN4 	C!$A)U[[__aA3?)U[[__aAqcB)U[[__aAq!<)U[[__aA3cJ)U[[__b!CH)U[[__aQCsK)U[[__aQCsK)U[[..A3cJ)U[[00"aSL)U[[__aQCsK 
KKOOAq!	KKOOAq!Q	KKb!	KKb!Q	KKb!Q%	KKOOB1a 	KKOOEKKOOBQO/4 
JJNN1aQN)UZZ^^Q1a8)UZZ^^Q1!< )U[[__a<)U__00!Q1#F)U__00!Q1c3G)UYY]]Aq!QsC)UYY]]Aq!Q3cJ	IIMM!Q1a%r5   c                      [         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 )	NrD  r  r  rc   gYZ@rJ  r   r{  )r9   ncx2rn   rf   r$  _cdfvecr   r  s     r3   test_ncx2_tails_ticket_955rZ  ["  sX     	

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

299RS11nEAAt!,r5   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^  rc   r   r)  r   rh  gsq6)r  r  r  r  r   r9   rX  re   rf   r$  r   r	   r  r   r   )logvals    r3   test_ncx2_tails_pdfr]  c"  s     
	 	 	"g~6UZZ^^Aryyc':A>B""1biiS&91= 
#
 BKK##%& 
	 	 	"g~6UZZ^^E1b115

))%B79KL 
#	" 
#	" 
#	"s   BE-2A2E>-
E;>
Fzmethod, expectedrn   gu%>g	;Q=re   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 )NrY   r   r   r\   )rm  r  r   r   )r=  r9   rX  r   )r  rS   r  s      r3   test_ncx2_zero_ncr_  t"  s+      UZZ(!QB?FF51r5   c                      [         R                  R                  SSSS9n [         R                  R                  SSS9n[	        XSS9  g )Nr\   r   r    )r  rm  r   )r  r   r   r   )r9   rX  r   rf	  r   )r  rS   s     r3   test_ncx2_zero_nc_rvsra  "  s<     ZZ^^raa^8Fzz~~!~4HF51r5   c                      S[         R                  " SS5      -  n [        [        R                  R                  SSU S9S5        g )Nr\   r   r  r    r  rm  r   )rf   r$  r   r9   rX  rn   )rm  s    r3   test_ncx2_gh12731rd  "  s4    	RYYq"	Bb115r5   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@)rD  gh ?8@rc  )rf  rf  rf  rf  rf  g?gy[qD?r   r   r   r   r   r   r
  r   )rf   r   r9   rX  r   r   )r[   nurY  r   sf_expecteds        r3   test_ncx2_gh8665rh  "  sG    
 " 	#A
 %GB	qC	(B'K
 B%0r5   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  rJ  r  r)  rT  rc   r   r  r   )	rf   rk  r9   rX  r   re   rN  r  r   )r  rm  r[   ncx2_pdfgauss_approxs        r3   test_ncx2_gh11777rl  "  s    
 
B	B
EJJNN5"1JJNN5"1u	>Azz~~aR(H::>>!"Wbgga"fq2vo.FGLH6r5   zx, c, expected))rc   r    g|1q?)rc   rc   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 Nr3  )r9   
foldcauchyr   r   r[   r  rS   r   s       r3   test_foldcauchy_sfrt  "  s$     
				Q	"BB%(r5   rv  ))rc   g?)r  rm  )rn  ro  )g6ްPg8R#/c                 Z    [         R                  R                  U 5      n[        X!S5        g rq  )r9   r  r   r   )r[   rS   r   s      r3   test_halfcauchy_sfrv  "  s$     
				Q	BB%(r5   zp, expected))g?g*wӄZ>)333333?gN9?)r|   rf  )r   g8<,O@)r   g:B)gl ׶w/gMb}[Pc                 X    [         R                  R                  U 5      n[        X!5        g ru   )r9   r  r  r   )r  rS   r[   s      r3   test_halfcauchy_isfry  "  s"     	QAA r5   c                  d    [         R                  " SSS9n [        U R                  S5      S5        g )Nr   r    ri  )r9   r  r   rn   )r  s    r3   test_foldnorm_zeror{  "  s$    		#BAr5   ))rc   r    gwo{?)rD  r    gGd-P/)r\   rO  gof?)r  rO  gOul";c                 Z    [         R                  R                  X5      n[        X2S5        g )Nr   )r9   r  r   r   rs  s       r3   test_foldnorm_sfr}  #  s"     
		1	 BB%(r5   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|   rf  r    r|   rf  c              3   h   #    U  H(  n[         R                  [         R                  U4   v   M*     g 7fru   rf   r_  r'  r;  s     r3   r  -test_stats_shapes_argcheck.<locals>.<genexpr>#  s!     8Cq"%%	*C   02)rc   r  r   rc   r  c              3   h   #    U  H(  n[         R                  U[         R                  4   v   M*     g 7fru   r  r;  s     r3   r  r  #  s!     8Cq"%%266	*Cr  )r9   r1  tupler   r7  )mv3mv2mv2_augmenteds      r3   test_stats_shapes_argcheckr  #  s     ..

3
7C
..

Sz1c
2C8C88M$ --

l
+C
--

q#h
'C8C88M$r5   c                       \ rS rSrS rSrg)
_distr_geni'#  c                     gNr
  r;   rq   r[   r1   s      r3   _pdf_distr_gen._pdf(#  s    r5   r;   Nr  r  r  r  r  r	  r;   r5   r3   r  r  '#  s    r5   r  c                       \ rS rSrS rSrg)_distr2_geni,#  c                     SU-  U-   $ r  r;   r  s      r3   _cdf_distr2_gen._cdf-#      Avzr5   r;   N)r  r  r  r  r  r	  r;   r5   r3   r  r  ,#  s    r5   r  c                        \ rS rSrS rS rSrg)_distr3_geni1#  c                 
    X#-   $ ru   r;   rq   r[   r1   r2   s       r3   r  _distr3_gen._pdf2#  s	    ur5   c                     SU-  U-   $ r  r;   r  s      r3   r  _distr3_gen._cdf5#  s     Avzr5   r;   Nr  r  r  r  r  r  r	  r;   r5   r3   r  r  1#  s    r5   r  c                        \ rS rSrS rS rSrg)_distr6_geni;#  c                     X!-  U-   $ ru   r;   r  s       r3   r  _distr6_gen._pdf=#  s    sQwr5   c                     SU-  U-   $ r  r;   r  s       r3   r  _distr6_gen._cdf@#  r  r5   r;   Nr  r;   r5   r3   r  r  ;#  s    r5   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)TestSubclassingExplicitShapesiD#  c                 L    [        SSS9n[        UR                  SSS9S5        g )Ndummyr1   r  r  r    ra  r
  r  r   re   rq   dummy_distrs     r3   test_correct_shapes1TestSubclassingExplicitShapes.test_correct_shapesG#  s%     gc:[__Q!_,b1r5   c                 ^    [        SSS9n[        [        UR                  S40 [	        SS9D6  g )Nr  Ar  r    ra  )r  r  r)  re   r"  r  s     r3   test_wrong_shapes_11TestSubclassingExplicitShapes.test_wrong_shapes_1K#  s'     gc:i!AtayAr5   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    rc   r   rf
  )r  r"  r  r)  re   )rq   r  r>  s      r3   test_wrong_shapes_21TestSubclassingExplicitShapes.test_wrong_shapes_2O#  s1     gi@Q!q!i!;s;r5   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  r
  r  )r"  r  r)  r  rq   r>  s     r3   test_shapes_string0TestSubclassingExplicitShapes.test_shapes_stringT#  s    +i3s3r5   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  z(!)r  r"  r  SyntaxErrorr  r  s     r3   test_shapes_identifiers_17TestSubclassingExplicitShapes.test_shapes_identifiers_1Y#  s    .k:55r5   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  4chanr  r  r  s     r3   test_shapes_identifiers_27TestSubclassingExplicitShapes.test_shapes_identifiers_2^#      0k:55r5   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  zm(fti)r  r  r  s     r3   test_shapes_identifiers_37TestSubclassingExplicitShapes.test_shapes_identifiers_3b#  s    1k:55r5   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  za=2r  r  r  s     r3   "test_shapes_identifiers_nodefaults@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaultsf#  s    .k:55r5   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  z*argsr  r  r  s     r3   test_shapes_args.TestSubclassingExplicitShapes.test_shapes_argsj#  r  r5   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  z**kwargsr  r  r  s     r3   test_shapes_kwargs0TestSubclassingExplicitShapes.test_shapes_kwargsn#  s    
3k:55r5   c                 B    [        SSS9n[        [        [        40 UD6  g )Nr  za, b, c, lambdar  r  r  s     r3   test_shapes_keywords2TestSubclassingExplicitShapes.test_shapes_keywordsr#  s    (9:k:55r5   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_geniy#  c                 F    [         R                  R                  U5      U-  $ ru   r9   rN  r  r  s      r3   r  KTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdfz#      zzq)A--r5   r;   Nr  r;   r5   r3   	_dist_genr  y#      .r5   r  r1   r  r|   rc   ra  r9   r?   r   re   rN  rq   r  rO   s      r3   test_shapes_signature3TestSubclassingExplicitShapes.test_shapes_signaturew#  sI    	.++ 	. $TXXcQX')<Q)>?r5   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-  $ ru   r  r  s      r3   r  XTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdf#  r  r5   r;   Nr  r;   r5   r3   r  r  #  r  r5   r  r  r  r|   r    rc   r  )r9   r?   r  r)  re   r"  r  s      r3   "test_shapes_signature_inconsistent@TestSubclassingExplicitShapes.test_shapes_signature_inconsistent#  s;    	.++ 	. 'i3A$a.Ar5   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  )rq   r[   r?  extra_kwargs       r3   r  DTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdf#  s#    "1gzzq)K77r5   r;   Nr  r;   r5   r3   r  r  #  s    8r5   r  r  r  r|   !   r  )xxx)r9   r?   r   re   rN  r  r)  r"  r  s      r3   test_star_args,TestSubclassingExplicitShapes.test_star_args#  s    	8++ 	8
 .TXXcrX2EJJNN34G4JKTXXc2&

s(;B(>?i3?$2,?r5   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  )rq   r[   r.  r?  r  s        r3   r  FTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf#  s(    "1gzzq)K7&@@r5   r;   Nr  r;   r5   r3   r  r  #  s    Ar5   r  zoffset, extra_kwargr  r|   o   r  )r.  r  r  r  s      r3   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	3r5   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    )popr9   rN  r  )rq   r[   r?  kwargsr  s        r3   r  GTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf#  s,     %jj:zzq)K77r5   r;   Nr  r;   r5   r3   r  r  #  s    8r5   r  r  r  r    r   r  r  )rq   r  rO   s      r3   test_extra_kwarg.TestSubclassingExplicitShapes.test_extra_kwarg#  sD    	8,, 	8 /TXXaQX/1BCr5   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      $ ru   )r9   rN  re   r  s     r3   r  NTestSubclassingExplicitShapes.test_shapes_empty_string.<locals>._dist_gen._pdf#  s    zz~~a((r5   r;   Nr  r;   r5   r3   r  r  #  s    )r5   r   r  r|   r  r  s      r3   test_shapes_empty_string6TestSubclassingExplicitShapes.test_shapes_empty_string#  s?    	)++ 	) #TXXc]EJJNN3$78r5   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;   r5   r3   r  r  D#  s\    2B<
4
6
666666
@B@3D9r5   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     r3   test_only__pdf&TestSubclassingNoShapes.test_only__pdf#  s#     g.[__Q!_,b1r5   c                 J    [        SS9n[        UR                  SSS9S5        g )Nr  r  r    ra  )r  r   re   r  s     r3   test_only__cdf&TestSubclassingNoShapes.test_only__cdf#  s#    !w/KOOAO3Q7r5   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    r1   zlogpdf\(x, a, loc=0, scale=1\))	r  r   numargsr  refindallrS  r	   r   rq   r  r   s      r3   test_signature_inspection1TestSubclassingNoShapes.test_signature_inspection#  sX     !g.[((!,[''-jj:$,,.CAr5   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  rc   r  z!logpdf\(x, a, b, loc=0, scale=1\)r    )	r  r   r  r  r  r  rS  r	   r   r  s      r3   test_signature_inspection_2args7TestSubclassingNoShapes.test_signature_inspection_2args#  sX     "w/[((!,[''0jj=$,,.CAr5   c                 *    [        [        [        SS9  g )Nr  r  )r  r)  r  rw   s    r3   0test_signature_inspection_2args_incorrect_shapesHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapes#  s    i7;r5   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  r;   r  s      r3   r  CTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdf#      r5   r;   N)r
  r  r;   r5   r3   r  r&  #  s    r5   r  r  r  r9   r?   r  r)  r"  rq   r  s     r3   test_defaults_raise+TestSubclassingNoShapes.test_defaults_raise#  *    	++ 	 	iAd.@Ar5   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  r;   )rq   r[   r1   r?  s       r3   r  CTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdf#  r)  r5   r;   Nr  r;   r5   r3   r  r1  #      r5   r  r  r  r*  r+  s     r3   test_starargs_raise+TestSubclassingNoShapes.test_starargs_raise#  r.  r5   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_geni#  c                     gr  r;   )rq   r[   r1   r  s       r3   r  ATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdf#  r)  r5   r;   Nr  r;   r5   r3   r  r9  #  r4  r5   r  r  r  r*  r+  s     r3   test_kwargs_raise)TestSubclassingNoShapes.test_kwargs_raise#  r.  r5   r;   N)r  r  r  r  r  r  r   r  r  DOCSTRINGS_STRIPPEDr  r  r"  r,  r5  r<  r	  r;   r5   r3   r  r  #  sy    28
 [[+4HI J [[+4HI J<BBBr5   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*:)
r9   rL   r=  rT  r>   r?   r	   r  searchrS  )badonesdistnamerO   regexs       r3   r`
  r`
  #  sc    -GMMuh'dU..1D1DDFF 		%6$>? ! "r5   c                      [        [        R                  R                  [        R
                  SS5      S5        [        [        R                  R                  [        R
                  SS5      S5        g )Nr\   r  r   r   rY   r    )r   r9   r  r   rf   r(  rX  r  r;   r5   r3   test_infinite_inputrE  $  sB    ((R8!<

37;r5   c                      [         R                  R                  [         R                  R                  SS5      S5      n [	        U S5        g r  )r9   lomaxr   rn   r   r6  s    r3   test_lomax_accuracyrH  $  s/    2A6AAvr5   c                      [         R                  R                  [         R                  R                  SS5      S5      n [	        U S5        g r  )r9   r  r   rn   r   r6  s    r3   test_truncexpon_accuracyrJ  $  s7    U--11&!<a@AAvr5   c                      [         R                  R                  [         R                  R                  SS5      S5      n [	        U SSS9  g )Nrm  r    rA  rO  ri  )r9   r:  r  r   r   r6  s    r3   test_rayleigh_accuracyrL  $  s5    5>>,,Q2A6A3+r5   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)r	  alwaysr|   r   r   N)r  r  r  r9   r  rn   re   r   r   rf   r(  r   r   )r  number_of_warnings_throwns     r3    test_genextreme_give_no_warningsrP  $  s     
	 	 	-h'R#R#R#-$'F!.2 
.	-	-s   B=C
C)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  rc   r  rh  r   r  r   )r   r    r  r  r   r   r   )rf   r   r9   r  r'  euler_gammarg   r  r   zetar   r   )	r   r   r  r  r  ref_0ref_1ref_3ref_2s	            r3   test_moments_gh22400rX  &$  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"r5   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  rc   r    r   r   r   rf  r  r\   ri  r   rQ  r  r  )r9   r  rA   r   r   rf   r  )rR  r  s     r3   test_genextreme_entropyrZ  <$  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+~)6r5   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?)r9   r  r   r   r  )r[   rH   r!  s      r3   test_genextreme_sf_isfr\  S$  s    2 	AAv&AA-.					a	(BBAAu%AA()					a	'BBAAq!AA-.					a	#BBr5   c                  b    Sn [         R                  R                  U SS5      n[        US5        g )Nr  rc   r   gH&8>)r9   r  r   r   )probr  s     r3   test_burr12_ppf_small_argr_  $  s,    D||a+H H45r5   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
  )r?  dispxtolftol)r&   )r  x0r?  rb  s       r3   r  &test_invweibull_fit.<locals>.optimizer$  s    D4UKKr5   )r    rC  rc   r  r`  r   r  r   r   r   r\   rh  @   c   )r   r  g`?r  r   g [@N)r;   r   )rf   r   r9   r3  r   r   )r  r[   r  ra   rb   s        r3   test_invweibull_fitri  $  s]    .L 	HIA$$((i(HMAEAxd+!8O8E8$/r5   ))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   )r9   r3  r   r   )r[   r  rS   r  s       r3   test_invweibull_sfrk  $  s$     ""1(HHU3r5   zp, c, expected)r|   r  g9?)geK<r   g@c                 V    [         R                  R                  X5      n[        X2SS9  g r   )r9   r3  r  r   )r  r  rS   r  s       r3   test_invweibull_isfrm  $  s$     ##A)HHU3r5   z	df1,df2,x)r   r  rf  rz  r   r  r  r1  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  )r9   r%  rn   rj
  r   re   )df1df2r[   rm  expected_cdfcalculated_cdfr   calculated_pdfs           r3   test_ncf_edge_casert  $  so     
B77;;qs+LYY]]133NLu= 77;;qs+LYY]]133NLt<r5   c                  \    [         R                  R                  SSS5      n [        U SSS9  g )Nrc   r  r   g     `E@r   r   )r9   rj
  r  r   )rY  s    r3   test_ncf_variancerv  $  s&     			aAAAu5)r5   c                      [         R                  R                  SSSS5      n Sn[        U[        R
                  " U SS95        g )NrD  r  r  gffffff>@g&4I,)?)decimals)r9   rj
  rn   r   rf   round)	scipy_val	check_vals     r3   test_ncf_cdf_spotcheckr|  $  s6    
 		b!R.IIIrxx	A>?r5   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  )rY   rc   r   r   r    )rf   rk  r9   rj
  r   r   )r[   parr  xiq0s        r3   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	)
TestHistogrami$  c                 F   [         R                  R                  S5        [         R                  " / SQSS9n[        R
                  " U5      U l        [        R                  R                  SSSSS	9n[         R                  " US
S9n[        R
                  " U5      U l	        g )Nr   )r    rc   rc   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r   r   rm  r   binsrf  r  r)  {   r  rM  )
rf   r   r   	histogramr9   r@   templaterN  r   norm_template)rq   r  r   norm_histograms       r3   rF  TestHistogram.setup_method$  s{    
		t LL "@FGI	**95zz~~#Su3~Od4"//?r5   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|   rf  r  r   r  r!  r  rB  r  rg        @rX  r.  r	  rl  r        !@rA  r  )r   r   r^  r^  {Gz?r  Q?r  {Gz?r  r  r  r  r  r  r  r  r  r   r   r  r  r  rA  r   r  r  rc   r\   rf  r  r`   rY   r   )rf   r   r   r   r  re   r   rk  r  r9   rN  )rq   rv  
pdf_valuesr[   s       r3   rc  TestHistogram.test_pdf%  s     M NZZ !I J

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

qc=C	Ir5   c           	         [         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=?)\(?rQ  rf  rf  rc   r   rf  rA  r]   r   r  r\   r  r`   rY   r   )rf   r   r   r   r  rn   r   rk  r  r9   rN  )rq   rv  
cdf_valuesr[   s       r3   r  TestHistogram.test_cdf_ppf"%  s)    M NZZ !M N

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

qc=C	Ir5   c                 h   SnU R                   R                  US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  r   rf  r   r   r^  r  r   r  r  r!  r  rY   r  r  rB  r  r  r  rg  r  r|  r  r|   rX  r  r.  r  r	  r  rl  r  r  r  r  rQ  rA  )r  r   r   rf   r  r   )rq   rb  ru  s      r3   rZ  TestHistogram.test_rvs8%  s   """<RVVFSL)3/v}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-x!|#Fv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4Hv}-y1}4HRVVFSL)3/r5   c                     [        S5       HK  n[        U R                  R                  U5      [        R
                  " SS5      R                  U5      SS9  MM     g )Nr   rf  r  r|  r   )r  r   r  rK  r9   rN  r  r  s     r3   r!  TestHistogram.test_munpN%  sG    qAD..44Q7!JJsC077:G r5   c                     [        U R                  R                  5       [        R                  R                  SSS9SS9  g )Nrf  r  r`   r|  r   )r   r  rA   r9   rN  rw   s    r3   r  TestHistogram.test_entropyS%  s5    **224

**s#*>T	Kr5   )r  r  N)r  r  r  r  rF  rc  r  rZ  r!  r  r	  r;   r5   r3   r  r  $  s%    @ I4I,0,G
Kr5   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)r&
  r|   r  r  Tg'^P?g     H@z(Bin widths are not constant. Assuming...r  r  )
r9   r@   rf   r  r   re   r  r   r  r  )countsr  rO   r

  s       r3   test_histogram_non_uniformr  X%  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	)
TestLogUniformio%  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[ rJ  r    r)  r   r\   r  rk  iL  r   )rf   r   r   r9   
loguniformr   
reciprocalr   r  log10r!  r1  r   r  )rq   r   r  r   rv2r   rX  r   s           r3   
test_aliasTestLogUniform.test_aliasp%  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3r5   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  rY   r    r   r   r  rc   r  )rf   r   r   r9   r  r   r   )rq   r  r   r   r1   r2   ra   rb   s           r3   test_fit_override TestLogUniform.test_fit_override%  s     ii##K0""33"G ++///Cczz ++//Af/Mczzr5   c                 v   [         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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   rK  r  i8r  r   r\   )rf   r   r   r9   r  r  r   rn   r   r   r$  re   r  r   )
rq   r   r1   r2   rO   rn   r   r[   re   r   s
             r3   test_overflowTestLogUniform.test_overflow%  s     ii##$78% kk!QTk*#/5hhDh!#/5 4%%hhqkCRQR("- q	BFF1I-.		T*r5   r;   N)r  r  r  r  r  r   r  r  r  r  r	  r;   r5   r3   r  r  o%  s5    4" [[Xt}5
 6
+r5   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 )NrM  r}  E  r   r   ri  )r9   argusr   r   r   r  s     r3   test_argus_rvs_large_chi"TestArgus.test_argus_rvs_large_chi%  s=    KKOOBSsO;EKKO002AFFHaHr5   zchi, random_staterY   r  rX	     r     c                     [         R                  R                  USUS9n[         R                  " USU45      u  pE[	        US:  5        g )Nr}  r   r  r|  r9   r  r   r  r	   )rq   r  r   r[   r   r  s         r3   rZ  TestArgus.test_rvs%  s>     KKOOCcOE||Aw0Dr5   r  r  r  c                     [         R                  R                  USSS9n[         R                  " US 5      u  p4[	        US:  5        g )Nr}  ie r   c                     SSU S-  -
  S-  -
  $ )Nr    rc   r  r;   r   s    r3   rI   .TestArgus.test_rvs_small_chi.<locals>.<lambda>%  s    a!Q$h#->)>r5   r|  r  )rq   r  r  r   r  s        r3   test_rvs_small_chiTestArgus.test_rvs_small_chi%  s;    
 KKOOCcO?||A>?Dr5   zchi, expected_mean))r    g щi?)r\   g.憃?)r  g\paP?)r  g	?)rh  g,6?c                 T    [         R                  R                  USS9n[        X2SS9  g )Nr    ri  r   r   )r9   r  r   r   )rq   r  expected_meanr  s       r3   r  TestArgus.test_mean%  s'     KKS*u5r5   zchi, expected_var, rtol))r    gLH'B?r   )r\   go$?r  )r  g
=>r  )r  g2W>r  )rh  gb~P>r  c                 T    [         R                  R                  USS9n[        XBUS9  g )Nr    ri  r   )r9   r  r  r   )rq   r  expected_varr   rY  s        r3   r  TestArgus.test_var%  s$     KKOOCqO)d3r5   zchi, expected, rtol))r   gwM?r   )r|   gj?r   )rY   gHEA`!?r   )r   gcف>r   )rJ  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$   )rq   r  rS   r   s       r3   test_argus_phi_small_chi"TestArgus.test_argus_phi_small_chi%  s     	
3=r5   zchi, expected))r|   )g-\/?g+p7c?g5Ϧ\?)r  )g
f?gi{?ٸ?gZ@7?)rY   )gB	?g]?gR{?)r   )glͅw?g,?g[Z=?)rJ  )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rY   r|   r   r   r   )rf   r   r   r9   r  re   rq   r  rS   r[   s       r3   test_pdf_small_chiTestArgus.test_pdf_small_chi%  +     HH_%/Fr5   ))r|   )gQ߹?e?grJ,?g򺗄?)r  )gΎd?g?gh?)rY   )g|
o?gvb?g+@?)r   )g̈́On?ge?gC|[3?)rJ  )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   )rf   r   r   r9   r  r   r  s       r3   test_sf_small_chiTestArgus.test_sf_small_chi%  s+     HH_%q.uEr5   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  )r9   r  r   r   )rq   r[   r  rS   r   s        r3   test_sf_near_1TestArgus.test_sf_near_1 &  s      [[^^A#51r5   ))r|   )g+&?gk?gμm/?)r  )g?CL\f?g^N?g]AͭR?)rY   )ga>$?g;Lf?gaW?)r   )gx?g 43n?gwY?)rJ  )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   )rf   r   r   r9   r  rn   r  s       r3   test_cdf_small_chiTestArgus.test_cdf_small_chi&  r  r5   ))r|   )gQ)?g6{?r
  )gB`"۹?)g?g8%?r  )rY   )g388?gV%?r   )r   )g*j?gRS%?r   )rJ  )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 )Nr\  r  r   )r9   r  r   )rq   r  rS   r   rY  s        r3   test_stats_small_chiTestArgus.test_stats_small_chi&  s'     kkT2D1r5   r;   N)r  r  r  r  r  r   r  r  rZ  r  r  r  r  r  r  r  r  r  r	  r;   r5   r3   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2r5   r  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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)TestNakagamii)&  c                 b    SnSn[         R                  R                  X!5      n[        US5        g )Nr  r  gM+)r9   nakagamir   r   )rq   rf  r[   r  s       r3   r  TestNakagami.test_logpdf+&  s-     ~~$$Q+12r5   c                     SnSn[         R                  R                  X!5      n[        USSS9  [         R                  R	                  X15      n[        XBSS9  g )Nr  rg  g"S+:r   r   )r9   r  r   r   r  )rq   rf  re  r   r   s        r3   r  TestNakagami.test_sf_isf<&  sM     ^^r&1>^^'U+r5   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Nr   r|   gUiּr  r   )r9   r  r  r   )rq   r[   rf  r  r  s        r3   r   TestNakagami.test_logcdfO&  s/    %&&q-%0r5   c                 b    SnSnSn[         R                  R                  X5      n[        XCSS9  g )Nr|  rh  gD&`Ur  r   )r9   r  r  r   )rq   r[   rf  r  r  s        r3   r  TestNakagami.test_logsfW&  s/    %$$Q+/r5   zm, ref))r   g|Bd븿)r|   r  )r\   g/ۿc                 T    [        [        R                  R                  U5      USS9  g )Ng^~z=r   r   r9   r  rA   rq   r  r  s      r3   r  TestNakagami.test_entropy_&  s      	..q13WEr5   ))r  g}Ô%I)r  gq_)g    ScAgB4U)g    cAgu1U)r  gb>%)r  gWҙ\c                 V    [        [        R                  R                  U5      U5        g ru   r  r  s      r3   test_extreme_nuTestNakagami.test_extreme_nuq&  s    
 	..q137r5   c                     [         R                  " [        R                  R	                  S5      5      (       d   e[         R                  " [        R                  R	                  S5      5      (       d   eg )Nr  r  )rf   r  r9   r  _entropyrw   s    r3   test_entropy_overflow"TestNakagami.test_entropy_overflowx&  sJ    {{5>>2259::::{{5>>226:;;;;r5   znu, ref))r  g2H?)r  g:U?)r  g>c                 T    [        [        R                  R                  U5      USS9  g r	  )r   r9   r  r   )rq   rf  r  s      r3   r  TestNakagami.test_mean|&  s     	++B/5Ar5   z+Fit of nakagami not reliable, see gh-10908.r  rf  )r&	  r  r  ra   )r   r\   r  rb   )r  r   rD  c                 `  ^
^ Sm
[         R                  R                  T
XUS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 )Nr]   9  r   rf  ra   rb   r   r  r   c                    > SU -  S-   [         R                  " STU-
  -  5      -  SU -  US-  -  [         R                  " TU-
  5      -  -   $ )Nr  r    rc   rf   r  )rf  ra   rb   rz  s      r3   	dlogl_dnu(TestNakagami.test_fit.<locals>.dlogl_dnu&  sP    UQY"&&GcM):";;d5!8mbffWs]&;;< =r5   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   rc   )rf   r  r   r  rf  ra   rb   rb  rz  s      r3   
dlogl_dloc)TestNakagami.test_fit.<locals>.dlogl_dloc&  sp    RVVBZ)Ar*::;rvvw}&=>??@ffw}59:; <r5   c                 l   > ST-  U -  U-  SU -  US-  -  [         R                  " TU-
  S-  5      -  -   $ )Nr  rc   r   r  r  s      r3   dlogl_dscale+TestNakagami.test_fit.<locals>.dlogl_dscale&  sF    !GbL5("fuz)BFFGcMa3G,HHI Jr5   r   rJ  r   )r9   r  r   r   r   )rq   rf  ra   rb   nu_estloc_est	scale_estr  r  r
  rb  rz  s             @@r3   r(  TestNakagami.test_fit&  s     ..$$!+0t % E%*^^%7%7%@"-3/	s3	=	<
	J 		&9=qtL
6I>MVi@!$Or5   c                 R   SnSn[         R                  R                  XCUUS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|   r]   r  r   r}  rc   r]  r   )	r9   r  r   r   rf   r!  r  r   r   )rq   ra   rb   rf  r  rz  r  r  r  loc_theo
scale_theos              r3   test_fit_nuTestNakagami.test_fit_nu&  s    
 ..$$!+0t % E%*^^%7%7%7%G" 66'?WWRWWg&7A%=>?
.5	D9r5   r;   N)r  r  r  r  r  r  r   r  r   r  r  r  r  r  r  r  r(  r  r	  r;   r5   r3   r  r  )&  sS   3",&10 [[X	%&F	&F [[X	DE8	E8< [[Y>?B	?B [[KL[[T?3[[UN3[[Wk2P 3 4 4 MP8 [[UN3[[Wk2: 3 4:r5   r  c                   &    \ rS rSrS rS rS rSrg)TestWrapCauchyi&  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   rf  rB  r  r   r   )	rf   r   r9   
wrapcauchyrn   rR  nditerr   rW  )rq   r  r[   r  r   r[  scalar_valuess          r3   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   )r9   r  rn   rf   rg   r   r  s     r3   test_cdf_centerTestWrapCauchy.test_cdf_center&  s*      -3U+r5   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 )Nrf  rB  r   r    r   rc   )r9   r  rn   r   rf   arctantanrg   )rq   r   r!  r  r  crs         r3   rn  TestWrapCauchy.test_cdf&  s      "1-!ea!e_!bii266"Q$<8>?!a"))Brvvbeebdl/C,C"DRUU"JJKr5   r;   N)r  r  r  r  r  r  rn  r	  r;   r5   r3   r  r  &  s    
>,Lr5   r  c                       " S S[         R                  5      n U " SS9n[        [        SS9   UR	                  5         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   r;   rw   s    r3   _rvs4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvs&  s    r5   r;   N)r  r  r  r  r*  r	  r;   r5   r3   rvs_no_size_genr(  &  s    	r5   r,  rvs_no_sizer  z_rvs\(\) got (an|\d) unexpectedr  )r9   r?   r  r)  r   )r,  r-  s     r3   test_rvs_no_size_errorr.  &  sB    %--  "}5K	y(J	K 
L	K	Ks   A
A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=  r9   rT  r?   r   r  r   rf   r'  )rB  r?  rO   a0b0r	  r	  a1b1r1   r2   s              r3   test_support_gh13294_regressionr6  &  s    77 $$,:Q0 	15(#D$++,,t9>\\4(FBRVV$RVV$
 2t2T262R R ||T"QQr5   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   )	r9   rN  r  rf   r   r(  r'  r   rR  )r2  r3  ex_a0ex_b0r4  r5  ex_a1ex_b1r  r
  ex_a2ex_b2s               r3   ,test_support_broadcasting_gh13294_regressionr>  &  s   ZZm<FBHHrvvgw89EHHbffbffbffbff56E88u{{"""88u{{"""ZZB'FB88B<"588u{{"""88u{{"""ZZrd3FBHHQxZ EHHQxZ E88u{{"""88u{{"""r5   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   rf  r   r!  rB  rA  )r   r	  )r   r9   rN  r  rf   rV  rR  r`   s     r3   *test_stats_broadcasting_gh14953_regressionr@  '  s    r(CTB4"E+r2hR2r(-KL
((5/CHHVE::>>#%++v555r5   )gn!	g:I"<)gQ	@gE?c                     [        [        R                  R                  U 5      U5        [        [        R                  R	                  U * 5      U5        g ru   )r   r9   cosinern   r   )r[   rS   s     r3   test_cosine_cdf_sfrC  &'  s6     ELL$$Q'2ELLOOQB'2r5   ))r  gkM6O)rT  g0ӭ!	)rw  g;'u(@c                     [        [        R                  R                  U 5      U5        [        [        R                  R	                  U 5      U* 5        g ru   )r   r9   rB  r   r  )r  rS   s     r3   test_cosine_ppf_isfrE  .'  s8    
 ELL$$Q'2ELL$$Q'(3r5   c                      [         R                  R                  [        R                  * [        R                  /5      n [        U S5        g )NgrB)r9   rB  r   rf   rg   r   )r  s    r3   test_cosine_logpdf_endpointsrG  7'  s1    <</D d./r5   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 ru   )r!   rT  rE   r"   r   r   )r  r   discrete_distnamesinvdiscrete_distnamescont_distnamesinvcont_distnamess         r3   test_distr_params_listsrM  >'  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   rX   rc  r   )r  r1   r!  )r9   r  _statsr  rK  r;   r5   r3   test_moment_order_4rP  L'  s`     
NNAs+ >>  qA .#555 >>1%,,,r5   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     r3   ROOT_pdf_sample_data'TestRelativisticBW.ROOT_pdf_sample_dataa'  sL     wwN!!;<
 vv  /@ Ar5   zrho,gamma,rtol))qVEB@gj+@r  )FC@Gz @r   )ND@_LU?rw  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  r[   re   ri  r   )r   r9   rel_breitwignerre   )rq   rT  r]  r  r   r   r[   re   s           r3   test_pdf_against_ROOT(TestRelativisticBW.test_pdf_against_ROOTt'  sc     $!%(C/#G,57
 cDK3&&**1*?d	
r5   zrho, Gamma, rtol))rV  rW  rw  )rX  rY  rw  )rZ  r[  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  )rf   r  rg   )Er  Gammar  rX   s        r3   re   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9r5   r|  r  r\   ri  r   )rf   rk  r9   r^  r   re   r   )	rq   r]  rd  r   re   r  r[   r   r  s	            r3   &test_pdf_against_simple_implementation9TestRelativisticBW.test_pdf_against_simple_implementation'  sk    	: KKdB'!!%%aE%:##''e'<!Y&t,r5   z	rho,gammarV  rW  r	  rX  rY  rZ  r[  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   )rb   r   r   r   r   rc   r  r   r    r  r   N)rf   r   r   r9   r^  r   r   r   )rq   r]  r  r   r   r   r   s          r3   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:---r5   r;   N)r  r  r  r  r   r`  rT  r  r  r_  rf  r  r*  r  ri  r	  r;   r5   r3   rR  rR  `'  s   ^^ $ [[ 


 [[/ 2 -- [[[[LL"F&++2B2B LL!50A0A LL &0A0A

. .r5   rR  c                   \    \ rS rSr\R
                  R                  SSS/5      S 5       rSrg)TestJohnsonSUi'  rR  )rL  rE  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   )r9   r  r   )rq   rR  r   s      r3   test_moment_gh18071!TestJohnsonSU.test_moment_gh18071'  s3     oo##T"1X>v>!"XE2r5   r;   N)	r  r  r  r  r   r  r  rn  r	  r;   r5   r3   rl  rl  '  s9    [[VOJ&K L
3L
3r5   rl  c                   (   \ 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@rs  rt  )rf   rk  r9   truncparetore   rg  rn   r   )rq   r2   r  r[   r   r  s         r3   rc  TestTruncPareto.test_pdf'  sl    KKS!%))!,ll1o!!!$u||A':':1'==!r5   r   TFr  rq  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 )rs  rt  r    r  r`   r}  r   r   r   r   r  r  r  )rf   r   r   r9   ru  r   r   r   r%  r   r   )rq   r   r  rq  r  r   r2   r  ra   rb   rO   r   r   r

  s                 r3   r(  TestTruncPareto.test_fit'  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r;   N)
r  r  r  r  rc  r   r  r  r(  r	  r;   r5   r3   rq  rq  '  s    " [[Yu6[[[4-8[[WtUm4[[WtUm4K 5 5 9 7Kr5   rq  c                       \ rS rSrS rSrg)
TestKappa3i'  c                     S[         R                  R                  SS5      -
  n[         R                  R                  SS5      n[	        X!5        g )Nr    r|   g     j@)r9   kappa3rn   r   r   )rq   sf0r  s      r3   r  TestKappa3.test_sf'  s;     %,,""3,,llooc3'!r5   r;   N)r  r  r  r  r  r	  r;   r5   r3   rz  rz  '  s    "r5   rz  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    r\   c                 N    [        U R                  R                  S5      S5        g )Nr  )r   g?r   gQ)r   ih10r9   rw   s    r3   test_stats_ih10TestIrwinHall.test_stats_ih10'  s     	TYY__V46JKr5   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    rM  g2⍚H)r  r   r  r  r   )rq   rX  r  r  m50	m50_exacts         r3   test_moments_ih10TestIrwinHall.test_moments_ih10(  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    r]   r\   maxulp)rf   rk  unifre   ih1r   )rq   ptspdf_unifpdf_ih1s       r3   test_pdf_ih1_unifTestIrwinHall.test_pdf_ih1_unif(  sD     kk!Q$99==%((,,s#Wr:r5   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 )Nrc   rZ   r   r    r\   r  )r9   rk
  rf   rk  re   r   )rq   ih2nptsr  rS   pdf_ih2s         r3   test_pdf_ih2_triangle#TestIrwinHall.test_pdf_ih2_triangle(  sv    ooa kk!Q%;;q!T*%&!8/2B)C%C(q!"''#,Wr:r5   c                     [         R                  " SSS5      nU R                  R                  U5      nU R                  R                  U5      n[        X2SS9  g r  )rf   rk  r  rn   r  r   )rq   r  cdf_unifcdf_ih1s       r3   test_cdf_ih1_unifTestIrwinHall.test_cdf_ih1_unif)(  sB    kk!Q$99==%((,,s#Wr:r5   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    r\   rc   r|   r  )rf   r$  r9   rk
  rn   r~  r   r   )rq   r  ihih_cdfexacts        r3   rn  TestIrwinHall.test_cdf1(  sO    IIa__QA		#s1v&V26r5   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  r\   r  rY   g+|<rf  g#@)r   r  rn   rf   r$  rr  s      r3   test_cdf_ih10_exact!TestIrwinHall.test_cdf_ih10_exact:(  sd    ( 	TYY]]299R=94KTYY]]402EbQ1TYY]]513rBr5   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  r\   r  )r   r  re   rf   r$  r5  s     r3   test_pdf_ih10_exact!TestIrwinHall.test_pdf_ih10_exactJ(  sD     J$tt*,,TYY]]299R=94Kr5   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    rf  rY   r\   r  )r   r  r   rf   r$  rn   r   )rq   r  s     r3   test_sf_ih10_exact TestIrwinHall.test_sf_ih10_exactQ(  s\    		RYYr]3QryyQS}9U5UV 2TYY\\$/R@r5   r;   N)r  r  r  r  r9   r  r  rk
  r  r  r  r  r  r  r  rn  r  r  r  r	  r;   r5   r3   r  r  '  s_    ==AD
//!
C??2DL-
;;;7C LAr5   r  c                       \ rS rSrS rSrg)TestDParetoLognormiZ(  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)rE  r   r  r  rc   g6Z?g@#
?)r9   dpareto_lognormrf   r  r   re   rn   )rq   r[   r  rH   r1   r2   rO   s          r3   test_against_R!TestDParetoLognorm.test_against_R[(  s[     ,aA$$Q10


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


""488A;0CDr5   r;   N)r  r  r  r  r  r	  r;   r5   r3   r  r  Z(  s    Er5   r  rR  ))r|  NNNN)r  NNNN)r7  NNNN)rG  NNNN)rg  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    rD  )
rf   r  r=  r9   r"  r   r  r   r  r   )rR  rB  lp1lp2r   r   lpmrO   r  dist_frozenr  r   s               r3   test_sf_isf_overridesr  o(  s     &*"H3d
((3-C
+C
*C91D=5D5(#D(^H%F-K ++c
C
..-
.CC43 bkk#B'
'C
..-
.CC43r5   ru   )NF(  rS  r  r  r  r
  pathlibr   r  r  r	  numpy.testingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r  numpyrf   r   r   numpy.lib.recfunctionsr   r8   r   scipy._lib._utilr   r  r   r   r   r   scipy.statsr9   !scipy.stats._distn_infrastructurer   scipy.stats._constantsr   scipy.stats.distributionsscipy.specialr   r   r   scipy.stats._distr_paramsr   r   test_discrete_basicr!   r"   scipy.stats._continuous_distnsr#   r$   scipy.optimizer%   r&   r'   	itertoolsr(   flagsoptimizer>  r	  r  r1  r4   r<   rT   rV   r   r-  r  r  r@  rB  rq  r  r  r  r  r  r  rf  rv  r  r  r  r'  rR  r]  rw  r  r  r  r  r  r  r  r   ru  r  r  r  r  r  rB  rP  rd  r  r  r  r  r%  rY  rf  rw  r  r  r  r  r  r  r  r#  rA  rq  r  r  r  rg   r$  r  r&  r;  rL  rU  r{  r  r  r  r  r  r  r.	  rM	  rO	  rc	  ru	  r	  r	  rU
  r]
  rg
  ri
  r
  r
  ra  r  r  r  r  r  r  r  r  r  r4  rA  rg  rm  rx  r  r  r  r  r  r#  r  r%  r'  r*  r,  r/  r1  r4  r7  r9  r<  r>  r@  rB  rD  rJ  rM  rO  rR  rV  rZ  r]  r_  ra  rd  rh  rl  rt  rv  ry  r{  r}  r  r?   r  r  r  r  r  r  r`
  rE  rH  rJ  rL  rP  rX  rZ  r\  r_  ri  rk  rm  rt  rv  r|  r  r  r  r  r  r  r  r.  r6  r>  r@  rC  rE  rG  rM  rP  rR  rl  rq  rz  r  r  r  r;   r5   r3   <module>r     s    	 
   	  : : : :
  *  " 4  /3 3  8 (   0 0 ; > C = =  ii((1,  ||x'Mh.>.>.@H.L )6z'B $$8
G@ G@T4D.. >?

6?

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