
     hv                    d   d Z ddlZddlZddlZddlZddlmZ ddlZddlZddl	Z	ddl
mZmZmZmZmZmZmZmZmZmZ ddlZddlmZ ddlZddlZddlmZmZ ddlmZ ddlmZ dd	l m!Z! dd
l"m#Z#m$Z$m%Z%m&Z& ddl'm(Z( ddl)m*Z* ddl+Zddl,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z= ej>        j?        dk    Z@ej	        dk    o e	jA                    dk    ZBddgZCdldZDd ZEd ZFd ZGd ZHd ZId ZJd ZKejL        M                    dg d           d!             ZNejL        M                    d"g d#          d$             ZOd% ZPejL        M                    d&g d'          d(             ZQd) ZRd* ZSd+ ZTejL        M                    d,g d-          d.             ZU G d/ d0          ZV G d1 d2          ZW G d3 d4          ZX G d5 d6          ZY G d7 d8          ZZ G d9 d:          Z[ G d; d<          Z\ G d= d>          Z] G d? d@          Z^ G dA dB          Z_ G dC dD          Z` G dE dF          Za G dG dH          Zb G dI dJ          Zc G dK dL          Zd G dM dN          Ze G dO dP          Zf G dQ dR          Zg G dS dT          Zh G dU dV          Zi G dW dX          Zj G dY dZ          Zk G d[ d\          Zl G d] d^          Zm G d_ d`          Zn G da db          Zo G dc dd          Zp G de df          Zq G dg dh          Zr G di dj          Zs G dk dl          Zt G dm dn          Zu G do dpev          Zw G dq dr          Zx G ds dt          Zydu Zzdv Z{dw Z|ejL        M                    dxg dy          ejL        M                    dzddgddgddgg d{g d|gddgddggdgdggg          d}                         Z}ejL        M                    dzddgddgddgg d{g d|gddgddggdgdggg          d~             Z~ G d d          Z G d d          Zdd ej        ddej        z  z            z  dd ej        ddej        z  z            z  dd ej        ddej        z  z            z  dd ej        ddej        z  z            z  dd ej        ddej        z  z            z  g	fd ej        ddej        z  z            dd ej        ddej        z  z            z  dd ej        ddej        z  z            z  dz  dd ej        ddej        z  z            z  dz  dd ej        ddej        z  z            z  dz  g	fdd ej        dej        z            z  ddd ej        dej        z            z  z  ddd ej        dej        z            z  z  ddd ej        dej        z            z  z  ddd ej        dej        z            z  z  ddd ej        dej        z            z  z  ddd ej        dej        z            z  z  dgfgZ G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d¦          Z G dÄ dĦ          Z G dń dƦ          Z G dǄ dȦ          ZdɄ Z G dʄ d˦          Z G d̄ dͦ          Z G d΄ dϦ          Z G dЄ dѦ          Z G d҄ dӦ          Z G dԄ dզ          Z G dք dצ          Z G d؄ d٦          Z G dڄ dۦ          Z G d܄ dݦ          Z G dބ dߦ          Z G d dev          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Zd Zd Zd Zd ZejL                            e@d          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd  Zd Zd Zd Zd ZejL        M                    dg d          d             Zd Zd	 Zd
 Zd ZejL                            d          d             ZŐd ZejL        M                    dd ej        ddg          fd ej        ddg          fd ej        ddg          fd ej        ddg          fg          d             Zǐd ZejL                            d          d             ZejL                            d          d             Zʐd  Zːd! Z̐d" Z G d# d$e(j                  Z G d% d&e(j                  Z G d' d(e(j                  Z G d) d*e(j                  Z G d+ d,          Z G d- d.          ZejL                            e@d/          d0             ZՐd1 Z֐d2 Zאd3 Zؐd4 Zِd5 Zڐd6 Zېd7 Zܐd8 Zݐd9 Zސd: Zߐd; Zd< Zd= ZejL        M                    d>g d?          d@             ZejL        M                    dAdBdCg          dD             ZejL        M                    dEddg dFfdGdHg dFfdIdJg dKfg          dL             ZdM ZdN ZejL                            ej        dOk    dP          dQ             Z G dR dS          ZdT Z G dU dV          Z G dW dX          Z G dY dZ          Z G d[ d\          Zd] ZejL        M                    d^e5e2z             d_             Zd` Zda ZejL        M                    dbdcddg          de             ZejL        M                    dfg dg          dh             Zdi Zdj Zdk ZdS (m  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IS_PYPY)raises)	typecodesarray)rec_append_fields)special)check_random_state)IntegrationWarningquad	trapezoidcumulative_trapezoid)
argsreduce)xlogy	polygammaentr)distcontinvdistcont   )distdiscreteinvdistdiscrete)FitDataError
_argus_phi)rootfmin)productdarwinx86_64tukeylambdapearson3c                 V    || d|}t          t          | |          |           d S )Nz does not have attribute msg)r	   hasattr)abr,   s      `/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/scipy/stats/tests/test_distributions.py_assert_hasattrr1   4   s8    
{12AA6GAqMMs######    c                  D    t          t          j        j        d           d S )Nf_gen)r1   scipystatsdistributions r2   r0   test_api_regressionr9   :   s    EK-w77777r2   c                     t          j        | ||          }t          |                    |          |                    |dt          j        z  |z  z                       d S )Nlocscale   )r6   vonmisesr   pdfnumpypikLsxvms        r0   check_vonmises_pdf_periodicrI   ?   sS    	q	*	*	*Bq		266!qz!|*<#=#=>>>>>r2   c                     t          j        | ||          }t          |                    |          dz  |                    |dt          j        z  |z  z            dz             d S )Nr;   r   r>   )r6   r?   r   cdfrA   rB   rC   s        r0   check_vonmises_cdf_periodicrL   D   s\    	q	*	*	*Bq		Arvva1UX:a<.@'A'AA'EFFFFFr2   c                     t          t          j        j        j                  } d t
          D             }d t          D             }g d}||z   |z   }t          t          d |                    }|                     d           | |k    sJ d S )Nc                     g | ]
}|d          S r   r8   .0dists     r0   
<listcomp>z0test_distributions_submodule.<locals>.<listcomp>K   s    ///d$q'///r2   c                     g | ]
}|d          S rO   r8   rP   s     r0   rS   z0test_distributions_submodule.<locals>.<listcomp>L   s    111DQ111r2   )rv_discreterv_continuousrv_histogramentropytrapzc                 H    t          |                               d           S )N<)str
startswithrF   s    r0   <lambda>z.test_distributions_submodule.<locals>.<lambda>S   s    A(9(9#(>(>$> r2   gilbrat)	setr5   r6   r7   __all__r   r   filterremove)actual
continuousdiscreteotherexpecteds        r0   test_distributions_submodulerj   I   s    *233F//h///J11L111H! ! !EH$u,H 6>>IIJJH MM)Xr2   c                     dD ]} ddt           j        ddfD ]n}t          | dd|           t          | dd|           t          | dd|           t          | dd|           t          | dd|           t          | dd|           od S )N)皙?r   e   r   r   
   d   )rA   rB   rI   rL   )rD   rG   s     r0   test_vonmises_pdf_periodicrp   [   s     5 5Q"c* 	5 	5A'1a333'1a333'1b!444'1a333'1a333'1b!4444	55 5r2   c                      t          t          j        j        t          j                    t          t          j        j        t          j                   d S N)r   r6   vonmises_liner.   nprB   r/   r8   r2   r0   test_vonmises_line_supportru   g   s:    $&///$&.....r2   c                  t    t          j        d          } t          |                     d          d           d S )N   r         ?)r6   r?   r   rK   )rH   s    r0   test_vonmises_numericalry   l   s1    			Bq		3'''''r2   zx, kappa, expected_pdf))rl   {Gz?g|65?)rl         9@g?U?)rl   rw   g"?)       @rz   gDfI?)r|   r{   g1<)r|   rw           c                 j    t           j                            | |          }t          ||d           d S NV瞯<rtol)r6   r?   r@   r   )rG   kappaexpected_pdfr@   s       r0   test_vonmises_pdfr   {   s6     .

Q
&
&CCE222222r2   zkappa, expected_entropy))r   gA	?)   g,eޞ?)ro   gBb9d22)  g
G )  gc                 h    t           j                            |           }t          ||d           d S )NvIh%<=r   )r6   r?   rX   r   )r   expected_entropyrX   s      r0   test_vonmises_entropyr      s5     n$$U++GG-E::::::r2   c                     t          t          d                    } t          j                            |           }t          j                            |           }t          j                            |           }t          j        ddd                              |          }t          j        ddt          j        z  d                              |          }t          j        dddt          j        z  t          |          z  dz                                 |          }t          ||d           t          ||d           d S )	Nvon_mises_rvsr   r   r;   )random_stater>   r   atol)
abshashrt   randomdefault_rngr6   r?   rvsrB   r   )seedrng1rng2rng3rvs1rvs2rvs3s          r0   test_vonmises_rvs_gh4598r      s   tO$$%%D9  &&D9  &&D9  &&D>!!,,,00d0CCD>!2522266D6IID>!!"25T!21!47 7 77:ss7M7M 	D$U++++D$U++++++r2   zx, kappa, expected_logpdf))rl   rz   gEJ?)rl   r{   goι?)rl   rw   g0,)r|   rz   gdty)r|   r{   gʹw[A)r|   rw   gc                 j    t           j                            | |          }t          ||d           d S r   )r6   r?   logpdfr   )rG   r   expected_logpdfr   s       r0   test_vonmises_logpdfr      s6     ^""1e,,FFO%888888r2   c                  :   t           j                            d          } |                     d          dz  \  }}}t          j        ||                              d           }t          |d           t          j        |j        t           j	                  sJ ||dt           j
        z  z   f} t          j        ||          j        d g|R  }t          |d           t          j        |j        t           j	                  sJ ||dt           j
        z  z   f} t          j        ||          j        d	 g|R d
di}t          t          j        |          |dt           j
        z  z             t          j        |j        t           j                  sJ dS )a  
    Test that the vonmises expectation values are
    computed correctly.  This test checks that the
    numeric integration estimates the correct normalization
    (1) and mean angle (loc).  These expectations are
    independent of the chosen 2pi interval.
    l   kD +xNn    rn   )r<   r   c                     dS Nr   r8   rG   s    r0   r_   z&test_vonmises_expect.<locals>.<lambda>        r2   r   r>   c                     dS r   r8   r   s    r0   r_   z&test_vonmises_expect.<locals>.<lambda>   r   r2   c                 0    t          j        d| z            S )Ny              ?)rt   expr   s    r0   r_   z&test_vonmises_expect.<locals>.<lambda>   s    r!t r2   complex_funcN)rt   r   r   r6   r?   expectr   
issubdtypedtypefloatingrB   anglecomplexfloating)rngr<   r   lbresboundss         r0   test_vonmises_expectr      s    )

 3
4
4CZZ]]R'NC
.S
.
.
.
5
5kk
B
BCC=BK00000a"%iF
5%.S
.
.
.
5kk
KF
K
K
KCC=BK00000a"%iF
5%.S
.
.
.
56L6L O7=O O OLMO OCBHSMM3!BE'?333=B$67777777r2   c                      | j         |fi |} t          t          |           |           j         |fi |} |||          } |||          }||k    st          j        ||d          sJ dS dS )aS  
    This utility function checks that the log-likelihood (computed by
    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.
    r   r   N)fitsupertypert   allclose)rR   datafunckwdsmle_analyticalnumerical_optll_mle_analyticalll_numerical_opts           r0   _assert_less_or_close_logliker      s     TXd++d++N/E$t**d++/====M^T22tM400!111K)+;%HHH 21 I1111r2   c           
         ddg}| j         r6t          | j                             d                    }|g dd |         z  }t          t	          |t          j        t          |                                        }g d}t          j        t          d          5   | j
        |fi | d d d            n# 1 swxY w Y   t          j        t          d          5  | 
                    t
          j        g           d d d            n# 1 swxY w Y   t          j        t          d          5  | 
                    t
          j        g           d d d            n# 1 swxY w Y   t          j        t          d	          5  | 
                    |d
           d d d            n# 1 swxY w Y   t          j        t          d          5   | j
        |gdgt          |          dz
  z  R   d d d            d S # 1 swxY w Y   d S )Nflocfscale,)f0f1f2r   r>   r   z3All parameters fixed. There is nothing to optimize.matchz#The data contains non-finite valueszUnknown keyword arguments:r>   )extra_keywordzToo many positional arguments.r   )shapeslensplitdictziprt   arangepytestr   RuntimeErrorr   
ValueErrornaninf	TypeError)rR   paramnshapes	all_fixedr   s        r0   assert_fit_warningsr      sL   XE{ .dk'',,--###HWH--S	#e** 5 56677I99D	|&
' 
' 
' $ $ 	#####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
zB
D 
D 
D  "&               
zB
D 
D 
D  "&               
y(D	E	E	E ( (Q'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	y(H	I	I	I . .-SZZ!^,----. . . . . . . . . . . . . . . . . .sZ   B88B<?B<!DDD1!EE"%E"F((F,/F,#G>>HHrR   )alpha	betaprimefatiguelifeinvgammainvgauss
invweibull	johnsonsblevylevy_llognormgibratpowerlognormrayleighwaldc                    t          t                    }||          }t          t          |           } t	           | j        | j        g|R  d           t           | j        | j        g|R  t          j
                    t	           | j        | j        g|R  d           t           | j        | j        g|R  t          j
                    dS )zgh-6235r   N)r   r   getattrr6   r   r@   r.   r   r   rt   r   r/   )rR   dctargss      r0   test_supportr      s     x..Ct9D5$D/$///333TV+d+++bfW555/$///333TV+d+++bfW55555r2   c                   &    e Zd Zd Zd Zd Zd ZdS )TestRandIntc                 D    t           j                            d           d S N  rt   r   r   selfs    r0   setup_methodzTestRandInt.setup_method      
	tr2   c                 v   t           j                            ddd          }t          t	          j        |dk               t	          j        |dk              z             t          t          |          dk               t           j                            ddd          }t          t	          j        |          dk               t          |j        j	        t          d         v            t           j                            dd          }t          |dk    |dk     z             t          t          |t          j                  t          t          |                    	           t          j        dd                              d
          }t          |j        j	        t          d         v            d S )Nr      ro   sizer>   2   
AllInteger   .   r+   r   )r6   randintr   r	   rA   allr   shaper   charr   
isinstance
ScalarTypereprr   r   valsvals      r0   test_rvszTestRandInt.test_rvs  sZ   }  BS 11	$)$$uy';';;<<<D		S !!!}  BW 55D!!W,---
9\#::;;;mB''sRx()))
3 011tDIIGGGGmB##''**	)L"99:::::r2   c                     t           j        dd         }t          j        |dk    |dk     z  dd          }t          j                            |dd          }t          ||           d S )Nr   $   r   r   {Gz?)rA   r_wherer6   r  pmfr   )r   rD   outr  s       r0   test_pdfzTestRandInt.test_pdf  s`    HQrTNk16a"f-z1==}  Ar**!$,,,,,r2   c                    t          j        ddd          }t          j        |          }t          j        |dk    |dk    gd|dz
  dz   d	z  gd          }t
          j                            |dd          }t          ||d
           d S )Nr   r  ro   r   r         ?      @r   r{      decimal)	rt   linspacerA   floorselectr6   r  rK   r   )r   rG   rD   r  r  s        r0   test_cdfzTestRandInt.test_cdf$  s    K2s##KNNlAGQ!V,sQsU1Wv4F.GKK}  Ar**!$R888888r2   N)__name__
__module____qualname__r   r  r  r"  r8   r2   r0   r   r     sP          ; ; ;- - -9 9 9 9 9r2   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )	TestBinomc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestBinom.setup_method-  r   r2   c                    t           j                            ddd          }t          t	          j        |dk              t	          j        |dk              z             t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            dd          }t          t          |t                               t          j        dd                              d          }t          t          |t          j                             t          |j        j        t          d         v            d S Nrn         ?r  r   r   r  r   )r6   binomr   r	   rA   r  r  r   r	  r   r
  intndarrayr  s      r0   r  zTestBinom.test_rvs0  s   {r4g66	$!)$$uy'<'<<===D!!W,---
9\#::;;;koob$''
3$$%%%k"d##''**
3..///	)L"99:::::r2   c                     t           j                            ddd          }t           j                            ddd          }t          |ddd           t          |ddd           d S )Nro   r   r   r  r   r   r   )r6   r,  r  r   )r   vals1vals2s      r0   test_pmfzTestBinom.test_pmf;  sd    S!,,3**sQ7777sQ777777r2   c                    t          j        dd          }t          j        g d          }t	          t          ||                     }|                                }t          ||           t          j        dd          }|                                }t          |d           t          j        dd          }|                                }t          |d           d S )Nr>   rx   )      ?rx   r5  r}   r  )	r6   r,  rt   r   sumr   rX   r   r   )r   r/   
expected_p
expected_hhs        r0   test_entropyzTestBinom.test_entropyB  s    K3X///00
%
J77888
IIKK:&&&K3IIKKQK3IIKKQr2   c                 j   t          j                    5  t          j        dt                     t	          t          j        dd                                          d           t	          t          j        dd                                          d           d d d            d S # 1 swxY w Y   d S )Nerrorr>   r   np)	warningscatch_warningssimplefilterRuntimeWarningr   r6   r,  meanstdr   s    r0   test_warns_p0zTestBinom.test_warns_p0R  s    $&& 	9 	9!'>:::qA...3355q999qA...2244a888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   BB((B,/B,N)r#  r$  r%  r   r  r3  r:  rF  r8   r2   r0   r'  r'  ,  s_          	; 	; 	;8 8 8   9 9 9 9 9r2   r'  c                       e Zd Zd ZdS )TestArcsinec                     t           j                            ddg          }t          |t          j        t          j        g           d S Nr   r   )r6   arcsiner@   r   rt   r   r   r?  s     r0   test_endpointszTestArcsine.test_endpoints\  s<     Mq!f%%Q()))))r2   N)r#  r$  r%  rM  r8   r2   r0   rH  rH  Z  s#        * * * * *r2   rH  c                        e Zd Zd Zd Zd ZdS )TestBernoullic                 D    t           j                            d           d S r   r   r   s    r0   r   zTestBernoulli.setup_methodd  r   r2   c                    t           j                            dd          }t          t	          j        |dk              t	          j        |dk              z             t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            d          }t          t          |t                               t          j        d                              d          }t          t          |t          j                             t          |j        j        t          d         v            d S )Nr+  r  r   r   r   r  r   )r6   	bernoullir   r	   rA   r  r  r   r	  r   r
  r-  r.  r  s      r0   r  zTestBernoulli.test_rvsg  s
   ""4g"66	$!)$$uy';';;<<<D!!W,---
9\#::;;;o!!$''
3$$%%%od##''**
3..///	)L"99:::::r2   c                    t          j        d          }dt          j        d          z  dt          j        d          z  z
  }|                                }t          ||           t          j        d          }|                                }t          |d           t          j        d          }|                                }t          |d           d S )Nr5        пr+  r}   r  )r6   rR  rt   logrX   r   r   )r   r/   r8  r9  s       r0   r:  zTestBernoulli.test_entropyr  s    OD!!26$<<'$rvd||*;;
IIKK:&&&OC  IIKKQOC  IIKKQr2   N)r#  r$  r%  r   r  r:  r8   r2   r0   rO  rO  c  sA          	; 	; 	;    r2   rO  c                       e Zd Zd ZdS )TestBradfordc                     d}t          j        dd          }t          j                            ||          }t          j                            ||          }t          ||           d S )Nrl   )rt   logspacer6   bradfordrK   ppfr   )r   crG   qxxs        r0   test_cdf_ppfzTestBradford.test_cdf_ppf  s\    KR  Nq!$$^1%%2r2   N)r#  r$  r%  ra  r8   r2   r0   rW  rW    s#            r2   rW  c                   (    e Zd ZdZdZd Zd Zd ZdS )TestChignT9;g2 >h?@c                 t    t           j                            dd          }t          || j        d           d S )Nrn      r   r   )r6   chisfr   CHI_SF_10_4r   rF   s     r0   test_sfzTestChi.test_sf  s5    ILLQ4+%888888r2   c                 t    t           j                            | j        d          }t	          |dd           d S )Nre  rn   r   r   )r6   rf  isfrh  r   r   rG   s     r0   test_isfzTestChi.test_isf  s5    IMM$*A..2E******r2   c                 t    t           j                            d          }t          || j        d           d S )Nr   )df-q=r   )r6   rf  rD  r   CHI_MEAN_1000rm  s     r0   	test_meanzTestChi.test_mean  s5    INNdN##4-E::::::r2   N)r#  r$  r%  rh  rr  rj  rn  rs  r8   r2   r0   rc  rc    sO         'K $M9 9 9+ + +; ; ; ; ;r2   rc  c                   &    e Zd Zd Zd Zd Zd ZdS )
TestNBinomc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestNBinom.setup_method  r   r2   c                    t           j                            ddd          }t          t	          j        |dk                         t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            dd          }t          t          |t                               t          j        dd                              d          }t          t          |t          j                             t          |j        j        t          d         v            d S r*  )r6   nbinomr   r	   rA   r  r  r   r	  r   r
  r-  r.  r  s      r0   r  zTestNBinom.test_rvs  s    |Dw77	$!)$$%%%D!!W,---
9\#::;;;lr4((
3$$%%%l2t$$((++
3..///	)L"99:::::r2   c           	      2   t          t          j        t          j                            ddd                    t          j                            ddd                     t          j        j                            ddd          }t          |d           d S )Ni  i  gp=
ף?r   r   )	r   rt   r   r6   rx  logpmfr  r5   r   )r   r  s     r0   r3  zTestNBinom.test_pmf  s    u|223TBBCC((c488	: 	: 	: k ''1a00S!r2   c                     t           j                            g ddd          }t          j        t           j                            g ddd                    }t          ||           d S )N)r   r   r   r   333333@?r=  )r6   rx  logcdfrt   rU  rK   r   )r   r  refs      r0   test_logcdf_gh16159zTestNBinom.test_logcdf_gh16159  sb    |""<<<3$"??fU\%%lllcT%BBCCc"""""r2   N)r#  r$  r%  r   r  r3  r  r8   r2   r0   ru  ru    sP          	; 	; 	;  # # # # #r2   ru  c                       e Zd Zd Zej        j        d             Zej        j        d             Zej        j        d             Z	ej        j        d             Z
d Zd Zd Zd	 Zd
S )TestGenInvGaussc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestGenInvGauss.setup_method  r   r2   c                     t          j        dd          }t          j        |                    dd          |j                  \  }}t          |dk    d           d S )Nffffff@      ?  r   r   r   皙?Tr6   geninvgausskstestr   rK   r   r   gig_r?  s       r0   test_rvs_with_mode_shiftz(TestGenInvGauss.test_rvs_with_mode_shift  W     S))|CGGDGAA37KK1QXt$$$$$r2   c                     t          j        dd          }t          j        |                    dd          |j                  \  }}t          |dk    d           d S )N?r+  r  r   r  r  Tr  r  s       r0   test_rvs_without_mode_shiftz+TestGenInvGauss.test_rvs_without_mode_shift  sW     T**|CGGDGAA37KK1QXt$$$$$r2   c                     t          j        dd          }t          j        |                    dd          |j                  \  }}t          |dk    d           d S )Nrl   皙?r  r   r  r  Tr  r  s       r0   test_rvs_new_methodz#TestGenInvGauss.test_rvs_new_method  r  r2   c                     d }t           |dd          d           t           |dd          d           t           |dd          d           d S )Nc                     t          j        | |          }|                    dd          }t          j        ||j                  d         dk    S )Nr  r   r  r   r  )r6   r  r   r  rK   )r?  r/   r  r   s       r0   my_ks_checkz4TestGenInvGauss.test_rvs_p_zero.<locals>.my_ks_check  sG    #Aq))C''t$'77C<SW--a0477r2   r   r  Tr  r  )r   )r   r  s     r0   test_rvs_p_zerozTestGenInvGauss.test_rvs_p_zero  sm    	8 	8 	8
 	[[C(($///[[C(($///[[C(($/////r2   c                     t          t          j        dd                              dd          dt          j        dd                              dd          z             d S )N      r>   rn   r   r  r   r  )r   r6   r  r   r   s    r0   test_rvs_negative_pz#TestGenInvGauss.test_rvs_negative_p  sn    !$**..BT.JJE%c1--11r1MMM	O 	O 	O 	O 	Or2   c                 H   t           j                            dddd          }t          t          j        |ddg          d         dk    d	           d
t          j        ddd          }}t           j                            |dd|z  |          }t          |t          j	        |                              |                     t           j        
                    |dd|z  |          }t          |t          j	        |          
                    |                     d S )Nr        r   r   )r   r?  r/   r   r   r   333333?Tro   rz   rn   )r?  r/   r=   )r6   r  r   r   r  rt   r  r@   r   r   rK   )r   igmurG   pdf_igcdf_igs         r0   test_invgausszTestGenInvGauss.test_invgauss  s   """MMU\"js;;;A>EtLLLR[q"--A"&&qDAF"&EEr 2 2 6 6q 9 9:::"&&qDAF"&EEr 2 2 6 6q 9 9:::::r2   c                     t          j        g d          }t          j        ddd          }t          |t          j                            |dd                     d S )N)
g;g8y8?g\}Z?ghܲ<?g&Khdd?g7!L?g	Cf?g_诱?g>0|?gRq?rz   r   rn   rx   r   )rt   r   r  r   r6   r  r@   )r   vals_RrG   s      r0   
test_pdf_RzTestGenInvGauss.test_pdf_R  sd      , , , - - Ka$$ 1 5 5aa @ @AAAAAr2   c                     t          t          j                            ddd          d           t          t          j                            ddd          d           d S )Nr   rx   g    >Ar  r>   )r   r6   r  r@   r   s    r0   test_pdf_zerozTestGenInvGauss.test_pdf_zero   sT    U&**1c377;;; 	U&**3A66:::::r2   N)r#  r$  r%  r   r   markslowr  r  r  r  r  r  r  r  r8   r2   r0   r  r    s           [% % % [% % % [% % % [0 0 0O O O	; 	; 	;	B 	B 	B; ; ; ; ;r2   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestGenHyperbolicc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestGenHyperbolic.setup_method	  r   r2   c                     t          j        g d          }d\  }}}d\  }}|||z  ||z  f}t          j        |||d}t          j        ddd          }	t          |                    |	          |dd	           d S )
N)
gF^T=g{X'=gNunƢsy>g7!t?gɫzI?g̸?g?gq6.?gmPZz?g:PgN?r>   r>   r   rx   r  r;   rn   r   r   r   r   )rt   r   r6   genhyperbolicr  r   r@   
r   r  lmbdar   betar  deltar   ghrG   s
             r0   
test_pdf_rzTestGenHyperbolic.test_pdf_r  s           %ud	EuU{DJ/ $Be<<<KR$$q		6>>>>>>r2   c                     t          j        g d          }d\  }}}d\  }}|||z  ||z  f}t          j        |||d}t          j        ddd          }	t          |                    |	          |dd	           d S )
N)
g=R0W<=gEB=g#Nb>g_PG>g! 1Or?gUM?g u./?gfy?gl5\?gkV?r  r  r;   r  rn   r   ư>r  )rt   r   r6   r  r  r   rK   r  s
             r0   
test_cdf_rzTestGenHyperbolic.test_cdf_r"  s           %ud	EuU{DJ/ $Be<<<KR$$q		6======r2   c                     g d}d\  }}}d\  ||z  |z  ffdt          dd          D             }t          ||dd	           d S )
N)g@쐧@g@쐧 @g܊B@gvGăi@r  r  c                 Z    g | ]'}t          j        d                     |          (S )r;   )r6   r  moment)rQ   ir   r  r  s     r0   rS   z4TestGenHyperbolic.test_moments_r.<locals>.<listcomp>H  sI        2U;;;BB1EE  r2   r   r   r   r   r  )ranger   )	r   r  r  r   r  vals_usr   r  r  s	         @@@r0   test_moments_rz TestGenHyperbolic.test_moments_r8  s    5 5 5 %ud	EuU{DJ/     1a[[  
 	ae<<<<<<r2   c                     d\  }}}d\  }}|||z  ||z  f}t          j        |||d}t          j        |                    dd          |j                  \  }}	t          |	dk    d           d S )	Nr  r  r;   r  r   r  r  T)r6   r  r  r   rK   r   )
r   r  r   r  r  r  r   r  r  r?  s
             r0   r  zTestGenHyperbolic.test_rvsO  s     %ud	EuU{DJ/ $Be<<<|BFF4F@@"&II1QXt$$$$$r2   c                 2   t          j        ddd          }t          j        |d          t          j        t           j                  j        z  d}}dt          j        |          }}| dz  ||f}t          j        |||d}t          j        |	                    d          |	                    d          d	          d d t           j
        f         }t          |                    |          t          j                            ||          dd
           d S )Nr   r   rn   r>   r   r;   rz   Gz?r  r  r  )rt   r  float_powerfinfofloat32epssqrtr6   r  r]  newaxisr   r@   t)	r   rp  r   r  r  r  r   r  rG   s	            r0   
test_pdf_tzTestGenHyperbolic.test_pdf_t\  s    [B## nR++BHRZ,@,@,DDatrwr{{EAud# $Be<<<KtbffTllB772:FFF1IIuw{{1b))	 	 	 	 	 	r2   c                    dt          j        t           j                  j        d}}}d\  }}|||f}t	          j        |||d}t          j        |                    d          |                    d          d          d d t           j        f         }t          |
                    |          t          j        
                    |          dd	           d S )
Nr  r   )r   r   r;   rz   r  r  r  r  )rt   r  r  r  r6   r  r  r]  r  r   r@   cauchy)	r   r  r   r  r  r  r   r  rG   s	            r0   test_pdf_cauchyz!TestGenHyperbolic.test_pdf_cauchyn  s    
 "28BJ#7#7#;Qdu	Eud# $Be<<<KtbffTllB772:FFF1IIu|''**	 	 	 	 	 	r2   c                    t          j        ddd          }t          j        t           j                  j        }d\  }}}|||z  ||z  f}t          j        |||d}t          j        ddd          d d t           j        f         }t          |	                    |          t
          j
        	                    ||d          d	d
           d S )Nr  rn   )r   r   r   r;   rY     r  r   r   dy=r  )rt   r  r  r  r  r6   r  r  r   r@   laplace)	r   r<   r  r  r   r  r   r  rG   s	            r0   test_pdf_laplacez"TestGenHyperbolic.test_pdf_laplace  s    k#r2&& $$($uduU{DJ/  $Cu===KR$$QQQ
]3FF1IIu}((1(==	 	 	 	 	 	r2   c           
      p   t          j        ddd          t          j        ddd          t          j        dt          d                    z  t          j        ddd          t          j        ddd          f\  }}}}d	}|||z  ||z  f}t	          j        |||d
}t          j        |                    d          |                    d          d          d d t           j        f         }t          |	                    |          t          j
        	                    |||||          dd           d S )Nr   r  rn   r      ro   r  r;   rz   r  r  )r.   r/   r<   r=   r   r  )rt   r  r  r  r6   r  r]  r  r   r@   norminvgauss)	r   r   r  r  r  r  r   r  rG   s	            r0   test_pdf_norminvgaussz'TestGenHyperbolic.test_pdf_norminvgauss  s/    Ar2&&Ar2&&r~b%))'D'DDAq"%%D#r**	"tUB uu}dUl3 $Be<<<KtbffTllB772:FFF1IIu)--Ud% . 9 9	 	 	 	 	 	r2   N)r#  r$  r%  r   r  r  r  r  r  r  r  r  r8   r2   r0   r  r    s          ? ? ?,> > >,= = =.% % %  $  "  *    r2   r  c                       e Zd Zd Zd Zd Zej                            dg d          d             Z	d Z
d Zd	 Zd
 ZdS )TestNormInvGaussc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestNormInvGauss.setup_method  r   r2   c                     t          j        g d          }t          j        g d          }t          j                            |dd          }t          ||d           d S )N)gp~٧>g @X>g}e?g{)߳?gwH?ir      r  r   rx   r.   r/   &.>r   )rt   r   r6   r  rK   r   )r   r_cdfx_testvals_cdfs       r0   
test_cdf_RzTestNormInvGauss.test_cdf_R  sr      < < < = =,,,--%))&A)==%d333333r2   c                     t          j        g d          }t          j        g d          }t          j                            |dd          }t          ||d           d S )N)gp϶>g\H55$?geСt&?go NiH?g]u>r  r   rx   r  r  r   )rt   r   r6   r  r@   r   )r   r_pdfr  vals_pdfs       r0   r  zTestNormInvGauss.test_pdf_R  sp     < < < = =,,,--%))&A)==%d333333r2   zx, a, b, sf, rtol))r  r   r   !7?r   )   r   r   ?=-C6?)r   r   r  gy5`?rq  )rn   r   r  gMLC9r  c                     t           j                            |||          }t          |||           t           j                            |||          }t          |||           d S Nr   r6   r  rg  r   rl  )r   rG   r.   r/   rg  r   rF   r  s           r0   test_sf_isf_mpmathz#TestNormInvGauss.test_sf_isf_mpmath  si    L !!!Q**2D))))""2q!,,14((((((r2   c                     ddg}ddg}d}ddg}t           j                            |||          }t          ||dd	           t           j                            |||          }t          ||d
           d S )Nr  r  r   r   r  r  r   缉ؗҜ<r0  r  r   r  )r   rG   r.   r/   rg  rF   r  s          r0   test_sf_isf_mpmath_vectorizedz.TestNormInvGauss.test_sf_isf_mpmath_vectorized  s    HF "89!!!Q**2E6666""2q!,,14((((((r2   c                     t          j        dd          }t          j        ddd          }|                    |          }|                    |          }t          ||           d S )Nr   r   r  r>   )r6   r  rt   r   rg  rl  r   )r   dstrG   rg  rl  s        r0   test_gh8718zTestNormInvGauss.test_gh8718  s[     A&&IaQVVAYYggbkkQr2   c                 .   d\  }}t          j        |dz  |dz  z
            }||z  |dz  |dz  z  d|z  |t          j        |          z  z  ddd|dz  z  |dz  z  z   z  |z  f}t          |t          j                            ||d                     d S )	Nr   rx   r>   r         @r   re  mvskmoments)rt   r  r   r6   r  )r   r.   r/   gammav_statss        r0   
test_statszTestNormInvGauss.test_stats  s    11q!t$$u9adUAXosQw!bgenn:L/M!a!Q$hAo-.68We066q!V6LLMMMMMr2   c                     d\  }}t          j        g d          }t          j                            |||          }t          |t          j                            |||                     d S )Nr   MbP?rx   +?)rt   r   r6   r  r]  r   rK   )r   r.   r/   r  r  s        r0   test_ppfzTestNormInvGauss.test_ppf  sf    1---..!%%fa33 2 6 6tQ B BCCCCCr2   N)r#  r$  r%  r   r  r  r   r  parametrizer  r  r  r  r  r8   r2   r0   r  r    s          
4 
4 
44 4 4 [0J J JK K
$) $)K K
$)L	) 	) 	)     N N ND D D D Dr2   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestGeomc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestGeom.setup_method  r   r2   c                    t           j                            dd          }t          t	          j        |dk                         t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            d          }t          t          |t                               t          j        d                              d          }t          t          |t          j                             t          |j        j        t          d         v            d S )Nr+  r  r   r   r  r   )r6   geomr   r	   rA   r  r  r   r	  r   r
  r-  r.  r  s      r0   r  zTestGeom.test_rvs  s    z~~d~11	$!)$$%%%D!!W,---
9\#::;;;jnnT""
3$$%%%j""1%%
3..///	)L"99:::::r2   c                 P   t           j                            d          }t          j                            t          j        d          d|          }|j        t           j        k    sJ t          j	        |t          j
        t           j                  j        k              sJ d S )Nl   A: ir   r  )rt   r   r   r6   r  r   r   r   int64r  iinfoint32max)r   r   r   s      r0   test_rvs_9313zTestGeom.test_rvs_9313  s     i##O44jnnRVC[[qsnCCyBH$$$$vcBHRX..223333333r2   c                 n    t           j                            g dd          }t          |g d           d S )Nr   rx   )rx   r5        ?)r6   r  r  r   r   r  s     r0   r3  zTestGeom.test_pmf'  s8    z~~iii--!$(:(:(:;;;;;r2   c                 8   t          j        t          j                            g dd                    }t          j                            g dd          }t          ||dd           t          j                            dd          }t          |d           d S )Nr   rx   r   r   r0  r   r}   )rt   rU  r6   r  r  rz  r   r   )r   r1  r2  r  s       r0   test_logpmfzTestGeom.test_logpmf+  s    uz~~iii5566
!!)))S11u5q9999 j1%%S#r2   c                     t           j                            g dd          }t           j                            g dd          }t	          g d          }t          ||           t          |d|z
             d S )Nr   rx   rx   r+        ?r   )r6   r  rK   rg  r   r   r   r  vals_sfri   s       r0   test_cdf_sfzTestGeom.test_cdf_sf5  sr    z~~iii--*--			3//+++,,!$111!'1X:66666r2   c                 :   t           j                            g dd          }t           j                            g dd          }t	          g d          }t          |t          j        |                     t          |t          j        |                      d S )Nr   rx   r  )	r6   r  r~  logsfr   r   rt   rU  log1pr!  s       r0   test_logcdf_logsfzTestGeom.test_logcdf_logsf<  s    z  C00*""999c22+++,,!$x(8(8999!'28XI+>+>?????r2   c                     t           j                            g dd          }t          g d          }t	          ||           d S )Nr  rx   )r  r|   r  )r6   r  r]  r   r   r   r  ri   s      r0   r  zTestGeom.test_ppfC  sE    z~~000#66))!$11111r2   c                 f    t          t          j                            dd          dd           d S )N#B;r  +=r   )r   r6   r  r]  r   s    r0   test_ppf_underflowzTestGeom.test_ppf_underflowH  s-    
ue44cFFFFFFr2   N)r#  r$  r%  r   r  r  r3  r  r#  r'  r  r-  r8   r2   r0   r  r    s          	; 	; 	;4 4 4< < <  7 7 7@ @ @2 2 2
G G G G Gr2   r  c                        e Zd Zd Zd Zd ZdS )
TestPlanckc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestPlanck.setup_methodN  r   r2   c                     t           j                            g dd          }t          g d          }t	          ||           d S )Nr   r  )g|dy?g8'\>ggrU!>)r6   planckrg  r   r   r)  s      r0   rj  zTestPlanck.test_sfQ  sQ    |yyy"-- 2 2 2 3 3 	"$11111r2   c                     t           j                            g dd          }t          g d          }t	          ||           d S )N)     @@     @@     p@r4  )g    P.g    h>g    TF)r6   r2  r%  r   r   r)  s      r0   
test_logsfzTestPlanck.test_logsfX  sJ    |!!"7"7"7??:::;;!$11111r2   N)r#  r$  r%  r   rj  r7  r8   r2   r0   r/  r/  M  sA          2 2 22 2 2 2 2r2   r/  c                   &    e Zd Zd Zd Zd Zd ZdS )TestGennormc                     g d}t           j                            |d          }t           j                            |          }t	          ||           d S Nr   r   )r6   gennormr@   r  r   r   pointspdf1pdf2s       r0   test_laplacezTestGennorm.test_laplace_  sM    }  ++}  ((D$'''''r2   c                     g d}t           j                            |d          }t           j                            |d          }t	          ||           d S Nr   r>   g;f?r=   )r6   r<  r@   normr   r=  s       r0   	test_normzTestGennorm.test_normf  sO    }  ++z~~fF~33D$'''''r2   c                    t           j                            d           t          j        d          }|                    d          }t          j        ||j                  j        dk    sJ t          j        d          }|                    d          }t          j	                            d          }t          j
        ||          j        dk    sJ t          j        d          }|                    d          }t          j                            dd	          }t          j
        ||          j        dk    sJ d S )
Nr   rx   r   r   rl   r   r>   g;f?)r=   r   )rt   r   r   r6   r<  r   r  rK   pvaluer  ks_2samprE  )r   rR   r   rvs_laplacervs_norms        r0   r  zTestGennorm.test_rvsm  s   
	q}S!!hhDh!!|C**1C7777}QhhDh!!m''T'22~c;//6<<<<}QhhDh!!:>>t><<~c8,,3c999999r2   c                    t           j                            d           t          j        ddgddgg          }|                    g d          }t          j        |d d ddf         t          j        d          j                  d         d	k    sJ t          j        |d d ddf         t          j        d          j                  d         d	k    sJ t          j        |d d ddf         t          j        d          j                  d         d	k    sJ t          j        |d d ddf         t          j        d          j                  d         d	k    sJ d S )
Nr   rx   r  r|   r  )r   r>   r>   r   r   rl   )rt   r   r   r6   r<  r   r  rK   )r   rR   r   s      r0   test_rvs_broadcastingz!TestGennorm.test_rvs_broadcasting~  sC   
	q}sBi"b233hhLLLh))|C1aL%-*<*<*@AA!DsJJJJ|C1aL%-*<*<*@AA!DsJJJJ|C1aL%-*<*<*@AA!DsJJJJ|C1aL%-*<*<*@AA!DsJJJJJJr2   N)r#  r$  r%  rA  rF  r  rM  r8   r2   r0   r9  r9  ^  sU        ( ( (( ( (: : :"K K K K Kr2   r9  c                        e Zd Zd Zd Zd ZdS )TestHalfgennormc                     g d}t           j                            |d          }t           j                            |          }t	          ||           d S r;  )r6   halfgennormr@   exponr   r=  s       r0   
test_exponzTestHalfgennorm.test_expon  sL     $$VQ//{v&&D$'''''r2   c                     g d}t           j                            |d          }t           j                            |d          }t	          ||           d S rC  )r6   rQ  r@   halfnormr   r=  s       r0   test_halfnormzTestHalfgennorm.test_halfnorm  sS     $$VQ//~!!&!77D$'''''r2   c                     g d}t           j                            |d          }t           j                            |d          }t	          |d|z             d S )Nr   g
(?r>   )r6   rQ  r@   r<  r   r=  s       r0   test_gennormzTestHalfgennorm.test_gennorm  sT     $$VW55}  11D!D&)))))r2   N)r#  r$  r%  rS  rV  rX  r8   r2   r0   rO  rO    sA        ( ( (( ( (* * * * *r2   rO  c                        e Zd Zd Zd Zd ZdS )TestLaplaceasymmetricc                     t          j        g d          }t          j                            |d          }t          j                            |          }t          ||           d S r;  )rt   r   r6   laplace_asymmetricr@   r  r   r=  s       r0   rA  z"TestLaplaceasymmetric.test_laplace  sX    )))$$'++FA66}  ((d#####r2   c                     t          j        g d          }d}d|z  }t          j                            ||          }t          j                            ||dz  z  |          }t          ||           d S )Nr   r>   r   )rt   r   r6   r\  r@   r   )r   r>  r   kapinvr?  r@  s         r0   test_asymmetric_laplace_pdfz1TestLaplaceasymmetric.test_asymmetric_laplace_pdf  sr    )))$$5'++FE::'++FE1H,=vFFd#####r2   c           
         t          j        t          j        d           t          j        d          g          }d}t          j                            ||          }t          j                            ||          }t          j                            ||          }t          j        ddg          }t          j        ddg          }t          j        dd	g          }t          j                            ||          }	|}
t          j        	                    ||          }|}t          t          j        ||||	|f          t          j        ||||
|f                     d S )
N   rn   r>   rl   gMbp?r  gV-?皙?gMb`?)rt   r   rU  r6   r\  r@   rK   rg  r]  rl  r   concatenate)r   r>  r   r?  cdf1sf1r@  cdf2sf2ppf1ppf2isf1isf2s                r0   !test_asymmetric_laplace_log_10_16z7TestLaplaceasymmetric.test_asymmetric_laplace_log_10_16  s9   BF2JJ;r

344'++FE::'++FE::&))&%88xu&&xi())hU|$$'++D%88'++C77dCt'DEEdCt'DEE	G 	G 	G 	G 	Gr2   N)r#  r$  r%  rA  r_  rl  r8   r2   r0   rZ  rZ    sF        $ $ $$ $ $G G G G Gr2   rZ  c                   ,   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d!d
Zg dg dg dg ddej        ddddgej         dddddgg dg dg dg	Z ej        e          Zej                            de          d             Zd Zd Zd Zd Zd Zd S )"TestTruncnormc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestTruncnorm.setup_method  r   r2   c           	          t           j                            g ddddgdz  d          }t          j        t          j        dd	dd
dt          j        g          }t          ||           d S )Nr  r   r  rx   gH.?r   r>         r  r      r>   r;   r   fO?l@r   )r6   	truncnormr]  rt   r   r   r   r)  s      r0   test_ppf_ticket1131z!TestTruncnorm.test_ppf_ticket1131  n    ""#E#E#EsB()s1uA # 7 78RVQ
Az1bfMNN!$11111r2   c           	          t           j                            g ddddgdz  d          }t          j        t          j        dd	dd
dt          j        g          }t          ||           d S )Nrq  rr  r  r   rs  r>   r;   r   ru  rt  r   )r6   rv  rl  rt   r   r   r   r)  s      r0   test_isf_ticket1131z!TestTruncnorm.test_isf_ticket1131  rx  r2   c                    d\  }}t           j                            ||ddd          }t          ||                                cxk     o|                                cxk     o|k     nc            d\  }}t           j                            ||ddd          }t          ||                                cxk     o|                                cxk     o|k     nc            d S )N)ir  r   r   rn   r   )rn      r6   rv  r   r	   minr  r   lowhighrG   s       r0   test_gh_2477_small_valuesz'TestTruncnorm.test_gh_2477_small_values  s    	TOT1ab99aeegg........$....///	TOT1ab99aeegg........$..../////r2   c                    d\  }}t           j                            ||ddd          }t          ||                                cxk    o|                                cxk    o|k    nc           t          |||g          f d\  }}t           j                            ||ddd          }t          ||                                cxk     o|                                cxk     o|k     nc            d\  }}t           j                            ||ddd          }t          ||                                cxk     o|                                cxk     o|k     nc            d\  }}t           j                            ||ddd          }t          ||                                cxk     o|                                cxk     o|k     nc            d S )	N)ro   rm   r   r   rn   r   )r     )'  i'  )i)r6   rv  r   r	   r~  r  r\   r  s       r0   test_gh_2477_large_valuesz'TestTruncnorm.test_gh_2477_large_values  s   	TOT1ab99quuww1111!%%''1111T111122CdA4G4GGG 	TOT1ab99aeegg........$..../// 	TOT1ab99aeegg........$....///"	TOT1ab99aeegg........$..../////r2   c                    ddgddgfD ]\  }}t          j        t           j         ||t           j        g          }||z   dz  }t          j                            |||          }t          j                            |||          }t          j                            |||          }t          j        g d          }t          j        g d          }	t          j        g d          }
|d	k     rt          j        g d
          }
t          ||           t          ||	           t          ||
           t          t          j	        |
d         |
d         z            |dz              t          j        g d          }t          j        
                    |||          }t          j        |t          j        |          dz  |g          }t          ||           |d	k     r_t          t          j                            |||          d           t          t          j                            |||          d           n^t          t          j                            |||          d           t          t          j                            |||          d           t          j                            |||          }t          t          j	        ||
d         z            |dz   dz             d S )Nr   re  rZ  r|   r   r   r   r   r  r  r}   r}   )r   d._MT
@BKg?r   r   )r   r  r  r   r   r>   rx   r   rx   r  gĖy	@gdv*?g,mj%V?r5  )rt   r   r   r6   rv  rK   rg  r@   r   rU  r]  sign)r   r  r  xvalsxmidcdfssfspdfsexpected_cdfsexpected_sfsexpected_pdfspvalsppfsexpected_ppfsr@   s                  r0   test_gh_9403_nontail_valuesz)TestTruncnorm.test_gh_9403_nontail_values  s   a&2r(+  	M  	MICHrvgsD"&9::EHc>D?&&uc488D/$$UC66C?&&uc488DH\\\22M8$8$8$899LH%A%A%ABBMQww ")E)E)E F Fm444\222m444}Q'7a8H'H I I #c	+ + +H]]]++E?&&uc488DHc273<<	+A4%HIIMm444Qww#EO$6$6tS$$G$G$68 8 8#EO$7$7c4$H$H$68 8 8 8 $EO$7$7c4$H$H$68 8 8#EO$6$6tS$$G$G$68 8 8/%%dC66Cs=+;'; < <tDy!mLLLLA 	M  	Mr2   c           	         ddgddgfD ]F\  }}t          j        t           j         ||t           j        g          }||z   dz  }t          j                            |||          }t          j                            |||          }t          j                            |||          }t          j        g d          }t          j        g d          }	t          j        g d          }
|d	k     rt          j        g d
          }
t          ||           t          ||	           t          ||
           t          t          j	        |
d         |
d         z            |dz              t          j        g d          }t          j        
                    |||          }t          j        |t          j        |          dz  |g          }t          ||           t          j                            |||          }t          ||           |d	k     r_t          t          j                            |||          d           t          t          j                            |||          d           n^t          t          j                            |||          d           t          t          j                            |||          d           t          j                            |||          }t          t          j	        ||
d         z            |dz   dz             t          j        ||d          }|d d d          }t          t          j                            |||          t          j                            || |           d d d                    t          t          j                            |||          t          j                            || |           d d d                    t          t          j                            |||          t          j                            || |           d d d                    Hd S )N'   (   ir|   r  r  )r   pGC@Ff<r   r   )r   r  r  r   r   r>   rx   r  gEC@g i?gspXio)>r5  r|  r  )rt   r   r   r6   rv  rK   rg  r@   r   rU  r]  r  r  )r   r  r  r  r  r  r  r  r  r  r  r  r  r  r@   xvals2s                   r0   test_gh_9403_medium_tail_valuesz-TestTruncnorm.test_gh_9403_medium_tail_values  s   r(S#J/ ,	P ,	PICHrvgsD"&9::EHc>D?&&uc488D/$$UC66C?&&uc488DH\\\22M8$8$8$899LH%K%K%KLLMQww " *= *= *= !> !>m444\222m444}Q'7a8H'H I I #c	+ + +H]]]++E?&&uc488DHc273<<+CT%JKKMm444?&&tS$77De,,,Qww#EO$6$6tS$$G$G$68 8 8#EO$7$7c4$H$H$9; ; ; ; $EO$7$7c4$H$H$68 8 8#EO$6$6tS$$G$G$9; ; ;/%%dC66Cs=+;'; < <tDy!mLLLKT2..EDDbDk\F 3 3E3 E E % 2 26D53$ G G" MO O O 2 25#t D D % 3 3FTEC4 H H2 NP P P 3 3E3 E E % 3 3FTEC4 H H2 NP P P PW,	P ,	Pr2   c                     t          t          j        dd                              d          d           t          t          j        dt          j                                      d          d           d S )Ng      *@g      .@      ,@g T?r  g @gR?)r   r6   rv  rK   rt   r   r   s    r0   test_cdf_tail_15110_14753z'TestTruncnorm.test_cdf_tail_15110_14753A  sr    
 	S1155c::*	, 	, 	,262266s;;*	, 	, 	, 	, 	,r2   Hz>c                     |d d         \  }}}}t           j                             ||d          \  }	}
}}t          |	|           t          |
|           t          |||           t          |||           d S )Nre  r  r  r   r6   rv  r   )r   r.   r/   ri   r   m0v0s0k0mvrF   rD   s                r0   _test_moments_one_rangez%TestTruncnorm._test_moments_one_rangeK  s    !"1"BB_**1a*@@
1a222D))))2D))))))r2   )r   r}   r  r}   r}   )r  rn   r}   r  r}   gLFu)r  r   r}   gMFmz%?r}   gſ)r>   r}   ghI}?r}   gHNMr   gQ63E?gnl$A?gr1"D?gK8L?gQ63Egr1"D)r  r   gU*? bn?gnA??c3TXʿ)r  r   gU*ҿr  gnAr  )r  g"$7"gOxr?gp7`g'>K@casec                     |\  }}}}}}t           j                             ||d          \  }}	}
}t          ||	|
|g||||gd           d S )Nr  r  FFg<r   r  )r   r  r.   r/   r  r  r  r  r  r  rF   rD   s               r0   test_momentszTestTruncnorm.test_moments|  sd    #1b"b"_**1a*@@
1aAq!r2r2&6UCCCCCCr2   c                     t           j                             dt          j        d          \  }}t	          |d           t	          |d           d S )Nr   mvr  g e3E?g:&A?)r6   rv  rt   r   r   )r   r  r  s      r0   test_9902_momentszTestTruncnorm.test_9902_moments  sJ    $$Q$==1Az***Az*****r2   c                     d\  }}t           j                            ||ddd          }t          ||                                cxk     o|                                cxk     o|k     nc            d S )N)rn   r  r   r   rn   r   r}  r  s       r0   test_gh_1489_trac_962_rvsz'TestTruncnorm.test_gh_1489_trac_962_rvs  sy    	TOT1ab99aeegg........$..../////r2   c                 P   ddt           j         dt           j         t           j         dddddg}dddt           j        ddddd	t           j        t           j        g}t          j                            ||dt          |          f
          }t          j        |          dt          |          fk    sJ t          t          j        ||	                    d          k                         t          t          j        |
                    d          |k                         d S )Nr  rn   r  ir  r|  r   r  -   r   r   )axis)rt   r   r6   rv  r   r   r  r	   r  r~  r  r  s       r0   test_gh_11299_rvszTestTruncnorm.test_gh_11299_rvs  s     BbfWrvgsCS"MB262sBRHOTCHH>>x{{q#c((m++++saeeemm+,,---quu!u}},--.....r2   c                     t          t          j        d          rAt          j                            dddt          j                                                   d S d S )Nr   r  r  r   r  )r-   rt   r   r6   rv  r   r   r   s    r0   test_rvs_Generatorz TestTruncnorm.test_rvs_Generator  sh    29m,, 	FORa-/Y-B-B-D-D   F F F F F	F 	Fr2   c                    t          j        t           j         t           j         dt           j         dg          }t          j        t           j        t           j        ddt           j        g          }t          j        g d          }g d}t          t	          j        ||                              |          |           t          t	          j        | |                               |           |           d S )Nrn   r  )rn         @r  	   r  )gOul"gځ=!gL!g>EG	f g^K[X)rt   r   r   r   r6   rv  r~  r%  )r   r.   r/   rG   ri   s        r0   test_logcdf_gh17064z!TestTruncnorm.test_logcdf_gh17064  s    HrvgwRVGR899HbfbfaRV455H***+++ + + 	1--44Q77BBBQB//55qb998DDDDDr2   N)r  )r#  r$  r%  r   rw  rz  r  r  r  r  r  r  rt   r   _truncnorm_stats_datar   r   r  r  r  r  r  r  r  r  r8   r2   r0   rn  rn    s         2 2 22 2 20 0 00 0 0&!M !M !MF-P -P -P^, , ,* * * *	 	 		1 	1 	1	= 	= 	=	< 	< 	<	
BF						
 &!						
	 	 	
	 	 	
	 	 	;"F %BH%:;;[V%:;;D D <;D
+ + +
0 0 0/ / /F F F	E 	E 	E 	E 	Er2   rn  c                   Z    e Zd Zej                            dg d          d             ZdS )TestGenLogisticx, expected))ig4`n)ig4	ncg)r   gX
=)ro   gh@X)r   gh<c                 n    d}t           j                            ||          }t          ||d           d S )Nr  r   r   )r6   genlogisticr   r   )r   rG   ri   r^  logps        r0   test_logpdfzTestGenLogistic.test_logpdf  s<      ''1--hU333333r2   N)r#  r$  r%  r   r  r  r  r8   r2   r0   r  r    s\         [] -I -I -I J J
4 4J J
4 4 4r2   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestHypergeomc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestHypergeom.setup_method  r   r2   c                    t           j                            dddd          }t          t	          j        |dk              t	          j        |dk              z             t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            ddd          }t          t          |t                               t          j        ddd                              d          }t          t          |t          j                             t          |j        j        t          d         v            d S )Nr  rn   r   r  r   r   r  )r6   	hypergeomr   r	   rA   r  r  r   r	  r   r
  r-  r.  r  s      r0   r  zTestHypergeom.test_rvs  s   ""2r17";;	$!)$$	$!)$$% 	& 	& 	&D!!W,---
9\#::;;;o!!"a,,
3$$%%%ob!R((,,Q//
3..///	)L"99:::::r2   c                     d}d}d}|}|}t           j                            d|||          }t          |dd           d S )Ni	  r    r>   gkㅒP?r|  )r6   r  r  r   )r   Mr>  Ntotgoodhgpmfs          r0   test_precisionzTestHypergeom.test_precision  sO    ##AsD!44E#8"=====r2   c                    t          t          j                            dddd          dd           t          t          j                            dddd          dd           t          t          j                            dddd          dd           t          t          j                            dddd          dd           d S )Nr   r>   r   r  r|  r}   )r   r6   r  r  r   s    r0   	test_argszTestHypergeom.test_args  s     	EO//1a;;S"EEEEO//1a;;S"EEEEO//1a;;S"EEEEO//1a;;S"EEEEEr2   c           	          t          dt          j                            dddd          cxk    odk    nc            d S )Nr   r   io i  if0  r  )r	   r6   r  rK   r   s    r0   test_cdf_above_onez TestHypergeom.test_cdf_above_one  sH    U_((XtUCCJJJJsJJJJKKKKKr2   c                 <  	 ddt          j        g d          dz  }d		fd|D             }t          j        g d          }t          ||dd	
           g d}t          j                            |z   d          }g d}t          ||dd	
           d S )Ng    +@g     @)r   ffffff@333333@re  gffffff@g@r        @     @c                 Z    g | ]'}t           j                            z   |          (S r8   )r6   r  rg  )rQ   eatenorangespearsquantiles     r0   rS   z1TestHypergeom.test_precision2.<locals>.<listcomp>  sC     * * * !!(GeOWeLL * * *r2   )r   gpR(g㘍R2gJޱ p9g?Mf=
G?r   r   gƠ>r  )g     @r  g     @g     @g     @)r   r  g)9g"1)rt   r   r   r6   r  rg  )
r   fruits_eatenr   ri   	quantilesres2	expected2r  r  r  s
          @@@r0   test_precision2zTestHypergeom.test_precision2  s     x = = =>>D* * * * * *(* * *8 9 9 9 : :XAD9999 0//	!!)Wu_guMM>>>	iad;;;;;;r2   c                 `   t          j        ddd          }|                                }t          j        ddg          }t          j        t          ||                     }t          ||           t          j        ddd          }|                                }t          |d           d S )Nre  r   r+  r5  r}   )	r6   r  rX   rt   r   r6  r   r   r   )r   hgr9  r7  r8  s        r0   r:  zTestHypergeom.test_entropy  s    _Q1%%JJLLXtTl++
fU:z::;;;
:&&&_Q1%%JJLLQr2   c                     d}d}d}d}t           j                            ||||          }d}t          ||d           d}d	}d
}d}t           j                            ||||          }d}t          ||d           d S )Nr      cA    .A     j@gor   r  r   @  X  ,  g_7	j$r  )r6   r  r%  r   r   rD   r  r>  r  resultri   s          r0   r7  zTestHypergeom.test_logsf  s     &&q!Q22FHa8888&&q!Q22 FHb999999r2   c                 D   d}d}d}d}t           j                            ||||          }d}t          ||d           d}d	}d
}d}t           j                            ||||          }d}t          ||d           d}d	}d}d}t           j                            ||||          }d}t          ||d           t	          j        g d          }d	}d
}d}t           j                            ||||          }t	          j        dd          }t          ||d           d S )Nr   r  r  r  g)\Ur   r  r  r  r  r  g*@Vr  }      r  gר)r  r  r  )r6   r  r~  r   rt   r   fullr  s          r0   test_logcdfzTestHypergeom.test_logcdf  sM    ''1a33FHa8888 ''1a33&FHb9999''1a33 FHb9999
 H\\\""''1a3371122FHb999999r2   N)r#  r$  r%  r   r  r  r  r  r  r:  r7  r  r8   r2   r0   r  r    s          
; 
; 
;> > >F F FL L L< < <&
 
 
: : :0,: ,: ,: ,: ,:r2   r  c                       e Zd Zej                            dddg          d             Zd Zd Zej                            ddd	g          d
             Z	dS )TestLoggammazx, c, sf)re  r  gQOu3;)   ro   g\Z{0c                     t           j                            ||          }t          ||d           t           j                            ||          }t          ||d           d S )Nrq  r   )r6   loggammarg  r   rl  )r   rG   r^  rg  rF   ys         r0   test_sf_isfzTestLoggamma.test_sf_isfK  sb     Na##2E****Nq!$$15))))))r2   c                 j    t           j                            dd          }t          |dd           d S )Nir>   g     @r,  r   )r6   r  r   r   )r   lps     r0   r  zTestLoggamma.test_logpdfS  s6    
 ^""4++G%000000r2   c                     t          j        g d                              dd          }|D ]?\  }}}}}t          j                            |d          }t          |||||gd           @d S )N)rx   g"~jg46<@g oŏ      @r  g	h"lxgQ?gZd;333333@g      (@g{/L@g??gгYҿgh|?5?r  r   msvkr  re  r  )rt   r   reshaper6   r  r   )r   tabler^  rD  varskewkurtcomputeds           r0   r  zTestLoggamma.test_stats[  s          
 wr1~~ 	 ). 	1 	1$AtS$~++Av+>>H%hsD$0G./1 1 1 1 1	1 	1r2   r^  rl   r
  c                    t           j                            |d          }t          j        |                                          sJ t           j                            |          }t          j        t          j        ||k               t          |                    }|
                    d          }|j        dcxk     r|j        k     sn J d S )N順 r   r  )confidence_levelrx   )r6   r  r   rt   isfiniter  median	binomtestcount_nonzeror   proportion_cir  r  )r   r^  rG   medbtestcis         r0   r  zTestLoggamma.test_rvsj  s     Nqv.. {1~~!!##### n##A&& 0S 9 93q66BB  % 88v%%%%bg%%%%%%%%r2   N)
r#  r$  r%  r   r  r  r	  r  r  r  r8   r2   r0   r  r  D  s         [Z*J*H*J K K* *K K*1 1 11 1 1 [S3,//& & 0/& & &r2   r  c                       e Zd Zd Zd Zd Zd Zd Zej	        
                    dddg          d	             Zd
 Zej	        
                    dddg          d             ZdS )TestLogisticc                     t          j        dd          }t          j                            |          }t          j                            |          }t          ||           d S NrY  r  )rt   r  r6   logisticrK   r]  r   r   rG   r  r`  s       r0   ra  zTestLogistic.test_cdf_ppf{  sS    KR  Nq!!^""2r2   c                     t          j        dd          }t          j                            |          }t          j                            |          }t          ||           d S r$  )rt   r  r6   r%  rg  rl  r   r&  s       r0   r	  zTestLogistic.test_sf_isf  sS    KR  Na  ^""2r2   c                     d}d}t          t          j                            d|z
            |           t          t          j                            |          |           d S )Ng      <gg|EA@r   )r   r6   r%  r]  rl  )r   r?  desireds      r0   test_extreme_valuesz TestLogistic.test_extreme_values  sV    !#**1q5117;;;**1--w77777r2   c                 t    t           j                            g d          }g d}t          ||d           d S )N)ir   rn   )gm\  .g9B.gO& $r   r   )r6   r%  r   r   )r   r  ri   s      r0   test_logpdf_basiczTestLogistic.test_logpdf_basic  sI    ~$$\\\22) ) ) 	hU333333r2   c                 l    t           j                            ddg          }t          |ddg           d S )Nrw   )r6   r%  r   r   r   r  s     r0   test_logpdf_extreme_valuesz'TestLogistic.test_logpdf_extreme_values  s7    ~$$c4[11 	TD$<(((((r2   zloc_rvs,scale_rvs)g9x&?gi '?)gB"?gs^&?c                    t           j                            d||          }d }t          |t           j                            |          |f          j        }t           j                            |          }t          ||d           d S )Nro   r   r<   r=   c                    | \  }}t          |          }t          j        t          j        ||z
  |z            dt          j        ||z
  |z            z   z            |dz  z
  }t          j        ||z
  |z  t          j        ||z
  |z            dz
  t          j        ||z
  |z            dz   z  z            |z
  }||fS Nr   r>   )r   rt   r6  r   )inputr   r.   r/   r>  x1x2s          r0   r   z#TestLogistic.test_fit.<locals>.func  s    DAqD		AqA~..RVTAXN3335 6 689A>B$(a&$(a0014&$(a001467 8 8:;<B r6Mr2   r  gKH9r   )r6   r%  r   r#   	_fitstartrG   r   r   )r   loc_rvs	scale_rvsr   r   expected_solution
fit_methods          r0   test_fitzTestLogistic.test_fit  s     ~!!sy!II	 	 	 !u~'?'?'E'EM    	^''--
 	
$5EBBBBBBr2   c                    t           j                            ddd          }|t           j                            |          fg}t           j                            |i           d         }t          t           j        ||           t          t           j        ||d           t          t           j        ||d           d S )Nro   rx   r>   r2  r   r   r   )r6   r%  r   r8  _reduce_funcr   )r   r   r   r   s       r0   test_fit_comp_optimizerz$TestLogistic.test_fit_comp_optimizer  s    ~!!s1!== u~//5578~**444Q7%endDAAA%endDqIIII%endDKKKKKKr2   
testlogcdfTFc                     t          j        g d          }|r t          j                            |          }n t          j                            |           }g d}t          ||d           d S )N)r  r.     r  r  )     g      g%h9fg?~T}%mgCx^&ْgV瞯<r   )rt   r   r6   r%  r~  r%  r   )r   rC  rG   r  ri   s        r0   test_logcdfsf_tailsz TestLogistic.test_logcdfsf_tails  s     H00011 	)%%a((AA$$aR((AF F F8%000000r2   N)r#  r$  r%  ra  r	  r*  r,  r0  r   r  r  r=  rB  rG  r8   r2   r0   r"  r"  y  s            8 8 84 4 4) ) ) [03J3K3M N NC CN NC,	L 	L 	L [\D%=991 1 :91 1 1r2   r"  c                   &    e Zd Zd Zd Zd Zd ZdS )
TestLogserc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestLogser.setup_method  r   r2   c                    t           j                            dd          }t          t	          j        |dk                         t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            d          }t          t          |t                               t          j        d                              d          }t          t          |t          j                             t          |j        j        t          d         v            d S )Nr+  r  r   r   r  r   )r6   logserr   r	   rA   r  r  r   r	  r   r
  r-  r.  r  s      r0   r  zTestLogser.test_rvs  s    |733	$!)$$%%%D!!W,---
9\#::;;;lt$$
3$$%%%l4  $$Q''
3..///	)L"99:::::r2   c                 f    t           j                            dd          }t          |d           d S )Nre  r+  g&Y3)r6   rL  r  r   r   r  s     r0   test_pmf_small_pzTestLogser.test_pmf_small_p  s1    LQ&& 	7#####r2   c                 d    t           j                            d          }t          |d           d S )N:0yE>gW  ?)r6   rL  rD  r   rN  s     r0   test_mean_small_pzTestLogser.test_mean_small_p  s/    Ld## 	;'''''r2   N)r#  r$  r%  r   r  rO  rR  r8   r2   r0   rI  rI    sP          	; 	; 	;$ $ $( ( ( ( (r2   rI  c            	          e Zd Z ej        d          d             Zej                            dej	        ej
        g          ej                            dg d          ej                            dg d          ej                            d	d
dgdd
gf          d                                                 Zej                            dej	        dfej
        dfg          d             ZdS )TestGumbel_r_lfunctionscopec                 @    t           j                            d          S r   rt   r   r   r   s    r0   r   zTestGumbel_r_l.rng      y$$T***r2   rR   r9  r  r   r   r:  rl   r   r   zfix_loc, fix_scaleTFc                    |                     d|||          }||                    |          fg}|                    |i           d         }	t                      }
|r|dz  |
d<   |r|dz  |
d<   t	          |||	fi |
 d S )Nro   )r   r<   r=   r   r   r>   r   r   )r   r8  rA  r   r   )r   rR   r9  r:  fix_loc	fix_scaler   r   r   r   r   s              r0   rB  z&TestGumbel_r_l.test_fit_comp_optimizer  s     xxSgY%(  * * t~~d++-.  r**1-vv  	'"Q;DL 	+&]DN 	&dD$??$?????r2   z	dist, sgnr   r  c                     |t          j        g d          z  }|                    |          \  }}t          ||dz             t          |dd           d S )N)r   r   r   r   r   r   r   gW  @g   @g3qtw>r  r   )rt   r   r   r   )r   rR   sgnzr<   r=   s         r0   r=  zTestGumbel_r_l.test_fit  sf     :::;;;XXa[[
U 	S!334445DAAAAAAr2   N)r#  r$  r%  r   fixturer   r  r  r6   gumbel_rgumbel_lrB  r=  r8   r2   r0   rT  rT    s@       V^*%%%+ + &%+ [Venen%EFF[Y


33[[***55[1#UmeT];= =@ @= = 65 43 GF
@( [[ENA+>,1NB+?+A B BB BB BB B Br2   rT  c                      e Zd Zd Zd Z ej        d          d             Zej        	                    d          ej        
                    ddd	g          ej        
                    d
dd	g          ej        
                    dddg          d                                                 Zej        
                    ddd	g          ej        
                    d
dd	g          ej        
                    dddg          ej        
                    dd  eddgd          D                        ej        d          d                                                             Z ej        d          d             Zd Zd ZdS )
TestParetoc                 	   t          j                    5  t          j        dt                     t          j                            dd          \  }}}}t          |t          j                   t          |t          j                   t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |t          j                   t          |t          j                   t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |t          j                   t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |t          j                   t          |t          j	                   t          |t          j	                   t          j                            d	d          \  }}}}t          |d
           t          |d           t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |d           t          |t          j	                   t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |d           t          |dt          j        d          z             t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |d           t          |dt          j        d          z             t          |t          j	                   t          j                            dd          \  }}}}t          |d           t          |d           t          |dt          j        d          z             t          |d           d d d            d S # 1 swxY w Y   d S )Nr<  rx   r  r  r  r  r  r|         @g?grq@r+        @gffffff?gK~?g      2@g۶m۶m?r  UUUUUU?gqq?      $@      @g%I$I?gQ?gUUUUUU@grq?g88Nb@)r@  rA  rB  rC  r6   paretor   rt   r   r   r   r  r   r  r  rF   rD   s        r0   r  zTestPareto.test_stats   sk    $&& 7	N 7	N!'>:::++C+@@JAq!QBF###BF###BF###BF###++C+@@JAq!QBF###BF###BF###BF###++C+@@JAq!QC   BF###BF###BF###++C+@@JAq!QC   BF###BF###BF###++C+@@JAq!QAy)))A2333BF###BF###++C+@@JAq!QAs###At$$$BF###BF###++C+@@JAq!QAy)))A2333A	277+;+;;<<<BF###++C+@@JAq!QAy)))Az***A027;3G3GGHHHBF###++C+@@JAq!QAy)))A2333A	RWW-=-==>>>ALMMMo7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	N 7	Ns   R8SS Sc                     d}d}d}t           j                            ||d|          }||z  |z  }t          ||           d S )Ng    eAr>   r  r   r;   )r6   rn  rg  r   )r   rG   r/   r=   r?  ri   s         r0   rj  zTestPareto.test_sf\  sO    LOOAqauO55!Ga<8$$$$$r2   rU  rV  c                 @    t           j                            d          S r   rY  r   s    r0   r   zTestPareto.rngd  rZ  r2   z2ignore:invalid value encountered in double_scalars	rvs_shaper   r>   rvs_locr   	rvs_scaler   c                 ,   t           j                            d||||          }t           j                            |dd          d         }t           j                            |dd          d         }t           j                            |dd          d         }||cxk    r|cxk    rdk    sn J t           j                            d|||dz   |          }t           j                            |d	          \  }	}
}t	          |dz   |                                           |dz
  }|j        d         }t	          |	|t          j        t          j	        ||                                z                      z             t	          |
d           d S )
Nro   r   r/   r=   r<   r   r   p=
ף?)r   r   )r   fix_b)r   fbr>   r?  )
r6   rn  r   r   r   r~  r  rt   r6  rU  )r   rr  rs  rt  r   r   shape_mle_analytical1shape_mle_analytical2shape_mle_analytical3shape_mle_a	loc_mle_ascale_mle_a
data_shiftndatas                 r0   r=  zTestPareto.test_fith  s    |SIY$+#   ? ? !& 0 0A$ 0 G G J % 0 0AT 0 J J1 M % 0 0A$ 0 G G J%)> . . . .%. . . .)-. . . . . . |SIY%,q[   E E.3l.>.>t!.>.L.L+Y[1_dhhjj111AX
 #[RVBF:jnn6F6F+F$G$GHHH	J 	J 	JY"""""r2   rl   fix_shape, fix_loc, fix_scalec                     g | ]}d |v |	S Fr8   rQ   r?  s     r0   rS   zTestPareto.<listcomp>  (     - - -A!&!  !+r2   TFr   repeatignoreinvalidc                 >   t           j                            d||||          }|t           j                            |          fg}	t           j                            |	i           d         }
i }|r||d<   |r||d<   |r||d<   t          t           j        ||
fi | d S )Nro   rv  r   r   r   r   )r6   rn  r   r8  rA  r   r   rr  rs  rt  	fix_shaper^  r_  r   r   r   r   r   s               r0   test_fit_MLE_comp_optimizerz&TestPareto.test_fit_MLE_comp_optimizer  s     |SIY$+#   ? ?u|--d3367|((r2215 	#"DJ 	#"DL 	'&DN%elD$GG$GGGGGr2   c           	      Z   d\  }}}t           j                            |||dt          j                            d                    }|t           j                            |          fg}t           j                            |i           d         }t          t           j        ||           d S )N)r   r   r   ro   ið& r  r   )	r6   rn  r   rt   r   r   r8  rA  r   )r   r  locationr=   r   r   r   s          r0   test_fit_known_bad_seedz"TestPareto.test_fit_known_bad_seed  s    
 ")x|xS-/Y-B-B7-K-K   M Mu|--d3367|((r2215%elD$?????r2   c                     t          t          j                   t          t          t          j        j        g dd           t          t          t          j        j        g ddd           d S )Nr   r>   r?  )r   r>   r   r   r   r   r   )r   r6   rn  assert_raisesr!   r   r   s    r0   test_fit_warningszTestPareto.test_fit_warnings  sg    EL)))lEL$4iiiaHHHHlEL$4iiia	  	  	  	  	  	 r2   c                     t           j                            ddd|          }t          |d           t           j                            |          }d S )Ni~r   ro   )r<   r/   r   r   r   )r6   rn  r   r   r   )r   r   r   r  s       r0   test_negative_datazTestPareto.test_negative_data  sK    |DACcJJ$"""
 LT""r2   N)r#  r$  r%  r  rj  r   rc  r   r  filterwarningsr  r=  r%   rt   errstater  r  r  r  r8   r2   r0   rg  rg    s(       :N :N :Nx% % % V^*%%%+ + &%+ [ !1 2 2[[1a&11[YA//[[1a&11# # 21 0/ 212 2
#. [[2q'22[YA//[[1a&11[<- -$q)I)I)I - - -. . R["""H H #". . 21 0/ 32H" R["""	@ 	@ #"	@     # # # # #r2   rg  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                            d
dg dfdddd ej        d          z  ej        gfdddd ej        d          z  dgfdg dfg          d             Zd ZdS )TestGenparetoc                 r   dD ]i}t          j        |          }t          j                            |          \  }}t          |d           t          t          j        |                     jt          j        d          }t          j                            |          \  }}t          ||gddg           d S )Nr  r}   r}          rx   )	rt   asarrayr6   	genpareto_get_supportr   r	   isposinfr   )r   r^  r.   r/   s       r0   test_abzTestGenpareto.test_ab  s     	$ 	$A
1A?//22DAqBBKNN#### JsOO++A..1AS	*****r2   c                    t          j        d          }t          j        ddd          }t	          |                    |          t           j                            |                     t	          |                    |          t           j                            |                     t	          |                    |          t           j                            |                     t          j        ddd          }t	          |	                    |          t           j        	                    |                     d S )Nr}   r^  r   rl  r   r  rn   )
r6   r  rt   r  r   r@   rR  rK   rg  r]  r   rvrG   r_  s       r0   test_c0zTestGenpareto.test_c0  s     _r"""K3##q		5;??1#5#5666q		5;??1#5#5666a%+.."3"3444KB##q		5;??1#5#566666r2   c                    t          j        d          }t          j        ddd          }t	          |                    |          t           j                            |                     t	          |                    |          t           j                            |                     t	          |                    |          t           j                            |                     t          j        ddd          }t	          |	                    |          t           j        	                    |                     t	          |
                    d	          d           d S )
Nrr  r  r   rl  r   r}   r  rn   r   )r6   r  rt   r  r   r@   uniformrK   rg  r]  r   r  s       r0   test_cm1zTestGenpareto.test_cm1  s   _s###K3##q		5=#4#4Q#7#7888q		5=#4#4Q#7#7888a%-"2"21"5"5666KB##q		5=#4#4Q#7#7888 			!a(((((r2   c                    t          j        d          }t          |                    t          j                  |                    t          j                  gddg           t          t	          j        |	                    t          j                                       t          j        d          }t          |                    t          j                  |                    t          j                  gddg           t          t	          j        |	                    t          j                                       t          j        d          }t          |                    t          j                  |                    t          j                  gddg           t          t	          j        |	                    t          j                                       d S )Nrl   r  r}   r  rr  )
r6   r  r   r@   rt   r   rK   r	   isneginfr   r   r  s     r0   
test_x_infzTestGenpareto.test_x_inf  sC   _s###82r(CCCBIIbf--..///_r"""82r(CCCBIIbf--..///_s###82r(CCCBIIbf--../////r2   c                    t          j        ddd          }dD ]}t          j                            ||          }dD ]7}t          j                            |||z             }t          ||d           8t          j                            ||          }dD ]7}t          j                            |||z             }t          ||d           8d S )	Nr   rn   r   r   r  r,  g+rq  r   )r,  r,  )rt   r  r6   r  r@   r   rK   )r   rG   r^  pdf0dcpdfccdf0cdfcs           r0   test_c_continuityzTestGenpareto.test_c_continuity  s    K2r"" 		8 		8A?&&q!,,D% 8 8**1a"f55d77777?&&q!,,D$ 8 8**1a"f55d777778		8 		8r2   c           	      t   t           j        t          j        ddd          t          j        dddd          d	t          j        ddd          z
  f         }d
D ]\}t          j                            ||          }dD ]7}t          j                            |||z             }t          ||d           8]d S Nrq  rz   rl   baser   r   Fendpointr  )r}   rr  r  r   )rt   r  r[  r  r6   r  r]  r   )r   r_  r^  ppf0r  ppfcs         r0   test_c_continuity_ppfz#TestGenpareto.test_c_continuity_ppf      E"+eT444+dArE:::r{5$S9999: ;  	8 	8A?&&q!,,D% 8 8**1a"f55d777778	8 	8r2   c           	      t   t           j        t          j        ddd          t          j        dddd          d	t          j        ddd          z
  f         }d
D ]\}t          j                            ||          }dD ]7}t          j                            |||z             }t          ||d           8]d S r  )rt   r  r[  r  r6   r  rl  r   )r   r_  r^  isf0r  isfcs         r0   test_c_continuity_isfz#TestGenpareto.test_c_continuity_isf  r  r2   c           	      \   t           j        t          j        ddd          t          j        dddd          d	t          j        ddd          z
  f         }d
D ]P}t	          t
          j                            t
          j                            ||          |          |d           Qd S )Nrq  rz   rl   r  r   r   Fr  r  )rQ  gC]r2r   gV瞯Ҽr   r   )	rt   r  r[  r  r   r6   r  rK   r]  )r   r_  r^  s      r0   test_cdf_ppf_roundtripz$TestGenpareto.test_cdf_ppf_roundtrip  s    E"+eT444+dArE:::r{5$S9999: ; / 	+ 	+AEO//0C0CAq0I0I1MME+ + + + +	+ 	+r2   c                 j    t           j                            dddd          }t          |d           d S )Ng    _Brz   r   r   gpEȜ)r6   r  r%  r   r/  s     r0   r7  zTestGenpareto.test_logsf  s4    $$T3155122222r2   zc, expected_statsr   )r   r   r>   r  r5  rk  gqq@rn   r>   gqq?g      ?g$I$	?rq?rs  gll0@r  )rx   UUUUUU?r   333333c                 n    t           j                             |d          }t          ||dd           d S )Nr  r  r   r   r0  )r6   r  r   )r   r^  expected_statsr  s       r0   r  zTestGenpareto.test_stats!  s;     &&q&&99UGGGGGGr2   c                 h    t           j                            d          }t          |dd           d S )NrQ  gvǼ
  ?r   r   )r6   r  r  r   )r   r  s     r0   test_varzTestGenpareto.test_var+  s3    O%%,5999999r2   N)r#  r$  r%  r  r  r  r  r  r  r  r  r7  r   r  r  rt   r  r   r  r  r8   r2   r0   r  r    sA       + + +
7 
7 
7) ) )0 0 08 8 88 8 88 8 8+ + +3 3 3 [
\\\	
T2gbgajj="&1	2
]T7271::$5v>	?
"""	#	%& &H H& &H: : : : :r2   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestPearson3c                 D    t           j                            d           d S r   r   r   s    r0   r   zTestPearson3.setup_method2  r   r2   c                    t           j                            dd          }t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            d          }t          t          |t                               t          j        d                              d          }t          t          |t          j                             t          |j        j        t          d         v            t          t          |          dk               d S )Nrl   r  r   AllFloatrx   r   )r6   r)   r   r	   rA   r  r   r	  r   r
  floatr.  r   r  s      r0   r  zTestPearson3.test_rvs5  s    ~!!#G!44D!!W,---
9Z#88999n  %%
3&&'''nS!!%%a((
3..///	)J"77888CAr2   c                    t           j                            dg d          }t          |t	          j        g d          d           t           j                            dd          }t          |t	          j        dg          d           t           j                            g d	d          }t          |t	          j        g d
          d           d S )Nr>   r}   rl   r  )gtT?g+q?g?r  r   r  rl   ND}i?r  r  r  r   r   )r  gj?gdC?gs?g'M?)r6   r)   r@   r   rt   r   r  s     r0   r  zTestPearson3.test_pdf@  s    ~!!!___55bh'K'K'KLL!	# 	# 	# 	#~!!"c**bh
|444@@@@~!!"4"4"4c::bh (@ (@ (@ A AGK	M 	M 	M 	M 	M 	Mr2   c                 h   t           j                            dg d          }t          |t	          j        g d          d           t           j                            dd          }t          |dgd           t           j                            g d	d          }t          |g d
d           d S )Nr>   r  )grE?gTp]0?g~?r  r   r  rl   g E&"J?r  )giZ*J?gh+8w?gcK?g|<x6?gG?)r6   r)   rK   r   rt   r   r  s     r0   r"  zTestPearson3.test_cdfJ  s    ~!!!___55bh'K'K'KLL!	# 	# 	# 	#~!!"c**zl6666~!!"4"4"4c:: ? ? ?EI	K 	K 	K 	K 	K 	Kr2   c                     g d}ddt           j                            |          }fd|D             }t          ||           d S )Nr  r  r   rx   rx   r  c                 l    g | ]0}t          t          j        |          j                  d          1S rO   )r   r6   r)   r@   )rQ   r  neg_infx_evals     r0   rS   z<TestPearson3.test_negative_cdf_bug_11186.<locals>.<listcomp>[  sG     ' ' ' --17FCCAF ' ' 'r2   )r6   r)   rK   r   )r   skewsr  int_pdfsr  r  s       @@r0   test_negative_cdf_bug_11186z(TestPearson3.test_negative_cdf_bug_11186T  su     !  ~!!&%00' ' ' ' ' %' ' 'h'''''r2   c                 6   t           j                            dd          }t          |d           t	          |t
          j                  sJ t           j                            dd          }t          |d           t	          |t
          j                  sJ d S )Nr   r>   r   r  )r6   r)   r  r   r
  rt   number)r   r  s     r0   test_return_array_bug_11746z(TestPearson3.test_return_array_bug_11746_  s     &&q!,,VQ&"),,,,,&&q(33VQ&"),,,,,,,r2   c                    g d}d}t           j                            t           j                            ||          |          }t	          ||           t          j        dgdgg          }t          j        dd          }t	          t           j                            ||          t           j                            | |                      t	          t           j                            ||          t           j        	                    | |                      t	          t           j                            ||          t           j        
                    ||                       d S )Nr  rx   r  r  r  r>   )r6   r)   r]  rK   r   rt   r   r  r@   rg  rl  )r   r  r  r   r  rG   s         r0   test_ppf_bug_17050zTestPearson3.test_ppf_bug_17050j  s?    !  n  !3!3FE!B!BEJJV$$$ x$#((KA**1d33**A2u55	7 	7 	7**1d33))1"te44	6 	6 	6**1d33++Au555	7 	7 	7 	7 	7r2   N)
r#  r$  r%  r   r  r  r"  r  r  r  r8   r2   r0   r  r  1  s          	 	 	M M MK K K	( 	( 	(	- 	- 	-7 7 7 7 7r2   r  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	
TestKappa4c                     g d}d}dD ]T}t           j                            |||          }t           j                            ||           }t	          ||           Ud S )N)r}   rl   r  rx   r  )
gffffffrr  r  皙ɿ皙rl   r  rx   r  ffffff?)r6   kappa4rK   r  r   r   rG   r9  rD   r  	vals_comps         r0   test_cdf_genparetozTestKappa4.test_cdf_genpareto  sr        	- 	-A<##Aq!,,D++Ar22ID),,,,	- 	-r2   c                    t          j        ddd          }d}t          j        ddd          }t          j                            |||          }t          j                            ||          }t          ||           d S )Nr  r   rn   r}   r  r   )rt   r  r6   r  rK   
genextremer   r  s         r0   test_cdf_genextremezTestKappa4.test_cdf_genextreme  st    KAr""KAr""|1a(($((A..	i(((((r2   c                     t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           d S )Nr   rn   r  r}   )rt   r  r6   r  rK   rR  r   r  s         r0   test_cdf_exponzTestKappa4.test_cdf_expon  sa    K2r""|1a((KOOA&&	i(((((r2   c                     t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           d S )Nr  r   rn   r}   )rt   r  r6   r  rK   rd  r   r  s         r0   test_cdf_gumbel_rzTestKappa4.test_cdf_gumbel_r  sc    KAr""|1a((N&&q))	i(((((r2   c                     t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           d S )Nr  r   rn   rr  r}   )rt   r  r6   r  rK   r%  r   r  s         r0   test_cdf_logisticzTestKappa4.test_cdf_logistic  sc    KAr""|1a((N&&q))	i(((((r2   c                     t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           d S )Nr  r   rn   r  )rt   r  r6   r  rK   r  r   r  s         r0   test_cdf_uniformzTestKappa4.test_cdf_uniform  sc    KAr""|1a((M%%a((	i(((((r2   c                 0    t          j        dd           d S r4  )r6   r  r   s    r0   test_integers_ctorzTestKappa4.test_integers_ctor  s     	Qr2   N)
r#  r$  r%  r  r  r  r  r  r  r   r8   r2   r0   r  r  ~  s}        	- 	- 	-) ) )) ) )) ) )) ) )) ) )    r2   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestPoissonc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestPoisson.setup_method  r   r2   c                     t          j        d          }t          j                            g d|          }d|dz  |dz  dz  g}t          ||           d S )Nr>   r   r   r>   rx   re  )rt   rU  r6   poissonr  r   )r   ln2r  ri   s       r0   test_pmf_basiczTestPoisson.test_pmf_basic  sX    fQii}  C00QQq)h'''''r2   c                     t           j                            g dd          }g d}t          ||           t           j                            dd          }t          |d           d S )Nr  r   )r   r   r   ffffff?r   r   )r6   r  r  r   intervalr   )r   r  ri   r  s       r0   test_mu0zTestPoisson.test_mu0  sc    }  A..994***=))$22Xv&&&&&r2   c                    t           j                            dd          }t          t	          j        |dk                         t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            d          }t          t          |t                               t          j        d                              d          }t          t          |t          j                             t          |j        j        t          d         v            d S )Nrx   r  r   r   r  r   )r6   r  r   r	   rA   r  r  r   r	  r   r
  r-  r.  r  s      r0   r  zTestPoisson.test_rvs  s    }  7 33	$!)$$%%%D!!W,---
9\#::;;;m$$
3$$%%%mC  $$Q''
3..///	)L"99:::::r2   c           	         d}t           j                             |d          }t          |||t          j        d|z            d|z  g           t          j        g d          }t           j                             |d          }||t          j        ddt          j        d          z  gt          j        ddgf}t          ||           d S )	Ng      0@r  r  r  )r}   r  r|   r   r>   rx   )r6   r  r   rt   r  r   r   )r   r  r  ri   s       r0   r  zTestPoisson.test_stats  s    $$R$88RR#b& ABBBXooo&&$$R$88RVQ"'!**537GH)))))r2   N)r#  r$  r%  r   r  r  r  r  r8   r2   r0   r  r    s_          ( ( (' ' '	; 	; 	;* * * * *r2   r  c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )	TestKSTwoc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestKSTwo.setup_method  r   r2   c                    dD ]}t          j        dd|z  d|z  ddd|z  z
  dg          }d|z  |z  }t          j                            |dz             }|dk    rt          j        |          nd}t          j        dd||z  ddt          j                            d|          z  z
  t          dd|z  z
  d          dg          }t          j
                            ||          }t          ||           d S )Nr   r>   r   rn   ro   r   r   rx   r   r  r>   r}   )rt   r   r5   r   gammalnr   r6   ksonerg  r  kstworK   r   )r   r>  rG   v1lgelgri   r  s           r0   r"  zTestKSTwo.test_cdf  s   ) 	0 	0A !SUAaCaAgq9::Aa%!B&&qs++B!#q26":::aCxArCx!"Qu{~~c1'='=%=!=!$Q2Xs!3!3!$!& ' 'H {q!,,HHh////#	0 	0r2   c                    t          j        ddd          }dD ]}t          j        dd|z  d|z  ddd|z  z
  dg          }d|z  |z  }t          j                            |dz             }|dk    rt          j        |          nd}t          j        ddd||z  z
  dt          j        	                    d|          z  t          d|z  d          dg          }t          j        	                    ||          }t          ||           d S )Nr   r   r|  r  rx   r  r>   )rt   r  r   r5   r   r  r   r6   r  rg  r~  r  r   )r   rG   r>  r  r  r  ri   r"  s           r0   rj  zTestKSTwo.test_sf  s   K1b!!) 	/ 	/A!SUAaCaAgq9::Aa%!B&&qs++B!#q26":::aCxc!"R#X!"5;>>#q#9#9!9!$QrT3!4 5 5H knnQ**GGX....	/ 	/r2   c                 
   t          j        ddd          dd          }g d}|D ]]}|t          j        |          z  }t          j                            ||          }t          j        |          }t          |d           ^d S )Nr   r>   r|  r   )r  ro      i  r   r   rQ  )rt   r  r  r6   r  rK   diffr   )r   rG   ns_xxnprobsdiffss          r0   test_cdf_sqrtnzTestKSTwo.test_cdf_sqrtn  s    
 K1b!!!""%,,, 	+ 	+Bbgbkk!BKOOB++EGENNEeT****		+ 	+r2   c                     t          j        ddd          }dD ]U}t          j                            ||          }t          j                            ||          }t          |d|z
             Vd S Nr   r   r|  r  )rt   r  r6   r  rK   rg  r   )r   rG   r>  r  r"  s        r0   r#  zTestKSTwo.test_cdf_sf  so    K1b!!) 	= 	=A{q!,,HknnQ**G%hG<<<<	= 	=r2   c                    t          j        ddd          }dD ]l}|t          j        |          z  }t          j                            ||          }t          j                            ||          }t          |d|z
             md S r&  )rt   r  r  r6   r  rK   rg  r   )r   rG   r>  r!  r  r"  s         r0   test_cdf_sf_sqrtnzTestKSTwo.test_cdf_sf_sqrtn"  s    K1b!!) 	= 	=ARWQZZB{r1--HknnR++G%hG<<<<		= 	=r2   c                 0   t          j        ddd          }dD ]|}||d|z  k             }t          j                            ||          }d|k     |dk     z  }t          j                            ||          }t          ||         ||         d           }d S )	Nr   r   r|  r  rx   r  r  r   )rt   r  r6   r  rK   r]  r   r   rG   r>  r!  r  condr  s          r0   test_ppf_of_cdfzTestKSTwo.test_ppf_of_cdf*  s    K1b!!) 	= 	=A1s1u9B{r1--HLX_5D;??8Q//DDJ4t<<<<<	= 	=r2   c                 0   t          j        ddd          }dD ]|}||d|z  k             }t          j                            ||          }d|k     |dk     z  }t          j                            ||          }t          ||         ||         d           }d S )	Nr   r   r|  r  rx   r  r  r   )rt   r  r6   r  rl  rg  r   )r   rG   r>  r!  vals_isfr+  r  s          r0   test_isf_of_sfzTestKSTwo.test_isf_of_sf4  s    K1b!!) 	= 	=A1s1u9B{r1--HLX^4D;>>(A..DDJ4t<<<<<	= 	=r2   c                 V   t          j        ddd          }dD ]}|t          j        |          z  |d|z  k             }t          j                            ||          }d|k     |dk     z  }t          j                            ||          }t          ||         ||                    d S )Nr   r   r|  r  rx   r  )rt   r  r  r6   r  rK   r]  r   r*  s          r0   test_ppf_of_cdf_sqrtnzTestKSTwo.test_ppf_of_cdf_sqrtn=  s    K1b!!) 	2 	2Abgajj.!c!e),B{r1--HLX^4D;??8Q//DDJ41111	2 	2r2   c                 V   t          j        ddd          }dD ]}|t          j        |          z  |d|z  k             }t          j                            ||          }d|k     |dk     z  }t          j                            ||          }t          ||         ||                    d S )Nr   r   r|  r  rx   r
  )rt   r  r  r6   r  rg  rl  r   )r   rG   r>  r!  r"  r+  r  s          r0   test_isf_of_sf_sqrtnzTestKSTwo.test_isf_of_sf_sqrtnF  s    K1b!!) 	2 	2Abgajj.!c!e),BknnR++GKGdN3D;??7A..DDJ41111	2 	2r2   c                     t          j        ddd          dd          }dD ]R}t          j                            ||          }t          j                            ||          }t          ||           Sd S r&  )rt   r  r6   r  r]  rK   r   )r   r"  r>  r!  r  s        r0   r  zTestKSTwo.test_ppfP  st    Aq"%%abb)) 	- 	-A**B{r1--HHe,,,,	- 	-r2   c           	         g d}t          j        g d          }t          j        g dg dg dg dg dg dg          }t          |          D ]y\  }}|t          j        d	          z  t          j        t           j        d	z  |z            z  }t          j                            ||          }t          |||         d
           zd S )N)rn   r  ro   r  r  r   )r5  gUUUUUU?rx   r   r>   r   )gRT>gr	?gK5
?gn
"5?gU
?gk?)g&6#>gb
E>gI5?g\?g;?g%1?)g6>gL>g<?g䓀^?gO|6$?g qO?)g}+: >gwQ9>gH{?g]qv(?g)~/v?gmJ?)gV27J=gGk(>gWX?gY?g{0`?gZ
H?)g_R=g4>g̪?gT_@?g<e?g2?r>   h㈵>r   )
rt   r   	enumeraterU  r  rB   r6   r  rK   r   )r   r  ratiosri   idxr>  rG   r  s           r0   test_simard_lecuyer_table1z$TestKSTwo.test_simard_lecuyer_table1W  s    +**888998- - -- - -- - -- - -- - -- - -
    mm 	@ 	@FC"RWRU1WQY%7%77A{q!,,HHhsm$?????	@ 	@r2   N)r#  r$  r%  r   r"  rj  r$  r#  r(  r,  r/  r1  r3  r  r:  r8   r2   r0   r  r    s          0 0 0(/ / /+ + += = == = == = == = =2 2 22 2 2- - -@ @ @ @ @r2   r  c                        e Zd Zd Zd Zd ZdS )TestZipfc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestZipf.setup_methodz  r   r2   c                    t           j                            dd          }t          t	          j        |dk                         t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            d          }t          t          |t                               t          j        d                              d          }t          t          |t          j                             t          |j        j        t          d         v            d S )Nr  r  r   r   r  r   )r6   zipfr   r	   rA   r  r  r   r	  r   r
  r-  r.  r  s      r0   r  zTestZipf.test_rvs}  s    z~~c~00	$!)$$%%%D!!W,---
9\#::;;;jnnS!!
3$$%%%joo!!!$$
3..///	)L"99:::::r2   c                 v   t           j                             d          \  }}t          t          j        |                     t          |t          j                   t           j                             dd          \  }}t          t          j        ||g                                                      d S )Nffffff@r.   r|  skr.   r  )r6   r?  r	   rt   r  r   r   r  ro  s        r0   r  zTestZipf.test_moments  s    z#&&1AQz#t441BKA''++---.....r2   N)r#  r$  r%  r   r  r  r8   r2   r0   r<  r<  y  sA          	; 	; 	;/ / / / /r2   r<  c                   &    e Zd Zd Zd Zd Zd ZdS )TestDLaplacec                 D    t           j                            d           d S r   r   r   s    r0   r   zTestDLaplace.setup_method  r   r2   c                    t           j                            dd          }t          t	          j        |          dk               t          |j        j        t          d         v            t           j                            d          }t          t          |t                               t          j        d                              d          }t          t          |t          j                             t          |j        j        t          d         v            t          t           j                            d          d u           d S )Nr  r  r   r  r   rb  )r6   dlaplacer   r	   rA   r  r   r	  r   r
  r-  r.  r  s      r0   r  zTestDLaplace.test_rvs  s    ~!!#G!44D!!W,---
9\#::;;;n  %%
3$$%%%nS!!%%a((
3..///	)L"99:::""3''t344444r2   c                    d}t          j        |          }|                     d          \  }}}}d}t          j        | |dz             }|                    |          }	t          j        |	|dz  z            t          j        |	|dz  z            }}
t          ||fd           t          ||f|
||
dz  z  dz
  fd	d
           d S )Nr  r  %   r   r>   re  r  r  r,  rQ  r  )r6   rI  rt   r   r  r6  r   r   )r   r.   dlr  r  rF   rD   r  r`  ppm2m4s               r0   r  zTestDLaplace.test_stats  s    ^AXXf%%
1aYr1Q3VVBZZ2q5!!26"RU(#3#3BaVV$$$ARAX] 3%dKKKKKKr2   c                     t          j        d          }t          j        |          }|                    d          \  }}}}t	          ||fd           t          ||fd           d S )Nr|   r  )r}   r}   )r  g      
@)rt   rU  r6   rI  r   r   )r   r.   rL  r  r  rF   rD   s          r0   test_stats2zTestDLaplace.test_stats2  se    F2JJ^AXXf%%
1aaVX&&&A
+++++r2   N)r#  r$  r%  r   r  r  rQ  r8   r2   r0   rF  rF    sS          	5 	5 	5L L L, , , , ,r2   rF  c                        e Zd Zd Zej                            dddg          d             Zej                            dddg           fd            Zd Z	d	 Z
d
 Z xZS )TestInvgaussc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestInvgauss.setup_method  r   r2   zrvs_mu,rvs_loc,rvs_scale)r>   r   r   )g
ףp=@g r@gʡE6@c                    t           j                            d|||          }t           j                            ||          \  }}}||z
  }t	          j        |          }t          |          t	          j        |dz  |dz  z
            z  }	||	z  }
t          |
|dd           t          |	|dd           t          ||           t           j                            d|||          }t           j                            ||dz
  |dz             \  }}}t          |dz   |           t          |dz
  |           t           j                            |d	
          d         }t           j                            |d	          d         }t           j                            |d	          d         }||cxk    r|cxk    rd	k    sn J d S )Nro   r   r  r<   r=   r?  r  r   r  r   r  rw  )fmur   )fix_mur   )
r6   r   r   r   rt   rD  r   r6  r   r   )r   rvs_murs  rt  r   r  r<   r=   mu_temp	scale_mlemu_mle
shape_mle1
shape_mle2
shape_mle3s                 r0   r=  zTestInvgauss.test_fit  s    ~!!sv&-Y " @ @ ++Dw+??Cg~'$--IIr
Wr](B!C!CD	" 	U;;;;	5u5AAAAS'"""~!!sv&-Y " @ @ ++Dw{3<q= , B BCY]E***Wq[#&&& ^''$'77:
^''T'::1=
^'''66q9
Z====:============r2   )gX9v>@g	@gGz@c           	         t           j                            d|||          }t          t	          t           j                  t           j                  j        } ||          }t           j                            |          }t          ||            ||dd          }t           j                            |dd          }t          ||           |t           j                            |          fg}t           j                            |i           d         }	t          t           j        ||	|           t          j        ||dz
  z
  dk              sJ t          t           j        ||	|dz
             t          t           j        ||	d           t          t           j        ||	|t          j                            d          d                    d S )	Nro   rV  r   r>   )r   rW  r   r?  r  )r6   r   r   r   r   r   r   r8  rA  r   rt   r  r   rand)r   rZ  rs  rt  r   	super_fitsuper_fittedinvgauss_fitr   r   	__class__s             r0   r  z(TestInvgauss.test_fit_MLE_comp_optimizer  s    ~!!sv&-Y " @ @ $u~..??C	 y~))$//\<000 !yA1555~))$QA)>>\<000 u~//5589~**444Q7 	&endDwOOOO vtw{+q011111%endD+2Q;	8 	8 	8 	8
 	&endDqIIII 	&endDw-/Y^^A->->q-A	C 	C 	C 	C 	C 	Cr2   c                     t          t          j                   t          j        t
                    5  t          j                            g dd           d d d            d S # 1 swxY w Y   d S )Nr   r>   r?  )r   r6   r   r   r   r!   r   r   s    r0   test_fit_raise_errorsz"TestInvgauss.test_fit_raise_errors	  s    EN+++]<(( 	2 	2Nyyyq111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   $A$$A(+A(c                    g d}g d}t           j                            d|          }t          ||           t           j                            dd          }t	          |d           t           j                            dd          }t	          |d	           t           j                            d
d          }t	          |d           t           j                            dd          }t	          |d           d S )N)g4wT;?gjdV&}?g{i\0>gDV_h?gqacX?)r   r   r   r   r   皙?r  r
  ?gfFn   gr^:g9̗?r  gx_;:g!?gٷ
??)r6   r   rK   r   r   rg  )r   r  ri   re   
cdf_actual	sf_actuals         r0   r#  zTestInvgauss.test_cdf_sf	  s    . . ."??##CB#//Xv&&& ^''$'77

$9:::N%%cd%33		#7888 ##GV44 3444 ##Hf55 122222r2   c                    t           j                            dd          }t          |d           t           j                            dd          }t          |d           t           j                            dd          }t          |d           t           j                            dd          }t          |d	           d S )
Nr  rl  rk  giJ.rm  gr^ߺr
  gpgFgpQ^L)r6   r   r~  r   r%  )r   r~  r%  s      r0   r'  zTestInvgauss.test_logcdf_logsf*	  s     &&v$&77 1222&&sD11 5666$$Ut$445666$$S$//011111r2   )r#  r$  r%  r   r   r  r  r=  r  rh  r#  r'  __classcell__rf  s   @r0   rS  rS    s           [7')>?A A> >A A>: [7')>?A A$C $C $C $CA A$CL2 2 2!3 !3 !3F2 2 2 2 2 2 2r2   rS  c                       e Zd Zej                            dg d          ej                            dg d          d                         Zej                            dg d           fd            Zd	 Zd
 Z	d Z
d Z xZS )TestLaplacers  )r  r   r   r>   rt  )r   r>   r   rn   c                    t           j                            d||          }t          j        |          }t          j        t          j        ||z
                      t          |          z  }t           j                            |          \  }}t          ||dd           t          ||dd           t           j                            ||          \  }}t          ||dd           t           j                            ||          \  }}t          ||           |dz  }t          j        t          j        ||z
                      t          |          z  }t           j                            ||          \  }}t          ||           t           j                            ||          \  }}t          ||           t          t          t           j        j        |||           t          t          t           j        j        t          j        g           t          t          t           j        j        t          j        g           d S )	Nro   r2  r   r  r?  r@  r>   r  )r6   r  r   rt   r  r6  r   r   r   r   r   r  r   r   r   r   )r   rs  rt  r   loc_mler\  r<   r=   s           r0   r=  zTestLaplace.test_fit>	  s   
 }  cwi HH )D//F26$.1122SYY>	 ]&&t,,
UW5u====yu5AAAA ]&&t'&::
Uyu5AAAA]&&tI&>>
UW%%% kF26$*--..T:	 ]&&t#&66
UY&&& ]&&tI&>>
UWc""" 	lEM$5t'&	( 	( 	( 	( 	j%-"3bfX>>>j%-"3bfX>>>>>r2   zrvs_scale,rvs_loc))rn   r  )r   rn   )r  rx   c                    t           j                            d||          }d }t           j                            |          \  }}t	          t          t           j                  t           j                                      |          \  }} ||||          }	 ||||          }
|	|
k     st          j        |	|
dd          sJ d S d S )Nr   r2  c           	          dt          |           t          j        d|z            z  d|z  t          j        t          j        || z
                      z  z
  z  S )Nr  r>   r   )r   rt   rU  r6  r   )r<   r=   r   s      r0   llz3TestLaplace.test_fit_MLE_comp_optimizer.<locals>.llr	  sS    CII%8E'26"&*<*<#=#==> ? ?r2   r   r  )r6   r  r   r   r   r   rt   r   )r   rs  rt  r   ry  r<   r=   loc_opt	scale_optll_mlell_optrf  s              r0   r  z'TestLaplace.test_fit_MLE_comp_optimizerk	  s     }  dy II	? 	? 	? ]&&t,,
U"4#6#6#(=2 225#d)) 	C%%GY--"+ff38u#F #F #F Fr2   c                    t          j        g d          }t          j                            |d          \  }}t          |ddd           t          j                            |d          \  }}t          |ddd           d S )N)r  r  r  r         @r  r  r?  re  r   r  r@  )rt   r   r6   r  r   r   )r   r   r<   r=   s       r0   test_fit_simple_non_random_dataz+TestLaplace.test_fit_simple_non_random_data	  s    x77788]&&t!&44
Uqu59999]&&tA&66
UQU777777r2   c                 F   d}t           j                            |           }|dk    sJ t           j                            |          }|dk    sJ t           j                            |          }|dk    sJ t           j                            |           }|dk    sJ d S )Nr   r}   r  )r6   r  rK   rg  )r   rG   p0p1s       r0   test_sf_cdf_extremesz TestLaplace.test_sf_cdf_extremes	  s    ]r"" Syyyy ]q!!Syyyy]a   Syyyy ]qb!!Syyyyyyr2   c                     d}t           j                            |          }t          |t	          j        |           dz  d           d S )Nr  r>   r   r   )r6   r  rg  r   rt   r   )r   rG   r?  s      r0   rj  zTestLaplace.test_sf	  sE    MQ261"::a<e444444r2   c                     d}t           j                            |          }t          |t	          j        d|z             d           d S )Ng}:r>   r   r   )r6   r  rl  r   rt   rU  )r   r?  rG   s      r0   rn  zTestLaplace.test_isf	  sE    Ma  BF1Q3KK<e444444r2   )r#  r$  r%  r   r  r  r=  r  r  r  rj  rn  rq  rr  s   @r0   rt  rt  =	  s        [Y66[[---88)? )? 98 76)?V [0 3= 3= 3= > >F F F F> >F$8 8 8  *5 5 5
5 5 5 5 5 5 5r2   rt  c                      e Zd Z ej        d          d             Zej                            dg d          ej                            dg d          ej                            dg d	          ej                            d
d  eddgd          D                       d                                                 Z	d Z
d Zd ZdS )TestPowerlawrU  rV  c                 @    t           j                            d          S r   rY  r   s    r0   r   zTestPowerlaw.rng	  rZ  r2   rr  )rl   rx   r+  r   r>   rs  r[  rt  r\  r  c                     g | ]}d |v |	S r  r8   r  s     r0   rS   zTestPowerlaw.<listcomp>	  r  r2   TFr   r  c                    t           j                            d||||          }|t           j                            |          fg}	t           j                            |	i           d         }
t                      }|r||d<   |r5t          j        |                                t          j	                   |d<   |r||d<   t          t           j        ||
fi | d S )Nr   )r   r.   r<   r=   r   r   r   r   r   )r6   powerlawr   r8  rA  r   rt   	nextafterr~  r   r   r  s               r0   r  z(TestPowerlaw.test_fit_MLE_comp_optimizer	  s     ~!!siW(1 " E E u~//5589~**444Q7vv 	#"DJ 	=<

RVG<<DL 	'&DN%endDIIDIIIIIr2   c           	         d}d}d}t           j                            |||dt          j                            d                    }d|                                dz  i}|t           j                            |          fg}t           j                            |i           d	         }t          t           j        ||fi | d S )
Ng`- @r}   grߟA@ro   r   )r.   r<   r=   r   r   r   r>   r   )
r6   r  r   rt   r   r   ptpr8  rA  r   )r   r.   r  r=   r   r   r   r   s           r0   test_problem_casezTestPowerlaw.test_problem_case	  s     #"~!!A85s/1y/D/DQ/G/G " I I $((**q.)u~//5589~**444Q7%endDIIDIIIIIr2   c                 z   t          t          j                   d}t          t          |          5  t          j                            g ddd           d d d            n# 1 swxY w Y   d}t          t          |          5  t          j                            g dd           d d d            n# 1 swxY w Y   d}t          t          |          5  t          j                            g dd	           d d d            n# 1 swxY w Y   d
}t          t          |          5  t          j                            g dd           d d d            n# 1 swxY w Y   d}t          t          |          5  t          j                            g dd           d d d            d S # 1 swxY w Y   d S )Nz7 Maximum likelihood estimation with 'powerlaw' requiresr   r   r>   re  r   r   r  r>   r?  r   z$Negative or zero `fscale` is outsider  r@  z0`fscale` must be greater than the range of data.)r   r6   r  r  r!   r   r   )r   r,   s     r0   r  zTestPowerlaw.test_fit_warnings	  s   EN+++H<s333 	< 	<Nyyyq;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< I<s333 	2 	2Nyyyq111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 I<s333 	2 	2Nyyyq111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 6:S111 	5 	5Nyyy444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 B:S111 	4 	4Nyyy333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4sY   %A##A'*A'$B66B:=B:$D		DD,$EE #E ?$F00F47F4c                     g d}t           j        }t          j        d          5  t	          |||j                   d d d            d S # 1 swxY w Y   d S )N)r   r   r>   r>   r   r   r   r   re  re  r   r  r  over)r6   r  rt   r  r   nnlf)r   r   rR   s      r0   test_minimum_data_zero_gh17801z+TestPowerlaw.test_minimum_data_zero_gh17801	  s     433~[h''' 	A 	A)$di@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   A

AAN)r#  r$  r%  r   rc  r   r  r  r%   r  r  r  r  r8   r2   r0   r  r  	  s<       V^*%%%+ + &%+ [[*=*=*=>>[Y


33[[***55[<- -$q)I)I)I - - -. .J J. . 65 43 ?>J"J J J 4 4 46A A A A Ar2   r  c                        e Zd Zd Zd Zd ZdS )TestInvGammac                    t          j                    5  t          j        dt                     t          j                            dd          }g d}t          ||           g d}t          j                            |d          }g dt          j        dd	gt          j	        d
dgt          j	        t          j	        dgf}t          ||          D ]\  }}t          ||           	 d d d            d S # 1 swxY w Y   d S )Nr<  g(\O3@r  rD  )g~?gCX&?g*7gS?gBqFq @)皙?@gffffff@)rl  gEy?gў3oz?g^Yb?g,r?gOD@g2*Z@gFN8@)r@  rA  rB  rC  r6   r   r   rt   r   r   r   r   )r   r  ri   r.   rG   r  s         r0   test_invgamma_inf_gh_1866z&TestInvGamma.test_invgamma_inf_gh_1866	  sU    $&& 	* 	*!'>:::>''%'@@D% % %HD(+++A>''!V'<<D888}=k:57H D(++ * *1#Aq))))*	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   CC66C:=C:c                     t          j        dd          }t          j                            |d          }t          j                            |d          }t          ||           d S )Ngr   r   )rt   r[  r6   r   rK   r]  r   r&  s       r0   ra  zTestInvGamma.test_cdf_ppf
  sW    Ka  Nq!$$^1%%2r2   c                     t           j        dk    rt          j        dd          }nt          j        dd          }t          j                            |d          }t          j                            |d          }t          ||d           d S )N        r>   ro      r   r  r   )	sysmaxsizert   r[  r6   r   rg  rl  r   r&  s       r0   r	  zTestInvGamma.test_sf_isf
  s~    ;As##AA Ar""ANa##^1%%2C((((((r2   N)r#  r$  r%  r  ra  r	  r8   r2   r0   r  r  	  sA        * * *&  ) ) ) ) )r2   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestFc                     t           j        ddgg}|D ]\  }}} |j        |j        g|R  }d |D             }d |D             }t	          ||           d S )N)r>   r   r  c                 <    g | ]\  }}} |j         |j        g|R  S r8   r@   r.   rQ   _f_argsr  s       r0   rS   z(TestF.test_endpoints.<locals>.<listcomp>)
  4    ===E1vrvbd#U###===r2   c                     g | ]\  }}}|	S r8   r8   rQ   r  r  	_correct_s       r0   rS   z(TestF.test_endpoints.<locals>.<listcomp>*
      >>>!5UI9>>>r2   )r6   fr@   r.   r   )r   r   r  r  _correctanscorrects          r0   rM  zTestF.test_endpoints#
  s    &#&'#' 	' 	'Bx"&&&&&CC=====>>>>>!#w/////r2   c                 ^   t           j                             ddd          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                      d S )Nr|        @r  r  )r6   r  r	   rt   r  ro  s        r0   test_f_momentszTestF.test_f_moments-
  s    W]]2sF];;
1aAAABKNN"#####r2   c                     t          j                    5  t          j        dt                     t          j                            dgdz  g dd           d d d            d S # 1 swxY w Y   d S )Nr<  r|  re  )r>   re  r  r  r  dfndfdr  )r@  rA  rB  rC  r6   r  r   s    r0   test_moments_warningszTestF.test_moments_warnings5
  s    $&& 	H 	H!'>:::GMMrd1f,,,MGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   AA$$A(+A(c                    t          j        dgdgg          }t          j        ddg          }t          j                            ||d          \  }}}}||dz
  z  gdz  }t	          ||           d|dz  z  ||z   dz
  z  |z  |dz
  dz  z  |dz
  z  }t	          ||           d|z  |z   dz
  t          j        d|dz
  z            z  |d	z
  t          j        |||z   dz
  z            z  z  }	t	          ||	           d|d
|z  dz
  z  ||z   dz
  z  |dz
  |dz
  dz  z  z   z  }
||d	z
  z  |dz
  z  ||z   dz
  z  }|
|z  }t	          ||           d S )Nr   r|  r  r  r  r>   re  r  r  r      )rt   r   r6   r  r   r  )r   r  r  r  r  rF   rD   rN  v2s2k2numk2denk2s                r0   test_stats_broadcastzTestF.test_stats_broadcast;
  s   hbT{##hBx  W]]sV]DD
1aS1Woq 2aZ39q=)C/37Q,>#'J2us{Q"'!S1W+"6"66a273c	A#677792cQsURZ(C#IM:Qw37Q,./ 0sQw37+sSy1}=U]2r2   N)r#  r$  r%  rM  r  r  r  r8   r2   r0   r  r  "
  sS        0 0 0$ $ $H H H    r2   r  c                  h    t          t          j                            ddg          ddg           d S )Nr   r  g?g?)r   r6   r  rE  r8   r2   r0   test_rvgeneric_stdr  M
  s/    egkk1a&11J
3KLLLLLr2   c                  b   t          t          j                            dd          t          j        t          j        t          j        t          j        f           t          t          j                            dd          dt          j        t          j        t          j        f           t          t          j                            dd          dt          j        t          j        t          j        f           t          t          j                            dd          ddt          j        t          j        f           t          t          j                            d	d
          t          j        t          j        f           t          t          j                            dd
          dt          j        f           t          t          j                            dd
          dt          j        f           t          t          j                            dd
          d           d S )Nr   r  )rp  r  )\(?r}   r>   gGz @g     i@r   rC  gGz@re  g
ףp=
@)r}   gq    @)r   r6   r  rt   r   r   r8   r2   r0   test_moments_tr  R
  s   !V44&"&"&"&13 3 3$77rvrvrv.0 0 0!V44rvrvrv.0 0 0$7779 9 9!T22RVRV4DEEE$55RV}EEE!T22S"&MBBB$557NOOOOOr2   c                  t    g d} g d}t          t          j                            |           |d           d S )N)r   r>   r  ro   )g?@gTM]?ggY?gU?r   r   )r   r6   r  rX   )rp  ri   s     r0   test_t_entropyr  b
  sE    	B7 7 7HEGOOB''>>>>>>r2   methname)r@   r   rK   r]  rg  rl  
df_infmask)r   r   r   )r   r   r   c                    t           j                            d           t          j        |t                    }t           j                            dd|j                  }t          j        j        |j         }t           j        ||<   t          j
        |dd          }t          j
        ||          dd          }t          j        dd          }t          ||           }t          ||           }t          ||           }	 ||          }
t          |
|          |	||                              t          |
|           |||                               d S )	Nr   r   rn   r   r   r   rp  r<   r=   r;   )rt   r   r   r  boolr  r  randnr   r6   r  rE  r   r   )r  r  rp  rG   t_dist
t_dist_ref	norm_distt_meth
t_meth_ref	norm_methr   s              r0   test_t_inf_dfr  j
  s6    INN1Jd333J			1bz'7		8	8B
	)*AVBzNW+++FB
{O!<<<J
q***IVX&&FX..J	8,,I
&))CZ))AjM":":;;;j[!::an#=#=>>>>>r2   c                    t           j                            d           t          j        | t                    } t           j                            dd| j                  }t           j        || <   t          j	                            |ddd          }t          j
                            ddd	          }t          j	                            ||           ddd          }t          d
          D ]G}t          ||         |          ||                    t          ||         |           ||                    Ht          j	                            |dd          }t          j
                            dd          }t          j	                            ||           dd          }t          ||          |           t          ||           |           d S )Nr   r  rn   r   r   r   r  )rp  r<   r=   r  r<   r=   r  re  r  r;   )rt   r   r   r  r  r  r  r   r6   r  rE  r  r   rX   )r  rp  r   
res_ex_infres_ex_noinfr  s         r0   test_t_inf_df_stats_entropyr  
  s   
 INN1Jd333J			1bz'7		8	8BVBzN
'--21Av-
>
>C!!aq&!AAJ7==B
{O!)/ ! 1 1L1XX ; ;SVJ'A777SVZK(,q/::::
'//RQa/
0
0C###33J7??b*o1A?FFLZ*---j[!<00000r2   c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )TestRvDiscretec                 D    t           j                            d           d S r   r   r   s    r0   r   zTestRvDiscrete.setup_method
  r   r2   c           	         g d}g d}d}t          j        d||f          }|                    |          }t          t	          |t
          j                             t          ||          D ]I\  }}t          t          t          ||k              t          |          z  |z
            dk                J|                                }t          j        t          |          t          j                  sJ d S )N)r  r   r   r>   r   re  )r}   333333?rj  r}   r  r}   r   sample)namevaluesr   r  )r6   rU   r   r	   r
  rA   r.  r   r   r6  r  rt   r   r   integer)r   statesprobabilitysamplesrrG   rF   r?  s           r0   r  zTestRvDiscrete.test_rvs
  s    $$$4448V[4IJJJEEwE
1em,,---,, 	@ 	@DAqCAFE'NN2Q677$>????EEGG}T!WWbj1111111r2   c                 f   t          j        g d          }t          j        g d|f          }t	          t          ||                     }|                                }t          ||           t          j        g dg df          }|                                }t          |d           d S )N)r5  r}  r  r  r  )r  r   r   r}   )	rt   r   r6   rU   r6  r   rX   r   r   )r   r  r?  r8  r9  s        r0   r:  zTestRvDiscrete.test_entropy
  s    ***++iii%7888%u--...
IIKK:&&&iii%=>>>IIKKQr2   c                     g d}g d}t          j        ||f          }ddgddgg}t          |                    |          dd	gd
dggd           d S )Nr  rx   r  r  r  r  r  r  r>   rx   r  r}   r  r,  r   )r6   rU   r   r  )r   xkpkr  rG   s        r0   r3  zTestRvDiscrete.test_pmf
  s    YY__r2h///"X!Wq		sc$*/	1 	1 	1 	1 	1 	1r2   c                     g d}g d}t          j        ||f          g d}g d}t                              |          |d           t          fd|D             |d           d S )	Nr  r  r  )r  r  r  r  r|   r  re  r   )r   rx   rx   rx   rb  rb  r   r   r,  r   c                 :    g | ]}                     |          S r8   )rK   )rQ   r`  r  s     r0   rS   z+TestRvDiscrete.test_cdf.<locals>.<listcomp>
  s#    777777r2   )r6   rU   r   rK   )r   r  r  x_valuesri   r  s        @r0   r"  zTestRvDiscrete.test_cdf
  s    YY__r2h///555555x(((???? 	7777h777 u	. 	. 	. 	. 	. 	.r2   c                     g d}g d}t          j        ||f          g d}g d}t                              |          |d           t          fd|D             |d           d S )	Nr  r  r  )rl   rx   333333?rb  r  r  )r   r   r>   r>   re  re  r,  r   c                 :    g | ]}                     |          S r8   )r]  )rQ   r_  r  s     r0   rS   z+TestRvDiscrete.test_ppf.<locals>.<listcomp>
  s#    555q555r2   )r6   rU   r   r]  )r   r  r  q_valuesri   r  s        @r0   r  zTestRvDiscrete.test_ppf
  s    YY__r2h///000%%%x(((???? 	5555H555 u	. 	. 	. 	. 	. 	.r2   c           	          g dg df}t          j        |          }t          |                    |                    |j        d d                   dz             |j        dd                     d S )N)r   r>   re  rs  r  )rl   r  r  r  rl   r  r  rQ  r   )r6   rU   r   r]  rK   r  )r   r  r  s      r0   test_cdf_ppf_nextz TestRvDiscrete.test_cdf_ppf_next
  s|    !:!:!:;d+++266"&&ss"4"4t";<<59	& 	& 	& 	& 	&r2   c                 B   t          j        d                              d          }t          j        g dg dg dg          }t	          j        ||f          }t          |                                t          j        |j	        |j
        z            d           d S )Nr  )r   re  )rl   rl   r  r  )rl   rl   r  r  r  r,  r   )rt   r   r  r   r6   rU   r   r   r6  r  r  r   r  r  r  s       r0   test_multidimensionz"TestRvDiscrete.test_multidimension
  s    Yr]]""6**X---------/ 0 0 r2h///		RVBEBEM%:%:GGGGGGr2   c                    g d}ddg}t          t          t          j        fi t	          ||f           g d}t          t          t          j        fi t	          ||f           g d}g d}t          t          t          j        fi t	          ||f           g d}g d}t          t          t          j        fi t	          ||f           d S )Nr   rx   r  )rx   333333?gffffff濩r   r>   r   re  r   )r  r  r  r  r  )r  r   r6   rU   r   r   r  r  s      r0   test_bad_inputzTestRvDiscrete.test_bad_input
  s    YY3Zj%"3MMtB87L7L7LMMMYYj%"3MMtB87L7L7LMMMYYj%"3MMtB87L7L7LMMM__'''j%"3MMtB87L7L7LMMMMMr2   c                    t          j        d                              d          t          j        dd          }}t	          t
          t          j        fi t          ||f           t          j        d                              d          t          j        dd          }}t	          t
          t          j        fi t          ||f           t          j        d                              d          t          j        dd          }}t          t          j        ||f          
                    d          d           d S )	Nre  r>   r>   )r>   r   gUUUUUU?r  r  r   r>   r   )rt   r   r  r  r  r   r6   rU   r   r   r  r  s      r0   test_shape_rv_samplez#TestRvDiscrete.test_shape_rv_sample
  s    1%%f--rwvs/C/CBj%"3MMtB87L7L7LMMM 1%%f--rwvs/C/CBj%"3MMtB87L7L7LMMM 1%%f--rwvs/C/CBU&r2h777;;A>>DDDDDr2   c                     g d}g d}t          j        ||f          }t          |                                t	          j        |j        |j        z            d           d S )N)r   r>   re  r  rs  r|  )rl   r  r  r  r  rl   r  r,  r   )r6   rU   r   r   rt   r6  r  r  r  s       r0   test_expect1zTestRvDiscrete.test_expect1  sd       +++r2h///		RVBEBEM%:%:GGGGGGr2   c           
         g d}g d}t          j        ||f          }t          |                                |                                d           t          |                                t          d t          ||          D                       d           t          |                    d           t          d t          ||          D                       d           d S )	N)/g      i@g     r@g      y@g     @@g     @g     @      @g      @r4  g     0@g     @g     P@g     @g     p@g      @g     @g      @g     @r5  g     h@g     0@g     @g     @g     @g     P@g     @g     @g     @r6  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   &   K   | ]\  }}||z  V  d S rr   r8   rQ   r  ws      r0   	<genexpr>z.TestRvDiscrete.test_expect2.<locals>.<genexpr>2  s*      99daAE999999r2   c                     | dz  S Nr>   r8   r   s    r0   r_   z-TestRvDiscrete.test_expect2.<locals>.<lambda>5  
    AqD r2   c              3   ,   K   | ]\  }}|d z  |z  V  dS )r>   Nr8   r  s      r0   r  z.TestRvDiscrete.test_expect2.<locals>.<genexpr>6  s.      <<AAqD1H<<<<<<r2   )r6   rU   r   r   rD  r6  r   )r   r  pyr  s       r0   test_expect2zTestRvDiscrete.test_expect2  s
   = = =? ? ?  q"g... 			RWWYYU;;;;		99c!Rjj99999	G 	G 	G 	G 			..11<<Q<<<<<5	J 	J 	J 	J 	J 	Jr2   N)r#  r$  r%  r   r  r:  r3  r"  r  r  r  r  r  r  r  r8   r2   r0   r  r  
  s          2 2 2
 
 
	1 	1 	1. . .. . .& & &H H HN N N E E EH H H#J #J #J #J #Jr2   r  c                       e Zd Zd Zd ZdS )TestSkewCauchyc                    t          j        ddd          }t          t          j                            |d          t          j                            |                     t          t          j                            |d          t          j                            |                     t          t          j                            |d          t          j                            |                     d S Nr  r   ro   r   rB  )	rt   r  r   r6   
skewcauchyr@   r  rK   r]  rm  s     r0   test_cauchyzTestSkewCauchy.test_cauchy:  s    KAs##!%"2"6"6qA"6">">"',"2"21"5"5	7 	7 	7!%"2"6"6qA"6">">"',"2"21"5"5	7 	7 	7!%"2"6"6qA"6">">"',"2"21"5"5	7 	7 	7 	7 	7r2   c                    t           j                            d           t           j                            d          dz  dz
  }t           j                            d          dz  dz
  }g d}g d}t	          t
          j                            ||          |           t	          t
          j                            ||          |           t	          t
          j        	                    ||          |           d S )Nr   rn   r>   r   r   )
g& 45?gQʶ?g-4<??gJ?gw@v?gJ%?g>[u?g
a2?g	Rn?gѦ}cي?)
gN@Q?gPPz@	?g?g;
7?glg?g!?%?gQҙ?gC"?go?g@Sg?)
rt   r   r   rb  r   r6   r  r@   rK   r]  )r   r.   rG   r@   rK   s        r0   test_skewcauchy_Rz TestSkewCauchy.test_skewcauchy_RC  s    & 		qINN2"Q&INN2#a'% % %$ $ $ 	(,,Q22C888(,,Q22C888(,,S!44a88888r2   N)r#  r$  r%  r  r  r8   r2   r0   r  r  9  s2        7 7 7 9  9  9  9  9r2   r  r>   r   g@r   gףp=
1@r  gRZ@i   gS㥛Ԋ@rl   rm   g&@iQ i'  i0ybi l   HO1Z i3r  irn   iro   ikr  i1r   i  i4i N  i(  lEI. @ i c                       e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            de          d             Zd	 Zd
S )TestSkewNormc                 .    t          d          | _        d S r   )r   r   r   s    r0   r   zTestSkewNorm.setup_method  s    %d++r2   c                     t          j        ddd          }t          t          j                            |d          t          j                            |                     d S r  )rt   r  r   r6   skewnormr@   rE  rm  s     r0   test_normalzTestSkewNorm.test_normal  sY    KAs##!%."4"4Q!"4"<"<"'*.."3"3	5 	5 	5 	5 	5r2   c                     d}t           j                            d|| j                  }t	          ||j                   t           j                            d|| j                  }t	          ||j                   d S )N)r   re  r   r+  )r.   r   r   r  )r6   r$  r   r   r   r  )r   r  rG   s      r0   r  zTestSkewNorm.test_rvs  sm    NEIIUAG$$$N%dhGGUAG$$$$$r2   c                    t           j                            dt          d          dd| j                  }t          j        |          t          j        |          t          j        |          t          j	        |          g}t           j                             dddd          }t          ||d           t           j                            d	t          d          dd| j                  }t          j        |          t          j        |          t          j        |          t          j	        |          g}t           j                             d	ddd          }t          ||d           d S )
Nre  r  r   r>   )r.   r   r<   r=   r   r  )r.   r<   r=   r  r  rZ  )r6   r$  r   r-  r   rt   rD  r  r  kurtosisr   )r   Xri   r  s       r0   r  zTestSkewNorm.test_moments  s,   NSq,0H  6 6GAJJq		5:a==%.:K:KL>''!!V'LL!(Ha@@@@N#c((,0H  6 6GAJJq		5:a==%.:K:KL>''"!1f'MM!(Ha@@@@@@r2   c                     t           j                            g dd          }t          |t	          j        d          d           t           j                            dd          }t          |dd           d S )	N)rn   r  r   r  r   r,  r   r  ri  r  )r6   r$  rK   r   rt   onesrL  s     r0   test_cdf_large_xzTestSkewNorm.test_cdf_large_x  sn     N|||R00271::E2222Nr3''3U++++++r2   c                    g dg dg dg dg dg}|D ]l\  }}}t           j                            ||          }t          ||d           t           j                            | |           }t          ||d           md S )N)r  r   gzbLe9)rZ  r>   gn'/2;)r  r   g::)r  r  g|<)r  rZ  Oul2;rQ  r   )r6   r$  rK   r   rg  )r   cdfvalsrG   r.   cdfvalr?  s         r0   test_cdf_sf_small_valuesz%TestSkewNorm.test_cdf_sf_small_values  s     .--+++,,,...///
 $ 	2 	2LAq&""1a((AAvD1111!!1"qb))AAvD11111	2 	2r2   z
a, momentsc                     t          |d          D ]7\  }}t          j                            ||          }t	          ||d           8d S )Nr   )startr,  r   )r7  r6   r$  r  r   )r   r.   r  orderri   moms         r0   test_noncentral_momentsz$TestSkewNorm.test_noncentral_moments  s[    (::: 	7 	7OE8.''q11CC66666	7 	7r2   c           	         t           j                            d          }d\  }}}t          j        |||          }|                    d|          }t          j                            |dd          \  }}}	t          j                            |dd          \  }
}}||cxk    rdk    sn J ||
k    sJ t          j                            |ddd	
          \  }}}|dk    sJ t          j        |||          }|                    d          }t          j        |          t          j        |          f}t          ||           t          j
                            dd|          }t          j                            |          }t          j        t          j        |                    sJ t          j                            |d	          \  }}}t          j        |          sJ t          j        |          t          j        |          }}t          |||t          j        dt           j        z            z  z              t          ||dz  ddt           j        z  z
  z             d S )Nl   #ke )r  rj  rx   ro   r  r  r   r?  gmmr   methodmsr  r   r:  r>   )rt   r   r   r6   r$  r   r   rD  r  r   rn  r  r  isinfr  r  rB   )r   r   r.   r<   r=   rR   r   a2loc2scale2a3loc3scale3a4loc4scale4dist4r   r  a5loc5scale5r  r  s                           r0   r=  zTestSkewNorm.test_fit  sB   i##$788$3~ae,,hhCch22 !>--c4a-@@D& >--c4a-@@D&t    q      Rxxxx !>--c1Qt-LLD&{{{{r400kk$k''gcllEJsOO+S!!! lqs== n  %%vbk#&&''''' !>--c$-??D&x||| ws||RVC[[14&271RU7+;+;";;<<<619AI677777r2   N)r#  r$  r%  r   r%  r  r  r,  r1  r   r  r  _skewnorm_noncentral_momentsr6  r=  r8   r2   r0   r!  r!    s        , , ,5 5 5% % %A A A, , ,2 2 2" [\+GHH7 7 IH7
&8 &8 &8 &8 &8r2   r!  c                   &    e Zd Zd Zd Zd Zd ZdS )	TestExponc                 `    t          t          j                            d          d           d S rJ  )r   r6   rR  r@   r   s    r0   	test_zerozTestExpon.test_zero  s&    U[__Q''+++++r2   c                     t          t          j                            d          d           t          t          j                            t          j                            d                    d           d S )NgC]r2<r  )r   r6   rR  rK   rl  rg  r   s    r0   	test_tailzTestExpon.test_tail  sR    U[__U++U333U[__U[^^B%7%788"=====r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S No_?46@yX5ͻ@j+?UX@)rt   r   r   r  r   r6   rR  r   rm  s     r0   test_nan_raises_errorzTestExpon.test_nan_raises_error  <    HfffffbfEFFj%+/155555r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S rS  )rt   r   r   r  r   r6   rR  r   rm  s     r0   test_inf_raises_errorzTestExpon.test_inf_raises_error  rZ  r2   N)r#  r$  r%  rO  rQ  rY  r\  r8   r2   r0   rM  rM    sP        , , ,> > >6 6 6
6 6 6 6 6r2   rM  c                        e Zd Zd Zd Zd ZdS )TestNormc                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S rS  )rt   r   r   r  r   r6   rE  r   rm  s     r0   rY  zTestNorm.test_nan_raises_error  <    HfffffbfEFFj%*.!44444r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S rS  )rt   r   r   r  r   r6   rE  r   rm  s     r0   r\  zTestNorm.test_inf_raises_error  r`  r2   c                 \    g d}t          t          t          j        j        |d           d S )Nr   shrimp)plate)r  r   r6   rE  r   rm  s     r0   test_bad_keyword_argzTestNorm.test_bad_keyword_arg  s,    IIi(CCCCCCr2   N)r#  r$  r%  rY  r\  re  r8   r2   r0   r^  r^    sF        5 5 5
5 5 5
D D D D Dr2   r^  c                       e Zd ZdZd Zd ZdS )TestUniformgh-10300c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S rS  )rt   r   r   r  r   r6   r  r   rm  s     r0   rY  z!TestUniform.test_nan_raises_error  =    HfffffbfEFFj%-"3Q77777r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |           d S rS  )rt   r   r   r  r   r6   r  r   rm  s     r0   r\  z!TestUniform.test_inf_raises_error#  rj  r2   N)r#  r$  r%  __doc__rY  r\  r8   r2   r0   rg  rg    s7        N8 8 8
8 8 8 8 8r2   rg  c            
       D   e Zd Zd Zd Zd Zd Zej        	                    dg d          d             Z
ej        	                    dg d	g d
g dg dg dg          d             Zej        	                    dg dg dg dg dg dg dg          d             ZdS )TestExponNormc                 l   d }d\  }}}d||z  z  }t           j                             |||d          }t          | ||||                     d\  }}}d||z  z  }t           j                             |||d          }t          | ||||                     d\  }}}d||z  z  }t           j                             |||d          }t          | ||||                     d\  }}}d||z  z  }t           j                             |||d          }t          | ||||                     d S )	Nc                     dd| |z  dz  z  z   }d| |z  dz  z  |dz  z  }dd| |z  dz  z   dz  z  }|d| z  z   ||z  d| | z  z  z   ||gS )Nr  r   r>   r   r        @r  r8   )lamsigr  opK2exp_skewexp_kurts         r0   get_momsz,TestExponNorm.test_moments.<locals>.get_moms,  sz     c#g\))DC#I>)D4L8Ha39q.0B77H3JC#s3w- 78LLr2   )r   r   r   r  r  r  )r  r>   rl   )r   r   r   )r  r|  rj  )r6   	exponnormr   )r   rw  r  rs  rr  Kstss          r0   r  zTestExponNorm.test_moments*  sp   	M 	M 	M C39o##A2S&#IIC#sB!7!7888!C39o##A2S&#IIC#sB!7!7888C39o##A2S&#IIC#sB!7!7888"C39o##A2S&#IIC#sB!7!788888r2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |dd           d S 	NrT  rU  rV  rW  rX  r   r   r  )rt   r   r   r  r   r6   rx  r   rm  s     r0   rY  z#TestExponNorm.test_nan_raises_errorE  D    HfffffbfEFFj%/"5qqKKKKKKr2   c                     t          j        dddddt           j        g          }t          t          t
          j        j        |dd           d S r|  )rt   r   r   r  r   r6   rx  r   rm  s     r0   r\  z#TestExponNorm.test_inf_raises_errorJ  r}  r2   c                 v   t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           d S )Ni|r   r}     rz   )r   r6   rx  r@   r   s    r0   test_extremes_xzTestExponNorm.test_extremes_xO  s    EO//a88#>>>EO//a88#>>>EO//d;;SAAAEO//d;;SAAAAAr2   zx, K, expected))r  rz   g6
N-)r   rz   g՜n+H?)r  rz   gi?)rY  rz   gbJI-)rn   r   gI8?)rn   r  gQ3|-0?c                 f    t          t          j                            ||          |d           d S )Ngdy=r   )r   r6   rx  r@   )r   rG   ry  ri   s       r0   test_std_pdfzTestExponNorm.test_std_pdfa  s1     	++Aq118%HHHHHHr2   zx, K, scale, expected)r   rz   r   gVAҤ?)r  {Gzt?r   g'^>)rF  rz   ro   r}   )rF  rz   r   gbr ;)r   r
  r   gVMe?c                     t           j                            |||          }|dk    r
|dk    sJ d S t          ||d           d S )NrD  r}   r   r   )r6   rx  rK   r   r   rG   ry  r=   ri   r?  s         r0   test_cdf_small_KzTestExponNorm.test_cdf_small_Kw  sU     O1E22s??888888Axe444444r2   )rn   rz   r   ghG}$;)r>   r  r   g]fJ?)r   r  rx   g31"g#;)rn   r  rx   gf
+-)r  r  rx   r}   )r  r
  r   ga9S?c                     t           j                            |||          }|dk    r
|dk    sJ d S t          ||d           d S )NrD  r}   g-a=r   )r6   rx  rg  r   r  s         r0   test_sf_small_KzTestExponNorm.test_sf_small_K  sU     Oq!511s??888888Axe444444r2   N)r#  r$  r%  r  rY  r\  r  r   r  r  r  r  r  r8   r2   r0   rn  rn  )  s       9 9 96L L L
L L L
B B B$ [-B B BC CI IC CI [4>>>DDD444GGG???	AB B5 5B B5& [4BBB@@@DDDFFF333@@@BC C5 5C C5 5 5r2   rn  c                        e Zd Zd Zd Zd ZdS )TestGenExponc                     ddl m} t          j                            t          j        ddd          ddd          }t           ||d          dd           d S )	Nr   )simpsrn   rz   rx   r|   )dxr   )scipy.integrater  r6   genexponr@   rA   r   r   )r   r  r?  s      r0   test_pdf_unity_areaz TestGenExpon.test_pdf_unity_area  sd    ))))))Nu|Ar488#sCHHEE!---q!44444r2   c                     t           j                            t          j        ddd          ddd          }t          t          j        d|k    |dk    z                       d S )Nr   rn   rz   rx   r|   r   )r6   r  rK   rA   r   r	   r  )r   rK   s     r0   test_cdf_boundszTestGenExpon.test_cdf_bounds  sV    n  aT!:!:CcJJ	18q12233333r2   c                 n    t           j                            dddd          }t          |dd           d S )Nr  r   r>   r  gM <r   r   )r6   r  rg  r   ri  s     r0   test_sf_tailzTestGenExpon.test_sf_tail  s;     Nb!Q,,1>>>>>>r2   N)r#  r$  r%  r  r  r  r8   r2   r0   r  r    sA        5 5 54 4 4
? ? ? ? ?r2   r  c                       e Zd Zd ZdS )TestExponpowc                     t          t          j                            dd          d           t          t          j                            t          j                            dd          d          d           d S )N绽|=r|   r+  r   rb  )r   r6   exponpowrK   rl  rg  r   s    r0   rQ  zTestExponpow.test_tail  si    EN..ub995AAAEN..u~/@/@B/G/GLL	 	 	 	 	r2   N)r#  r$  r%  rQ  r8   r2   r0   r  r    s#            r2   r  c                   Z    e Zd Zd Zej                            d          d             ZdS )TestSkellamc                     t          j        dd          }d\  }}t          j        g d          }t          t          j                            |||          |d           d S )Nr  r  rn   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~?r  )rA   r   r   r   r6   skellamr  )r   rD   mu1mu2skpmfRs        r0   r3  zTestSkellam.test_pmf  sm    Lb!!S- - -. . 	EM--ac::FBOOOOOOr2   ignore::RuntimeWarningc                     t          j        dd          }d\  }}t          j        g d          }t          t          j                            |||          |d           d S )Nr  r  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   r  )rA   r   r   r   r6   r  rK   )r   rD   r  r  skcdfRs        r0   r"  zTestSkellam.test_cdf  so     Lb!!S- - -. . 	EM--ac::FANNNNNNr2   N)r#  r$  r%  r3  r   r  r  r"  r8   r2   r0   r  r    sX        P P P* [ 899O O :9O O Or2   r  c                       e Zd Zd Zd ZdS )TestLognormc                     t          j                    5  t          j        dt                     t          j                            g dd          }t          |g d           d d d            d S # 1 swxY w Y   d S )Nr<  r   rx   r   r   )r}   g~r?g e3E?)r@  rA  rB  rC  r6   r   r@   r   r   r@   s     r0   r  zTestLognorm.test_pdf  s     $&& 	J 	J!'>:::-##KKK33C%c+H+H+HIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js   AA00A47A4c           	         d\  }}}t          t          j                            ||z
  |          t          j                            t          j        ||z
            |z                       t          t          j                            ||z
  |          t          j                            t          j        ||z
            |z                       d S )N)g(\5i@   gOn?r^   )r   r6   r   rg  rE  rt   rU  r%  )r   r7  r  sigmas       r0   r  zTestLognorm.test_logcdf  s    *B((B%(88
bfRUmmE&9::	< 	< 	<++BrEU+;;
((2u)<==	? 	? 	? 	? 	?r2   N)r#  r$  r%  r  r  r8   r2   r0   r  r    s5        J J J? ? ? ? ?r2   r  c                      e Zd Zd Zd Zd Zd Zej        	                    e
d          d             Zej        	                    e
d          d             Zej        	                    e
d          d	             Zd
 Zej                            ed          d             Zej                            dej        j        ej        j        g          ej                            dddg          d                         ZdS )TestBetac                     t           j                            ddd          }t          |d           t           j                            ddd          }t          |t          j                   d S )Nr   r   rx   g;B.)r6   r  r   r   rt   r   r   r   s     r0   r  zTestBeta.test_logpdf  s\    ""1a--FN333""1c1--FBF+++++r2   c                 `   d\  }}t          j        g d          }t          j        ||          }t	          |                    |                                          d           t	          |                    |          t          j        |                    |                               d S )Ni  i  r  rx   r  gƒ)	rt   r   r6   r  r   r   r6  r@   r   r   r   r  rG   r/   s        r0   test_logpdf_ticket_1866z TestBeta.test_logpdf_ticket_1866  s    tH___%%Jud##))+=>>>a"&!"5"566666r2   c                 `    g d}t          t          t          j        j        |ddd           d S )Nrl   rx   r  r   r   rc  )r   r   rd  )r  r   r6   r  r   rm  s     r0   test_fit_bad_keyword_argsz"TestBeta.test_fit_bad_keyword_args  s=    OOi1$	& 	& 	& 	& 	& 	&r2   c                 ^    g d}t          t          t          j        j        |dd           d S )Nr  rx   )fafix_a)r  r   r6   r  r   rm  s     r0   #test_fit_duplicated_fixed_parameterz,TestBeta.test_fit_duplicated_fixed_parameter  s0     OOj%*.!3GGGGGGr2   zOverflow, see gh-14901reasonc                 p    d\  }}}t          t          j                            |||          d           d S )N)g?g     R@g   0xAgx)>)r   r6   r  r]  )r   r?  r.   r/   s       r0   test_issue_12635zTestBeta.test_issue_12635  s8     71a
q!Q//1FGGGGGr2   c                 >   t          j        g d          }t          j        g d          }d}t          j                            ||dz   d|z
            }t          ||           t          j                            ||dz   d|z
            }t          ||           d S )N)g@3@?g^?gNC?)rn   ro   r   r  r   r  )rt   r   r6   r  rl  r   rg  )r   inv_R
count_listr?  invr   s         r0   test_issue_12794zTestBeta.test_issue_12794&  s      1 1 1 2 2 Xooo..
jnnQ
Q0CDDU###jmmCa*1DEEQr2   c                     d}t          j        dd          }d}d|z
  |dz   ||z
  }}}t          j                            |||          }t          j                            |||          }t          |d|z
             d S )Nh㈵>r   r  r  )rt   r   r6   r  r]  rK   r   )	r   alpha_2count_nobsr_  r.   r/   r  r   s	            r0   test_issue_12796zTestBeta.test_issue_127968  s     1b!!g+vz4&=a1jnnQ1%%jnnS!Q''Q[)))))r2   c                     d\  }}t          t          j                            d||          t          j                   d\  }}t          t          j                            d||          t          j                   d S )Nr   r   )r  r   r   )r   r6   r  r@   rt   r   )r   r.   r/   s      r0   rM  zTestBeta.test_endpointsD  sf     1UZ^^Aq!,,bf555 1UZ^^Aq!,,bf55555r2   zDoes not convert boost warningc                     d\  }}}t          j        t                    5  t          j                            |||           d d d            d S # 1 swxY w Y   d S )N)gףp=
?g   vH7Bg  @0B)r   warnsrC  r6   r  r]  )r   r_  r.   r/   s       r0   test_boost_eval_issue_14606z$TestBeta.test_boost_eval_issue_14606O  s    '1a\.)) 	$ 	$JNN1a###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   "AAAr:  a, b)+ph        )@)r  r  c                 H    d}	  ||||           d S # t           $ r Y d S w xY w)Nr  )OverflowError)r   r:  r.   r/   r?  s        r0    test_beta_ppf_with_subnormal_a_bz)TestBeta.test_beta_ppf_with_subnormal_a_bU  sG    
 
	F1aOOOOO 	 	 	 DD	s    
!!N)r#  r$  r%  r  r  r  r  r   r  skipifMACOS_INTELr  r  r  rM  xfailr   r  r  r6   r  r]  rl  r  r8   r2   r0   r  r     s       , , ,7 7 7& & &
H H H [,DEE	H 	H FE	H [,DEE    FE " [,DEE	* 	* FE	*	6 	6 	6 [w'GHH$ $ IH$
 [X

'GHH[Vnn%EFF  GF IH  r2   r  c                       e Zd Zd Zd ZdS )TestBetaPrimec                    d\  }}t          j        g d          }t          j        ||          }t	          t          j        |                    |                                                               t          |	                    |          t          j
        |                    |                               d S )Nr  r  )rt   r   r6   r   r	   r  r   r  r   r@   r   r  s        r0   r  zTestBetaPrime.test_logpdfo  s    tH___%%OE4((AHHQKK((,,..///a"&!"5"566666r2   c                    t           j                            ddd          }t          |d           d\  t	          j        g d          }t           j                            |          }t          t	          j        |                                                     t           j	        j
        fd|D             }t          ||dd	           d S )
Nr   r  r  r}   r  r  c                 @    g | ]} t           j        |          S r8   )r6   r   )rQ   r  r   r  gen_cdfs     r0   rS   z*TestBetaPrime.test_cdf.<locals>.<listcomp>  s+    JJJ''%/3t<<JJJr2   -=r  )r6   r   rK   r   rt   r   r	   r  r  rV   _cdf_singler   )r   rG   r  cdfs_gr   r  r  s       @@@r0   r"  zTestBetaPrime.test_cdfv  s     O3,,QtH___%%""1eT22D!!%%''((( %1JJJJJJJJJf15999999r2   N)r#  r$  r%  r  r"  r8   r2   r0   r  r  n  s2        7 7 7: : : : :r2   r  c                   &    e Zd Zd Zd Zd Zd ZdS )	TestGammac                     t           j                            ddd          }t          |d           t           j                            ddd          }t          |d           d S )	NZ   i  r  rD  g
CTb?r   rn   gBΖ?)r6   r  r@   r   r  s     r0   r  zTestGamma.test_pdf  sZ    koob#To22C---kooa4o00C+++++r2   c                 f    t           j                            dd          }t          |d           d S rJ  )r6   r  r   r   r  s     r0   r  zTestGamma.test_logpdf  s1     ##Aq))FA&&&&&r2   c                 ^    g d}t          t          t          j        j        |dd           d S )Nr  r   rc  )r   rd  )r  r   r6   r  r   rm  s     r0   r  z#TestGamma.test_fit_bad_keyword_args  s.    OOi!!8LLLLLLr2   c                     t          j        t          j                            dd          dd          sJ t          j        t          j                            dd          dd	          sJ d S )
Nr  r   gplC@r,  r   gJz5ro   g1}t@r   )rt   iscloser6   r  rl  r   s    r0   rn  zTestGamma.test_isf  s    " z%+//%33+%9 9 9 	9 	9 9z%+//%55+%9 9 9 	9 	9 9 	9 	9r2   N)r#  r$  r%  r  r  r  rn  r8   r2   r0   r  r    sS        , , ,' ' 'M M M9 9 9 9 9r2   r  c                       e Zd Zd Zd ZdS )TestChi2c                     t          t          j                            dd          dd           t          t          j                            dd          dd           d S )Nr   gޞw1D?   r  ro   g6:֜?r   r6   chi2r@   r   s    r0   r  zTestChi2.test_precision  sj    EJNN4668N$&	( 	( 	( 	(EJNN3446J$&	( 	( 	( 	( 	( 	(r2   c                    d}t           j                            d|          }t          |dd           t           j                            d|          }t          |dd           d}t           j                            d	|          }t          |d
d           t           j                            d|          }t          |dd           d S )Nr|  gλm:=6g'bd5 <r  r   rx   gQ8@   gܐ؆0guu[9=rl   g8-*@)r6   r  r]  r   )r   rp  rG   s      r0   r  zTestChi2.test_ppf  s    JNN5"%%<5IIIIJNN3##7eDDDDJNN5"%%:GGGGJNN3##8uEEEEEEr2   N)r#  r$  r%  r  r  r8   r2   r0   r  r    s7        ( ( (F F F F Fr2   r  c                   l    e Zd Zd Zd Zd Zej                            dddg          d             Z	dS )	TestGumbelLc                     t          j        dd          }t          j                            |          }t          j                            |          }t          ||           d S Nr  rZ  )rt   r  r6   re  rK   r]  r   r&  s       r0   ra  zTestGumbelL.test_cdf_ppf  sS    Kb!!Nq!!^""2r2   c                    t          j        dd          }t          j                            |          }t          j                            |          }t          j        |          }t          j        |           }t          ||           d S r  )
rt   r  r6   re  r~  r%  r   r   expm1r   )r   rG   r  rb  ur  s         r0   r'  zTestGumbelL.test_logcdf_logsf  sr    Kb!!N!!!$$N  ##F1II]11r2   c                     t          j        dd          }t          j                            |          }t          j                            |          }t          ||           d S )NrY  r   )rt   r  r6   re  rg  rl  r   r&  s       r0   r	  zTestGumbelL.test_sf_isf  sS    KQNa  ^""2r2   r<   r  r   c                     t           j                            d|          }t           j                            ||          \  }}t	          ||           d S )Nro   )r   r<   r?  )r6   re  r   r   r   )r   r<   r   
fitted_locr  s        r0   test_fit_fixed_paramz TestGumbelL.test_fit_fixed_param  sR     ~!!s!44**4c*::
AZ%%%%%r2   N)
r#  r$  r%  ra  r'  r	  r   r  r  r  r8   r2   r0   r  r    ss               [URG,,& & -,& & &r2   r  c                       e Zd Zd Zd ZdS )TestGumbelRc                 d    t          t          j                            d          dd           d S )Nr  g?~T}%m;r,  r   )r   r6   rd  rg  r   s    r0   rj  zTestGumbelR.test_sf  s=     	))"--/E"	$ 	$ 	$ 	$ 	$ 	$r2   c                 d    t          t          j                            d          dd           d S )Nr  r  r,  r   )r   r6   rd  rl  r   s    r0   rn  zTestGumbelR.test_isf  s=     	**5113D"	$ 	$ 	$ 	$ 	$ 	$r2   N)r#  r$  r%  rj  rn  r8   r2   r0   r   r     s2        $ $ $$ $ $ $ $r2   r   c                      e Zd Zej        d             Zej        d             Zej        d             Zej        	                    d ej
        d           ej
        dej        j                  g          ej        	                    dd	d
g          ej        	                    dg d          ej        	                    dddg          d                                                 Zej        j        ej        	                    dddg          d                         Zd Zej                            d          ej        	                    dddg          ej        	                    dd	d
g          d                                     Zd Zd Zd Zej        	                    d  ej
        g d!g d"g d#           ej
        g d$g d%g d&ej        j                   ej
        g d' ej        d(d)d*           ej        d+dd,          ej        j                  g          d-             Zej        	                    d  ej
        g d!g d"g d#           ej
        g d$g d%g d&ej        j                   ej
        g d' ej        d(d)d*           ej        d+dd,          ej        j                  g          d.             Zej        	                    d/d0dg          ej        	                    d1d2d3g          d4                         Zej        	                    d5d6d7gd8d7gg          d9             Zej        	                    d:d;d0ej        ej        ej        fgd<d=gg          d>             Zej        	                    d?g d@          ej        	                    dAej        j         dB ej        dCd0dD          dEfej        j!        dB ej        dCd0dD          dEfej        j         dF ej        d0dGdD          dBfej        j!        dF ej        d0dGdD          dEfg          dH                         Z"dIS )JTestLevyStablec                     t          j        t          t                    j        dz            }t           j        j                            |j        d          }|S )a  Sample data points for pdf computed with Nolan's stablec

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

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

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

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

        Typically inputs for stablec:

            stablec.exe <<
            1 # pdf
            1 # Nolan S equivalent to S0 in scipy
            .25,2,.25 # alpha
            -1,-1,0 # beta
            -10,10,1 # x
            1,0 # gamma, delta
            2 # output file
        z.data/levy_stable/stable-Z1-pdf-sample-data.npyx,p,alpha,beta,pctnames	rt   loadr   __file__parentcorerecords
fromarraysTr   r   s     r0   nolan_pdf_sample_dataz$TestLevyStable.nolan_pdf_sample_data  sO    6 wNN!<=
 
 w))$&8L)MMr2   c                     t          j        t          t                    j        dz            }t           j        j                            |j        d          }|S )a#  Sample data points for cdf computed with Nolan's stablec

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

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

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

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

        and the equivalent for the right tail

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

        Typically inputs for stablec:

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

        Data extracted in similar way to pdf/cdf above using
        Nolan's stablec but set to an arbitrary location scale of
        (2, 3) for various important parameters alpha, beta and for
        parameterisations S0 and S1.
        z1data/levy_stable/stable-loc-scale-sample-data.npy)rt   r
  r   r  r  r  s     r0   nolan_loc_scale_sample_dataz*TestLevyStable.nolan_loc_scale_sample_dataK  s1     wNN!?@
 
 r2   sample_sizer  r  )marksparameterizationS0S1z
alpha,beta))r  r   )r  r  )r  r   )r  rx   zgamma,deltar   r   r  c                     |t           j        _        t          j        ||||          }t          j        |                    |d          |j                  \  }}	|	dk    sJ d S )N)r   r  r=   r<   r   r  r  )r6   levy_stabler  r  r   rK   )
r   r  r   r  r  r  r  lsr  r?  s
             r0   r  zTestLevyStable.test_rvsZ  sp    & .>*d%U
 
 
 |FF$F77
 
1 4xxxxxxr2   r  rx   r   c                     t           j                            d           d}d}d}t          j                            ||||d          }t          j        |d||||f          \  }}|d	k    sJ d
S )z3Additional test cases for rvs for alpha equal to 1.h:r  rx   r  i  r<   r=   r   r  r  rz   N)rt   r   r   r6   r  r   r  )r   r  r   r<   r=   rG   statr?  s           r0   test_rvs_alpha1zTestLevyStable.test_rvs_alpha1v  s     		y!!!!!%3e'+ " - -,q-%*D#u$=? ? ?a4xxxxxxr2   c                    g d}t           j                            |          \  }}}}t          |ddd           t	          |dd           t	          |dd	           t	          |d
d           |g dz   }t           j                            |          \  }}}	}
t          |d           t          |d           t	          |
dd	           t	          |	dd	           d S )N)wgr&  r}   r}   r}   r}   羼 u?r'  r'  r'  r'  67',?r(  r(  r(  r(  tA}˜.?r)  r)  r)  r)  Gz?r   rz   r0  )\(̿r>   gۧ1?re  g9]c?)r)  r)  r)  r)  r)  r  gv?r(  )r6   r  r8  r   r   r   r   rG   alpha1beta1loc1scale1r7  alpha2beta2r?  r@  s              r0   r=  zTestLevyStable.test_fit  s   
 
 

 ',&7&A&A!&D&D#tV148888E4+++FGQ///'1	
 	
 	

 9999&+&7&A&A"&E&E#tVVQUBFFA...D&!,,,,,r2   zUnknown problem with fitstart.r  zalpha,beta,delta,gamma)r  rj  r>   r   )r  rj  r>   r   parametrizationc                     |t           j        _        t           j                            ||||dd          }t           j                            |          }|\  }}	}
}t          ||||g||	|
|gd           dS )z7Test that fit agrees with rvs for each parametrization.r  r   r<   r=   r   r   rz   r   N)r6   r  r3  r   r8  r   )r   r   r  r  r  r3  r   r   	alpha_obsbeta_obs	delta_obs	gamma_obss               r0   test_fit_rvszTestLevyStable.test_fit_rvs  s     -<) $$4U%e$ % 
 
 ))$//471	8Y	D%')Y7	
 	
 	
 	
 	
 	
r2   c                 x   t          j        g d          }t          j                            |          \  }}}}t          j                            |           \  }}}}	t          |d           |dk    sJ t          ||           t          ||            t          ||            t          |	|           d S )Nr   r   r   r   rn   rn   rn   r   r   ro   ro   r   r   )rt   r   r6   r  r8  r   r   )
r   rG   r-  r.  r/  r0  r1  r2  r?  r@  s
             r0   test_fit_beta_flipz!TestLevyStable.test_fit_beta_flip  s    H???@@&+&7&A&A!&D&D#tV&+&7&A&A1"&E&E#tVUAqyyyyFF+++EE6***D4%(((FF+++++r2   c                 V   d}t          j        g d          }t          j                            |           \  }}}}t          j                            | |z             \  }}}	}
t          ||           t          ||           t          |	||z              t          |
|           d S )Nr   r<  )rt   r   r6   r  r8  r   )r   SHIFTrG   r-  r.  r/  r0  r1  r2  r?  r@  s              r0   test_fit_delta_shiftz#TestLevyStable.test_fit_delta_shift  s    H???@@&+&7&A&A1"&E&E#tV&+&7&A&A1"u*&M&M#tVFF+++E5)))D$,///FF+++++r2   c                    g d}t           j                            |          \  }}}}|dk     sJ d|             |t          |          k     sJ dt          |           d|             g d}t           j                            |          \  }}}	}
|dk    sJ d|             |	t	          |          k    sJ dt	          |           d|	             d S )	N)r   r   r   r   rn   rn   rn   r   r      rB  r   zExpected alpha < 1, got zExpected loc < z, got )r   r   r   r   rn   rn   rn   r   r      rC  zExpected alpha > 1, got zExpected loc > )r6   r  r8  r~  r  r,  s              r0   test_fit_loc_extrapz"TestLevyStable.test_fit_loc_extrap  s    666&+&7&A&A!&D&D#tVzzz>f>>zzzc!ff}}}DADDdDD}}}777&+&7&A&A"&E&E#tVzzz>f>>zzzc"gg~~~FRFFFF~~~~~r2   z pct_range,alpha_range,beta_range)rz   rx   r  )rl   r   r>   )r  r   rb  )rz   r  rx   r
  r  )rl   rx   r   r  r>   )gr  r   r  r  r   )rz   r  rl   r5  ffffff?rx   ?r+  r  r
  r  rl   r>   r  r     c                 p   |}t          j                    }|j        dk    o
|j        dk    d                    |j        |j        |j        g          }ddfdgddfd	gddfd
gddfdgddfdgddfdgg}t          |          D ]\  }	\  }
}}|
t          j        _	        || ||                   n|}t                      5 }|                    t          d           t          j                            |d         |d         |d         dd          }t          j        d          5  t!          |g d|t          j        ||d         z
            t          j        ||d         z
            t          j        |d                   z  g          }ddd           n# 1 swxY w Y   ||d         |k    t          j        |          z           }t'          ||d         |d|	d |
d!|d"|j        j        d#|
d$%           ddd           n# 1 swxY w Y   dS )&z2Test pdf values against Nolan's stablec.exe outputLinuxi686/dnir  c           	      r   t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    | d         dk    z  | d         dk    | d         dk    z  | d         dk    z  z  | d         dk    t          j        | d         d	d
g          z  z  | d         dk    t          j        | d         ddg          z  z  | d         dk    t          j        | d         ddg          z  z  | d         dk    t          j        | d         ddg          z  t          j        t          j        | d                   g d          z  z  | d         dk    t          j        | d         dg          z  t          j        t          j        | d                   dg          z  z  | d         dk    t          j        | d         ddg          z  t          j        t          j        | d                   g d          z  z  | d         dk    | d         dk    z  | d         dk    z  z  | d         dk    | d         dk    z  | d         dk    z  z  | d         dk    | d         dk    z  | d         dk    z  z  | d         dk    t          j        | d         dg          z  t          j        t          j        | d                   g d          z  z  | d         dk    t          j        | d         ddg          z  t          j        t          j        | d                   g d          z  z  | d         dk    t          j        | d         d	d
g          z  t          j        t          j        | d                   ddg          z  z  | d         dk    z   z  S )Npctr   r  r   rx   r  皙?rj  rz   r  r  r  r
  r  rl   r5  r+  )rx   r  ffffff?rE  rF  )gٿ333333ӿr  rj  rx   rQ  r  rl   r  r  rj  )rb  r  r  r  r  )rt   isinr   r  alpha_range
beta_range	pct_ranges    r0   r_   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>   s   GAeHi00GAgJ445GAfIz223
 vY!^uX_. vY#-wZ3.0uX_. wZ3.GAeHsCj99: wZ3.GAeHsCj99:$ wZ3.GAeHr2h778%, wZ3.GAeHsCj99:GBF1V9$5$5|||DDE-6 wZ3.GAeHrd334GBF1V9$5$5t<<=7@ wZ3.GAeHsCj99:GBF1V9$5$57M7M7MNNOA#J wZ3.vY#-/uX-/K(T wZ3.vY$.0uX-/U-^ wZ3.vY#-/uX-/_2h wZ2-GAeHrd334GBF1V9$5$57G7G7GHHIi7r wZ2-GAeHsCj99:GBF1V9$5$5|||DDEs<| wZ2-GAeHsCj99:GBF1V9$5$5RyAAB}AF 7s*GC,EH r2   	piecewiser  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk    z  S )NrN  r   r  r  r  rt   rS  rT  s    r0   r_   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>N  sq    GAeHi00GAgJ445GAfIz223 wZ#%' wZ2%	' r2   c                     | d         dk     z  t          j        | d                   z  dv z  t          j        | d                   z  S )Nr   r  rN  r  rZ  )r  rU  rV  is_linux_32rW  s    r0   r_   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>Y  s_    wZ2%$_&GAeHi001 ;&( GAfIz22	3 r2   g&.=c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  S )NrN  r   r  r  rZ  rT  s    r0   r_   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>c  s^    GAeHi00GAgJ445GAfIz223 wZ3&( r2   fft-simpsonr6  c                     | d         dk    t          j        | d                   z  t          j        | d                   z  t          j        | d                   z  S )Nr   r  rN  r  rZ  rT  s    r0   r_   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>l  s^    wZ3&GAeHi001GAgJ445 GAfIz223 r2   r  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk     z  S )NrN  r   r  r   r  rZ  rT  s    r0   r_   z7TestLevyStable.test_pdf_nolan_samples.<locals>.<lambda>t  sp    GAeHi00GAgJ445GAfIz223 wZ!^% wZ#%	' r2   Nz2Density calculations experimental for FFT method.*rG   r   r  r   r   r=   r<   r  r  calcabserrrelerrr?  re  z	pdf test  failed with method 'z' [platform: z]

Ferr_msgverbose)platformunamesystemmachinejoin	processorr7  r6   r  pdf_default_methodr   recordrC  r@   rt   r  r   r   isnanr   r   r  )r   r  rW  rU  rV  r   rl  platform_desctestsixdefault_methodr   filter_funcsubdatasupr?  subdata2failuresr\  s     ```             @r0   test_pdf_nolan_samplesz%TestLevyStable.test_pdf_nolan_samples  s   2 %   lg-I%-62I\5=%/:< < t J J J J J JL^ U % % % % % % U % % % % % % % W ' ' ' ' ' ' t & & & & & & t & & & & & &kC
L "+5!1!1)	 )	 B 3AE0 + 7 ;;t,,  =A "$$ $

"H   %))CLG$FO *   [h/// 	 	0444F1ws|#344F1ws|#344rvgcl7K7KK   H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $H%-(1++  CLD RR8L8L8L " "	 	 	 	7$ $ $ $ $ $ $ $ $ $ $ $ $ $ $)	 )	s9   A'H)A(F8,H)8F<<H)?F< AH))H-	0H-	c                    |}ddfdgddfdgddfdgdd	fd
gddfdgddfdgg}t          |          D ]\  }\  }}	}
|t          j        _        |
| |
|                   n|}t	                      5 }|                    t          d           t          j                            |d         |d         |d         dd          }t          j	        d          5  t          |g d|t          j        ||d         z
            t          j        ||d         z
            t          j        |d                   z  g          }ddd           n# 1 swxY w Y   ||d         |	k    t          j        |          z           }t          ||d         |	d|d|d|j        j        d|d !           ddd           n# 1 swxY w Y   dS )"z4 Test cdf values against Nolan's stablec.exe output.rX  r  c                    t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    t          j        | d         g d          z  | d         dk    z  | d         dk    t          j        | d         g d          z  | d         dk    z  z   z  S 	NrN  r   r  r  )rQ  r  r  rz   rl   r  r  r  rZ  rT  s    r0   r_   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  s    GAeHi00GAgJ445GAfIz223
 wZ2-GAfI/A/A/ABBCuX-/
 wZ2-GAfI??@uX-/	 r2   r  c                    t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    t          j        | d         g d          z  | d         dk    z  z  | d         dk    t          j        | d         g d          z  | d         dk    z  z  S r  rZ  rT  s    r0   r_   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  s    GAeHi00GAgJ445GAfIz223 7r)&	+=+=+=>>?5T)+	 7r)&	???;;<5T)+ r2   r^  r6  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  S )NrN  r   r  333333?rZ  rT  s    r0   r_   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  s^    GAeHi00GAgJ445GAfIz223 wZ#%' r2   r  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk    z  S )NrN  r   r  r  r  rZ  rT  s    r0   r_   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  q    GAeHi00GAgJ445GAfIz223 wZ#%' wZ3&	( r2   r
  c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk    z  S )NrN  r   r  ?r  rZ  rT  s    r0   r_   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  r  r2   rz   c                     t          j        | d                   t          j        | d                   z  t          j        | d                   z  | d         dk    z  | d         dk    z  S )NrN  r   r  r  r  rZ  rT  s    r0   r_   z7TestLevyStable.test_cdf_nolan_samples.<locals>.<lambda>  r  r2   Nz[Cumulative density calculations experimental for FFT method. Use piecewise method instead.*rG   r   r  r   r   ra  r  r  rb  r?  re  z	cdf test rf  z'
rg  Frh  )r7  r6   r  cdf_default_methodr   rr  rC  rK   rt   r  r   r   rs  r   r   r  )r   r  rW  rU  rV  r   ru  rv  rw  r   rx  ry  rz  r?  r{  r|  s     ```           r0   test_cdf_nolan_samplesz%TestLevyStable.test_cdf_nolan_samples  sw   2 % U % % % % % %, T $ $ $ $ $ $& t & & & & & & t & & & & & & t & & & & & & t & & & & & &GL
\ "+5!1!1'	 '	 B 3AE0 + 7 ;;t,,  =A "$$ "

"@  
 %))CLG$FO *   [h/// 	 	0444F1ws|#344F1ws|#344rvgcl7K7KK   H	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 $H%-(1++  CLDRR)=)=)=xxI!   7" " " " " " " " " " " " " " "'	 '	s9   A'G2A(E&G&E**G-E*.AGG	G	r   r   r  r@   rK   c                    t          j                    }|j        dk    odt          j                    d         v }|r|dk    rt	          j        d           |}dt          j        _        dt          j        _	        ||d         |k             }d| t          j        _
        |d	v sJ |dk    rt          j        j        nt          j        j        } ||d
         |d         |d         dd          }	t          |	||         d           dS )zGTests for pdf and cdf where loc, scale are different from 0, 1
        rI  32bitr   r@   z4Test unstable on some platforms; see gh-17839, 17859rX  r   S)r@   rK   rG   r   r  r>   r   ra  r6  N)rk  rl  rm  architecturer   skipr6   r  r  rq  r  r@   rK   r   )
r   r  r   r  rl  r\  r   ry  rU  r  s
             r0   test_location_scalez"TestLevyStable.test_location_scale>  s      lg-W'X=R=T=TUV=W2W  	P45==KNOOO* 0;,/:,tG}-.-8[[*~%%%%%)U]]E!!8I8M 	 XCL''*GFO1!
 
 
 	GDM400000r2   zmethod,decimal_placesrL  re  rX  c           	         t          j        g d          }t          j        g d          }t          j        g d          }t          j        d          5  t                      5 }|                    t
          d           |t          j        _        t          j        	                    |d|dd	
          }t          ||||           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )z sample points extracted from Tables and Graphs of Stable
        Probability Density Functions - Donald R Holt - 1973 - p 187.
        )r   r   r   r   r   r   r   r   r>   r>   r>   r>   r   r   r   r   re  re  re  re  )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   r5  rx   r   r   r5  rx   r   r   r5  rx   r   r   r5  rx   r   r   r5  rx   r   r  r  zDensity calculation unstable.*)categorymessager   r   ra  N)rt   r   r  r   rc   rC  r6   r  rq  r@   r   )r   r:  decimal_placesxsdensitybetasrz  r@   s           r0   'test_pdf_alpha_equals_one_beta_non_zeroz6TestLevyStable.test_pdf_alpha_equals_one_beta_non_zero`  s    XHHH
 
 (  
 
   
 
 [X&&& 
	 
	(9(;(; 
	sJJ'8     4:E0#''AuA1'EECWnf  
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	s7   C/'A$CC/C	C/C	C//C36C3zparams,expected)r*  r+  r   r   )r>   r  rn   r  )rn   rm  r   r   c                     t           j                             |d         |d         |d         |d         d          }t          ||           d S )Nr   r   r>   r   r  r  )r6   r  r   )r   paramsri   observeds       r0   r  zTestLevyStable.test_stats  sU     $**1IvayfQivay + 
 
 	Hh/////r2   r   )r5  rx   r+  zfunction,beta,points,expectedr  irn   r}   rr  r  c                     d|cxk     rdk     sn J t           ||||          t          j        t          |          |                     dS )a\  Ensure the pdf/cdf routines do not return nan outside support.

        This distribution's support becomes truncated in a few special cases:
            support is [mu, infty) if alpha < 1 and beta = 1
            support is (-infty, mu] if alpha < 1 and beta = -1
        Otherwise, the support is all reals. Here, mu is zero by default.
        r   r   )r   r  N)r   rt   r  r   )r   r   rU  r  r>  ri   s         r0   !test_distribution_outside_supportz0TestLevyStable.test_distribution_outside_support  se    P 5}}}}1}}}}}}HV5t444GCKK**	
 	
 	
 	
 	
r2   N)#r#  r$  r%  r   rc  r  r  r  r  r  r   r  r  r$  r=  r  r:  r=  r@  rD  rt   r  xslowr}  r  r  r  r   NaNr  r6   r  rK   r@   r  r8   r2   r0   r  r    s       ^  ^B ^) ) ^)V ^  ^ [FLlfl4v{7GHHH
 
 [/$>>[CCC  []VV,<==  >=  ?> $ [[Vc1X..
 
 /. 
- - -0 [>??[ 	
  [D$< 
 
   @?

, 
, 
,	, 	, 	,
G 
G 
G [*FL

 
 FL(((###(((k&	   FLDDDCB''B2&&k'	  -
 * + *B [*FL

 
 FL(((###(((k&	   FLDDDCB''B2&&k'	  -
 *y y+ *yv [Wq!f--[VeU^441 1 54 .-1@ [AJ!	
   @ [!RVRVRV!<=/	
 0 0 0 [W&7&7&788[' !%CB''	 !%CB''	 !%Ar2&&	 !%Ar2&&	'	
 :
 
;  98<
 
 
r2   r  c                       e Zd Zd Zd ZdS )TestArrayArgumentc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestArrayArgument.setup_method  r   r2   c                     t           j                            t          j        d          t          j        d          d          }t          |j        d           d S )Nr   r  r"  )r6   rE  r   rt   r   r+  r   r  r   r   s     r0   test_noexceptionz"TestArrayArgument.test_noexception  sK    jnn")A,,rwqzz")  + +SY(((((r2   N)r#  r$  r%  r   r  r8   r2   r0   r  r    s2          ) ) ) ) )r2   r  c                       e Zd Zd Zd ZdS )TestDocstringc                    t           j        j        2t          dt           j        j                                        v            t           j        j        4t          dt           j        j                                        v            d S d S )Nr   rR  )r6   r   rl  r	   lowerrR  r   s    r0   test_docstringszTestDocstring.test_docstrings  sn    >!-J%."8">">"@"@@AAA?".K5?#:#@#@#B#BBCCCCC /.r2   c                 R    t          j                     t          j                     d S rr   )r6   rV   rU   r   s    r0   test_no_name_argzTestDocstring.test_no_name_arg  s&    r2   N)r#  r$  r%  r  r  r8   r2   r0   r  r    s5        D D D    r2   r  c                     t          g d          } t          | dk    | d          \  }}t          |g d           t          |g d           t          ddk    | d          \  }}t          || d                    t          |dg           t          | dk    | d          \  }}t          ||            t          |dgt          j        |           z             d S )N)r   r   r>   r   r>   r   r   r   r>   )r   r>   r>   r   r   )r>   r>   r>   r>   r>   r   )r   r   r   rA   r   r.   r/   r^  s      r0   TestArgsreducer    s    ###$$Aa!eQ""DAqq///***q///***a!eQ""DAqq!A$q1#a!eQ""DAqq!q1#
1-.....r2   c                   R   e Zd Zg dZd Zg dZej                            de	          d             Z
d Zd Zd Zd	 Zd
 Zd Zd Zej        j        ej                            dddg          d                         Zej                            dddg          d             ZdS )TestFitMethod)ncfr  r  c                 D    t           j                            d           d S r   r   r   s    r0   r   zTestFitMethod.setup_method  r   r2   )rR  rE  r  z	dist,argsc                 t   || j         v rt          j        d|z             t          j        dddddt          j        g          }t          j        dddddt          j        g          }t          t          |          }t          t          |j        |d           t          t          |j        |d           d	S )
rh  z"%s fit known to fail or deprecatedrT  rU  rV  rW  rX  r   r@  N)fitSkipNonFiniter   r  rt   r   r   r   r   r6   r  r   r   )r   rR   r   rG   r  distfuncs         r0   !test_fit_w_non_finite_data_valuesz/TestFitMethod.test_fit_w_non_finite_data_values  s     4(((K<tCDDDHfffffbfEFFHfffffbfEFF5$''j(,!<<<<j(,!<<<<<<r2   c           
         t           j                            d           t          j        d          5  t          j                            dddd          }t          j        t          j        |          t          j        d          z
  d	z  	                                          }t          t          j        t          j                            |d
d                    |d
dgd           d d d            d S # 1 swxY w Y   d S )Ni90  r  r  r5  r}         4@r  r   r>   r   r  rQ  r   )rt   r   r   r  r6   r   r   r  rU  rD  r   r   r   )r   rG   expected_shapes      r0   test_fix_fit_2args_lognormz(TestFitMethod.test_fix_fit_2args_lognorm   s>   
	u[X&&& 	@ 	@!!$Dr!::AWrvayy26"::'=&A%G%G%I%IJJNBHU]%6%6qq%6%L%LMM+Q3$@ @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   B;C==DDc                    t          j        dd          }t          j                            |          \  }}t          |d           t          |t          j        d                     t          j                            |d          \  }}t          |d           t          |t          j        d                     t          j                            |d          \  }}t          |d           t          |d           d S )Nr   r  r   r>   r?  r@  )rt   r   r6   rE  r   r   r  r   r   rG   r<   r=   s       r0   test_fix_fit_normzTestFitMethod.test_fix_fit_norm	  s    IaOOZ^^A&&
UC###E271::...Z^^AA^..
US!UBGAJJ'''Z^^Aa^00
UC###UAr2   c                    t          j        dd          }t          j        |                                          }d}t          j                            ||          \  }}}t          j        |                                          |z
  }t          t          j        |          t          j	        |          z
  |d           t          ||           t          ||                                |z  d           d}d}t          j                            |||          \  }}}t          ||           t          ||           t          ||                                |z  d           d	}d}t          j                            |||          \  }}}t          ||           t          ||           t          ||                                |z  d           d}d	}	t          j                            |||	
          \  }}}t          ||           t          ||	           |t          j        |	          z
  }
t          t          j	        |          |
           d S )Nr   r  r   r?  r   r  r  r   r   r>   r  )rt   r   rU  rD  r6   r  r   r   r   digammar   )r   rG   meanlogr   r.   r<   r=   rF   r   r   r^  s              r0   test_fix_fit_gammaz TestFitMethod.test_fix_fit_gamma  s   IaOO&)).."" 553F16688w&BF1II(:(::AqIIIIS$E16688A:q9999
 bt<<3QS$E16688A:q9999bt<<3QS$E16688A:q9999 VDD3S$UF###bfVnn$GOA..22222r2   c           	         d }t          j        g d          }t          j                            |dd          \  }}}}t          |d           t          |d           t           ||||          ddgd           t          j        g d          }t          j                            |ddd	          \  }}}}t          |d           t          |d           t          |d            ||||          \  }}t          |dd
           d|z
  }	t          j                            |	ddd          \  }
}}}t          |d           t          |d           t          |d            ||
||	          \  }}t          |dd
           t          |
|           t          t          t          j        j        |dd           t          j        g d          }t          t          t          j        j        |dd           t          t          t          j        j        |ddd           t          t          t          j        j        |ddd           t          t          t          j        j        |dddd           d S )Nc                 h   t          |          }t          j        |                                          }t          j        d|z
                                            }t	          j        | |z             }||| t	          j        |           z   z  z
  ||| t	          j        |          z   z  z
  g}|S r   )r   rt   rU  r6  r   psi)r.   r/   rG   r>  s1r  psiabr   s           r0   mlefuncz0TestFitMethod.test_fix_fit_beta.<locals>.mlefuncA  s     AAB!""BKA&&Eufw{1~~566ufw{1~~5668DKr2   )r  r5  rx   r   r   r  r  r   r>   )r   r   r   r6  )r   r   r   rx   r  )r   r   r   )r   r   r   r   )r   r   r   r   )
rt   r   r6   r  r   r   r   r   r  r   )r   r  rG   r.   r/   r<   r=   dadbr7  r>  b2r?  r@  r  s                  r0   test_fix_fit_betazTestFitMethod.test_fix_fit_beta>  s   		 		 		 H'''(( :>>!!A>>>1c5S!UA1a((1a&t<<<< H'''(( :>>!!>DD1c5QS!UAAq!!BAD)))) U$z~~bQQq~IIBfRT1VQR$$BAD))))B""" 	j%*.!#aHHHHHZZZ  j%*.!!AFFFFj%*.!!A!LLLLj%*.!!A!LLLL 	j%*.!aQ	( 	( 	( 	( 	( 	(r2   c                    t          j        g d          }t          j                            |          \  }}t          |d           t          |d           t          j                            |d          \  }}t          |d           t          |d           t          j                            |d          \  }}t          |d           t          |d           d S )N)r>   r>   re  re  re  re  re  r  r>   r   r@  r   r?  re  )rt   r   r6   rR  r   r   r  s       r0   test_expon_fitzTestFitMethod.test_expon_fitu  s    H---..[__Q''
US!UA[__Qq_11
US!UA[__QQ_//
US!UAr2   c           	         t          j        g d          }t          j        |dz
            }t          j                            |d          \  }}}t          ||                                d           t          |d           t          |t          j	        |
                                          d           t          j                            |dd          \  }}}t          |t          j        |t          j        d          z
  dz  
                                          d           t          |d           t          |d           t          j                            |dd	
          \  }}}t          |d	           t          |d           t          |t          j	        |
                                          d           d S )N)r  r   rn   r     ;   r   r?  rq  r   r  r  r>   r+  )r   fix_s)rt   r   rU  r6   r   r   r   rE  r   r   rD  r  )r   rG   lnxm1r  r<   r=   s         r0   test_lognorm_fitzTestFitMethod.test_lognorm_fit  s   H---..q1u!M--aa-88sEuyy{{7777S!rvejjll33%@@@@!M--aa-BBsErw):Q(>'D'D'F'FGG"	$ 	$ 	$ 	$S!UA!M--aat-DDsEUD!!!S!rvejjll33%@@@@@@r2   c                    t          j        g d          }t          j                            |          \  }}t          ||                                           t          ||                                           t          j                            |d          \  }}t          |d           t          ||                                           t          j                            |d          \  }}t          |d           t          |d           t          t          t          j        j        |d           t          t          t          j        j        |d           d S )N)r  r  r        "@r   r?  rn   r@  r|   r  )rt   r   r6   r  r   r   r~  r  r  r  r   r  s       r0   test_uniform_fitzTestFitMethod.test_uniform_fit  s#   H)))**]&&q))
US!%%''"""UAEEGG$$$]&&qq&11
US!UAEEGG$$$]&&q&44
US!UBj%-"3QSAAAAj%-"3QsCCCCCCr2   r:  MLEMMc           
      `   d\  }}t           j                            ||dd          }t           j                            |d|          }t           j                            |d|          }t	          ||dd	           t           j                            |d|
          }t	          ||dd	           t           j                            |d|          }t           j                            |d|          }t	          ||dd	           t           j                            |d|          }t	          ||dd	           t          t          t           j        j        |dd|           t          t          t           j        j        |dddd|           t           j                            |ddd|          }	|	\  }
}}}t          |
||gg d           d}t           j                            |d          }t           j                            |||          \  }
}}t          |
|           d S )N)r  r  ro   r   r  r  )r   r:  )r  r:  rq  r  )r  r:  r  )r   r:  )ry  r:  )rx  r:  r   r>   )r  r   r:  r   r   )r  r   r   r   r:  )r  r   r   r:  )r  r   r   r   )	r6   r  r   r   r   r  r   r   r  )r   r:  r.   r/   rG   res_1res_2res_3res_4res_5aabbry  ssr   s                  r0   test_fshapeszTestFitMethod.test_fshapes  s   
 1JNN1acN==
qR77
qR77u5u====
q6::u5u====
qR77
qR77u5u====
q6::u5u==== 	j%*.!aOOOO 	j%*.!aQv	7 	7 	7 	7
 
qRa&IIBBb"b\:::... {qs++[__Ta_??
BRr2   c                     t           j        }|                    dd          }t          d          }t	          t
          |j        |fi |d|i d S )Nr>   ro   )ry  r   i)enikibenikir:  )r6   rx  r   r   r  r   r   )r   r:  rR   r   r   s        r0   test_extra_paramszTestFitMethod.test_extra_params  s]     xx!#x&&t$$$i4FF3FFvFFFFFFr2   N)r#  r$  r%  r  r   r  r   r  r  r   r  r  r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r    sV       $$$D   433[[(33= = 43=@ @ @  $3 $3 $3L5( 5( 5(n  A A A(D D D$ [[Xt}55$ $ 65 $L [Xt}55G G 65G G Gr2   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )
TestFrozenc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestFrozen.setup_method  r   r2   c                    t           j        }t          j        dd          }|                    d          }|                    ddd          }t          ||           |                    d          }|                    ddd          }t          ||           |                    d          }|                    ddd          }t          ||           |                    d          }|                    ddd          }t          ||           |                    d          }|                    ddd          }t          ||           |                                }|                    dd          }t          ||           |	                                }|	                    dd          }t          ||           |
                                }|
                    dd          }t          ||           |                                }|                    dd          }t          ||           |                                }|                    dd          }t          ||           |                    d          }|                    ddd          }t          ||           t          |j        |j                   t          |j        |j                   d S )Nrl  r  r;   r  r5  r>   )r6   rE  r@   r   rK   r]  rl  rg  r  rD  r  rE  rX   r  r.   r/   )r   rR   frozenresult_fr  s        r0   rF  zTestFrozen.test_norm  s   zC000::d##$D44Xv&&&::d##$D44Xv&&&::d##$D44Xv&&&::d##$D44Xv&&&99T??4s33Xv&&&==??S11Xv&&&;;==t3//Xv&&&::<<d#..Xv&&&::<<d#..Xv&&&>>##$c22Xv&&&==##QD44Xv&&&VXtv&&&VXtv&&&&&r2   c                    d}t           j        }t          j        |          }|                    d          }|                    d|          }t          ||           |                    d          }|                    d|          }t          ||           |                    d          }|                    d|          }t          ||           |                    d          }|                    d|          }t          ||           |                    d          }|                    d|          }t          ||           |                                }|                    |          }t          ||           |	                                }|	                    |          }t          ||           |
                                }|
                    |          }t          ||           |                                }|                    |          }t          ||           |                                }|                    |          }t          ||           |                    d          }|                    d|          }t          ||           t          |j        |j        j                   t          |j        |j        j                   d S )Nr|   r  r5  rl  r>   )r6   r  r@   r   rK   r]  rl  rg  r  rD  r  rE  rX   r  r.   rR   r/   )r   r.   rR   r  r  r  s         r0   
test_gammazTestFrozen.test_gamma  sa   {Q::d##$""Xv&&&::d##$""Xv&&&::d##$""Xv&&&::d##$""Xv&&&99T??q!!Xv&&&==??QXv&&&;;==1Xv&&&::<<!Xv&&&::<<!Xv&&&>>##aXv&&&==##Q""Xv&&&VXv{}---VXv{}-----r2   c                     t          j        d          }|                    d          }|                     d           |                    d          }t          ||           d S )Nr   r>   r  r  )r6   r   r  r   )r   r  m1rN  s       r0   test_regression_ticket_1293z&TestFrozen.test_regression_ticket_1293K  sa    q!!]]1V$$$ ]]1 	Rr2   c                 l   d}t          j        |          }|j                            |          \  }}t	          ||gddg           d}t           j                            d|           t	          |j                            |          dt          j        g           d}t          j        |          }|j                            |          \  }}t	          ||gddg           d}t           j                            d|           t	          |j        j        |j        j	        ft           j                            |                     t          j        d          }t          |j        |j        u           dD ]}t          j        |          }t          j        |          }|j        |j	        }}t	          |d           t          t          j        |                     t          j        d          }t           j                            |          \  }}t          ||gdd	g           d S )
Nr  r  r}   rl  rl   r   r  r  rx   )r6   r  rR   r  r   r@   rt   r   r.   r/   r	   r  r  r   )r   r^  r  r.   r/   rv1s         r0   r  zTestFrozen.test_abZ  s    _q!!!w##A&&1aVb#Y'''A###RW))!,,q"&k:::_q!!!w##A&&1aVb#Y'''Aq!!!bgi+U_-I-I!-L-LMMMo$$$'(((  
	/ 
	/A
1A1%%%B4qABBKNN### 
3A?//22DAqQFRI....
	/ 
	/r2   c                 T    t          t          t          j        d                     d S )N	rv_frozen)r	   r-   r6   r7   r   s    r0   test_rv_frozen_in_namespacez&TestFrozen.test_rv_frozen_in_namespace  s#    +[99:::::r2   c                    t          j                    }t          t          |d                     d|_        t          |j                                        t          j        	                    d                                                     t          j        	                    d          }|
                    d|           d S )Nr   *   r   r  r  )r6   rE  r	   r-   r   r   	get_statert   r   RandomStater   )r   r  rndms      r0   test_random_statezTestFrozen.test_random_state  s    //000 !V(2244Y**2..88::	< 	< 	< y$$T**


-----r2   c                    t          j        dd          }t          j        d          }t          j        g dg df          }|||fD ]}d|_        |                    d	           t          j        |          }|                    d	          }t          j        |          }|                    d	          }t          ||           |
                    d
          |
                    d
          g}	t          |	d         |	d                    t          |                    |	d                   |                    |	d                              d S )Ngdsz@g@e?r  )r   r   r>   r   rR  r  r   r  r   rx   r   r   )r6   r  r  rU   r   r   pickledumpsloadsr   r]  rK   )
r   r  poissr  distfnrF   r0	unpickledr1medianss
             r0   test_picklingzTestFrozen.test_pickling  s[    z,.ABBb!!"<<<+?+?+?+A B B B UF+ 	4 	4F"&FJJAJV$$A##BQIA&&BR    zz#	c(:(:;GWQZ000GAJ//"wqz224 4 4 4	4 	4r2   c           
         d }t          j        ddd          }t          j        dd          5  |                    |ddd	
          }t           j                            |dddddd	          }d d d            n# 1 swxY w Y   t          ||           t          j        dd          }|                    |          }t           j                            |dd          }t          ||           d S )Nc                     | S rr   r8   r   s    r0   r   z$TestFrozen.test_expect.<locals>.func  s    Hr2   r>   r   re  )r.   r<   r=   r  )r  divider   T)r   ubconditionalr>   r   r<   r=   r   r  r  r<   )r   r   r<   )r6   r  rt   r  r   r   r  )r   r   gmgm_val	gamma_valr?  p_valpoisson_vals           r0   test_expectzTestFrozen.test_expect  sQ   	 	 	 [1!1---[(;;; 	I 	IYYtaTYBBF**4d./A4 + I II	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 		***M!###m**4d*BB{+++++s   A A==BBN)r#  r$  r%  r   rF  r  r  r  r  r  r
  r  r8   r2   r0   r  r    s          1' 1' 1'f2. 2. 2.h  */ */ */X; ; ;. . .4 4 40, , , , ,r2   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            d          d	             Zd
 Zd Zd Zd Zd Zd ZdS )
TestExpectc                 @   t           j                            d dd          }t          |dd           t           j                            d dd          }t          |dd           t           j                            d	dd          }t           j                            d
dd          }t           j                            d dd||          }t          |dd           t           j                            d dd||d          }t          |dd           d S )Nc                     | dz
  | dz
  z  S )Nr   r8   r   s    r0   r_   z&TestExpect.test_norm.<locals>.<lambda>  s    1qs r2   r   r>   r;   re  r  r  c                     | S rr   r8   r   s    r0   r_   z&TestExpect.test_norm.<locals>.<lambda>  s     r2   r  r
  c                     dS r   r8   r   s    r0   r_   z&TestExpect.test_norm.<locals>.<lambda>      Q r2   r<   r=   r   r  r  c                     dS r   r8   r   s    r0   r_   z&TestExpect.test_norm.<locals>.<lambda>      a r2   Tr<   r=   r   r  r  r  )r6   rE  r   r   r]  )r   r  r  r   r  prob90prob90cs          r0   rF  zTestExpect.test_norm  s   J33!DDAq"----Jmm!<<Aq"----Z^^Daq^11Z^^Daq^11"";;AQ2""MMFC4444*##KKQaB204 $ 6 6GR444444r2   c           	      R   t           j                            d ddd          }t          |dd           t           j                            d	 dd
d          }t          |dd           t           j                            ddddd          }t           j                            ddddd          }t           j                            d dd
d||d          }t          |dd           t           j                            d ddd||d          }t          |dd           d S )Nc                     | dz
  | dz
  z  S )NUUUUUU@r8   r   s    r0   r_   z&TestExpect.test_beta.<locals>.<lambda>  s    51U7(; r2   r  r   r>   )r   r<   r=   qq?r  r  c                     | S rr   r8   r   s    r0   r_   z&TestExpect.test_beta.<locals>.<lambda>  s     r2   r  r|   r)  r
  rn   r;   r  c                     dS )Nr  r8   r   s    r0   r_   z&TestExpect.test_beta.<locals>.<lambda>  s    R r2   )rn   rn   Fr  r  c                     dS r   r8   r   s    r0   r_   z&TestExpect.test_beta.<locals>.<lambda>  r#  r2   Tr  )r6   r  r   r   r]  )r   r  r  r  r   r%  r&  s          r0   	test_betazTestExpect.test_beta  s=   J;;'"#1  . .Avr2222JkkRrJJAub1111Z^^D"baq^99Z^^D"baq^99""<<hB)+ru # N NFC4444*##KKhA*+rt $ M MGR444444r2   c                 T   t           j                             dddd          \  }}t           j                            d dd          }t          ||d	
           t           j                            d dd          }t          ||d
           t           j                            d dddd	          }t          ||d
           dt           j                            dd	gdddd                                          z
  }t           j                            d dddd          }t          ||d	
           t           j                            d ddddd          }t          |dd
           t           j                            d ddd          }	t          |	dd	
           d S )Nr  rn   r  r  r  c                     | S rr   r8   r   s    r0   r_   z+TestExpect.test_hypergeom.<locals>.<lambda>  r   r2   )r  rn   r  r  r  r  c                     | dz
  dz  S Nr  r>   r8   r   s    r0   r_   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    adQY r2   r  c                     | dz
  dz  S r2  r8   r   s    r0   r_   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    QrTAI r2   r   )r   r<   r   r  r   c                     dS r   r8   r   s    r0   r_   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    q r2   r  r  c                     dS r   r8   r   s    r0   r_   z+TestExpect.test_hypergeom.<locals>.<lambda>  s    1 r2   T)r   r<   r   r  r  c                     dS r   r8   r   s    r0   r_   z+TestExpect.test_hypergeom.<locals>.<lambda>	  s    ! r2   r   )r   r   r  )r6   r  r   r   r  r6  )
r   m_truev_truer  r  v_bounds	prob_trueprob_boundsprob_bcprob_bs
             r0   test_hypergeomzTestExpect.test_hypergeom  s    ..r2qb.AAO"";;[b"IIAvr2222O""#6#6[') # + +Avr2222 ?))*=*=/:.0Q2 * ? ? 	Hfb9999 eo))1b'2r1!)DDHHJJJ	o,,[[{13b - B BKB???? /((;B,-"$ ) H HGQ3333 ''++, ( 4 4FAr222222r2   c                 $   t           j                            d ddd          }dt           j                            dd          z
  }t	          ||d	           t           j                            d
 ddd          }t	          |dd	           d S )Nc                     dS r   r8   r   s    r0   r_   z)TestExpect.test_poisson.<locals>.<lambda>  s    Q r2   r  r   F)r   r   r  r   r>   r  r  c                     dS r   r8   r   s    r0   r_   z)TestExpect.test_poisson.<locals>.<lambda>  s     r2   T)r6   r  r   rK   r   )r   r;  prob_b_trueprob_lbs       r0   test_poissonzTestExpect.test_poisson  s    m**;;Ta7< + > >))!Q///KbAAAA-&&{{!37 ' 9 9GQ333333r2   c                     t           j        }|                    d          }|                    d           |                    d          }t          ||d           d S )N)r  r  )rx   r  r  )r6   genhalflogisticr   r   )r   halflogres1r  s       r0   test_genhalflogisticzTestExpect.test_genhalflogistic  sa     '~~6~**F###~~6~**D$333333r2   c                 
   t          t          j        t          j                            dd                               t          t          j        t          j                            d d                               t          t          j        t          j                            d d                               t          t          j        t          j                            d d                               d S )Ni  Gz?c                     dS r   r8   r   s    r0   r_   z/TestExpect.test_rice_overflow.<locals>.<lambda>'       r2   )rK  r  c                     dS r  r8   r   s    r0   r_   z/TestExpect.test_rice_overflow.<locals>.<lambda>(  rM  r2   c                     dS Nr   r8   r   s    r0   r_   z/TestExpect.test_rice_overflow.<locals>.<lambda>)  rM  r2   )r	   rt   r  r6   ricer@   r   r   s    r0   test_rice_overflowzTestExpect.test_rice_overflow"  s     	EJNN35566777EJ--kk-HHIIJJJEJ--kk-HHIIJJJEJ--kk-HHIIJJJJJr2   c                 (   d\  }}t           j                            d |f          }t          |||dz
  z  t	          j        d|z
            z  d           t           j                            d |f|          }t          |||z   d           d S )	N)r  r   c                     | S rr   r8   rD   s    r0   r_   z(TestExpect.test_logser.<locals>.<lambda>.  r#  r2   r  r  r   r   c                     | S rr   r8   rU  s    r0   r_   z(TestExpect.test_logser.<locals>.<lambda>4  r#  r2   r  )r6   rL  r   r   rt   rU  )r   r?  r<   res_0res_ls        r0   test_logserzTestExpect.test_logser+  s    3##KKqd#;;QVrvb1f~~5E	C 	C 	C 	C ##KKqd#DDus{777777r2   r  c                     d\  }}t           j                            d ||f          }t           j                            d ||f          }t          |||z
  d           t          ||dz  z
  ||z   d           d S )N)r  r  c                     | S rr   r8   r   s    r0   r_   z)TestExpect.test_skellam.<locals>.<lambda><      A r2   r  c                     | dz  S r  r8   r   s    r0   r_   z)TestExpect.test_skellam.<locals>.<lambda>=  r  r2   rq  r   r>   )r6   r  r   r   )r   r  p2r  rN  s        r0   test_skellamzTestExpect.test_skellam7  s     B]!!++RH!==]!!..Bx!@@BG%0000RU
BG%888888r2   c           
          d\  }}t           j                            d ||f          }t          |t	          d t          ||          D                       ||z
  z  d           d S )N)r   q   c                     | S rr   r8   r   s    r0   r_   z)TestExpect.test_randint.<locals>.<lambda>E  r   r2   c              3      K   | ]}|V  d S rr   r8   rQ   r  s     r0   r  z*TestExpect.test_randint.<locals>.<genexpr>G  s"      55!A555555r2   r   r   )r6   r  r   r   r6  r  )r   lohir   s       r0   test_randintzTestExpect.test_randintA  s     Bm"";;R9955uR}}55555bA	O 	O 	O 	O 	O 	Or2   c                 T    t          t          t          j        j        d d           d S )Nc                     | dz  S r  r8   r   s    r0   r_   z&TestExpect.test_zipf.<locals>.<lambda>L  s
    q!t r2   r  )r
   rC  r6   r?  r   r   s    r0   	test_zipfzTestExpect.test_zipfI  s.    ^UZ%6#^T	+ 	+ 	+ 	+ 	+r2   c                     t           j                            d d          }t           j                            d dddd          }t          ||d	
           d S )Nc                     dS r   r8   r   s    r0   r_   z/TestExpect.test_discrete_kwds.<locals>.<lambda>P  r\  r2   r  r  c                     dS r   r8   r   s    r0   r_   z/TestExpect.test_discrete_kwds.<locals>.<lambda>Q  r\  r2   r      rQ  )r   maxcount	chunksize	tolerancer  r  )r6   r  r   r   )r   n0n1s      r0   test_discrete_kwdszTestExpect.test_discrete_kwdsN  sd    ]!!++D!99]!!++D+/2 " O OBB//////r2   c                     d }dD ]=}t           j                            d|          }t          | ||          d           >d S )Nc                 H    | dz  d| dz  z  z   d| dz  z  z   d| dz  z  z   | z   S )Nr   rn   re  r  r   r  r>   r8   rk  s    r0   poiss_moment5z-TestExpect.test_moment.<locals>.poiss_moment5X  s8    q52b!e8#bQh.BE9B>>r2   )r   rs  r   r  r   )r6   r  r  r   )r   rw  r  m5s       r0   test_momentzTestExpect.test_momentU  se    	? 	? 	?  	? 	?B%%a,,BBb 1 1>>>>>	? 	?r2   c                    t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            d          d	           t          t          j                            d
          d
           d S )Nr  r  r;   r  rn   rl   )   r  r{  U   r  )r   r6   rE  r   r  r%  r   s    r0   test_challenging_cases_gh8928z(TestExpect.test_challenging_cases_gh8928_  s     	
))b)<<bAAA
))b)<<bAAA
))b)<<bAAA***77===--"-55r:::::r2   c           	      t   t           j        }|                    dd          }t          |                    dd          |           t          |                    dddd          |           t          |                    dddd          |d	z             t          |                    ddddd
          |           t          |                    dddd          d           t          |                    dddd          d           t          |                    ddddd
          d           d S )Nrn   r   r;   r  ra  r!  r|  r  r  Tr$  r  g433333@g433333r  )r6   r  rD  r   r   )r   rR   r  s      r0   test_lb_ub_gh15855zTestExpect.test_lb_ub_gh15855h  sH   }iiBai((!44c:::!bAA3GGG!rBBCGLLL!r04 $ 6 67:	< 	< 	< 	!rBBFKKK!rBBGLLL!r04 $ 6 679	; 	; 	; 	; 	;r2   N)r#  r$  r%  rF  r.  r>  rD  rI  rR  rY  r   r  r  r_  rg  rj  rt  ry  r}  r  r8   r2   r0   r  r    s       
5 5 5 5 5 5& 3  3  3D	4 	4 	44 4 4K K K
8 
8 
8 [ 8999 9 :99O O O+ + +
0 0 0? ? ?; ; ;; ; ; ; ;r2   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestNctc                     t          j        dd          }t          |                    d          d           t          j        dd          }t	          |                    d          dd           d S )Nr   r   rx   r  g K?rn   r  )r6   nctr   rK   r   r  s     r0   test_nc_parameterzTestNct.test_nc_parameter  sc     Yq!__RVVAYY$$$Yq"BFF1II~rBBBBBBr2   c           	          t           j                            dt          j        dd          d d d f         t          j        ddd                    }t          g dg dg dg          }t          ||d	
           d S )Nr   re  rs  rl   r   )gMp^j?g6].ftv?gȳ'ς?gu?)g!Y<a?g]d1p?go|?g?)gHdY?g2Ԥg?g}o/u?g .mr?r6  r   )r6   r  r@   rt   r   r  r   r   )r   r   ri   s      r0   test_broadcastingzTestNct.test_broadcasting  s    immAryAqqq$w7KQ224 4JJJJJJJJJL M M 	XD111111r2   c                 t    t          j        dd          }t          |                                d           d S )Nre  r   r|   )r6   r  r   r  r  s     r0   test_variance_gh_issue_2401z#TestNct.test_variance_gh_issue_2401  s1    
 Yq!__RVVXXs#####r2   c                    t           j                             ddd          \  }}}}t          ||||gt          j        t          j        t          j        t          j        g           t           j                             ddd          \  }}}}t          t          j        |                     t          |||gt          j        t          j        t          j        g           t           j                             ddd          \  }}}}t          t          j        |||g                                                     t          |t          j                   d S )Nr  r  r  )rp  ncr  r  r  )r6   r  r   rt   r   r	   r  r  ro  s        r0   test_nct_inf_momentszTestNct.test_nct_inf_moments  s	   Y__V_DD
1aaAq\BFBFBFBF#CDDDY__V_DD
1aAaAY 8999Y__V_DD
1aQ1I&&**,,---Qr2   c                    t           j                            dd          }t           j                             dd          }ddg}t          ||d         d           t          ||d           t           j                            dd          }t           j                             dd          }d	d
g}t          ||d         d           t          ||d           d S )Nr   r>   g@ @g*dn?r   r  r   r  gqI  @gL) ?r  )r6   r  rD  r   )r   nct_mean_df_1000nct_stats_df_1000expected_stats_df_1000nct_mean	nct_statsr  s          r0   test_nct_stats_large_df_valuesz&TestNct.test_nct_stats_large_df_values  s     !9>>$22!IOOD!44
 #56H!I(*@*C"	$ 	$ 	$ 	$)+A"	$ 	$ 	$ 	$ 9>>&!,,IOOFA..	,.@A."3%@@@@	>======r2   N)r#  r$  r%  r  r  r  r  r  r8   r2   r0   r  r  ~  sb        C C C2 2 2$ $ $     > > > > >r2   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestRecipInvGaussc                 V    t           j                            dd          }|dk    sJ d S )Nr   r  r}   )r6   recipinvgaussr@   rL  s     r0   test_pdf_endpointz#TestRecipInvGauss.test_pdf_endpoint  s+    ##As++Cxxxxxxr2   c                 l    t           j                            dd          }|t          j         k    sJ d S )Nr   r  )r6   r  r   rt   r   r/  s     r0   test_logpdf_endpointz&TestRecipInvGauss.test_logpdf_endpoint  s/    "))!S11wr2   c                 n    t           j                            dd          }d}t          ||d           d S )Nr  rx   g9V9s;r,  r   )r6   r  rK   r   r   r?  ri   s      r0   test_cdf_small_xz"TestRecipInvGauss.test_cdf_small_x  s<      ##D#..(8%000000r2   c                 l    t           j                            dd          }d}t          ||d           d S )NP   rx   glH<+<)r6   r  rg  r   r  s      r0   test_sf_large_xz!TestRecipInvGauss.test_sf_large_x  s7    ""2s++(8U+++++r2   N)r#  r$  r%  r  r  r  r  r8   r2   r0   r  r    sP            1 1 1(, , , , ,r2   r  c                        e Zd Zd Zd Zd ZdS )TestRicec                    g d}t          t          j        t          j                            |d                                                               t          t          j        t          j                            |d                                                               t          t          j        t          j                            |d                                                               t          t          j        t          j        	                    |d                                                               g d}t          t          j        t          j        
                    |d                                                               t          j                            dd          }t          t          j        |                                                     d}t          t          j                            |d          t          j                            ||          |d	           d S )
N)r  r  r  r}   r/   )rl   rl   rx   r  r   r  r  rQ  r  )r	   rt   r  r6   rQ  r@   r  r   rK   r~  r]  r   )r   rG   r_  r  r/   s        r0   test_rice_zero_bzTestRice.test_rice_zero_b  s   MMEJNN1N334488::;;;EJ--a2-6677;;==>>>EJNN1N334488::;;;EJ--a2-6677;;==>>>   EJNN1N334488::;;;z622D!!%%''(((
 
q!,,ejnnQ.B.BQ	( 	( 	( 	( 	( 	(r2   c                     t           j        j        }t           |d          j        d           t           |dd          j        d           d S )Nr  r  r   )r   r   )r/   r   )r6   rQ  r   r   r   r  r  s     r0   test_rice_rvszTestRice.test_rice_rvs  sO    jnSS2YYY^Q'''SS2F+++16:::::r2   c                    t           j                            t          j        ddd          t          j        ddd                    }g d}t          ||           t          j        ddd          }t           j                            |dd          }g d	}t          ||           t          j         j                            d
t          j        ddd                    }g d}t          ||           d S )Nrn      )g/Ƹ?g[jǊ\?g 	?g9LJ?g#O?gXx?glO?g٥a%?gVzӯ?gTQ+xQ?g?`J?go?gbu=?gIo|?g"Z6?rl   r   g     @_@re  rD  )	g<~@gwd
@gC?@gb
0@g` A@@g'NxP@g33-a@g4pv@g$F@rx      )gJ-$@g+f4@gce*D>@g$D@gnHGI@grN@g<
uQ@giff T@g9r[V@g3bXQ Y@gqxJ[@g`*DD ^@g@`@gdAa@)r6   rQ  rK   rt   r   r   r]  r5   )r   rK   cdf_expprobabilitiesr]  ppf_exps         r0   test_rice_gh9836zTestRice.test_rice_gh9836  s     jnnRYr333RYr35K5KLLO O O
 	W%%%	#q#..jnn]En;;L L L 	W%%%k""3	"c2(>(>??; ; ;
 	W%%%%%r2   N)r#  r$  r%  r  r  r  r8   r2   r0   r  r    sA        ( ( (*; ; ;
'& '& '& '& '&r2   r  c                        e Zd Zd Zd Zd ZdS )
TestErlangc                 D    t           j                            d           d S r   r   r   s    r0   r   zTestErlang.setup_method&  r   r2   c           	         t          j                    5  t          j        dt                     t	          t          t
          j        j        dddd           g d}t
          j                            |d          }t
          j	                            |d          }t          ||d	
           d d d            d S # 1 swxY w Y   d S )Nr<  r  r   r   re  r"  )rx   r  r|   r  rY  r
  r   )r@  rA  rB  rC  r  r6   erlangr   r   r  r   )r   r   result_erlangresult_gammas       r0   test_erlang_runtimewarningz%TestErlang.test_erlang_runtimewarning)  s     $&& 	D 	D!'>::: .,*CQaaI I I I (''D!L,,Ta,88M ;??4A?66LM<dCCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   BB==CCc                     t          t          j                            dddg          t          j                            dddg                     d S )Nrx   r   r  rB  )r   r6   r  r@   r  r   s    r0   test_gh_pr_10949_argcheckz$TestErlang.test_gh_pr_10949_argcheck<  sR    U\%%caW%55[__SQG_44	6 	6 	6 	6 	6r2   N)r#  r$  r%  r   r  r  r8   r2   r0   r  r  %  sD          D D D&6 6 6 6 6r2   r  c                       e Zd Zd Zd Zd Zej                            dddg          d             Z	ej                            ddd	gd
dgg          d             Z
d Zd ZdS )TestRayleighc                 D    t           j                            d           d S )Nr!  r   r   s    r0   r   zTestRayleigh.setup_methodB  s    
	y!!!!!r2   c                 d    t           j                            d          }t          |d           d S )Nr  g)Zx)r6   r   r   r   r   r  s     r0   r  zTestRayleigh.test_logpdfF  s.    N!!"%%./////r2   c                 d    t           j                            d          }t          |d           d S )Nr  i)r6   r   r%  r   r  s     r0   r7  zTestRayleigh.test_logsfJ  s-    N  $$5!!!!!r2   zrvs_loc,rvs_scale)gB)Q?got|?)gS2P?g3?c                    t           j                            d||          }d } |||          }t           j                            ||          \  }}t	          ||           t	          ||           t           j                            |d          \  }}t	          |d           t           j                            |          \  }}t	          | |||                     d S )Nr   r2  c                 b    t          j        | |z
  dz            dt          |           z  z  dz  S )Nr>   rx   )rt   r6  r   )r   r   s     r0   r\  z(TestRayleigh.test_fit.<locals>.scale_mleS  s/    FD4KA-..!c$ii-@RGGr2   r?  r  r@  )r6   r   r   r   r   )r   rs  rt  r   r\  scale_expectr<   r=   s           r0   r=  zTestRayleigh.test_fitN  s     ~!!sy!II	H 	H 	H !yw//^''7';;
US'"""UL))) ^''R'88
UUB
 ^''--
UUIIdC0011111r2   rK  rz   g̡=E?g@1d?c                    t           j                            d||          }|t           j                            |          fg}t           j                            |i           d         }t          t           j        ||           d S )Nr   r2  r   )r6   r   r   r8  rA  r   )r   rs  rt  r   r   r   s         r0    test_fit_comparison_super_methodz-TestRayleigh.test_fit_comparison_super_methodg  su    
 ~!!sy!II u~//5589~**444Q7%endDAAAAAr2   c                 8    t          t          j                   d S rr   )r   r6   r   r   s    r0   r  zTestRayleigh.test_fit_warningst  s    EN+++++r2   c                    t           j                            d          }d\  }}}t          j                            ||||          }t          j                            |          \  }}|t          j        |          k     sJ t          j                            ||          \  }}|t          j        |          k     sJ ||k    sJ d S )Ni  )r  r  r  r  r@  )rt   r   r   r6   r   r   r   r~  )	r   r   r<   r=   r   r   loc_fitr  	scale_fits	            r0   test_fit_gh17088zTestRayleigh.test_fit_gh17088w  s     i##C(('UDn  e$S II^'',,
$$$$"^//E/BB$$$$E!!!!!!r2   N)r#  r$  r%  r   r  r7  r   r  r  r=  r  r  r  r8   r2   r0   r  r  A  s        " " "0 0 0" " " [03K3K3M N N2 2N N2. [0D$<4>
3K3M N N	B 	BN N	B, , ,
" 
" 
" 
" 
"r2   r  c                        e Zd Zd Zd Zd ZdS )TestExponWeibc                     d}d}d}t           j                            |||          }t           j                            |||          }t	          ||gddg           d S )Nrl   r  g      Y@g:23W+g~`9k)r6   	exponweibr@   r   r   )r   rG   r.   r^  r?  r  s         r0   test_pdf_logpdfzTestExponWeib.test_pdf_logpdf  ss    O1a((%%aA..D	/1DE	G 	G 	G 	G 	Gr2   c                 ~   t          j        ddd          }d}d}t          j                            |||          }t          j                            ||          }t          ||           t          j                            |||          }t          j                            ||          }t          ||           d S )NrZ  r  re  r   ro   )rt   r[  r6   r  r@   weibull_minr   r   r   rG   r.   r^  r?  ri   r  s          r0   test_a_is_1zTestExponWeib.test_a_is_1  s     KB""O1a(($((A..8$$$%%aA..$++Aq11h'''''r2   c                 z   t          j        ddd          }d}d}t          j                            |||          }t          j                            |          }t          ||           t          j                            |||          }t          j                            |          }t          ||           d S )Nr  r   rn   )rt   r[  r6   r  r@   rR  r   r   r  s          r0   test_a_is_1_c_is_1z TestExponWeib.test_a_is_1_c_is_1  s    KAr""O1a((;??1%%8$$$%%aA..;%%a((h'''''r2   N)r#  r$  r%  r  r  r  r8   r2   r0   r  r    sD        	G 	G 	G( ( ( ( ( ( ( (r2   r  c                       e Zd Zd Zd ZdS )TestFatigueLifec                 j    t           j                            dd          }t          |dd           d S )Nr
  ri  X9r   r   )r6   r   rg  r   ri  s     r0   r  zTestFatigueLife.test_sf_tail  s8       ,,0u======r2   c                 n    d}t           j                            |d          }t          |dd           d S )Nr  ri  r
  r   r   )r6   r   rl  r   )r   r?  r_  s      r0   test_isf_tailzTestFatigueLife.test_isf_tail  s:    !!!!S))5u------r2   N)r#  r$  r%  r  r  r8   r2   r0   r  r    s2        > > >. . . . .r2   r  c                        e Zd Zd Zd Zd ZdS )TestWeibullc                 f    t           j                            dd          }t          |d           d S rJ  )r6   r  r   r   r  s     r0   r  zTestWeibull.test_logpdf  s0    $$Q**Qr2   c                    d}d}d}t           j                            |||          }t          |t	          j        d          dz             t           j                            |||          }t          |dt	          j        d          z
             t           j                            |||          }t          |t          j
        d                      t           j                            |||          }t          |t	          j        t          j
        d                                t           j                            |||          }t          |t	          j        d                     t           j                            |||          }	t          |	d           t           j                            ddd          }t          |t	          j        d	                     t           j                            ddd          }	t          |	d	           d
}t           j                            |||          }t          |t	          j        d          dz             t           j                            |||          }t          |dt	          j        d          z
             t           j                            |||          }t          |t	          j        d                     t           j                            |||          }t          |d           t           j                            |||          }t          |t          j
        d                      t           j                            |||          }	t          |	t	          j        t          j
        d                                t           j                            ddd          }t          |t          j
        d                      t           j                            ddd          }	t          |	t	          j        t          j
        d                                d S )Nr  r|   r  rD  rT  r   r   r>   r  r  g&.gCe )r6   r  r@   r   rt   r   r   rU  rK   r   r  r~  rg  r%  weibull_max)
r   rG   r.   r/   r?  r  r^  lcrF   r  s
             r0   test_with_maxima_distribz$TestWeibull.test_with_maxima_distrib  s   .  !!!Qa!0026%==?+++%%a!%44EBF1II-...!!!Qa!00GM%000111%%a!%44BFGM%$8$8#899:::  AQ //26%==)))$$Q$33E"""   Qa 0026$<<((($$R!$44D!!! !!!Qa!0026%==?+++%%a!%44EBF1II-...!!!Qa!0026%==)))%%a!%44E"""  AQ //GM%000111$$Q$33BFGM%$8$8#899:::    33GM*@AAABBB$$UAQ$77BFGM2H$I$I#IJJKKKKKr2   c                    t           j                            d          }d\  }}}t          j        |||          }|                    d|          }t          j                            |dd          \  }}}	t          j                            |dd          \  }
}}||cxk    rdk    sn J ||
k    sJ t          j                            |ddd	
          \  }}}|dk    sJ t          j        |||          }|                    d          }t          j        |          t          j        |          f}t          ||           d S )Nl   > )r>   rj  rx   ro   r  r  r   r?  rO  r8  r9  r;  r  )
rt   r   r   r6   r  r   r   rD  r  r   )r   r   r^  r<   r=   rR   r   c2r?  r@  c3rB  rC  c4rE  rF  rG  r   r  s                      r0   test_fit_minzTestWeibull.test_fit_min"  sT   i##$788#3 C//hhCch22 !,00c0BBD& ,00c0BBD&t    q      Rxxxx !,00a$0OOD&{{{{!"dF33kk$k''gcllEJsOO+S!!!!!r2   N)r#  r$  r%  r  r  r  r8   r2   r0   r  r    sH          
RL RL RLh" " " " "r2   r  c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestTruncWeibullc                 r    t           j                            ddgddd          }t          |ddg           d S )Nrl   r|   g)\(?gףp=
?r}   )r6   truncweibull_minr@   r   r  s     r0   test_pdf_boundsz TestTruncWeibull.test_pdf_bounds<  s<    "&&Sz3dCCQc
#####r2   c                     t           j                            dddt          j                  }t          |d           t           j                            dddd          }t          |d           d S )Nr|   r  r}   r  g~?)r6   r  r   rt   r   r   r   r  s     r0   r  zTestTruncWeibull.test_logpdfA  se    "))#sC@@Q "))#sC==./////r2   c                 r    t           j                            ddgddd          }t          |ddg           d S )Nr}   r  r|   rl   )r6   r  r]  r   r  s     r0   test_ppf_boundsz TestTruncWeibull.test_ppf_boundsI  s<    "&&Sz3SAAQc
#####r2   c                     g d}t           j                            |ddd          }t           j                            |ddd          }t	          ||           d S N)r}   rl   r5  rx   r+  r  r  r|   r}   r  )r6   r  r]  rK   r   r   r_  rG   q_outs       r0   test_cdf_to_ppfz TestTruncWeibull.test_cdf_to_ppfN  s[    000"&&q"b"55&**1b"b995!!!!!r2   c                     g d}t           j                            |ddd          }t           j                            |ddd          }t	          ||           d S r  )r6   r  rl  rg  r   r  s       r0   test_sf_to_isfzTestTruncWeibull.test_sf_to_isfT  s[    000"&&q"b"55&))!RR885!!!!!r2   c                    dddfdt           j                            d          }t          |d           t           j                            d          }t	          fd          \  }}t          ||           t           j                            d          }t	          fd	          \  }}t          ||           t           j                            d
          }t	          fd          \  }}t          ||           t           j                            d          }	t	          fd          \  }
}t          |	|
           d S )Nr|   r  r  c                 T    | |z  t           j                            |           z  S rr   )r6   r  r@   )rG   r>  r.   r/   r^  s     r0   xnpdfz)TestTruncWeibull.test_munp.<locals>.xnpdf_  s)    a4.221aA>>>>r2   r   r   c                      | d          S r   r8   rG   r  s    r0   r_   z,TestTruncWeibull.test_munp.<locals>.<lambda>f      a r2   r>   c                      | d          S r  r8   r  s    r0   r_   z,TestTruncWeibull.test_munp.<locals>.<lambda>j  r  r2   r   c                      | d          S rP  r8   r  s    r0   r_   z,TestTruncWeibull.test_munp.<locals>.<lambda>n  r  r2   re  c                      | d          S )Nre  r8   r  s    r0   r_   z,TestTruncWeibull.test_munp.<locals>.<lambda>r  r  r2   )r6   r  r  r   r   r   )r   r  r  m1_expectedr  rN  m2_expectedm3m3_expectedrO  m4_expectedr.   r/   r^  r  s              @@@@r0   	test_munpzTestTruncWeibull.test_munpZ  s   	? 	? 	? 	? 	? 	? 	? #**1aA66R#**1aA663333Q::QK(((#**1aA663333Q::QK(((#**1aA663333Q::QK(((#**1aA663333Q::QK(((((r2   c                 ^   d}d}d}t          j        dt          j        dt          j        dt          j        d          z              z             z
            }t          j                            ||||          }t          |d           t          j                            ||||          }t          |t          j        d                      t          j        	                    d|||          }t          ||           t          j        
                    ||||          }t          |d           t          j                            ||||          }	t          |	t          j        d                      t          j                            d|||          }
t          |
|           d S )Nr  r  r|   r   rx   r  )rt   r  rU  r   r6   r  rK   r   r~  r]  rg  r%  rl  )r   r.   r/   r^  x_medrK   r  r]  rg  r  rl  s              r0   test_reference_valuesz&TestTruncWeibull.test_reference_valuesu  so   BF3"rvbzz/0B)C)C#CDDDEE$((1a88S!!!#**5!Q::RVBZZK((($((aA66U####&&uaA66C   #))%Aq99RVBZZK((($((aA66U#####r2   c                 *   d}d}d}t           j        }d}t          j                            |||          }t          j                            |||||          }t          ||           t          j                            |||          }t          j                            |||||          }	t          ||	           t          j                            |||          }
t          j                            |||||          }t          |
|           t          j        	                    |||          }t          j        	                    |||||          }t          ||           t          j        
                    |||          }t          j        
                    |||||          }t          ||           t          j                            |||          }t          j                            |||||          }t          ||           t          j        
                    dd||d          }t          |t          j        d	                     t          j                            dd||d          }t          |d	           d S )
Nr  r|   r}   r  rD  r   r>   r   r  )rt   r   r6   r  r@   r  r   r   rK   r~  rg  r%  r   )r   rG   r^  r.   r/   r=   r?  p_truncr  lp_truncrK   	cdf_truncr  lc_truncrF   s_truncr  ls_truncs                     r0   test_compare_weibull_minz)TestTruncWeibull.test_compare_weibull_min  se    F!!!Qe!44(,,Q1au,EE7###%%a%%88)00Aq!50IIH%%%##Aq#66*..q!Q.GG	Y'''%%a%%88)00Aq!50IIH%%%  AU 33(++Aq!Qe+DD7###$$Q$77)//1a%/HHH%%% "%%b!Q%;;26$<<(((#))"aAQ)??D!!!!!r2   c                    d\  }}}t          j        ||d          }t          j                            ||||          }t          j                            ||||          }t          j                            ||          t          j                            ||          z
  }t          j                            ||          |z  }t          j                            ||          t          j                            ||          z
  |z  }	t           j                            ||           t           j                            ||	           d S )N)ri  r5        ?ro   )	rt   r  r6   r  r@   rK   r  testingr   )
r   r^  r.   r/   rG   r?  rd  rE  r@  rf  s
             r0   test_compare_weibull_min2z*TestTruncWeibull.test_compare_weibull_min2  s    "1aK1c""%))!Q155%))!Q155 $$Q**U->-B-B1a-H-HH $$Q**T1!%%a++e.?.C.CAq.I.II4O

""4...

""4.....r2   N)r#  r$  r%  r  r  r  r  r  r  r  r  r  r8   r2   r0   r  r  :  s        $ $ $
0 0 0$ $ $
" " "" " ") ) )6$ $ $0'" '" '"R/ / / / /r2   r  c                       e Zd Zd Zd ZdS )	TestRdistc                     t           j        }g d}t          |                    |                    |d          d          |d           d S )Nr	  g     @r   r  )r6   rdistr   rK   r]  )r   r  r  s      r0   test_rdist_cdf_gh1285zTestRdist.test_rdist_cdf_gh1285  sX    $$$FJJvzz&%'@'@%HH"A	/ 	/ 	/ 	/ 	/ 	/r2   c                 
   t          j        ddd          }d}t          dt          j        |dz  |dz                                |dz   dz            z  t          j        |                              |                     d S )NgGzr  rn   g@rx   r>   r   )rt   r  r   r6   r  r@   r  )r   rG   r^  s      r0   test_rdist_betazTestRdist.test_rdist_beta  s    KtR((C
1Q3! 4 4 8 8!a% C CC!KNN..q11	3 	3 	3 	3 	3r2   N)r#  r$  r%  r  r  r8   r2   r0   r  r    s2        / / /3 3 3 3 3r2   r  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestTrapezoidc                 V   g d}|D ]}d|dg}t          t          j                            |||          t          j                            ||                     t          t          j                            |||          t          j                            ||                     d S )N)r   r  rx   r   r   r   )r   r6   r   r@   triangrK   )r   modesmoderG   s       r0   test_reduces_to_triangz$TestTrapezoid.test_reduces_to_triang  s        	; 	;DD!A 3 3AtT B B % 0 0D 9 9; ; ; 3 3AtT B B % 0 0D 9 9; ; ; ;		; 	;r2   c                 b   t          j        ddd          }t          t          j                            |dd          t          j                            |                     t          t          j                            |dd          t          j                            |                     d S Nr   r   rn   )rt   r  r   r6   r   r@   r  rK   rm  s     r0   test_reduces_to_uniformz%TestTrapezoid.test_reduces_to_uniform  s    K1b!!EO//1a88%-:K:KA:N:NOOOEO//1a88%-:K:KA:N:NOOOOOr2   c                 n   t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            d	dd          d
           t          t          j                            ddd          d           t          t          j                            ddd          d
           t          t          j                            d	dd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           t          t          j                            ddd          d           d S )Nr   r>   r   rx   rb  r  r  r  rl   g      ?r  r  g      ?r  g      ?)r   r6   r   r@   rK   r   s    r0   
test_caseszTestTrapezoid.test_cases  s   EO//1a88!<<<EO//1a88!<<<EO//Q<</	1 	1 	1EO//S#>>/	1 	1 	1 	EO//S#>>FFFEO//S#>>EEEEO//S#>>FFFEO//S#>>HHHEO//S#>>FFFEO//S#>>DDDEO//S#>>HHHEO//S#>>DDDDDr2   c                   	
 d\  	

	z
  	z
  z  	z
  	z
  z  		z
  f\  }}}}dz   
z
  	z
  z  	
fd} |d          } |d          |dz  z
  }dz
  
z   	z
  z  z   
z
  	z
  z  t          j        dz   
z
  	z
  z            z   }t          t          j                            ||||          |d           t          t          j                            ||||          |d           t          t          j                            ||||          |d           t          t          j                            ddd	d
          dd           t          t          j                            ddd	d
          dd           t          t          j                            ddd	d
          dd           d S )N)r  r  r>   r   r>   c                     | dz   z  | dz   z  z
  z
  z  | dz   z  | dz   z  z
  z
  z  z
  z  | dz   z  | dz   z  S )Nr>   r   r8   )r>  r.   r/   r^  dr9  s    r0   r  z6TestTrapezoid.test_moments_and_entropy.<locals>.moment  sn    !ac(Q1X-!A#6!Hq1Q3x/AaC89 :qSqS" #r2   r   rx   r  r  r   r  r  r  r   )rt   rU  r   r6   r   rD  r  rX   )r   r  r^  r<   r=   r  rD  r  rX   r.   r/   r^  r(  r9  s            @@@@@r0   test_moments_and_entropyz&TestTrapezoid.test_moments_and_entropy  s    "
1acac]QqSQqSM1acABU1QqM	# 	# 	# 	# 	# 	# 	# 	# 	#
 vayyfQii$'!1Qq/QqSU1W-sac!eAg0G0GGEO00ReDD "	. 	. 	. 	.EO//BUCC	- 	- 	- 	-EO33BCGG#R	1 	1 	1 	1 	EO00Ar1==r2NNNNEO00Ar1==q"MMMMEO//1b!<<aLLLLLLr2   c                    t          j        g d          }t          j        ddg          d d d f         }t          j        g d          }t          j                            |||          }t          j        |||          \  }}}t          j        |j        |j                  }t          j	        |j                  }	t          |	|                                |                                |                                          D ]+\  }
}}}t          j                            |||          ||
<   ,t          ||                    |j                  d           t          j        t          j                            ||d	                    }t          j        ||          \  }}t          j        |j        d
f          }t          j	        |j                  }	t          |	|                                |                                          D ]+\  }
}}t          j                            ||d	          ||
<   ,t          ||j                            |j                  d           d S )Nr  rx   r  )r  r5  r  r  r   r   r  r  re  )rt   r   r6   r   r@   broadcast_arraysemptyr   r   r   r   ravelr   r  r  r  r  )r   r^  r(  rG   r  ccddr`  r   indr  r6  c1d1s                 r0   test_trapezoid_vectz!TestTrapezoid.test_trapezoid_vect  s
   H___%%Hc3Z  D)H&&&''O1a(((Aq11
Bhrwbh///i   bhhjj"((**bhhjjII 	5 	5MAr2r_((R44CFF3;;qw//e<<<< Ju,,Q6,BBCC$Q**Bh|$$i  S"((**bhhjj99 	C 	CIAr2_**2r6*BBCFF35==11>>>>>>r2   c                     t          j        ddd          }t          t          j                            |dd          t          j                            |                     d S r"  )rt   r  r   r6   rY   r@   r  rm  s     r0   
test_trapzzTestTrapezoid.test_trapz/  sM    K1b!!EKOOAq!44em6G6G6J6JKKKKKr2   N)	r#  r$  r%  r   r#  r%  r)  r3  r5  r8   r2   r0   r  r    s|        ; ; ;P P P
E E E(M M M6? ? ?4L L L L Lr2   r  c                       e Zd Zd ZdS )
TestTriangc                    t          j        d          5  t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d	           t          t          j                            dd          d           t          t          j                            dd          d
           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           t          t          j                            dd          d           d d d            d S # 1 swxY w Y   d S )Nraiser  r   r|   rx   r  r   r}   r>   r+  r5  )rt   r  r   r6   r  r@   rK   r   s    r0   test_edge_caseszTestTriang.test_edge_cases6  s   [W%%% 	6 	6))!Q//444))#q112666))!Q//444))!Q//333))#q112666))!Q//333))"b112666))#r22D999))#r22C888))"b112666))#r22D999))"b111555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   H)IIIN)r#  r$  r%  r:  r8   r2   r0   r7  r7  5  s#        6 6 6 6 6r2   r7  c                       e Zd Zd Zd ZdS )
TestMielkec                    d\  }}t          t          j        ||                              d          t          j                   t          t          j        |d                              d          t          j                   t          t	          j        t          j        |d                              d                               d S )N)g rh@gv?r   r  r  )r   r6   mielker  rt   r   r	   r  )r   rD   rF   s      r0   r  zTestMielke.test_momentsJ  s    1U\!Q''..q1126:::U\!S))0033RV<<<ELD1188;;<<=====r2   c                     t          j        ddd          }d\  }}t          t          j                            ||||z            t          j                            |||                     d S )Nrz   ro   r  )g@gHzG@)rt   r  r   r6   burrr@   r>  )r   rG   rD   rF   s       r0   test_burr_equivalencez TestMielke.test_burr_equivalenceQ  s^    Kc2&&1
q!QqS115<3C3CAq!3L3LMMMMMr2   N)r#  r$  r%  r  rA  r8   r2   r0   r<  r<  I  s7        > > >N N N N Nr2   r<  c                        e Zd Zd Zd Zd ZdS )TestBurrc           	      n   t           j        ddgt           j        ddgt           j        ddgt           j        ddgt           j        ddgt           j        ddgt           j        d	d
gg}d |D             }d |D             }t	          ||           d |D             }d |D             }t	          ||           d S )N)r   r   )rx   r>   )r   r   )r>   rx   r   rx   r  )r   r>   r|   c                 <    g | ]\  }}} |j         |j        g|R  S r8   r  r  s       r0   rS   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>d  r  r2   c                     g | ]\  }}}|	S r8   r8   r  s       r0   rS   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>e  r  r2   c                 <    g | ]\  }}} |j         |j        g|R  S r8   )r   r.   r  s       r0   rS   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>h  s4    @@@<2uayry&&&&@@@r2   c                 >    g | ]\  }}}t          j        |          S r8   )rt   rU  r  s       r0   rS   z0TestBurr.test_endpoints_7491.<locals>.<listcomp>i  s)    FFF)=UI26)$$FFFr2   )r6   fiskr@  burr12r   )r   r   r  r  s       r0   test_endpoints_7491zTestBurr.test_endpoints_7491X  s     Zq!Z1%Z#Z1%\8S)\63'\63') >====>>>>>!#w///@@4@@@FFFFF!#w/////r2   c                     d\  }}t          j        ||                                           \  }}d\  }}t          ||           t          ||           d S )N)r  r   )g4U?g&MI?)r6   r@  r   )r   r^  r(  rD  variancemean_hcvariance_hcs          r0   test_burr_stats_9544zTestBurr.test_burr_stats_9544l  s_    1Aq))//11h  Gg&&&+.....r2   c                    d\  }}t          j        ||                                           \  }}t          t          j        |                     t          t          j        |                     d\  }}t          j        ||                                           \  }}t          t          j        |                     t          t          j        |                     d\  }}t           j                            t          j        g d          ||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d\  }}t           j                            g d||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d\  }}t           j                            g d||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d\  }}t           j                            g d||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d\  }}t           j                            g d||          \  }}}}t          t          j        |                     t          t          j        |                     t          t          j        |                     t          t          j        |                     d S )N)rx   r   )r  r   )r   r>   r   re  )ri  r   )rj  r   )rm  r   )r6   r@  r	   rt   rs  r  _munpr   )	r   r^  r(  rD  rM  e1e2e3e4s	            r0   test_burr_nan_mean_var_9544z$TestBurr.test_burr_nan_mean_var_9544w  sb   1Aq))//11h""###1Aq))//11hD!!"""""###1))"(<<<*@*@!QGGBB1)),,,1==BBB   1)),,,1==BBB   B   1)),,,1==BBB   B   B   1)),,,1==BBB   B   B   B     r2   N)r#  r$  r%  rK  rP  rW  r8   r2   r0   rC  rC  W  sA        0 0 0(	/ 	/ 	/(! (! (! (! (!r2   rC  c            	       z   e Zd Zg dZg dZg dZ ej        eeef          Zg dZ	ddddd	ej
        gZg d
Z e e ee	ee          e                    Zddddej
        dfddej
        dfddej
        dfgZd Zej        j        d             Zej                            e          ZdZ eej                            ee          d          5 Z e j!        e          Z"ddd           n# 1 swxY w Y   ej        #                    de"d                   d             Z$ej        #                    de"d                   d             Z%ej        j        ej        &                    d          ej        #                    de"d                   d                                     Z'd Z(ej        j)        d             Z*ej        #                    d e          d!             Z+ej        j        ej        &                    d          d"                         Z,ej        j)        d#             Z-d$ Z.d% Z/d& Z0dS )'TestStudentizedRange)gQ1@g33333F@g
ףp=*K@gHzM@g/$@g~j!@g33333$@g{Gz&@gh|?5	@gQ8@g&1@g|?5@g@gOn@g!rhm@gB`"@rA  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   rn   r  x   )r>   r  r  r  )rl   r   i)#  gupm1f?)r   rn   r   g?<-=A?gv"?re  gd暕?ga-A?c                     | j         D ]>\  }}|\  }}}t          j                            |||          }t	          ||d           ?d S )Nr  r   )r   r6   studentized_rangerK   r   )r   pvkr_  
p_expectedr  rD   res_ps          r0   test_cdf_against_tablesz,TestStudentizedRange.test_cdf_against_tables  s_    i 	: 	:FC"J1+//1a88EE:D99999	: 	:r2   c                     | j         D ]>\  }}|\  }}}t          j                            |||          }t	          ||d           ?d S )NMb@?r   )r   r6   r\  r]  r   )r   r]  
q_expectedr?  r  rD   res_qs          r0   test_ppf_against_tablesz,TestStudentizedRange.test_ppf_against_tables  s^    #y 	: 	:OCGAq!+//1a88EE:D99999	: 	:r2   z&data/studentized_range_mpmath_ref.jsonr  Ncase_resultcdf_datac                     |d         }|d         }|d         |d         |d         f}t          j        j        | }t          |||d         |d                    d S 	Nsrc_case	mp_resultr_  rD   r  expected_atolexpected_rtolr  )r6   r\  rK   r   r   rf  rj  rk  qkvr   s         r0   test_cdf_against_mpz(TestStudentizedRange.test_cdf_against_mp  s    z*,	smXc]HSM9%)3/Y%o6%o6	8 	8 	8 	8 	8 	8r2   pdf_datac                     |d         }|d         }|d         |d         |d         f}t          j        j        | }t          |||d         |d                    d S ri  )r6   r\  r@   r   rn  s         r0   test_pdf_against_mpz(TestStudentizedRange.test_pdf_against_mp  rq  r2   z+intermittent RuntimeWarning: invalid value.moment_datac                    |d         }|d         }|d         |d         |d         f}t          j        d          5  t          j        j        | }d d d            n# 1 swxY w Y   t          |||d         |d	         
           d S )Nrj  rk  r  rD   r  r  r  rl  rm  r  )rt   r  r6   r\  r  r   )r   rf  rj  rk  mkvr   s         r0   test_moment_against_mpz+TestStudentizedRange.test_moment_against_mp  s     z*,	smXc]HSM9 [*** 	7 	7)0#6C	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	Y%o6%o6	8 	8 	8 	8 	8 	8s   AA!$A!c                     d\  }}t          t          j        j        dt          j        ||f          }t          |d         d           d S )Nr   rn   r   r  r   )r   r6   r\  r@   rt   r   r   )r   rD   r  r   s       r0   test_pdf_integrationz)TestStudentizedRange.test_pdf_integration  sG    15*.26AGGGA"""""r2   c                    d\  }}t          j        ddd          }t          j                            |||          dd          }t          j                            |||          }t          ||          }t          ||d           d S )	Nrz  r   rn   rz   )stepr   r  r   )rt   r   r6   r\  rK   r@   r   r   )r   rD   r  rG   y_cdf	y_pdf_rawy_pdf_cumulatives          r0   test_pdf_against_cdfz)TestStudentizedRange.test_pdf_against_cdf  s    1
 Ia$''''++Aq!44QRR8+//1a88	/	1== 	(%d;;;;;;r2   r_case_resultc                     |\  }}}}t          j        d          5  t          j                            |||          }d d d            n# 1 swxY w Y   t          ||           d S )Nr  r  )rt   r  r6   r\  rK   r   )r   r  r_  rD   r  r_resr   s          r0   test_cdf_against_rz'TestStudentizedRange.test_cdf_against_r  s     '1a[*** 	7 	7)--aA66C	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7U#####s   "AAAc                    t          j        d          5  t          j                            ddgddgddg          }d d d            n# 1 swxY w Y   t          |j        d	           t          j        t          d
          5  t          j                            dddgg d           d d d            d S # 1 swxY w Y   d S )Nr  r  r   r>   re  r   rn   r|  r  z...could not be broadcast...r   )rn   r|  r  )
rt   r  r6   r\  rR  r   r  r   r   r   rN  s     r0   test_moment_vectorizationz.TestStudentizedRange.test_moment_vectorization$  sh    [*** 	H 	H'--q!fq!fr2hGGA	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	&&&]:-KLLL 	C 	C#))!aV\\\BBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs#   (A

AA&B88B<?B<c                    t                      5 }t          j        d          5  |                    t                     t
          j                            g d          \  }}}}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t
          j        	                    ||                     d S )Nr  r  r   )
r   rt   r  rc   r   r6   r\  r8  r	   	_argcheck)r   rz  rD   rp  r  s        r0   test_fitstart_validz(TestStudentizedRange.test_fitstart_valid4  sF      	GCX)F)F)F 	G 	GJJ)***1;;IIIFFKAr1a	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	'11!R8899999s5   B	AA2&B	2A6	6B	9A6	:B		BBc                    t           j                            ddt          j                  }t           j                            ddd          }t          ||dd           t           j                            ddt          j                  }t           j                            ddd          }t          ||dd           d S )Nr   rn   韆 r  r  )r6   r\  r@   rt   r   r   rK   )r   r   
res_finites      r0   test_infinite_dfz%TestStudentizedRange.test_infinite_df<  s     %))!R88,00B>>
Zd>>>>%))!R88,00B>>
Zd>>>>>>r2   c                 Z   t           j                            ddd          }t           j                            ddd          }t           j                            ddd          }t          t          t
          ||dd           t          ||dd           t           j                            ddd          }t           j                            ddd          }t           j                            ddd          }t          t          t
          ||dd           t          ||dd           d S )Nr   rn   r  r  i r  r  )r6   r\  r@   r  AssertionErrorr   rK   )r   r   r  
res_sanitys       r0   test_df_cutoffz#TestStudentizedRange.test_df_cutoffG  s    %))!R88,00B>>
,00B>>
nosJd	, 	, 	, 	,
JTEEEE%))!R88,00B>>
,00B>>
nosJd	, 	, 	, 	,
JTEEEEEEr2   c                     d\  }}}t           j                            |||          }t          |dd           |dk    sJ d S )N)gaRA@r   iS  r   r  r   )r6   r\  rg  r   )r   r_  rD   r  r?  s        r0   test_clippingz"TestStudentizedRange.test_clipping\  sO     .1a#&&q!Q//15))))Avvvvvvr2   )1r#  r$  r%  q05q01q001rt   rc  qspsr   vskslistr   r%   r   r_datar`  r   r  r  re  ospathdirnamer  path_prefixrelative_pathopenro  filejsonr
  pregenerated_datar  rp  rt  xfail_on_32bitrx  r{  r  r  r  r  r  r  r  r  r8   r2   r0   rY  rY    sx       ' ' 'C' ' 'C( ( (D 
c4(	)	)B			B
QBRV	$B	B4GGBB'',,--D
 	*(	
Arv()	
Arv()	
B)*F: : : [: : : '//(++K<M	bgll;66	<	< ,%DIdOO, , , , , , , , , , , , , , , [],=j,IJJ8 8 KJ8 [],=j,IJJ8 8 KJ8 [[ MNN[],=m,LMM8 8 NM ON 8# # # [< < < [_f55$ $ 65$ [[ MNNC C ON C [: : :	? 	? 	?F F F*    s   C11C58C5rY  c                  ,   t          t          j                            d          ddd           t          t          j                            d          ddd           t          t          j                            dd	d
          ddd           d S )Ng2g?rn   test_540_567)r  ri  g2gk?g;B.?gͣh?gHŎ*?r;   g.y?)r   r6   rE  rK   r8   r2   r0   r  r  f  s    
}557J "N< < < <
}557K "N< < < <
}.-; ' = =+ "N< < < < < <r2   c                  F    t           j                            d           d S )Nr  r  )r6   _continuous_distns	gamma_genr8   r2   r0   test_regression_ticket_1316r  r  s$     
&&G&44444r2   c                  d    t          t          j                            dd          dd           d S )Nr}   r>   rx   r  r  r8   r2   r0   test_regression_ticket_1326r  x  s*    
sA..R88888r2   c            	         t          j        ddd          } t          j        d          5  dddt          j        dgdgdgg          fD ]{}t          j                            | |          }t          |dk                                               t          t          j	        |                                                      |t          j        dgdgd	gg          }t          j                            | |          }d d d            n# 1 swxY w Y   t          t          j	        |                                                      t          |d
         dk                                               t          |d         dk                                               t          |d         dk    
                                           t          |d         dk    
                                           d S )N      r  rm   r  r  r}   rr  r  r|   r   r   r>   )rt   r  r  r   r6   r(   r@   r	   r  rs  any)rG   rr  r?  s      r0   test_regression_tukey_lambdar  }  s    	D#s##A	H	%	%	% * *tRXvutf.E%F%FG 	( 	(C!%%a--AQ#XNN$$%%%RXa[[__&&&''''hu-..!!!S))* * * * * * * * * * * * * * * RXa[[__QqTS[   QqTS[   QqTS[   QqTS[     s   CDDDzdocstrings strippedr  c                      t          dt          j        j        v           t          dt          j        j        v            d S )Nzpdf(x, mu, loc=0, scale=1)zpmf(x,)r	   r6   r  rl  r8   r2   r0   test_regression_ticket_1421r    s9    (0EEFFFH--.....r2   c            	      	   t          j        d          5  t          t          j        t          j                            dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j        	                    dt           j                                       t          t          j        t          j        
                    dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j                            dt           j                                       t          t          j        t          j                            t           j        d                               t          t          j        t          j                            t           j        d                               t          t          j        t          j        	                    t           j        d                               t          t          j        t          j        
                    t           j        d                               t          t          j        t          j                            t           j        d                               t          t          j        t          j                            t           j        d                               t          t          j        t          j                            t           j        d                               t          t          j        t          j                            t           j        d                               d d d            d S # 1 swxY w Y   d S )Nr  r  r   rx   )rt   r  r	   rs  r6   r  r~  r   rK   r%  rg  r@   r   r]  rl  rR  r  rz  r8   r2   r0    test_nan_arguments_gh_issue_1362r    s)   	X	&	&	& < <262233444Q//00111q"&1122333Arv..//000Q//00111262233444Q//00111Q//00111//<<==>>>,,RVS99::;;;..rvs;;<<===++BFC8899:::,,RVS99::;;;//<<==>>>,,RVS99::;;;,,RVS99::;;;#< < < < < < < < < < < < < < < < < <s   RR44R8;R8c                     t           j                            d           t          j        g d          } t          j                            | d         | d         | d         d          }t          j        d	          5  t          j        t          j                            |d
                    }d d d            n# 1 swxY w Y   t          || d           t          j        t          j                            |dd                    }t          || d           t          j        t          j                            |dd                    }t          || d           t          j        t          j                            |dd                    }t          || d           t           j                            d           d}d}t          j
                            |dd          }t          j        t          j
                            ||                    }t          j        |t          j        ||z
  dz                                            g          }t          ||d           d S )Ni.  )r5  r}   rx   r   r   r>   ro   r   r  r  r}   r?  r  rx   )r   r<   r5  )r   r<   r  r  r|   re  )rt   r   r   r   r6   r   r   r  r   r   rE  r  rD  )truerG   r  r<   r   ri   s         r0   test_frozen_fit_ticket_1536r    sL   INN48OOO$$D$q'47DG#>>A	H	%	%	% 9 9%-++AB+77889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 a0000Xem''#1'==>>Fa0000Xem''d'::;;Fa0000Xem''d';;<<Fa0000INN4
CD
sBS))AXejnnQTn2233Fxrw4!'9'9';';<<=>>H!444444s    4C  CCc                      t           j                            d           t          j                            d          } t          j                            |           }d}t          ||d           d S )Ni	 ro   r   )g
ףp=
?gʡE?r   r  )rt   r   r   r6   r  r   r   r   )r   r  ri   s      r0   test_regression_ticket_1530r    sc    INN6
,



$
$C\c""FH!444444r2   c                     t           j                            d           t           j                            d          } dD ]K}t          j                            | |z             \  }}t          ||d           t          |dd           Ld S )Nr   r  )r  g   6Ar  r   r  )rt   r   r   r  r6   r  r   r   )rG   offsetr<   r=   s       r0   test_gh_pr_4806r    s    INN4
	A' . .\%%a&j11
UV#....s-----. .r2   c                  t   t           j                             dd          } dt          j        dz  dz  ddg}t	          | |d           t           j                             d	d          } g d
}t	          | |d           t           j                             dd          } g d}t	          | |d           d S )Nr   r  r  r>   r   r  rn   r  g
ףp=
	@)r   gz5v?r   gRTgQ?)r   gNg @r   gJFٻ)r6   r(   rt   rB   r   )r  ri   s     r0   "test_tukeylambda_stats_ticket_1545r    s     
		 	 F	 	3	3B25!8A:q#&HHb1111			 	 v	 	6	6BCCCHHb1111			 	 v	 	6	6BCCCHHb111111r2   c                      t          t          j        t          j                            dd                               d S )Nr  r  )r	   rt   r  r6   r  rz  r8   r2   r0   test_poisson_logpmf_ticket_1436r    s2    BK,,T3778899999r2   c                      ddg} | D ]6\  }}t           j                             |d          }t          ||           7dS )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))
    )r  )rx   r  r}   r  )r|   )gUUUUUU?r*  g^cQg333333r  r  N)r6   r  r   )casesr.   
exact_mvskr  s       r0   test_powerlaw_statsr    s[    > ,=?E 4 4:~##Av#66!$
33334 4r2   c                  f    t           j                            dd          } t          | d           d S )Nr   r   r}   )r6   r  r   r   r?  s    r0   test_powerlaw_edger    s/    a##ACr2   c                  x   t           j                            dd          } t          | d           t           j                            dg d          } t          | t
          j        ddg           t           j                            dg d          } t          | t
          j        dt
          j         g           d S )Nr   r   r}   )r5  r  r  r  )r6   r  r   r   r@   rt   r   r  s    r0   test_exponpow_edger     s    a##AC 	1...//ARVS#&'''a!1!1!122ARVS26'*+++++r2   c                  h    t           j                            ddd          } t          | d           d S )Nr   r   r  )r6   gengammar@   r   r  s    r0   test_gengamma_edger  ,  s1    1a##ACr2   c                      t           j                            ddd          } | dk    sJ t           j                            ddd          }|t          j         k    sJ d S )Nr   r   r  r}   )r6   r  r@   r   rt   r   )r?  r  s     r0   !test_gengamma_endpoint_with_neg_cr  2  sV    1a$$A8888>  Ar**DBF7??????r2   c                      t           j                            ddd          } t          | d           t           j                            ddd          } t          | d           d S )Nr  r  r  g>rn   gqq?)r6   r  rR  r   r  s    r0   test_gengamma_munpr  9  sZ    Rb))A:&&&RR((A6"""""r2   c                     t          j        g d          } t          j        d          5  t                      5 }|                    t
          d           |                    t          d           t          j        	                    |            d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)0g>X*ȿgPix#?g=?g&^?goϿg뵏˿gO_ZQ?g\?g~?g)/?gRܶ?g핚οgH߃[g?gS"gm_ пg7k?g#BF?gKU=?gT?gZg[Qs?g2?g6Hwƭ8?g*-
?ga]?g'?g޻?g?J_ ?g~sw?g0FfͿgg"@ӿg?%:˿g&zM?g?Gg	F?g~,g HgW2ҿgTzy?gwmǿg @gW=ֿg	't?g".v1glg.Hꮿg,?g*˿r  r  z:The maximum number of subdivisions .50. has been achieved.z-floating point number truncated to an integer)
rt   r   r  r   rc   r   rC  r6   r  r   )r(  rz  s     r0   test_ksone_fit_freezer  B  sK   
		/ 		/ 		/
	0 
	0A 
X	&	&	&     	CJJ)#$ $ $ JJ~FH H HKOOA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s5   B5ABB5B!	!B5$B!	%B55B9<B9c            	      r   t          j        t          t          ddd                               } g d}t	          t          j                                        |           |d           t	          t          j                                        | dz             j        |d           t
          j                            | dz             d	z  j	        }t          j
        t
          j                            |           t
          j                            |           z
            }t	          ||d	           d S )
Nr   rZ  re  )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/MrQ  r   y        +=y        |=r  )rt   r  r  r  r   r6   rE  r~  realimagr   r   )rG   ri   derivderiv_expecteds       r0   test_norm_logcdfr  Z  s
    
Dq#q))**	+	++A0 0 0H EJLL''**H4@@@@ EJLL''F
338(NNNN Zq6z**506EVEJ--a005:3D3DQ3G3GGHHNE>666666r2   c                  "   t          j        g d          } t          j        g d          }t          j                            |           }t          ||d           t          j                            |          }t          || d           d S )N)r   r  rx   rl   rz   r
  )g~V1?g|N?gba"?g܄4ťY?r.  g$%+Ir  r   r   )rt   r   r6   r   rK   r   r]  )rG   ri   r  r`  s       r0   test_levy_cdf_ppfr  s  s    
33344A x 1 1 1 2 2H 	
qAAxe,,,, 
	!	!BB&&&&&&r2   c                      t          j        g d          } t          j        g d          }t          j                            |           }t          ||d           d S )N)  4&kCg(,* EgMraB3Ggd~QJ)gep[>g}XEQ=gѭEG<g?_%~:r,  r   )rt   r   r6   r   rg  r   rG   ri   r  s      r0   test_levy_sfr    sh    
)))**Ax 0 0 0 1 1H 	
aAAxe,,,,,,r2   zp, expected_isf))r+  gj1e2H)rQ  g6C)g      ?gnE@)r   g!^x1?)r  gZ?)g   ?g:}!Nu?c                 h    t           j                            |           }t          ||d           d S )Nr  r   )r6   r   rl  r   )r?  expected_isfrG   s      r0   test_levy_isfr    s2     	
qAA|%000000r2   c                      t          j        g d          } t          j        g d          }t          j                            |           }t          ||d           d S )N)gMbg{Gzg{Gztg~jtX)g#]<gOul2;gޢا6g̅7=!r   r   )rt   r   r6   r   rg  r   r  s      r0   test_levy_l_sfr    sh    
11122Ax 1 1 1 2 2H 	AAxe,,,,,,r2   c                      t          j        g d          } t          j                            |           }t          j                            |          }t          || d           d S )N)g [n<r5  r  gvIh%,=r   )rt   r   r6   r   rl  rg  r   )r?  rG   r_  s      r0   test_levy_l_isfr    s[    
&&&''AAAAqu%%%%%%r2   c                     t          t          j                            dddd          d           t          t          j                            dddd          d           t          t          j                            dddd          d           t          t          j                            d	d
d
d          d           t          t          j                            dd
d
d          d           d S )Nr
  i i  i  )g      c@g     h@g=
ףp=?Gz?)g      c@g     h@{Gz?ro   r  r   )r   r6   r  r  r]  r8   r2   r0   test_hypergeom_interval_1802r    s    ))#vucBB! ! !))$sCC! ! ! ))#vucBB! ! ! $$T3Q77;;;$$QS!44a88888r2   c                     t           j                            d           t          j        ddd          } t	          t
          t          j        j        | ddd	           t	          t
          t          j        j        | ddd
d	           t	          t
          t          j        j        | ddd
d           t	          t
          t          j        j        | dddd           t	          t
          t          j        j	        dddd           t	          t
          t          j        j
        | dddd           t	          t
          t          j        j        | dddd           t	          t
          t          j        j        dddd           t	          t
          t          j        j        dddd           t	          t
          t          j        j        | dddd           t          j                            | dd           t          j                            | ddd
           t          j                            dd           t          j                            ddd
           t          j                            ddd
d           t          j        	                    ddd
d           t          j                            t          j        	                    dd          d           t          j                            | dd	           t	          t
          t          j        j        | ddd
           t	          t
          t          j        j        | ddd
	           t	          t
          t          j        j        | dd	           t	          t
          t          j        j        | dd
dd	           t	          t
          t          j        j        | dd
ddd           t	          t
          t          j        j        | dd
ddd	           t	          t
          t          j        j        | dd
dddd	  	         t          j                            | dd
ddd           d S )Nr   rl   rP  r   numr>   r   r  r  re  rx   r;   r|   r  rs  r   r  rD  )rt   r   r   r  r  r   r6   r  r@   r   rK   r]  rX   r   r  r  rR  r  r  r   s    r0   test_distribution_too_many_argsr    sX   INN4 	C!$$$A)U[_aA3????)U[_aAqcBBBB)U[_aAq!<<<)U[_aA3cJJJJ)U[_b!CHHHH)U[_aQCsKKKK)U[_aQCsKKKK)U[.A3cJJJJ)U[0"aSLLLL)U[_aQCsKKKK 
KOOAq!	KOOAq!Q	Kb!	Kb!Q	Kb!Q%%%	KOOB1a   	KOOEKOOBQO//444 
JNN1aQN)UZ^Q1a888)UZ^Q1!<<<< )U[_a<<<<)U_0!Q1#FFFF)U_0!Q1c3GGG)UY]Aq!QsCCCC)UY]Aq!Q3cJJJJ	IMM!Q1a%%%%%r2   r  c                      t           j                            t          j        ddd          dd          } t           j                            t          j        ddd          dd          }t          | |dd           d S )	Nr  r  r  r>   gYZ@r
  r   r0  )r6   ncx2rK   rt   r   _cdfvecr   r  s     r0   test_ncx2_tails_ticket_955r    sm     	
ryR--q.AAA
29RS111nEEAAqt!,,,,,,r2   c            
      *   t          j                    5  t          j        dt                     t	          t
          j                            dt          j	        dd          d          d           t
          j        
                    dt          j	        dd          d          } d d d            n# 1 swxY w Y   t          t          j        |                                                      t          j                    5  t          j        dt                     t	          t
          j                            ddd	          d           t          t
          j        
                    ddd	          d
           d d d            d S # 1 swxY w Y   d S )Nr<  r   iT  i^  r>   r   r  r   r  gsq6)r@  rA  rB  rC  r   r6   r  r@   rt   r   r   r	   r  r  r   )logvals    r0   test_ncx2_tails_pdfr    s    
	 	"	" > >g~666UZ^^Aryc':':A>>BBB""1biS&9&91==> > > > > > > > > > > > > > >
 BK##%%&&& 
	 	"	" M Mg~666UZ^^E1b111555
))%B779KLLLM M M M M M M M M M M M M M M M M Ms%   BB11B58B5A9FFFzmethod, expectedrK   gu%>g	;Q=r@   g<x>gRz\R>r   gʎK$/gԆX1r]  gfHu@ge:@c                 z     t          t          j        |           dddgd          }t          ||d           d S )Nrl   r   re  rn   )r  rp  r   r   )r   r6   r  r   )r:  ri   r  s      r0   test_ncx2_zero_ncr    sE      )WUZ((!QB???FFH5111111r2   c                      t           j                            ddd          } t           j                            dd          }t	          | |d           d S )Nrn   r   r   )rp  r  r   )rp  r   r   r   )r6   r  r   r  r   )r  ri   s     r0   test_ncx2_zero_nc_rvsr  '  sO     Z^^raa^88Fz~~!~44HFH5111111r2   c                      dt          j        dd          z  } t          t          j                            dd|           d           d S )Nrn   r   r  r   rp  r  r   )rt   r   r   r6   r  rK   )r  s    r0   test_ncx2_gh12731r 	  /  sD     
RYq"	Bb11155555r2   c                      t          j        g d          } d\  }}t          j                            | ||          }g d}t          ||d           d S )N)gю]	@gj%@gb	y/7@g H@gIZ@gXl@g'/2?8@gݰmА@gU@gy]`'@g@g*\@g48c@)r  gh ?8@r  )r  r  r  r  r  g?gy[qD?r}   r}   r}   r}   r}   r}   rq  r   )rt   r   r6   r  rg  r   )rG   nurr  rg  sf_expecteds        r0   test_ncx2_gh8665r	  6  sv     	 " " " 	# 	#A
 %GB	qRC	(	(B' ' 'K
 B%000000r2   c            	         d} d}t          j        t          j                            d| |          t          j                            d| |          d          }t          j                            || |          }t          j                            || |z   t          j        d| z  d|z  z                       }t          ||d	
           d S )Ni,  i  r
  r  r  r  r>   re  r  r   )	rt   r  r6   r  r]  r@   rE  r  r   )rp  r  rG   ncx2_pdfgauss_approxs        r0   test_ncx2_gh11777r	  R  s    
 
B	B
EJNN5"b11JNN5"b11u	> 	> 	>Az~~aR((H:>>!R"Wbga"fq2vo.F.FGGLHl666666r2   c                  x    t          j        dd          } t          |                     d          d           d S )Nr   r   rD  )r6   foldnormr   rK   )r  s    r0   test_foldnorm_zeror	  a  s6    		#	#	#BAr2   c                     t           j                             g ddd          } t           j                             ddgdd          }t          d |D                       }t          ||            t           j                             g d          } t           j                             ddg          }t          d	 |D                       }t          ||            d S )
N)r}   rx   r  r   rx   r  c              3   R   K   | ]"}t           j        t           j        |f         V  #d S rr   rt   r  r   rd  s     r0   r  z-test_stats_shapes_argcheck.<locals>.<genexpr>l  s/      88q"%	*888888r2   )r>   r  r  r>   r  c              3   R   K   | ]"}t           j        |t           j        f         V  #d S rr   r	  rd  s     r0   r  z-test_stats_shapes_argcheck.<locals>.<genexpr>r  s/      88q"%26	*888888r2   )r6   r   tupler   r   )mv3mv2mv2_augmenteds      r0   test_stats_shapes_argcheckr	  g  s     .

3
7
7C
.

Sz1c
2
2C88C88888M$$$ -

lll
+
+C
-

q#h
'
'C88C88888M$$$$$r2   c                       e Zd Zd ZdS )
_distr_genc                     dS Nr  r8   r   rG   r.   s      r0   _pdfz_distr_gen._pdf}  s    rr2   Nr#  r$  r%  r	  r8   r2   r0   r	  r	  |  s#            r2   r	  c                       e Zd Zd ZdS )_distr2_genc                     d|z  |z   S r	  r8   r	  s      r0   _cdfz_distr2_gen._cdf      Avzr2   N)r#  r$  r%  r	  r8   r2   r0   r	  r	    s#            r2   r	  c                       e Zd Zd Zd ZdS )_distr3_genc                     ||z   S rr   r8   r   rG   r.   r/   s       r0   r	  z_distr3_gen._pdf  s    1ur2   c                     d|z  |z   S r	  r8   r	  s      r0   r	  z_distr3_gen._cdf  s     Avzr2   Nr#  r$  r%  r	  r	  r8   r2   r0   r"	  r"	    s2              r2   r"	  c                       e Zd Zd Zd ZdS )_distr6_genc                     ||z  |z   S rr   r8   r$	  s       r0   r	  z_distr6_gen._pdf  s    sQwr2   c                     d|z  |z   S r	  r8   r$	  s       r0   r	  z_distr6_gen._cdf  r 	  r2   Nr&	  r8   r2   r0   r(	  r(	    s2              r2   r(	  c                   t    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd ZdS )TestSubclassingExplicitShapesc                 r    t          dd          }t          |                    dd          d           d S )Ndummyr.   r  r   r   rB  r  r	  r   r@   r   dummy_distrs     r0   test_correct_shapesz1TestSubclassingExplicitShapes.test_correct_shapes  s:     gc:::[__Q!_,,b11111r2   c                 v    t          dd          }t          t          |j        dfi t	          d           d S )Nr.	  Ar/	  r   rB  )r	  r  r   r@   r   r1	  s     r0   test_wrong_shapes_1z1TestSubclassingExplicitShapes.test_wrong_shapes_1  s>     gc:::i!AAtayyyAAAAAr2   c                 ~    t          dd          }t          ddd          }t          t          |j        dfi | d S )Nr.	  za, b, cr/	  r   r>   r   r  )r	  r   r  r   r@   )r   r2	  r   s      r0   test_wrong_shapes_2z1TestSubclassingExplicitShapes.test_wrong_shapes_2  sJ     gi@@@Q!q!!!i!;;s;;;;;r2   c                 X    t          dd          }t          t          t          fi | d S )Nr.	  r  r/	  )r   r  r   r	  r   r   s     r0   test_shapes_stringz0TestSubclassingExplicitShapes.test_shapes_string  s2    +++i33s33333r2   c                 X    t          dd          }t          t          t          fi | d S )Nr.	  z(!)r/	  r   r  SyntaxErrorr	  r:	  s     r0   test_shapes_identifiers_1z7TestSubclassingExplicitShapes.test_shapes_identifiers_1  s2    ...k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nr.	  4chanr/	  r=	  r:	  s     r0   test_shapes_identifiers_2z7TestSubclassingExplicitShapes.test_shapes_identifiers_2  2    000k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nr.	  zm(fti)r/	  r=	  r:	  s     r0   test_shapes_identifiers_3z7TestSubclassingExplicitShapes.test_shapes_identifiers_3  s2    111k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nr.	  za=2r/	  r=	  r:	  s     r0   "test_shapes_identifiers_nodefaultsz@TestSubclassingExplicitShapes.test_shapes_identifiers_nodefaults  s2    ...k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nr.	  z*argsr/	  r=	  r:	  s     r0   test_shapes_argsz.TestSubclassingExplicitShapes.test_shapes_args  rC	  r2   c                 X    t          dd          }t          t          t          fi | d S )Nr.	  z**kwargsr/	  r=	  r:	  s     r0   test_shapes_kwargsz0TestSubclassingExplicitShapes.test_shapes_kwargs  s2    
333k:5555555r2   c                 X    t          dd          }t          t          t          fi | d S )Nr.	  za, b, c, lambdar/	  r=	  r:	  s     r0   test_shapes_keywordsz2TestSubclassingExplicitShapes.test_shapes_keywords  s3    (9:::k:5555555r2   c                      G d dt           j                  } |d          }t          |                    dd          t           j                            d          dz             d S )Nc                       e Zd Zd ZdS )FTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_genc                 F    t           j                            |          |z  S rr   r6   rE  r	  r	  s      r0   r	  zKTestSubclassingExplicitShapes.test_shapes_signature.<locals>._dist_gen._pdf      zq))A--r2   Nr	  r8   r2   r0   	_dist_genrP	    #        . . . . .r2   rT	  r.   r   rx   r>   rB  r6   rV   r   r@   rE  r   rT	  rR   s      r0   test_shapes_signaturez3TestSubclassingExplicitShapes.test_shapes_signature  s|    	. 	. 	. 	. 	.+ 	. 	. 	. y$$$TXXcQX'')<)<Q)>?????r2   c                      G d dt           j                  } |d          }t          t          |j        dfi t          dd           d S )	Nc                       e Zd Zd ZdS )STestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_genc                 F    t           j                            |          |z  S rr   rR	  r	  s      r0   r	  zXTestSubclassingExplicitShapes.test_shapes_signature_inconsistent.<locals>._dist_gen._pdf  rS	  r2   Nr	  r8   r2   r0   rT	  r\	    rU	  r2   rT	  r  rV	  rx   r   r>   r  )r6   rV   r  r   r@   r   rX	  s      r0   "test_shapes_signature_inconsistentz@TestSubclassingExplicitShapes.test_shapes_signature_inconsistent  so    	. 	. 	. 	. 	.+ 	. 	. 	. y'''i3AA$a...AAAAAr2   c                     G d dt           j                  } |d          }t          |                    dd          t           j                            d          dz             t          |                    dd          t           j                            d          dz             t          t          |j        dfi t          d           d S )	Nc                       e Zd Zd ZdS )?TestSubclassingExplicitShapes.test_star_args.<locals>._dist_genc                 V    |d         }t           j                            |          |z  S Nr   rR	  )r   rG   r   extra_kwargs       r0   r	  zDTestSubclassingExplicitShapes.test_star_args.<locals>._dist_gen._pdf  s$    "1gzq))K77r2   Nr	  r8   r2   r0   rT	  ra	    s#        8 8 8 8 8r2   rT	  rd	  rV	  rx   !   rd	  )xxx)r6   rV   r   r@   rE  r  r   r   rX	  s      r0   test_star_argsz,TestSubclassingExplicitShapes.test_star_args  s    	8 	8 	8 	8 	8+ 	8 	8 	8
 y...TXXcrX22EJNN34G4G4JKKKTXXc2&&
s(;(;B(>???i3??$2,,,?????r2   c                 p    G d dt           j                  } |d          }t          |                    ddd          t           j                            d          dz  dz              t          |                    ddd          t           j                            d          dz  dz              d S )	Nc                       e Zd Zd ZdS )ATestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_genc                 \    |d         }t           j                            |          |z  |z   S rc	  rR	  )r   rG   r  r   rd	  s        r0   r	  zFTestSubclassingExplicitShapes.test_star_args_2.<locals>._dist_gen._pdf  s)    "1gzq))K7&@@r2   Nr	  r8   r2   r0   rT	  rk	    s(        A A A A Ar2   rT	  zoffset, extra_kwargrV	  rx   o   re	  )r  rd	  rW	  rX	  s      r0   test_star_args_2z.TestSubclassingExplicitShapes.test_star_args_2  s    	A 	A 	A 	A 	A+ 	A 	A 	A
 y 5666TXXc#2X>>Z^^C((+c1	3 	3 	3TXXc3++Z^^C((+c1	3 	3 	3 	3 	3r2   c                      G d dt           j                  } |d          }t          |                    dd          t           j                            d                     d S )Nc                       e Zd Zd ZdS )BTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_genc                 r    |                     dd          }t          j                            |          |z  S )Nrd	  r   )popr6   rE  r	  )r   rG   r   kwargsrd	  s        r0   r	  zGTestSubclassingExplicitShapes.test_extra_kwarg.<locals>._distr_gen._pdf  s0     %jj::zq))K77r2   Nr	  r8   r2   r0   r	  rq	    s#        8 8 8 8 8r2   r	  rd	  rV	  r   r   rf	  rW	  )r   r	  rR   s      r0   test_extra_kwargz.TestSubclassingExplicitShapes.test_extra_kwarg  sw    	8 	8 	8 	8 	8, 	8 	8 	8 z///TXXaQX//1B1BCCCCCr2   c                      G d dt           j                  } |d          }t          |                    d          t           j                            d                     d S )Nc                       e Zd Zd ZdS )DTestSubclassingExplicitShapes.shapes_empty_string.<locals>._dist_genc                 @    t           j                            |          S rr   )r6   rE  r@   rm  s     r0   r	  zITestSubclassingExplicitShapes.shapes_empty_string.<locals>._dist_gen._pdf
  s    z~~a(((r2   Nr	  r8   r2   r0   rT	  rx	  	  s#        ) ) ) ) )r2   rT	   rV	  rx   rW	  rX	  s      r0   shapes_empty_stringz1TestSubclassingExplicitShapes.shapes_empty_string  sq    	) 	) 	) 	) 	)+ 	) 	) 	) y###TXXc]]EJNN3$7$788888r2   N)r#  r$  r%  r3	  r6	  r8	  r;	  r?	  rB	  rE	  rG	  rI	  rK	  rM	  rY	  r^	  rh	  rn	  ru	  r{	  r8   r2   r0   r,	  r,	    s"       2 2 2B B B< < <
4 4 4
6 6 6
6 6 66 6 66 6 66 6 66 6 66 6 6
@ @ @B B B@ @ @3 3 3D D D9 9 9 9 9r2   r,	  c                       e Zd Zd Zd Zej                            ed          d             Z	ej                            ed          d             Z
d Zd Zd	 Zd
 ZdS )TestSubclassingNoShapesc                 p    t          d          }t          |                    dd          d           d S )Nr.	  r  r   rB  r  r0	  r1	  s     r0   test_only__pdfz&TestSubclassingNoShapes.test_only__pdf  s8     g...[__Q!_,,b11111r2   c                 p    t          d          }t          |                    dd          d           d S )Nr.	  r  r   rB  )r	  r   r@   r1	  s     r0   test_only__cdfz&TestSubclassingNoShapes.test_only__cdf  s8    !w///KOOAO33Q77777r2   docstring strippedr  c                     t          d          }t          |j        d           t          |j        d           t	          j        d|j                  }t          t          |          dk               d S )Nr.	  r  r   r.   zlogpdf\(x, a, loc=0, scale=1\))	r	  r   numargsr   refindallrl  r	   r   r   r2	  r   s      r0   test_signature_inspectionz1TestSubclassingNoShapes.test_signature_inspection  sr     !g...[(!,,,['---j:$,. .CAr2   c                     t          d          }t          |j        d           t          |j        d           t	          j        d|j                  }t          t          |          dk               d S )Nr.	  r  r>   r  z!logpdf\(x, a, b, loc=0, scale=1\)r   )	r(	  r   r	  r   r	  r	  rl  r	   r   r	  s      r0   test_signature_inspection_2argsz7TestSubclassingNoShapes.test_signature_inspection_2args(  sr     "w///[(!,,,['000j=$,. .CAr2   c                 >    t          t          t          d           d S )Nr.	  r  )r  r   r"	  r   s    r0   0test_signature_inspection_2args_incorrect_shapeszHTestSubclassingNoShapes.test_signature_inspection_2args_incorrect_shapes2  s    i7;;;;;;r2   c                 x     G d dt           j                  }t          t          |fi t	          d           d S )Nc                       e Zd ZddZdS )>TestSubclassingNoShapes.test_defaults_raise.<locals>._dist_genr  c                     dS r	  r8   r	  s      r0   r	  zCTestSubclassingNoShapes.test_defaults_raise.<locals>._dist_gen._pdf9      rr2   N)r  r	  r8   r2   r0   rT	  r	  8  s(             r2   rT	  r.	  r  r6   rV   r  r   r   r   rT	  s     r0   test_defaults_raisez+TestSubclassingNoShapes.test_defaults_raise6  Z    	 	 	 	 	+ 	 	 	 	iAAd.@.@.@AAAAAr2   c                 x     G d dt           j                  }t          t          |fi t	          d           d S )Nc                       e Zd Zd ZdS )>TestSubclassingNoShapes.test_starargs_raise.<locals>._dist_genc                     dS r	  r8   )r   rG   r.   r   s       r0   r	  zCTestSubclassingNoShapes.test_starargs_raise.<locals>._dist_gen._pdf@  r	  r2   Nr	  r8   r2   r0   rT	  r	  ?  #            r2   rT	  r.	  r  r	  r	  s     r0   test_starargs_raisez+TestSubclassingNoShapes.test_starargs_raise=  r	  r2   c                 x     G d dt           j                  }t          t          |fi t	          d           d S )Nc                       e Zd Zd ZdS )<TestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_genc                     dS r	  r8   )r   rG   r.   rt	  s       r0   r	  zATestSubclassingNoShapes.test_kwargs_raise.<locals>._dist_gen._pdfG  r	  r2   Nr	  r8   r2   r0   rT	  r	  F  r	  r2   rT	  r.	  r  r	  r	  s     r0   test_kwargs_raisez)TestSubclassingNoShapes.test_kwargs_raiseD  r	  r2   N)r#  r$  r%  r	  r	  r   r  r  DOCSTRINGS_STRIPPEDr	  r	  r	  r	  r	  r	  r8   r2   r0   r}	  r}	    s        2 2 28 8 8
 [+4HII  JI [+4HII  JI< < <B B BB B BB B B B Br2   r}	  r	  c                      g d} t           j        D ]k}t          t           |          }t          |t           j        t           j        f          r.| D ]+}t          t          j        ||j	                  d u            ,ld S )N)z,\s*,z\(\s*,z^\s*:)
r6   rb   r   r
  rU   rV   r	   r	  searchrl  )badonesdistnamerR   regexs       r0   r  r  L  s    ---GM @ @uh''dU.0CDEE 	@  @ @	%66$>????	@ @r2   c                      t          t          j                            t          j        dd          d           t          t          j                            t          j        dd          d           d S )Nrn   r|  r   r  rl   r   )r   r6   r  rg  rt   r   r  r	  r8   r2   r0   test_infinite_inputr	  V  sR    ((R88!<<<
377;;;;;r2   c                      t           j                            t           j                            dd          d          } t	          | d           d S Ng0.++r   )r6   lomaxr]  rK   r   r  s    r0   test_lomax_accuracyr	  [  s=    22A66AAvr2   c                      t           j                            t           j                            dd          d          } t	          | d           d S r	  )r6   gompertzr]  rK   r   r  s    r0   test_gompertz_accuracyr	  a  sA    5>--fa88!<<AAvr2   c                      t           j                            t           j                            dd          d          } t	          | d           d S r	  )r6   
truncexponr]  rK   r   r  s    r0   test_truncexpon_accuracyr	  g  sC    U-11&!<<a@@AAvr2   c                      t           j                            t           j                            dd          d          } t	          | dd           d S )Nr  r   r  r  r  )r6   r   rl  rg  r   r  s    r0   test_rayleigh_accuracyr	  m  sF    5>,,Q22A66A3++++++r2   c                     t          j        d          5 } t          j        d           t          j                            dd           t          j                            dd           t          j                            dd           t          j                            t          j
         d           t          |           }t          |d           ddd           dS # 1 swxY w Y   dS )zregression test for gh-6219T)rr  alwaysrx   r   r}   N)r@  rA  rB  r6   r  rK   r@   r]  r   rt   r   r   r   )r  number_of_warnings_throwns     r0    test_genextreme_give_no_warningsr	  s  s    
	 	-	-	- 3h'''R###R###R###---$'FF!.2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   B?C""C&)C&c                     d} t           j                            d          }t          |d| z  dz   d           t           j                            d          }t          || dz   d           t           j                            d          }t	          |d           t           j                            d	d
          }t          || dz  t          j        d
          z   dz   d           t           j                            d
          }t          |d| z  dz   d           t           j                            d          }t          |d| z  dz   d           d S )Ngox?rr  r>   r   r,  r   r   r  r  rn   rD  r   r  r  r|  )r6   r  rX   r   r   rt   rU  )euler_gammar9  s     r0   test_genextreme_entropyr	    sD   $K  &&AAq}q(u5555  ##AA{QU3333  %%AA  R 00AA{1}rvbzz1A5EBBBB  $$AAr+~)6666  %%AAr+~)666666r2   c                  R   d} t           j                            | d          }t          |d           t           j                            |d          }t          ||            d} t           j                            | d          }t          |d           t           j                            |d          }t          ||            d} t           j                            | d          }t          |d           t           j                            |d          }t          ||            d S )	Ng    חAg      g'b%4gQ@r  gؗҜ;r   g.l6?)r6   r  rg  r   rl  )rG   rF   r7  s      r0   test_genextreme_sf_isfr	    s   2 	AAv&&AA-...				a	(	(BBAAu%%AA()))				a	'	'BBAAq!!AA-...				a	#	#BBr2   c                  l    d} t           j                            | dd          }t          |d           d S )Nr  r>   r   gH&8>)r6   rJ  r]  r   )probr  s     r0   test_burr12_ppf_small_argr	    s9    D|a++H H455555r2   c                     t          j        ddd          dd         } t          j                            | dd          }t          j        g d	          }t          ||d
           t          j                            | dd          }t          j        g d          }t          ||d
           t          j                            | dddd          }t          j        g d          }t          ||d
           t          j                            | dd          }t          j        g d          }t          ||d
           t          j                            | dd          }t          j        g d          }t          ||d
           t          j                            | dddd          }t          j        g d          }t          ||d
           dS )z
    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.
    r  r  rG  Nr  r  r|   )r  r  )gC,d	Ɣ?gH㸘?g5?gM"M#w?gɫs^?g @?gƴ?g@w?ɫs^?|?q ?g C?r	  r	  gJó?g,BV\ۤ?g;?g#ek?g%ǓE?g(Ȍx?g>J>r
  r   r  )g#{`?gdf?g Jq?gSS){?g'	w?uL? T)?cAJ?GTn?R1#?gA]P?r	  r	  r	  r	  gvӢ?gKq?gL?g
	N<!?gAw>rx   )r  r  r<   r=   )g=aO}?gI8?g#T?aW)?ǓI?
J?E?d۳?GTn?8?R1#?kP?g(*T?r	  r	  r	  r	  r	  r	  r	  r	  )gD
)?g:3P?g9?g?S[?r	  gOqx?gD
)?g9?gɫs^?gK?gX?g3<֌?gM+?gyS
c?gI`s?g辜?g{i ?g^0?g?#c?)g%r?gc@v?ghtj}?g(˔^?gHK4U?r	  ğ@ _?y}D?焂Rr/?N?YjhG?a0L?4f?<@?@CH?g	ސF?g5+-#?g?g?q ?r	  )g}'v?r	  g*V?r	  gr/0+?r	  g[8	?r	  gΥ?r	  gY?r	  g#)a?r	  g?̔?r	  g]ؚ?r	  g|c ?r	  )rt   r  r6   crystalballr@   r   r   rK   )r)  
calculatedri   s      r0   test_crystalball_functionr	    s<    	D#r""3B3'A "&&qsc&::Jx & & & ' 'H
 Hju5555 "&&qsc&::Jx 3 3 3 4 4H
 Hju5555 "&&qscs#&NNJx $ $ $ % %H
 Hju5555 "&&qsc&::Jx K K K L LH Hju5555 "&&qsc&::Jx # # # $ $H
 Hju5555 "&&qscs#&NNJx K K K L LH Hju555555r2   c                     t          j        g d          } t          j        g d          }t          j        g d          }t          j                            d| |          }t          ||d           t          j        g d          }t          j        dd	t           j        d
dg          }||z  }t          j                            d| |          }t          ||d           t          j        t           j        t           j        t           j        ddg          }||z  }t          j                            d| |          }	t          ||	d           t          j        t           j        t           j        t           j        t           j        dg          }||z  }
t          j                            d| |          }t          |
|d           t          j        t           j        t           j        t           j        t           j        dg          }||z  }t          j                            d| |          }t          ||d           t          j        t           j        t           j        t           j        t           j        dg          }||z  }t          j                            d| |          }t          ||d           dS )zg
    All values are calculated using the pdf formula and the integrate function
    of Mathematica
    )r|   r  r  r|   r  )r  r  r|   r  r  )r  r  r  r  r  r   r
  r   )gԚh@g[&@gͪ@g2dQ@gn6-@g?ޫV&̿g BgQCRgQF\ jr   g
@gn(@r>   g?Җ)r   gMg'#@re  g('UHr   N)rt   r   r6   r	  rR  r   r   )r  r  expected_0th_momentcalculated_0th_momentrE  r.   expected_1th_momentcalculated_1th_momentexpected_2th_momentcalculated_2th_momentexpected_3th_momentcalculated_3th_momentexpected_4th_momentcalculated_4th_momentexpected_5th_momentcalculated_5th_moments                   r0   !test_crystalball_function_momentsr	    sg    8---..D
***++A (#<#<#<==!-33AtQ??')>UKKKK 8DDDEED
(HbfiCDDAd(!-33AtQ??')>UKKKK
"&"&"&&(;<<Ad(!-33AtQ??')>UKKKK
"&"&"&"&*=>>Ad(!-33AtQ??')>UKKKK
"&"&"&"&':;;Ad(!-33AtQ??')>UKKKK
"&"&"&"&(;<<Ad(!-33AtQ??')>UKKKKKKr2   c                     t          j        dd          } |                                 }d\  }}}t          j        |||          }t          t          |                     |                    |          }t          ||d           d S )Nr>   r   )ir   r  r  r   )	r6   r	  rX   rt   r  r   r   r@   r   )cbrH  re  rf  r  rG   r  s          r0   test_crystalball_entropyr	  G  sy    		1a	 	 B::<<D"IBA
BAAT"&&))__a((DD$T******r2   c                      dd} t          j        g d          }t          j                            |d|           \  }}}t          |dd           |dk    sJ t          |d	d           d
S )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

    r8   r   c                 ,    t          | |||dd          S )Nrq  )r   dispxtolftol)r$   )r   x0r   r	  s       r0   	optimizerz&test_invweibull_fit.<locals>.optimizeri  s    D"4dUKKKKr2   )r   r  r>   ri  rA  r   r  re  r   r  rn   r  @   c   )r   r	  g`?r  r   g [@N)r8   r   )rt   r   r6   r   r   r   )r	  rG   r^  r<   r=   s        r0   test_invweibull_fitr	  R  s    .L L L L 	HHHIIA$((i(HHMAsEAxd++++!8888E8$//////r2   zx, c, expected))r   r  g7Ըh?)r   r  gz]r>)r   g     "@goBڱ9)r  r  g$=cC;c                 j    t           j                            | |          }t          ||d           d S r   )r6   r   rg  r   )rG   r^  ri   r  s       r0   test_invweibull_sfr	  t  s7     ""1a((HHhU333333r2   zp, c, expected)rx   ri  g9?)geK<r   g@c                 j    t           j                            | |          }t          ||d           d S r   )r6   r   rl  r   )r?  r^  ri   r  s       r0   test_invweibull_isfr	    s7     ##Aq))HHhU333333r2   z	df1,df2,x)r  r  r  r  re  r|  rs  rE  r   c                 ^   d}t           j                            || |          }t           j                            || ||          }t	          ||d           t           j                            || |          }t           j                            || ||          }t	          ||d           d S )Nr   r,  r   r  )r6   r  rK   r  r   r@   )df1df2rG   r  expected_cdfcalculated_cdfr   calculated_pdfs           r0   test_ncf_edge_caser
    s     
B7;;q#s++LY]]1c333NL.u==== 7;;q#s++LY]]1c333NL.t<<<<<<r2   c                  l    t           j                            ddd          } t          | dd           d S )Nr>   r  re  g     `E@r,  r   )r6   r  r  r   )r  s    r0   test_ncf_variancer
    s6     		aAAAu5))))))r2   c                      t           j                            dddd          } d}t          |t	          j        | d                     d S )Nr  r  re	  gffffff>@g&4I,)?)decimals)r6   r  rK   r   rt   round)	scipy_val	check_vals     r0   test_ncf_cdf_spotcheckr
    sG    
 	b!R..IIIrx	A>>>?????r2   r  z(On some 32-bit the warning is not raisedc                     t          j        ddd          } d| d<   dt          j        t                    5  t          j        j        | gR  }fd| D             }d d d            n# 1 swxY w Y   t          ||           d S )Nr   r   r  r  )rl   r>   r   r   r   c                 >    g | ]}t          j        j        |gR  S r8   )r6   r  r]  )rQ   xipars     r0   rS   z,test_ncf_ppf_issue_17026.<locals>.<listcomp>  s-    222"eimB%%%%222r2   )	rt   r  r   r  rC  r6   r  r]  r   )rG   r_  q0r
  s      @r0   test_ncf_ppf_issue_17026r
    s     	Aq#AAaD
C	n	%	% 3 3IM!"c"""22222223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Ars   &A**A.1A.c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestHistogramc                 J   t           j                            d           t          j        g dd          }t	          j        |          | _        t          j                            dddd	          }t          j        |d
          }t	          j        |          | _	        d S )Nr   )r   r>   r>   r   r   r   re  re  re  re  r   r   r   r   r   r  r  r  r  rs  rs  rs  r  r  r  r  binsr  ri  r  {   r5  r  )
rt   r   r   	histogramr6   rW   templaterE  r   norm_template)r   r
  r   norm_histograms       r0   r   zTestHistogram.setup_method  s    
	t L "@ "@ "@FGI I I	*955z~~#Su3~OOd444"/??r2   c                    t          j        g d          }t          j        g d          }t          | j                            |          |           t          | j                            d          d           t          | j                            d          d           t          | j                            d          d           t          | j                            d          d           t          j        d	d
d          }t          | j                            |          t          j
                            |dd          d           d S )Nr}   rx   r  r  r|   ri  r  rj  r  rm  r        @rq  r        @r  r        !@r  g      #@)r}   r}   r  r  {Gz?r!
  Q?r"
  {Gz?r#
  r  r  r#
  r#
  r"
  r"
  r"
  r"
  r}   r}   r  r"
  r 
  r  r}   rl  r  r>   rn   r  ri  r;   rl   r   )rt   r   r  r   r
  r@   r   r  r
  r6   rE  )r   r  
pdf_valuesrG   s       r0   r  zTestHistogram.test_pdf  sX    M M M N NZ !I !I !I J J

 	))&11:>>> 	DM--c22H===DM--c22H=== 	DM--c22H===DM--d33X>>>KAr""*..q11
qc==C	I 	I 	I 	I 	I 	Ir2   c                 6   t          j        g d          }t          j        g d          }t          | j                            |          |           t          | j                            |dd                   |dd                    t          j        ddd          }t          | j                            | j                            |                    |           t          j        ddd          }t          | j                            | j                            |                    |           t          j        d	dd
          }t          | j                            |          t          j
                            |dd          d           d S )Nr
  )r}   r}   r}   r  r  r!
  r"
  
ףp=
?Q?{Gz?rj  rx   r  (\?RQ?=
ףp=?)\(?r  r  r  r>   r  r  r  ro   r}   r  rn   ri  r;   rl   r   )rt   r   r  r   r
  rK   r]  r  r
  r6   rE  )r   r  
cdf_valuesrG   s       r0   ra  zTestHistogram.test_cdf_ppf  s    M M M N NZ !M !M !M N N

 	))&11:>>>))*QrT*:;;VAbD\JJJ KS#&&))$-*;*;A*>*>??CCCKS#&&))$-*;*;A*>*>??CCCKAr""*..q11
qc==C	I 	I 	I 	I 	I 	Ir2   c                 :   d}| j                             |d          }t          t          j        |dk               d           t          t          j        |dk              d|z  d	           t          t          j        |d
k              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |dk              d|z  d	           t          t          j        |d k              d!|z  d	           t          t          j        |d"k              d#|z  d	           t          t          j        |d$k              d%|z  d	           t          t          j        |d&k              d|z  d	           t          t          j        |d&k              d|z  d	           t          t          j        |d&k              d           d S )'Nr  r
  r  r  r}   r|   r  r  r   ri  r!
  r  r"
  rl   rj  r&
  r  r'
  rm  r(
  r  rj  r  r
  rx   rq  r  r  r)
  r
  r*
  r  r+
  r  r,
  r 
  r  r  )r
  r   r   rt   r6  r   )r   r  r  s      r0   r  zTestHistogram.test_rvs   s   """<<RVFSL))3///v}--x!|#FFFFv}--x!|#FFFFv}--x!|#FFFFv}--x!|#FFFFv}--x!|#FFFFv}--x!|#FFFFv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHv}--y1}4HHHHRVFSL))3/////r2   c                     t          d          D ]R}t          | j                            |          t	          j        dd                              |          d           Sd S )Nre  r  ri  r  r   )r  r   r
  rR  r6   rE  r  )r   r>  s     r0   r  zTestHistogram.test_munp  sx    q 	G 	GAD.44Q77!JsC0077::G G G G G	G 	Gr2   c                     t          | j                                        t          j                            dd          d           d S )Nr  ri  r;   r  r   )r   r
  rX   r6   rE  r   s    r0   r:  zTestHistogram.test_entropy  sT    *2244
**s#*>>T	K 	K 	K 	K 	K 	Kr2   N)	r#  r$  r%  r   r  ra  r  r  r:  r8   r2   r0   r
  r
    s        @ @ @ I I I4I I I,0 0 0,G G G
K K K K Kr2   r
  c                     ddgg d}} t          j        | |fd          }t          j                            |                    ddg          ddg           |                                dk    sJ t          j        | |fd          }t          j                            |                    ddg          d	           |                                d
k    sJ d}t          t          |          5  t          j        | |f          }|                                d
k    sJ 	 d d d            n# 1 swxY w Y   t          j        | g df          }|                                dk    sJ d S )Nr   )r   r   r  F)r  rx   r  rb  Tg'^P?g     H@z(Bin widths are not constant. Assuming...r   r  )	r6   rW   rt   r  r   r@   r  r
   rC  )countsr
  rR   r  s       r0   test_histogram_non_uniformr3
     s   FLLLDFvtne<<<DJtxxc
33c6]CCC;;==Avtnd;;;DJtxxc
33V<<<;;==F"""" 9G	nG	4	4	4 ' '!64.11{{}}&&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 vyyy122D;;==As   11D//D36D3c                   `    e Zd Zd Zej                            dddg          d             ZdS )TestLogUniformc                 ~   t           j                            d          }t          j        dd          }|                    d|          }t           j                            d          }t          j        dd          }|                    d|          }t          ||           t          j        t          j	        |          d          \  }}d|
                                cxk    r|                                cxk    rd	k    sn J t          j        t          j        |          d
z
            dk    sJ d S )N   0o[ r
  r   r  r  rn   r
  r  iL  r   )rt   r   r   r6   
loguniformr   
reciprocalr   r
  log10r~  r  r   r  )r   r   r  r   rv2r   r  r  s           r0   
test_aliaszTestLogUniform.test_alias8  s    i##K00h00ff%cf22i##K00x11wwEw44c""",rx}}2666adhhjj6666DHHJJ6666$666666vbioo,--333333r2   r:  mler8  c                 D   t           j                            d          }t          j                            ddd|          }t          j                            ||          \  }}}}|dk    sJ t          j                            |d|          \  }}}}|dk    sJ d S )	Nr7
  rl   r   r   r  r<  r>   r9  )rt   r   r   r6   r8
  r   r   )r   r:  r   r   r.   r/   r<   r=   s           r0   test_fit_overridez TestLogUniform.test_fit_overrideI  s     i##K00""33"GG +//F/CC1c5zzzz +//Af/MM1c5zzzzzzr2   N)r#  r$  r%  r<
  r   r  r  r?
  r8   r2   r0   r5
  r5
  7  sU        4 4 4" [Xt}55
 
 65
 
 
r2   r5
  c                      e Zd Zd Zej                            dddgddgddgg          d	             Zej                            d
ddg          d             Zej                            dg d          d             Z	ej                            dg d          d             Z
ej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zd S )!	TestArgusc                     t           j                            ddd          }t          t          j        d                                          |                                d           d S )Nr  r  E  r  re  r  )r6   argusr   r   rD  rm  s     r0   test_argus_rvs_large_chiz"TestArgus.test_argus_rvs_large_chiX  sR    KOOBSsO;;EKOO0022AFFHHaHHHHHHr2   zchi, random_staterl   rC
  r     rj     c                     t           j                            |d|          }t          j        |d|f          \  }}t	          |dk               d S )Nr  r  rD
  r  r6   rD
  r   r  r	   )r   rf  r   rG   r  r?  s         r0   r  zTestArgus.test_rvs]  sN     KOOCcOEE|Aw001Dr2   rf  r  r  c                     t           j                            |dd          }t          j        |d           \  }}t	          |dk               d S )Nr  ie r  c                     dd| dz  z
  dz  z
  S )Nr   r>   r  r8   r   s    r0   r_   z.TestArgus.test_rvs_small_chi.<locals>.<lambda>m  s    a!Q$h#->)> r2   r  rI
  )r   rf  r  r  r?  s        r0   test_rvs_small_chizTestArgus.test_rvs_small_chig  sN    
 KOOCcO??|A>>??1Dr2   zchi, expected_mean))r   g щi?)rn   g.憃?)r  g\paP?)<   g	?)r	  g,6?c                 l    t           j                            |d          }t          ||d           d S )Nr   rD  r   r   )r6   rD
  rD  r   )r   rf  expected_meanr  s       r0   rs  zTestArgus.test_meanq  s9     KS**=u555555r2   zchi, expected_var, rtol))r   gLH'B?r   )rn   go$?r  )r  g
=>rQ  )rM
  g2W>rQ  )r	  gb~P>rQ  c                 l    t           j                            |d          }t          |||           d S )Nr   rD  r   )r6   rD
  r  r   )r   rf  expected_varr   r  s        r0   r  zTestArgus.test_var|  s6     KOOCqO))<d333333r2   zchi, expected, rtol))r  gwM?r,  )rx   gj?r,  )rl   gHEA`!?r,  )rz   gcف>r   )r
  gF=r,  )r  g߹Q#B=r,  )r  g0ޟ<r,  )r  g*W%:r   c                 D    t          t          |          ||           d S r  )r   r"   )r   rf  ri   r   s       r0   test_argus_phi_small_chiz"TestArgus.test_argus_phi_small_chi  s%     	
3======r2   zchi, expected))rx   )g-\/?g+p7c?g5Ϧ\?)r  )g
f?gi{?ٸ?gZ@7?)rl   )gB	?g]?gR{?)rz   )glͅw?g,?g[Z=?)r
  )gz,?g]?gѪ1?)r  )g8<?gE-?gI?)r  )g~7?g7B.?g9?)r  )g;?g9B.?g}5?c                     t          j        g d          }t          t          j                            ||          |d           d S )Nrl   rx   r  r   r   )rt   r   r   r6   rD
  r@   r   rf  ri   rG   s       r0   test_pdf_small_chizTestArgus.test_pdf_small_chi  B     H___%%3//FFFFFFr2   ))rx   )gQ߹?e?grJ,?g򺗄?)r  )gΎd?g?gh?)rl   )g|
o?gvb?g+@?)rz   )g̈́On?ge?gC|[3?)r
  )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                     t          j        g d          }t          t          j                            ||          |d           d S )NrU
  r,  r   )rt   r   r   r6   rD
  rg  rV
  s       r0   test_sf_small_chizTestArgus.test_sf_small_chi  sB     H___%%q#..uEEEEEEr2   ))rx   )g+&?gk?gμm/?)r  )g?CL\f?g^N?g]AͭR?)rl   )ga>$?g;Lf?gaW?)rz   )gx?g 43n?gwY?)r
  )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                     t          j        g d          }t          t          j                            ||          |d           d S )NrU
  rq  r   )rt   r   r   r6   rD
  rK   rV
  s       r0   test_cdf_small_chizTestArgus.test_cdf_small_chi  rX
  r2   ))rx   )gQ)?g6{?rq  )gB`"۹?)g?g8%?r  )rl   )g388?gV%?r   )rz   )g*j?gRS%?r   )r
  )g!|?gZ%?r   )r  )gy[|?gG%?r   )r  )g"3|?gW%?r   )r  )g!3|?gW%?r   c                 l    t           j                             |d          }t          |||           d S )Nr  r  r   )r6   rD
  r   )r   rf  ri   r   r  s        r0   test_stats_small_chizTestArgus.test_stats_small_chi  s9     kT22XD111111r2   N)r#  r$  r%  rE
  r   r  r  r  rL
  rs  r  rS
  rW
  rZ
  r\
  r^
  r8   r2   r0   rA
  rA
  W  s       I I I
 [0#J#J#J3
  
  

 [UT4L11  21 [18 8 89 96 69 96
 [6B B BC C4 4C C4
 [2D D DE E> >E E> [	M 	M 	M	N 	NG G	N 	NG
 [	N 	N 	N	O 	OF F	O 	OF
 [	P 	P 	P	Q 	QG G	Q 	QG
 [	C 	C 	C	D 	D2 2	D 	D2 2 2r2   rA
  c                      e Zd Zd Zd Zej                            d          ej                            dg d          ej                            dg d          ej                            d	g d
          d                                                 Z	ej                            dg d          ej                            d	g d
          d                         Z
dS )TestNakagamic                 n    d}d}t           j                            ||          }t          |d           d S )Nri  r  gM+)r6   nakagamir   r   )r   r	  rG   r  s       r0   r  zTestNakagami.test_logpdf  s<     ~$$Q++122222r2   c                     d}d}t           j                            ||          }t          |dd           t           j                            ||          }t          ||d           d S )Nri  r  g"S+:r   r   )r6   rb
  rg  r   rl  )r   r	  r	  rg  r6  s        r0   r	  zTestNakagami.test_sf_isf  sm     ^r2&&1>>>>^B''BU++++++r2   z+Fit of nakagami not reliable, see gh-10908.r  r	  )rO  ri  r  r<   )r{   rn   #   r=   )r  r   r  c                   
 d
t           j                            
|||d          t           j                                      \  }}}t	          ||d           t	          ||d           t	          ||d           fd}
fd}
fd}	t	           ||||          d	d
           t	           ||||          d	d
           t	           |	|||          d	d
           d S )Nro   9  r   r	  r<   r=   r   r  r   c                     d| z  dz   t          j        d|z
  z            z  d| z  |dz  z  t          j        |z
            z  z   S )Nr  r   r>   rt   r6  )r	  r<   r=   r  s      r0   	dlogl_dnuz(TestNakagami.test_fit.<locals>.dlogl_dnu  sR    UQY"&GcM):";";;d5!8mbfWs]&;&;;< =r2   c                     dt          j        |           z   t          d|           z
  z  dt          j        t          j        |z
  |z                      z  z   t          j        |z
  |z  dz            z
  S )Nr   r   r>   )rt   rU  r   r6  r	  r<   r=   r  r  s      r0   
dlogl_dlocz)TestNakagami.test_fit.<locals>.dlogl_dloc	  sv    RVBZZ)Ar*:*::;rvw}&=>>???@fw}59::; <r2   c                 h    dz  | z  |z  d| z  |dz  z  t          j        |z
  dz            z  z   S )Nr  r>   r   ri
  rl
  s      r0   dlogl_dscalez+TestNakagami.test_fit.<locals>.dlogl_dscale  sG    !GbL5("fuz)BFGcMa3G,H,HHI Jr2   r   r
  r   )r6   rb
  r   r   r   )r   r	  r<   r=   nu_estloc_est	scale_estrj
  rm
  ro
  r  r  s             @@r0   r=  zTestNakagami.test_fit  s[    .$$!+0t % E E%*^%7%7%@%@"----3////	5s3333	= 	= 	= 	= 	=	< 	< 	< 	< 	< 	<
	J 	J 	J 	J 	J 	J 			&'9==qtLLLL

67I>>MMMMVWi@@!$OOOOOOr2   c                    d}d}t           j                            ||||d          }t           j                            ||          \  }}}t	          j        |          }	t	          j        t	          j        ||z
  dz                      }
t          ||d           t          ||	d           t          ||
d           d S )	Nrx   ro   rf
  rg
  rY  r>   r  r   )	r6   rb
  r   r   rt   r~  r  rD  r   )r   r<   r=   r	  r>  r  rp
  rq
  rr
  loc_theo
scale_theos              r0   test_fit_nuzTestNakagami.test_fit_nu  s    
 .$$!+0t % E E%*^%7%7B%7%G%G" 6'??WRWg&7A%=>>??
....5555	:D999999r2   N)r#  r$  r%  r  r	  r   r  r  r  r=  rv
  r8   r2   r0   r`
  r`
    s       3 3 3", , ,& [KLL[T???33[UNNN33[Wkkk22P P 32 43 43 MLP8 [UNNN33[Wkkk22: : 32 43: : :r2   r`
  c                        e Zd Zd Zd Zd ZdS )TestWrapCauchyc                 L   t          j        ddgddgg          }t          j        dgdgg          }t          j                            ||          }|j        dk    sJ d t          j        ||f          D             }t          |                                |d	
           d S )NQ?r5  rx   r+  r  r  r  c                 T    g | ]%\  }}t           j                            ||          &S r8   )r6   
wrapcauchyrK   )rQ   r6  r1  s      r0   rS   z>TestWrapCauchy.test_cdf_shape_broadcasting.<locals>.<listcomp>4  s?     < < <%b" )--b"55 < < <r2   r   r   )	rt   r   r6   r|
  rK   r  nditerr   r-  )r   r^  rG   r?  scalar_valuess        r0   test_cdf_shape_broadcastingz*TestWrapCauchy.test_cdf_shape_broadcasting,  s     HtTlS$K011HsecU^$$  A&&w&    < <)+Aq6):):< < <		=u======r2   c                 ~    t           j                            t          j        d          }t          |dd           d S )Nrz
  rx   r,  r   )r6   r|
  rK   rt   rB   r   rL  s     r0   test_cdf_centerzTestWrapCauchy.test_cdf_center8  s7      --3U++++++r2   c                    d}d}d}t           j                            ||g|          }d|z   d|z
  z  }t          |d         t	          j        |t	          j        |dz            z            t          j        z             t          |d         dt	          j        |t	          j        t          j        |dz  z
            z            t          j        z  z
             d S )Nr  r  r+  r   r   r>   )r6   r|
  rK   r   rt   arctantanrB   )r   r6  r7  r^  r?  crs         r0   r"  zTestWrapCauchy.test_cdf<  s      "b1--!ea!e_!bi26"Q$<<88>???!a")Brvbebdl/C/C,C"D"DRU"JJKKKKKr2   N)r#  r$  r%  r
  r
  r"  r8   r2   r0   rx
  rx
  *  sF        
> 
> 
>, , ,L L L L Lr2   rx
  c                       G d dt           j                  }  | d          }t          t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )/test_rvs_no_size_error.<locals>.rvs_no_size_genc                     dS r   r8   r   s    r0   _rvsz4test_rvs_no_size_error.<locals>.rvs_no_size_gen._rvsI  s    1r2   N)r#  r$  r%  r
  r8   r2   r0   rvs_no_size_genr
  H  s#        	 	 	 	 	r2   r
  rvs_no_sizer  z_rvs\(\) got (an|\d) unexpectedr   )r6   rV   r  r   r   )r
  r
  s     r0   test_rvs_no_size_errorr
  F  s        %-    "/}555K	y(J	K	K	K                   s   AA!$A!zdistname, argsc                 n   | t           v rt          j        d|  d           t          t          |           }t          |t          j                  rt          |          dk    rA |j        | \  }}t          |t          j                   t          |t          j                   d\  }} |j        g |||R  \  }}t          |t          j                   t          |t          j                   d S  |j        | \  }	}
t          |	t          j                   t          |
t          j                   d S )Nz6skipping test for the support method for distribution .r   r  )$skip_test_support_gh13294_regressionr   r  r   r6   r
  rV   r   supportr   rt   r   )r	  r   rR   a0b0r/  r0  a1b1r.   r/   s              r0   test_support_gh13294_regressionr
  R  s8   777 0$,0 0 0 	1 	1 	15(##D$+,,  t99>>!T\4(FBRV$$$RV$$$
 f2t2T26222BR   R     t|T"1QQr2   c                  \   t           j                            g dg d          \  } }t          j        t          j         t          j         t          j         t          j        g          }t          j        t          j        t          j        t          j        t          j        g          }t          | |           t          ||           | j        |j        k    sJ |j        |j        k    sJ t           j                            g g           \  }}t          j        g           t          j        g           }}t          ||           t          ||           |j        |j        k    sJ |j        |j        k    sJ t           j                            g ddg          \  }}	t          j        dt          j        gz            }
t          j        dt          j        gz            }t          ||
           t          |	|           |j        |
j        k    sJ |	j        |j        k    sJ d S )N)r   r   r   r   )r   r   r   r  r  re  )	r6   rE  r
  rt   r   r   r   r   r  )r
  r
  ex_a0ex_b0r
  r
  ex_a1ex_b1r>  r  ex_a2ex_b2s               r0   ,test_support_broadcasting_gh13294_regressionr
  m  s   Zmmm<<FBHrvgw899EHbfbfbfbf566EUU8u{""""8u{""""ZB''FB8B<<"5EUU8u{""""8u{""""Zrd33FBHQxZ  EHQxZ  EUU8u{""""8u{""""""r2   c                  2   ddg} dgdgdgg}t          t          j                            | |          ddgddgddgg           t	          j        d          } t	          j        d          }t          j                            | |          j        dk    sJ d S )	Nr}   r  r|   r  r  r  rO   r  )r   r6   rE  r  rt   r,  r  r;   s     r0   *test_stats_broadcasting_gh14953_regressionr
    s    r(CTB4"EU++r2hR2r(-KLLL
(5//CHVE:>>#u%%+v555555r2   r  )gn!	g:I"<)gQ	@gE?c                     t          t          j                            |           |           t          t          j                            |            |           d S rr   )r   r6   cosinerK   rg  )rG   ri   s     r0   test_cosine_cdf_sfr
    sJ     EL$$Q''222ELOOQB''22222r2   zp, expected))r  gkM6O)r  g0ӭ!	)g333333?g;'u(@c                     t          t          j                            |           |           t          t          j                            |           |            d S rr   )r   r6   r
  r]  rl  )r?  ri   s     r0   test_cosine_ppf_isfr
    sL    
 EL$$Q''222EL$$Q''(33333r2   c                      t           j                            t          j         t          j        g          } t          | t          j         t          j         g           d S rr   )r6   r
  r   rt   rB   r   r   )r  s    r0   test_cosine_logpdf_endpointsr
    sD    <//D"&)*****r2   c                      d t           D             } d t          D             }| |k    sJ d t          D             }d t          D             }||k    sJ d S )Nc                 B    h | ]\  }}t          |t                    |S r8   )r
  r\   rQ   r  r  s      r0   	<setcomp>z*test_distr_params_lists.<locals>.<setcomp>  s:     4 4 474'c224$ 4 4 4r2   c                     h | ]\  }}|S r8   r8   r
  s      r0   r
  z*test_distr_params_lists.<locals>.<setcomp>  s    AAAgdATAAAr2   c                     h | ]\  }}|S r8   r8   r
  s      r0   r
  z*test_distr_params_lists.<locals>.<setcomp>  s    333wtQd333r2   c                     h | ]\  }}|S r8   r8   r
  s      r0   r
  z*test_distr_params_lists.<locals>.<setcomp>  s    999'$999r2   )r   r    r   r   )discrete_distnamesinvdiscrete_distnamescont_distnamesinvcont_distnamess       r0   test_distr_params_listsr
    s    4 4l 4 4 4AAAAA!6666633(333N99[999.......r2   c                      t           j                            dd           t           j                            dd          dk    sJ t           j                            dd          dk    sJ d S )Nr   rD   rD  re  )r4  r.   r  )r6   r$  _statsr  rR  r8   r2   r0   test_moment_order_4r
    sr     
NAs+++ >  qA ..#5555 >1%%,,,,,,r2   rr   )rl  r@  r	  r  r  pathlibr   r  r  rk  numpy.testingr   r   r   r   r   r	   r
   r   r   r   r   r   r  rA   rt   r   r   numpy.lib.recfunctionsr   r5   r   scipy._lib._utilr   r  r   r   r   r   scipy.statsr6   !scipy.stats._distn_infrastructurer   scipy.stats.distributionsscipy.specialr   r   r   scipy.stats._distr_paramsr   r   test_discrete_basicr   r    scipy.stats._continuous_distnsr!   r"   scipy.optimizer#   r$   	itertoolsr%   flagsoptimizer	  rn  r  r
  r1   r9   rI   rL   rj   rp   ru   ry   r  r  r   r   r   r   r   r   r   r   r   r'  rH  rO  rW  rc  ru  r  r  r  r  r/  r9  rO  rZ  rn  r  r  r  r"  rI  rT  rg  r  r  r  r  r  r<  rF  rS  rt  objectr  r  r  r  r  r  r  r  r  r  r  rB   rK  r!  rM  r^  rg  rn  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r7  r<  rC  rY  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r 	  r	  r	  r	  r	  rV   r	  r	  r"	  r(	  r,	  r}	  r  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r
  r  r
  r
  r3
  r5
  rA
  r`
  rx
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r8   r2   r0   <module>r
     s     				 



        				  J J J J J J J J J J J J J J J J J J J J J J J J  * * * * * *      " " " " " " " " 4 4 4 4 4 4       / / / / / /3 3 3 3 3 3 3 3 3 3 3 3       8 8 8 8 8 8         0 0 0 0 0 0 0 0 0 0 ; ; ; ; ; ; ; ; > > > > > > > > C C C C C C C C % % % % % % % %       i(1,  |x'M.>h.>.@.@H.L )6z'B $$ $ $ $8 8 8
? ? ?
G G G
  $	5 	5 	5/ / /
( ( ( 1+ + +, ,3 3, ,3 27 7 78 8; ;8 8;
, , ," 4> > >? ?9 9? ?9
8 8 86J J J . . .. > > >? ?

6 
6? ?

69 9 9 9 9 9 9 9>+9 +9 +9 +9 +9 +9 +9 +9\* * * * * * * *       >       ; ; ; ; ; ; ; ;,# # # # # # # #<E; E; E; E; E; E; E; E;P` ` ` ` ` ` ` `FaD aD aD aD aD aD aD aDH;G ;G ;G ;G ;G ;G ;G ;G|2 2 2 2 2 2 2 2"'K 'K 'K 'K 'K 'K 'K 'KT* * * * * * * *. G  G  G  G  G  G  G  GFdE dE dE dE dE dE dE dEN4 4 4 4 4 4 4 4J: J: J: J: J: J: J: J:Z2& 2& 2& 2& 2& 2& 2& 2&jR1 R1 R1 R1 R1 R1 R1 R1j%( %( %( %( %( %( %( %(P&B &B &B &B &B &B &B &BRX# X# X# X# X# X# X# X#vt: t: t: t: t: t: t: t:nJ7 J7 J7 J7 J7 J7 J7 J7Z< < < < < < < <~'* '* '* '* '* '* '* '*TO@ O@ O@ O@ O@ O@ O@ O@d/ / / / / / / /2!, !, !, !, !, !, !, !,HD2 D2 D2 D2 D2 D2 D2 D2Ni5 i5 i5 i5 i5 i5 i5 i5XMA MA MA MA MA6 MA MA MA`&) &) &) &) &) &) &) &)R( ( ( ( ( ( ( (VM M M
P P P ? ? ?  &: &: &: ; ;AAA)2III(>*+Q!Q(8*+qc
(4 5 5? ?	5 5; ;?" AAA)2III(>*+Q!Q(8*+qc
(4 5 51 1	5 51(]J ]J ]J ]J ]J ]J ]J ]J@*9 *9 *9 *9 *9 *9 *9 *9j 7271ag;		
	gbga25k""	"	
	1RU7$$	$		AbeG%%	%		GBGAqwK((	(	* + 	7271c"%i=!!7271c"%i=)))7271c"%i=)))50gbgaRUm,,,g53ru9...	9; < "WRWQruW


r'"'!BE'"""
#

WRWQruW%%%
&

#gbgag&&&
'

D25)))
*

eGBGAbeG,,,
-

wrwqw///
0

 '!  He8 e8 e8 e8 e8 e8 e8 e8P6 6 6 6 6 6 6 6&D D D D D D D D 
8 
8 
8 
8 
8 
8 
8 
8s5 s5 s5 s5 s5 s5 s5 s5l? ? ? ? ? ? ? ?6       *O *O *O *O *O *O *O *OZ? ? ? ? ? ? ? ?$k k k k k k k k\: : : : : : : :2'9 '9 '9 '9 '9 '9 '9 '9TF F F F F F F F.& & & & & & & &>$ $ $ $ $ $ $ $*E
 E
 E
 E
 E
 E
 E
 E
P) ) ) ) ) ) ) )       / / / lG lG lG lG lG lG lG lG^e, e, e, e, e, e, e, e,Px; x; x; x; x; x; x; x;v:> :> :> :> :> :> :> :>z", ", ", ", ", ", ", ",JB& B& B& B& B& B& B& B&J6 6 6 6 6 6 6 68@" @" @" @" @" @" @" @"F)( )( )( )( )( )( )( )(X. . . . . . . ..p" p" p" p" p" p" p" p"fJ/ J/ J/ J/ J/v J/ J/ J/Z3 3 3 3 3 3 3 3 [L [L [L [L [L [L [L [L|6 6 6 6 6 6 6 6(N N N N N N N NH! H! H! H! H! H! H! H!VA A A A A A A AH	< 	< 	<5 5 59 9 9
! ! !* '0EFF/ / GF/
< < <*5 5 585 5 5. . .2 2 2(: : :#4 #4 #4L  	, 	, 	,    # # #  07 7 72' ' '0	- 	- 	-. *F F FG G1 1G G1
	- 	- 	-& & &9 9 9%& %& %&P 455- - 65-M M M" +
HBHo7889
HBHo7889xrx|4556
HBHk;/001	.  2 2 22 2 2 4556 6 656 4551 1 65167 7 7  % % %*    $   
    %%   
    %%       %%   u9 u9 u9 u9 u9 u9 u9 u9p8B 8B 8B 8B 8B 8B 8B 8Bv '0DEE@ @ FE@< < <
      , , ,3 3 37 7 7.) ) )X6 6 6D6 D6 D6N+L +L +L\+ + +0 0 0D )F F FG G
4 4G G
4 )<<>? ?4 4? ?4
 !!!""""#___ = = = * * *@ @ @ CK5(E  G G G G^K ^K ^K ^K ^K ^K ^K ^KB  .       @v2 v2 v2 v2 v2 v2 v2 v2rW: W: W: W: W: W: W: W:tL L L L L L L L8	 	 	 )?[+HII    JI 4# # #26 6 6 ;467 73 37 73
 7 7 78 84 4	8 84
+ + +
/ / /- - - - -r2   